From 534d5b8fe7cf13cada7a2be67eda7a8403070f9b Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Fri, 27 Mar 2015 12:43:57 +0100 Subject: [PATCH] [FIX] stock_landed_costs: avoid rounding issues for comparaison amount_total may return an unrounded amount, force the comparison with float_comapre to avoid errors opw 631157 --- addons/stock_landed_costs/stock_landed_costs.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/addons/stock_landed_costs/stock_landed_costs.py b/addons/stock_landed_costs/stock_landed_costs.py index ad729377fb2..a2b05640bde 100644 --- a/addons/stock_landed_costs/stock_landed_costs.py +++ b/addons/stock_landed_costs/stock_landed_costs.py @@ -21,6 +21,7 @@ from openerp.osv import fields, osv import openerp.addons.decimal_precision as dp +from openerp.tools import float_compare from openerp.tools.translate import _ import product @@ -178,9 +179,12 @@ class stock_landed_cost(osv.osv): else: costcor[valuation_line.cost_line_id] = valuation_line.additional_landed_cost tot += valuation_line.additional_landed_cost - res = (tot == landed_cost.amount_total) + + prec = self.pool['decimal.precision'].precision_get(cr, uid, 'Account') + # float_compare returns 0 for equal amounts + res = not bool(float_compare(tot, landed_cost.amount_total, precision_digits=prec)) for costl in costcor.keys(): - if costcor[costl] != costl.price_unit: + if float_compare(costcor[costl], costl.price_unit, precision_digits=prec): res = False return res