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):