diff options
| author | Lucas Perais (lpe) <lpe@odoo.com> | 2019-08-29 15:20:54 +0000 |
|---|---|---|
| committer | Lucas Perais (lpe) <lpe@odoo.com> | 2019-08-29 15:20:54 +0000 |
| commit | 0aa4bd1da913961f2f54c1a790c9f78a8ee2531f (patch) | |
| tree | ebc853b15af5328eaa6cf804991c32d3e48a5412 /addons | |
| parent | 63b3297af36a473fd9661103ba2e2c86b5a6aeac (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')
| -rw-r--r-- | addons/l10n_in/models/account_invoice.py | 9 | ||||
| -rw-r--r-- | addons/l10n_in/views/report_invoice.xml | 18 |
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> |
