From 880941c7d88639b50849f33bfc80be025b67b916 Mon Sep 17 00:00:00 2001 From: ced <> Date: Tue, 12 Jun 2007 11:50:27 +0000 Subject: [PATCH] SALE: fix total for uos/uom bzr revid: ced-4a5570ba5868644cdec3550d06c6edafe60ae25a --- addons/sale/sale.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/sale/sale.py b/addons/sale/sale.py index 69807cb7b6e..b8c10027e4d 100644 --- a/addons/sale/sale.py +++ b/addons/sale/sale.py @@ -68,14 +68,14 @@ class sale_order(osv.osv): return super(sale_order, self).copy(cr, uid, id, default, context) def _amount_untaxed(self, cr, uid, ids, field_name, arg, context): - id_set = ",".join(map(str, ids)) - cr.execute("SELECT s.id,COALESCE(SUM(l.price_unit*l.product_uos_qty*(100-l.discount))/100.0,0) AS amount FROM sale_order s LEFT OUTER JOIN sale_order_line l ON (s.id=l.order_id) WHERE s.id IN ("+id_set+") GROUP BY s.id ") - res = dict(cr.fetchall()) + res = {} cur_obj=self.pool.get('res.currency') - for id in res.keys(): - order=self.browse(cr, uid, [id])[0] - cur=order.pricelist_id.currency_id - res[id]=cur_obj.round(cr, uid, cur, res[id]) + for sale in self.browse(cr, uid, ids): + res[sale.id] = 0.0 + for line in sale.order_line: + res[sale.id] += line.price_subtotal + cur = sale.pricelist_id.currency_id + res[sale.id] = cur_obj.round(cr, uid, cur, res[sale.id]) return res def _amount_tax(self, cr, uid, ids, field_name, arg, context):