diff --git a/addons/account/models/account_move_line.py b/addons/account/models/account_move_line.py index e95879fb585..ea58820bc32 100644 --- a/addons/account/models/account_move_line.py +++ b/addons/account/models/account_move_line.py @@ -909,7 +909,7 @@ class AccountMoveLine(models.Model): else: line.tax_key = frozendict({'id': line.id}) - @api.depends('tax_ids', 'currency_id', 'partner_id', 'analytic_distribution', 'balance', 'partner_id', 'move_id.partner_id', 'price_unit') + @api.depends('tax_ids', 'currency_id', 'partner_id', 'analytic_distribution', 'balance', 'partner_id', 'move_id.partner_id', 'price_unit', 'quantity') def _compute_all_tax(self): for line in self: sign = line.move_id.direction_sign diff --git a/addons/account/tests/test_invoice_taxes.py b/addons/account/tests/test_invoice_taxes.py index d6b5cdd09bb..8fd81022461 100644 --- a/addons/account/tests/test_invoice_taxes.py +++ b/addons/account/tests/test_invoice_taxes.py @@ -715,3 +715,22 @@ class TestInvoiceTaxes(AccountTestInvoicingCommon): self.assertRecordValues(invoice.line_ids.filtered(lambda l: l.account_id.account_type == 'asset_receivable'), [{ 'balance': 686.54, }]) + + def test_fixed_tax_with_zero_price(self): + fixed_tax = self.env['account.tax'].create({ + 'name': 'Test 5 fixed', + 'amount_type': 'fixed', + 'amount': 5, + }) + invoice = self._create_invoice([ + (0, fixed_tax), + ]) + self.assertRecordValues(invoice.line_ids.filtered('tax_line_id'), [{ + 'credit': 5.0, + 'debit': 0, + }]) + invoice.invoice_line_ids.quantity = 2 + self.assertRecordValues(invoice.line_ids.filtered('tax_line_id'), [{ + 'credit': 10.0, + 'debit': 0, + }])