diff --git a/modules/account_rule/purchase.py b/modules/account_rule/purchase.py index 7eeb64df8e..7d0840ac32 100644 --- a/modules/account_rule/purchase.py +++ b/modules/account_rule/purchase.py @@ -10,5 +10,5 @@ class Line(metaclass=PoolMeta): def get_invoice_line(self): with Transaction().set_context( taxes=[t.id for t in self.taxes], - return_=self.quantity < 0): + return_=self.type == 'line' and self.quantity < 0): return super().get_invoice_line() diff --git a/modules/account_rule/sale.py b/modules/account_rule/sale.py index 9b892d291b..c6a1267f85 100644 --- a/modules/account_rule/sale.py +++ b/modules/account_rule/sale.py @@ -10,5 +10,5 @@ class Line(metaclass=PoolMeta): def get_invoice_line(self): with Transaction().set_context( taxes=[t.id for t in self.taxes], - return_=self.quantity < 0): + return_=self.type == 'line' and self.quantity < 0): return super().get_invoice_line() diff --git a/modules/account_rule/tests/scenario_account_rule.rst b/modules/account_rule/tests/scenario_account_rule.rst index 0336059d73..c5b0474916 100644 --- a/modules/account_rule/tests/scenario_account_rule.rst +++ b/modules/account_rule/tests/scenario_account_rule.rst @@ -95,6 +95,9 @@ Test rules with a sale:: >>> line = sale.lines.new() >>> line.product = product >>> line.quantity = -1 + >>> line = sale.lines.new() + >>> line.type = 'comment' + >>> line.description = 'Sample' >>> sale.click('quote') >>> sale.click('confirm') >>> sale.state