From dcb43a50830e2893987f45f260d9e3745ebafa6f Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Fri, 18 Mar 2016 14:33:35 +0100 Subject: [PATCH] [FIX] mrp_repair: `tax_id` is a many2many This is related to 3d58cd1ca208997e5f458e6733c06efde208bb97 `compute_all` indeed does expect ids, and not browse records, but it expects a list of ids for the `ids` parameter, or a single id, but not `False`. Besides, `line.tax_id` is a many2many, despite the fact its naming seems to say otherwise, and therefore `.ids` should be used in order to pass all the taxes of the line, not just one. --- addons/mrp_repair/mrp_repair.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index 784a43ea445..b6679618d85 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -52,12 +52,12 @@ class mrp_repair(osv.osv): for line in repair.operations: #manage prices with tax included use compute_all instead of compute if line.to_invoice and line.tax_id: - tax_calculate = tax_obj.compute_all(cr, uid, line.tax_id.id, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, repair.partner_id.id) + tax_calculate = tax_obj.compute_all(cr, uid, line.tax_id.ids, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, repair.partner_id.id) for c in tax_calculate['taxes']: val += c['amount'] for line in repair.fees_lines: if line.to_invoice and line.tax_id: - tax_calculate = tax_obj.compute_all(cr, uid, line.tax_id.id, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, repair.partner_id.id) + tax_calculate = tax_obj.compute_all(cr, uid, line.tax_id.ids, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, repair.partner_id.id) for c in tax_calculate['taxes']: val += c['amount'] res[repair.id] = cur_obj.round(cr, uid, cur, val) @@ -546,7 +546,7 @@ class mrp_repair_line(osv.osv, ProductChangeMixin): for line in self.browse(cr, uid, ids, context=context): if line.to_invoice: cur = line.repair_id.pricelist_id.currency_id - taxes = tax_obj.compute_all(cr, uid, line.tax_id.id, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, line.repair_id.partner_id.id) + taxes = tax_obj.compute_all(cr, uid, line.tax_id.ids, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, line.repair_id.partner_id.id) #res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) res[line.id] = taxes['total_included'] else: @@ -642,7 +642,7 @@ class mrp_repair_fee(osv.osv, ProductChangeMixin): for line in self.browse(cr, uid, ids, context=context): if line.to_invoice: cur = line.repair_id.pricelist_id.currency_id - taxes = tax_obj.compute_all(cr, uid, line.tax_id.id, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, line.repair_id.partner_id.id) + taxes = tax_obj.compute_all(cr, uid, line.tax_id.ids, line.price_unit, cur.id, line.product_uom_qty, line.product_id.id, line.repair_id.partner_id.id) res[line.id] = taxes['total_included'] else: res[line.id] = 0