From 6c1521448d481a37b494258c8381d2bf6152dbac Mon Sep 17 00:00:00 2001 From: Mustufa Rangwala Date: Wed, 16 Jun 2010 18:52:15 +0530 Subject: [PATCH] [FIX] pos: patch from sbh bzr revid: mra@mra-laptop-20100616132215-0msgqu06za5jyf2s --- addons/point_of_sale/pos.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/point_of_sale/pos.py b/addons/point_of_sale/pos.py index e0e2d9c5c5d..3ecab60d2af 100644 --- a/addons/point_of_sale/pos.py +++ b/addons/point_of_sale/pos.py @@ -172,7 +172,8 @@ class pos_order(osv.osv): return res def _amount_all(self, cr, uid, ids, name, args, context=None): - tax_obj = self.pool.get('account.tax') + tax_obj = self.pool.get('account.tax') + cur_obj = self.pool.get('res.currency') res={} for order in self.browse(cr, uid, ids): res[order.id] = { @@ -180,6 +181,9 @@ class pos_order(osv.osv): 'amount_return':0.0, 'amount_tax':0.0, } + val=0.0 + cur_obj = self.pool.get('res.currency') + cur = order.pricelist_id.currency_id for payment in order.statement_ids: res[order.id]['amount_paid'] += payment.amount for payment in order.payments: @@ -192,11 +196,9 @@ class pos_order(osv.osv): (1-(line.discount or 0.0)/100.0), line.qty), res[order.id]['amount_tax']) else: - res[order.id]['amount_tax'] = reduce(lambda x, y: x+round(y['amount'], 2), - tax_obj.compute_all(cr, uid, line.product_id.taxes_id, - line.price_unit * \ - (1-(line.discount or 0.0)/100.0), line.qty)['taxes'], - res[order.id]['amount_tax']) + for c in tax_obj.compute_all(cr, uid, line.product_id.taxes_id, line.price_unit * (1-(line.discount or 0.0)/100.0), line.qty, line.product_id, line.order_id.partner_id)['taxes']: + val += c['amount'] + res[order.id]['amount_tax'] = cur_obj.round(cr, uid, cur, val) return res