Hello everyone, thanks for the feedback and investigation on this issue.
It is indeed difficult to reproduce, but on 6.0 I did it by adding a dependency 
from purchase to sale. You can see easily in the database loading messages if 
the sales module is loaded before or after purchase. If it's loaded before you 
should be able to reproduce the bug.
The suggestion from Jordi seems a good approach to fix it, as it is consistent 
with the way we do the same test in the sale module. Also, be careful as 
passing False instead of sale_line as suggested by Raphael's patch is likely to 
break account_analytic_default (which also overrides this method and needs a 
move_line), so that would require more testing/patching - probably not worth it.

The one-line patch suggested by Jordi seems suitable for patching 6.0 as
well as trunk, if the OPW team considers this issue critical enough for
landing it in the stable branch.

Thanks!

** Changed in: openobject-addons
   Importance: Undecided => Medium

** Changed in: openobject-addons
       Status: Incomplete => Confirmed

** Changed in: openobject-addons
     Assignee: (unassigned) => OpenERP R&D Addons Team 2 (openerp-dev-addons2)

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/737786

Title:
  [6.0.1] Invoicing an outgoing picking list from a sale order including
  service products

Status in OpenERP Modules (addons):
  Confirmed

Bug description:
  If you invoice an outgoing picking list whose sale order includes
  service products, and the purchase module is installed, you can get
  the following error because action_invoice_create() tries to get an
  analytical account but the inherit _get_account_analytic_invoice()
  method defined in purchase module is called.

  It could be fixes if line 104 of file purchase/stock.py:
          if move_line.purchase_line_id:

  is changed to:
          if picking.purchase_id and move_line.purchase_line_id:

    File "server/bin/addons/stock/wizard/stock_invoice_onshipping.py", line 93, 
in open_invoice
      res = self.create_invoice(cr, uid, ids, context=context)
    File "server/bin/addons/purchase/purchase.py", line 835, in create_invoice
      res = super(stock_invoice_onshipping,self).create_invoice(cr, uid, ids, 
context=context)
    File "server/bin/addons/stock/wizard/stock_invoice_onshipping.py", line 
131, in create_invoice   
      context=context)
    File "server/bin/addons/delivery/stock.py", line 81, in 
action_invoice_create
      context=context)
    File "server/bin/addons/sale/stock.py", line 167, in action_invoice_create
      user, picking, sale_line)
    File "server/bin/addons/purchase/stock.py", line 104, in 
_get_account_analytic_invoice
      if move_line.purchase_line_id:
    File "server/bin/osv/orm.py", line 287, in __getattr__
      raise AttributeError(e)
  AttributeError: "Field 'purchase_line_id' does not exist in object 
'browse_record(sale.order.line, 393)'"

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/737786/+subscriptions

_______________________________________________
Mailing list: https://launchpad.net/~c2c-oerpscenario
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~c2c-oerpscenario
More help   : https://help.launchpad.net/ListHelp

Reply via email to