c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #30329
[Bug 737786] Re: [6.0.1] Invoicing an outgoing picking list from a sale order including service products
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
References