Skip to content
Snippets Groups Projects
Commit 9b87d6f3 authored by Martin Trigaux's avatar Martin Trigaux
Browse files

[FIX] purchase: keep fallback behaviour that was removed at rev 8973217e

If no valid invocie is found on the purchase order line, use the price and currency of the line (coherent with help message)
parent 6b9b948a
Branches
Tags
No related merge requests found
......@@ -128,14 +128,23 @@ class stock_partial_picking(osv.osv_memory):
# Overridden to inject the purchase price as true 'cost price' when processing
# incoming pickings.
def _product_cost_for_average_update(self, cr, uid, move):
if move.purchase_line_id and move.purchase_line_id and move.purchase_line_id.invoice_lines:
cost = move.price_unit
for inv_line in move.purchase_line_id.invoice_lines:
if inv_line.invoice_id.state not in ('draft', 'cancel'):
inv_currency = inv_line.invoice_id.currency_id.id
company_currency = inv_line.invoice_id.company_id.currency_id.id
cost = self.pool.get('res.currency').compute(cr, uid, inv_currency, company_currency, inv_line.price_unit, round=False, context={'date': inv_line.invoice_id.date_invoice})
return {'cost': cost, 'currency': company_currency}
purchase_line = move.purchase_line_id
if move.picking_id.purchase_id and purchase_line:
if any([x.invoice_id.state not in ('draft', 'cancel') for x in purchase_line.invoice_lines]):
# use price set on validated invoices
cost = move.price_unit
for inv_line in purchase_line.invoice_lines:
if inv_line.invoice_id.state not in ('draft', 'cancel'):
inv_currency = inv_line.invoice_id.currency_id.id
company_currency = inv_line.invoice_id.company_id.currency_id.id
cost = self.pool.get('res.currency').compute(cr, uid, inv_currency, company_currency, inv_line.price_unit, round=False, context={'date': inv_line.invoice_id.date_invoice})
return {'cost': cost, 'currency': company_currency}
else:
# use price set on the purchase order
pur_currency = purchase_line.order_id.currency_id.id
company_currency = purchase_line.company_id.currency_id.id
cost = self.pool.get('res.currency').compute(cr, uid, pur_currency, company_currency, purchase_line.price_unit, round=False, context={'date': purchase_line.date_order})
return {'cost': cost, 'currency': company_currency}
return super(stock_partial_picking, self)._product_cost_for_average_update(cr, uid, move)
def __get_help_text(self, cursor, user, picking_id, context=None):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment