diff --git a/modules/commission/commission.py b/modules/commission/commission.py index 8294b92dc2..c70733a793 100644 --- a/modules/commission/commission.py +++ b/modules/commission/commission.py @@ -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, diff --git a/modules/commission/invoice.py b/modules/commission/invoice.py index 9b8efa13c0..f62193a710 100644 --- a/modules/commission/invoice.py +++ b/modules/commission/invoice.py @@ -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) diff --git a/modules/commission/tests/scenario_commission.rst b/modules/commission/tests/scenario_commission.rst index 7e02191c08..30e2cd918f 100644 --- a/modules/commission/tests/scenario_commission.rst +++ b/modules/commission/tests/scenario_commission.rst @@ -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]