From 3ff4cdea95c525053314c750e4c1203707dada9d Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Thu, 19 Feb 2015 08:50:03 +0100 Subject: [PATCH] [FIX] pos: Bad float comparison to check amount_return in _process_order. Float comparison should always be done using float_compare, or float_is_zero when compared to 0.0. opw: 627248 Closes #4118 --- addons/point_of_sale/point_of_sale.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index b9e10ca5dad..0d4f0275401 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -24,6 +24,7 @@ import time from openerp import tools from openerp.osv import fields, osv +from openerp.tools import float_is_zero from openerp.tools.translate import _ import openerp.addons.decimal_precision as dp @@ -585,7 +586,7 @@ class pos_order(osv.osv): session.write({'sequence_number': order['sequence_number'] + 1}) session.refresh() - if order['amount_return']: + if not float_is_zero(order['amount_return'], self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')): cash_journal = session.cash_journal_id if not cash_journal: cash_journal_ids = filter(lambda st: st.journal_id.type=='cash', session.statement_ids)