summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Smet <las@odoo.com>2020-10-20 08:49:34 +0000
committerLaurent Smet <las@odoo.com>2020-10-21 15:21:10 +0000
commit7d3eb1fc3f0ac86485855bdb433f756fceeaccfb (patch)
tree578c304f25514f37d765236869445af8b1faee53
parent0e2c55eec07600585121acf560ec8ffebde442e3 (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.py30
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):