diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2020-02-06 09:28:32 +0000 |
|---|---|---|
| committer | Nicolas Martinelli <nim@odoo.com> | 2020-02-07 09:55:59 +0000 |
| commit | e8a580f3b722af9c4f37ed199a5ccc4d5c0d7ee4 (patch) | |
| tree | 4849b9865db49fb257cc468121c283a4553dc4e4 /addons | |
| parent | e77015011c90c377fa2851bf2ae69ccc173d6dcf (diff) | |
[FIX] point_of_sale: round prices
- Activate 'Round Globally'
- Create a 21 % tax included in price
- Create a product costing 21.5
- Add the product in a pos order, make the payment
The `price_subtotal` is saved as `17.768595`, while it should be
`17.77`.
When these amounts are added in [1] (coming from [2]), it can lead to an
inconsistency in the final computation, preventing the closing because
of an unbalanced journal entry.
Actually, the total and the subtotal must always be rounded following
the currency precision, as done in [3] and [4].
It was probably not causing an issue before 13.0 since the creation of
the journal entry from the POS was different.
[1] https://github.com/odoo/odoo/blob/b22935caa3df824bc56a0828da9bee921bca5a5b/addons/point_of_sale/models/pos_session.py#L381
[2] https://github.com/odoo/odoo/blob/b22935caa3df824bc56a0828da9bee921bca5a5b/addons/point_of_sale/models/pos_session.py#L557
[3] https://github.com/odoo/odoo/blob/b22935caa3df824bc56a0828da9bee921bca5a5b/addons/account/models/account.py#L1654
[4] https://github.com/odoo/odoo/blob/b22935caa3df824bc56a0828da9bee921bca5a5b/addons/account/models/account.py#L1740
opw-2181486
closes odoo/odoo#44834
X-original-commit: 0896afdc814937621fe6323bf16d461582207217
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/point_of_sale/static/src/js/models.js | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index f5e4b079808..51925afd6d7 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -1998,8 +1998,8 @@ exports.Orderline = Backbone.Model.extend({ return { 'taxes': taxes_vals, - 'total_excluded': sign * round_pr(total_excluded, currency_rounding), - 'total_included': sign * round_pr(total_included, currency_rounding), + 'total_excluded': sign * round_pr(total_excluded, this.pos.currency.rounding), + 'total_included': sign * round_pr(total_included, this.pos.currency.rounding), } }, get_all_prices: function(){ |
