[FIX] mrp_repair: tax_id is a many2many

This is related to 3d58cd1ca2

`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.
This commit is contained in:
Denis Ledoux
2016-03-18 14:35:54 +01:00
parent fc43546f01
commit dcb43a5083
+4 -4
View File
@@ -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