[FIX] stock_account: real-time inventory valuation with free goods

For a free purchase, the valuation amount fall-backed
to the product cost price instead of the actual
cost of the purchase.

opw-63059
This commit is contained in:
Denis Ledoux 2015-04-17 17:32:47 +02:00
parent bbcc6a8478
commit b28bfcdb3a
1 changed files with 2 additions and 2 deletions

View File

@ -201,9 +201,9 @@ class stock_quant(osv.osv):
valuation_amount = context.get('force_valuation_amount')
else:
if move.product_id.cost_method == 'average':
valuation_amount = move.location_id.usage != 'internal' and move.location_dest_id.usage == 'internal' and cost or move.product_id.standard_price
valuation_amount = cost if move.location_id.usage != 'internal' and move.location_dest_id.usage == 'internal' else move.product_id.standard_price
else:
valuation_amount = move.product_id.cost_method == 'real' and cost or move.product_id.standard_price
valuation_amount = cost if move.product_id.cost_method == 'real' else move.product_id.standard_price
#the standard_price of the product may be in another decimal precision, or not compatible with the coinage of
#the company currency... so we need to use round() before creating the accounting entries.
valuation_amount = currency_obj.round(cr, uid, move.company_id.currency_id, valuation_amount * qty)