From: Olivier Dony Date: Mon, 4 Nov 2013 17:32:32 +0000 (+0100) Subject: [FIX] stock: no early currency rounding when computing average price X-Git-Tag: InsPy_master01~464^2~293 X-Git-Url: http://git.inspyration.org/?a=commitdiff_plain;h=6be89e5f82232dff2d5d57a43ed7bb0d86afecbd;p=odoo%2Fodoo.git [FIX] stock: no early currency rounding when computing average price It is a common need to set a higher decimal precision for `Product Price` (i.e. the product cost field) for high volume / low value items. This may typically require up to 4-6 decimals for e.g. EUR/USD-based companies where the currency has 2 decimals. In that case the product cost should be stored with full precision without applying the currency rounding. The appropriate currency rounding will be applied anyway as soon as a transaction actually uses that product cost (typically in a SO/PO) bzr revid: odo@openerp.com-20131104173232-84g115x6ykxoc1rh --- diff --git a/addons/stock/stock.py b/addons/stock/stock.py index d65689e..f3efd8a 100644 --- a/addons/stock/stock.py +++ b/addons/stock/stock.py @@ -1281,7 +1281,7 @@ class stock_picking(osv.osv): if qty > 0: new_price = currency_obj.compute(cr, uid, product_currency, - move_currency_id, product_price) + move_currency_id, product_price, round=False) new_price = uom_obj._compute_price(cr, uid, product_uom, new_price, product.uom_id.id) if product_avail[product.id] <= 0: @@ -2717,7 +2717,7 @@ class stock_move(osv.osv): qty = uom_obj._compute_qty(cr, uid, product_uom, product_qty, product.uom_id.id) if qty > 0: new_price = currency_obj.compute(cr, uid, product_currency, - move_currency_id, product_price) + move_currency_id, product_price, round=False) new_price = uom_obj._compute_price(cr, uid, product_uom, new_price, product.uom_id.id) if product.qty_available <= 0: