The error message is not complete and sometimes misleading. In this article I explain my experience in fixing the issue.
The exact message is as follows:
Unable to create accounting entry for currency rate difference. You have to configure the field 'Income Currency Rate' on the company.
The reason:
In my case, the system tried to register the difference between invoice sum converted from USD in CHF and the bank payment, which was converted from USD into CHF.
Caution:
Such a message just supports my opinion that OpenERP is written in no so good way and it is impossible for small non IT organizations to use it without official support contract.
Explanations
It took time awhile to understand better why the system reports about the problem and what the problem is.
How to reproduce:
In fact, my case was as follows:
- At the beginning I had 2 bank accounts as follows: CHF as the base currency for my company, and USD as an additional one;
- I created a customer invoice and validate it, let say with the creation date 1-Aug-2012;
- I updated the currency rate for USD for the date, I plan to register the bank payment.
- I created a bank payment, and reconciled it with corresponding customer invoice. Let’s say that it was registered by 6-Aug-2012.
- When I tried to confirm this bank payment, the system reports about the error as it was mentioned above.
The reason of the issue:
OpenERP creates not only move with the base value but adds a recalculated value for the base currency, in my case it was CHF.
Because I submitted a new rate for the currency, which was exactly between the date when I submitted the invoice and when I tried to register the payment, the system recalculation for incoming money gives the difference, which gives us the exact error message.
What to do:
The simplest way is to register the requested accounts in your company definition: Configuration->Companies->Your Company->Configuration->Income Currency Rate.
Please be aware, that in OpenERP version 6.1, Income Currency Rate and Expense Currency Rate are swapped in the code. You can patch your code in simple way by reading the forum here.
How to avoid the problem:
Another way to avoid such a problem is to work more accurate with currency rates. In fact, you need to have the same currency rate for both – the invoice and the bank income. For example, you issue your invoice by 02.Aug.2012 and register the bank income by 06.Aug.2012, try to have the same rate at both dates and thus you avoid the problem.