Skip to Content
Menu
This question has been flagged

Hello.

I have multi-currency setup of odoo 14 (EUR, USD). 

After creating 2 bills (each by 2025,00 USD, after converting in EUR(rate 1.0683) - 1895.53), I tried to reconcile them using bank statement with one line with total amount 4050 USD.  But I saw UserError "Cannot create unbalanced journal entry; differences debit - credit [-0.01]".

After some calculation I found that problem is in rounding:

Sum of my 2 bills in EUR is 1895.53 + 1895.53 = 3791.06

Amount from my bank statement is 4050/1.0683 = 3791.069924179 and after rounding is 3791.07.


So, amount in USD is the same, but amount in EUR(after summarize of 2 bills) is different.


Look like there is missed step with processing such rounding issues during reconciliation process. 


Maybe someone has faced similar problems and knows how to solve them?


Avatar
Discard
Author Best Answer

Hello, Miquel

We have not found a better solution, how to improve reconciliation logic with creating a new account move line using a special currency exchange journal and this difference.


Avatar
Discard
Best Answer

Hello Aleh,

I'm issuing same error with your exact configuration. 

Did you solve it in your instance?

Avatar
Discard

Try keeping same precision in the both currencies and see if it resolves the issue

Rounding factor of both currencies (EUR <-> USD) is set to 2 places.

EUR is the company currency, but the company has an account bank in USD.

So the convert from USD to EUR in this journal is usually failing when the reconciliation has more than one line because of the rounding.

I've tryed to increase the USD rounding factor to 3, but issue still occurs. The issue doesn't occur when EUR rounding factor is set to 3 decimal positions, but this is not a solution for us.

The final conclusion is that it's impossible to escape the natural rounding of decimals.

The issue in this case isn't what the user is attempting to do but rather the conditions.

The discrepancy arises from attempting to perform two accounting operations in one, using amounts in foreign currency (USD). Specifically, it was an attempt to reconcile an invoice while simultaneously creating a counterpart as an expense.

The fact that Odoo has to convert TWO fractions of the initial amount, from USD to EUR, implies that rounding is applied twice, once for every fraction. This increases the probability that rounding will result in an additional cent being added compared to if only one conversion were done.

In this case, it's best not to attempt to perform more than one operation when handling amounts in foreign currency.

That is to say, on one hand, we need to create an account move for the expense previously and then reconcile both moves during bank reconciliation.

With this, we avoid forcing the results of the two conversion operations to occur within the same entry, preventing rounding from affecting the balance between Debit and Credit.

Related Posts Replies Views Activity
1
Jan 24
2398
0
Mar 23
3199
1
Nov 22
2789
0
Feb 22
2203
0
Mar 15
4727