From fefc8e0574961f057a062d71855ee56c4c1811e8 Mon Sep 17 00:00:00 2001 From: Nicolas Martinelli Date: Fri, 15 May 2015 10:17:05 +0200 Subject: [PATCH] [FIX] mrp_repair: calculation of taxes - Correct tax management in tab "Operations": use unit_price in tax computation - Add tax calculation in tab "Invoicing" (Fees). opw-639660 --- addons/mrp_repair/mrp_repair.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index 305f5056fdd..41c51397b21 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -562,10 +562,12 @@ class mrp_repair_line(osv.osv, ProductChangeMixin): tax_obj = self.pool.get('account.tax') cur_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids, context=context): - res[line.id] = line.to_invoice and line.price_unit * line.product_uom_qty or 0 - taxes = tax_obj.compute_all(cr, uid, line.tax_id, res[line.id], line.product_uom_qty, line.product_id, line.repair_id.partner_id) - cur = line.repair_id.pricelist_id.currency_id - res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) + if line.to_invoice: + taxes = tax_obj.compute_all(cr, uid, line.tax_id, line.price_unit, line.product_uom_qty, line.product_id, line.repair_id.partner_id) + cur = line.repair_id.pricelist_id.currency_id + res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) + else: + res[line.id] = 0 return res _columns = { @@ -652,11 +654,15 @@ class mrp_repair_fee(osv.osv, ProductChangeMixin): @return: Dictionary of values. """ res = {} + tax_obj = self.pool.get('account.tax') cur_obj = self.pool.get('res.currency') for line in self.browse(cr, uid, ids, context=context): - res[line.id] = line.to_invoice and line.price_unit * line.product_uom_qty or 0 - cur = line.repair_id.pricelist_id.currency_id - res[line.id] = cur_obj.round(cr, uid, cur, res[line.id]) + if line.to_invoice: + taxes = tax_obj.compute_all(cr, uid, line.tax_id, line.price_unit, line.product_uom_qty, line.product_id, line.repair_id.partner_id) + cur = line.repair_id.pricelist_id.currency_id + res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) + else: + res[line.id] = 0 return res _columns = {