Skip to content
Snippets Groups Projects
user avatar
Nans Lefebvre authored
This fix is similar to 80200333; both are workarounds for the bug (limitation)
introduced by 9d87d15d.
In this case, the currency_field is a related field, and these fields are only
computed after scalar values are written in database.
As a result, this value is not rounded at creation.

It is a problem since typically accounting reports are written directly in SQL,
and thus reuse the values directly.
Anyway even in the ORM the convert_to_cache optimised this away using the
assumption that 'the value should have been rounded in convert_to_column'.
It follows that in the report, errors can be accumulated
to the point where the report is not balanced.
This needs to be fixed in database by going through every existing line.

Of note: the limitation that was readily acknowledged has not been worked around
anywhere, in fact almost every single currency_field is a related one.
Also of note, commit afef71d6 should "Always round monetary values in database"
while it explicitly checked for the presence of the currency_field in the values
and while not introducing a mechanism to make sure it would always be in the
values.

opw 2066849

closes odoo/odoo#38341

Signed-off-by: default avatarNans Lefebvre (len) <len@odoo.com>
93789337
History
Name Last commit Last update