From d9f92ba1600325d3760c10b1c3f4c3069b3876a6 Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Wed, 2 Dec 2015 10:26:08 +0100 Subject: [PATCH] [FIX] account: included tax with fiscal position When creating an invoice with a fiscal position(fp) which maps an included tax(itax) to an excluded tax(etax). Each invoice line mapped by fp must recompute its unit price to substract the included tax. Inspired from 503820a Closes #9811 opw:658109 --- addons/account/account_invoice.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index 116f5d2d684..3afb95ec54f 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1347,13 +1347,16 @@ class account_invoice_line(models.Model): if product.description_purchase: values['name'] += '\n' + product.description_purchase - taxes = fpos.map_tax(taxes) - values['invoice_line_tax_id'] = taxes.ids + fp_taxes = fpos.map_tax(taxes) + values['invoice_line_tax_id'] = fp_taxes.ids if type in ('in_invoice', 'in_refund'): - values['price_unit'] = price_unit or product.standard_price + if price_unit and price_unit != product.standard_price: + values['price_unit'] = price_unit + else: + values['price_unit'] = self.env['account.tax']._fix_tax_included_price(product.standard_price, taxes, fp_taxes.ids) else: - values['price_unit'] = product.lst_price + values['price_unit'] = self.env['account.tax']._fix_tax_included_price(product.lst_price, taxes, fp_taxes.ids) values['uos_id'] = product.uom_id.id if uom_id: @@ -1368,8 +1371,6 @@ class account_invoice_line(models.Model): if company and currency: if company.currency_id != currency: - if type in ('in_invoice', 'in_refund'): - values['price_unit'] = product.standard_price values['price_unit'] = values['price_unit'] * currency.rate if values['uos_id'] and values['uos_id'] != product.uom_id.id: