diff options
| author | Laurent Smet <las@odoo.com> | 2020-10-20 08:49:34 +0000 |
|---|---|---|
| committer | Laurent Smet <las@odoo.com> | 2020-10-21 15:21:10 +0000 |
| commit | 7d3eb1fc3f0ac86485855bdb433f756fceeaccfb (patch) | |
| tree | 578c304f25514f37d765236869445af8b1faee53 | |
| parent | 0e2c55eec07600585121acf560ec8ffebde442e3 (diff) | |
[FIX] account: Fix reversal of journal entry with tax_ids on tax line
A tax line could have something in the `tax_ids` field.
Then, these condition needs to be inversed in order to not handle them as base lines.
closes odoo/odoo#60469
X-original-commit: eada9f91f3361f8335c23b3a27161803cfda6608
Signed-off-by: oco-odoo <oco-odoo@users.noreply.github.com>
Signed-off-by: Laurent Smet <smetl@users.noreply.github.com>
| -rw-r--r-- | addons/account/models/account_move.py | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 01bb81026b7..a4e5a040881 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -2146,12 +2146,12 @@ class AccountMove(models.Model): for line_command in move_vals.get('line_ids', []): line_vals = line_command[2] # (0, 0, {...}) - if line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: - # Base line. - tax_ids = line_vals['tax_ids'][0][2] - elif line_vals.get('tax_line_id'): + if line_vals.get('tax_line_id'): # Tax line. tax_ids = [line_vals['tax_line_id']] + elif line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: + # Base line. + tax_ids = line_vals['tax_ids'][0][2] else: continue @@ -2181,17 +2181,7 @@ class AccountMove(models.Model): continue # ==== Map tax repartition lines ==== - if line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: - # Base line. - taxes = self.env['account.tax'].browse(line_vals['tax_ids'][0][2]).flatten_taxes_hierarchy() - invoice_repartition_lines = taxes\ - .mapped('invoice_repartition_line_ids')\ - .filtered(lambda line: line.repartition_type == 'base') - refund_repartition_lines = invoice_repartition_lines\ - .mapped(lambda line: tax_repartition_lines_mapping[line]) - - line_vals['tax_tag_ids'] = [(6, 0, refund_repartition_lines.mapped('tag_ids').ids)] - elif line_vals.get('tax_repartition_line_id'): + if line_vals.get('tax_repartition_line_id'): # Tax line. invoice_repartition_line = self.env['account.tax.repartition.line'].browse(line_vals['tax_repartition_line_id']) if invoice_repartition_line not in tax_repartition_lines_mapping: @@ -2214,6 +2204,16 @@ class AccountMove(models.Model): 'account_id': account_id, 'tax_tag_ids': [(6, 0, refund_repartition_line.tag_ids.ids)], }) + elif line_vals.get('tax_ids') and line_vals['tax_ids'][0][2]: + # Base line. + taxes = self.env['account.tax'].browse(line_vals['tax_ids'][0][2]).flatten_taxes_hierarchy() + invoice_repartition_lines = taxes\ + .mapped('invoice_repartition_line_ids')\ + .filtered(lambda line: line.repartition_type == 'base') + refund_repartition_lines = invoice_repartition_lines\ + .mapped(lambda line: tax_repartition_lines_mapping[line]) + + line_vals['tax_tag_ids'] = [(6, 0, refund_repartition_lines.mapped('tag_ids').ids)] return move_vals def _reverse_moves(self, default_values_list=None, cancel=False): |
