[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>
This commit is contained in:
Nicolas Martinelli
2020-02-07 09:55:59 +00:00
parent e77015011c
commit e8a580f3b7
+2 -2
View File
@@ -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(){