[REF] stock_account: _compute_average_price unit price rounding
Since the introduction of the stock valuation layer, unit_cost is
rounded in the company currency (actually it is NOT because of an ORM
bug that will be fixed later). With the test introduced at [0], fixing
that ORM bug shows we have a rounding issue (27.02 instead of 27) due to
the company currency rounding on the unit_cost. Since the logic of the
anglo saxon will probably always give some rounding issue (we always
return a price unit that will be multiply by the invoiced quantity)
recomputing a not rounded price unit by using the not rounded value with
the not rounded quantity seems a good enough compromise.
[0] 13a535a091
closes odoo/odoo#35384
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
This commit is contained in:
@@ -585,7 +585,7 @@ class ProductProduct(models.Model):
|
||||
qty_taken_on_candidate = min(qty_to_take_on_candidates, candidate_quantity)
|
||||
|
||||
qty_to_take_on_candidates -= qty_taken_on_candidate
|
||||
tmp_value += qty_taken_on_candidate * candidate.unit_cost
|
||||
tmp_value += qty_taken_on_candidate * (candidate.value / candidate.quantity)
|
||||
if float_is_zero(qty_to_take_on_candidates, precision_rounding=candidate.uom_id.rounding):
|
||||
break
|
||||
|
||||
|
||||
Reference in New Issue
Block a user