Round base amount of commission using price digits

Closes #12018
This commit is contained in:
Cédric Krier
2023-02-19 11:36:44 +01:00
parent 45dd6f213c
commit 07e3b97508
3 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -345,7 +345,7 @@ class Commission(ModelSQL, ModelView):
states=_readonly_states,
help="The product that is used on the invoice line.")
base_amount = Monetary(
"Base Amount", currency='currency', digits='currency',
"Base Amount", currency='currency', digits=price_digits,
states=_readonly_states)
amount = Monetary(
"Amount", currency='currency', required=True, digits=price_digits,
+1
View File
@@ -179,6 +179,7 @@ class InvoiceLine(metaclass=PoolMeta):
with Transaction().set_context(date=self.invoice.currency_date):
base_amount = Currency.compute(self.invoice.currency,
self.amount, agent.currency, round=False)
base_amount = round_price(base_amount)
amount = self._get_commission_amount(base_amount, plan)
if amount:
amount = round_price(amount)
@@ -155,7 +155,7 @@ Post invoice::
>>> len(line.commissions)
2
>>> [c.base_amount for c in line.commissions]
[Decimal('100.00'), Decimal('100.00')]
[Decimal('100.0000'), Decimal('100.0000')]
>>> [c.amount for c in line.commissions]
[Decimal('10.0000'), Decimal('10.0000')]
>>> [c.invoice_state for c in line.commissions]