diff --git a/addons/account/models/account_invoice.py b/addons/account/models/account_invoice.py index 16883563157d8c59b97db0e2231dd23660ee9223..87956a87ac2c9de36ce772aaf4ff68b16fd00760 100644 --- a/addons/account/models/account_invoice.py +++ b/addons/account/models/account_invoice.py @@ -1220,13 +1220,13 @@ class AccountInvoice(models.Model): if tax.include_base_amount: affected_taxes = [] for invoice_line in tax_line.invoice_id.invoice_line_ids: - if tax in invoice_line.invoice_line_tax_ids: - following_taxes = invoice_line.invoice_line_tax_ids.filtered(lambda x: x.sequence > tax.sequence - or (x.sequence == tax.sequence and x.id > tax.id)) - affected_taxes += following_taxes.ids - affected_taxes += following_taxes.mapped('children_tax_ids.id') + if tax in invoice_line.invoice_line_tax_ids or tax in invoice_line.invoice_line_tax_ids.mapped('children_tax_ids'): + all_taxes = invoice_line.invoice_line_tax_ids.filtered(lambda x: x.amount_type != 'group') \ + + invoice_line.invoice_line_tax_ids.mapped('children_tax_ids') + following_taxes = all_taxes.filtered(lambda x: x.sequence > tax.sequence + or (x.sequence == tax.sequence and x.id > tax.id)) - tax_line_vals['tax_ids'] = [(6, 0, affected_taxes)] + tax_line_vals['tax_ids'] = [(6, 0, following_taxes.ids)] res.append(tax_line_vals) return res