summaryrefslogtreecommitdiff
path: root/addons/l10n_in
diff options
context:
space:
mode:
authorLucas Perais (lpe) <lpe@odoo.com>2019-08-29 15:20:54 +0000
committerLucas Perais (lpe) <lpe@odoo.com>2019-08-29 15:20:54 +0000
commit0aa4bd1da913961f2f54c1a790c9f78a8ee2531f (patch)
treeebc853b15af5328eaa6cf804991c32d3e48a5412 /addons/l10n_in
parent63b3297af36a473fd9661103ba2e2c86b5a6aeac (diff)
[FIX] l10n_in: adapt invoice and report to new taxes
Before this commit, printing an invoice crashed This was because of the refactoring of taxes After this commit, the invoice prints well and the specific taxes amount appear in the right columns OPW 2060259 closes odoo/odoo#36244 Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Diffstat (limited to 'addons/l10n_in')
-rw-r--r--addons/l10n_in/models/account_invoice.py9
-rw-r--r--addons/l10n_in/views/report_invoice.xml18
2 files changed, 15 insertions, 12 deletions
diff --git a/addons/l10n_in/models/account_invoice.py b/addons/l10n_in/models/account_invoice.py
index 5b59933d0e9..66100ac970e 100644
--- a/addons/l10n_in/models/account_invoice.py
+++ b/addons/l10n_in/models/account_invoice.py
@@ -47,12 +47,15 @@ class AccountInvoice(models.Model):
def _invoice_line_tax_values(self):
self.ensure_one()
tax_datas = {}
- TAX = self.env['account.tax']
+ Tag = self.env['account.account.tag']
+ repart_field = '%s_repartition_line_ids' % 'invoice' if self.type in ('in_invoice', 'out_invoice') else 'refund'
for line in self.mapped('invoice_line_ids'):
price_unit = line.price_unit * (1 - (line.discount or 0.0) / 100.0)
tax_lines = line.invoice_line_tax_ids.compute_all(price_unit, line.invoice_id.currency_id, line.quantity, line.product_id, line.invoice_id.partner_id, self.type in ('in_refund', 'out_refund'))['taxes']
- for tax_line in tax_lines:
- tax_line['tag_ids'] = TAX.browse(tax_line['id']).tag_ids.ids
+ for t_line in tax_lines:
+ x2m_res = line.invoice_line_tax_ids[repart_field].resolve_2many_commands(field_name='tag_ids', commands=t_line['tag_ids'])
+ t_line['tag_ids'] = [tag['id'] for tag in x2m_res]
+ t_line['report_line_ids'] = Tag.browse(t_line['tag_ids']).mapped('tax_report_line_ids').ids
tax_datas[line.id] = tax_lines
return tax_datas
diff --git a/addons/l10n_in/views/report_invoice.xml b/addons/l10n_in/views/report_invoice.xml
index 52bd759dafc..1bd6e221d12 100644
--- a/addons/l10n_in/views/report_invoice.xml
+++ b/addons/l10n_in/views/report_invoice.xml
@@ -5,11 +5,11 @@
<xpath expr="//table[@name='invoice_line_table']" position="before">
<t t-if="o.company_id.country_id.code == 'IN'">
<!-- Tag wise Tax Calculation -->
- <t t-set="tag_cgst_id" t-value="env.ref('l10n_in.cgst_tag_tax').id"/>
- <t t-set="tag_sgst_id" t-value="env.ref('l10n_in.sgst_tag_tax').id"/>
- <t t-set="tag_igst_id" t-value="env.ref('l10n_in.igst_tag_tax').id"/>
- <t t-set="tag_cess_id" t-value="env.ref('l10n_in.cess_tag_tax').id"/>
- <t t-set="tax_map" t-value="o.tax_line_ids.mapped('tax_id.tag_ids.id')"/>
+ <t t-set="tag_cgst_id" t-value="env.ref('l10n_in.tax_report_line_cgst').id"/>
+ <t t-set="tag_sgst_id" t-value="env.ref('l10n_in.tax_report_line_sgst').id"/>
+ <t t-set="tag_igst_id" t-value="env.ref('l10n_in.tax_report_line_igst').id"/>
+ <t t-set="tag_cess_id" t-value="env.ref('l10n_in.tax_report_line_cess').id"/>
+ <t t-set="tax_map" t-value="o.tax_line_ids.mapped('tag_ids.tax_report_line_ids').ids"/>
<t t-set="is_igst" t-value="tag_igst_id in tax_map"/>
<t t-set="is_cgst" t-value="tag_cgst_id in tax_map"/>
<t t-set="is_cess" t-value="tag_cess_id in tax_map"/>
@@ -43,21 +43,21 @@
<t t-if="o.company_id.country_id.code == 'IN'">
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[line.id]" t-as="tax_data">
- <t t-if="tag_cgst_id in tax_data['tag_ids']">
+ <t t-if="tag_cgst_id in tax_data['report_line_ids']">
<t t-esc="tax_data['amount']" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_cgst">
<t t-foreach="tax_datas[line.id]" t-as="tax_data">
- <t t-if="tag_sgst_id in tax_data['tag_ids']">
+ <t t-if="tag_sgst_id in tax_data['report_line_ids']">
<t t-esc="tax_data['amount']" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</t>
</t>
</td>
<td class="text-right" t-if="is_igst">
<t t-foreach="tax_datas[line.id]" t-as="tax_data">
- <t t-if="tag_igst_id in tax_data['tag_ids']">
+ <t t-if="tag_igst_id in tax_data['report_line_ids']">
<t t-esc="tax_data['amount']" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</t>
</t>
@@ -65,7 +65,7 @@
<td class="text-right" t-if="is_cess">
<t t-set="total_cess" t-value="0.0"/>
<t t-foreach="tax_datas[line.id]" t-as="tax_data">
- <t t-if="tag_cess_id in tax_data['tag_ids']">
+ <t t-if="tag_cess_id in tax_data['report_line_ids']">
<t t-set="total_cess" t-value="total_cess + tax_data['amount']" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/>
</t>
</t>