Multi Currency Invoicing

Registered by Mantavya Gajjar (Open ERP) on 2009-09-12

During using the Multi Currency in OpenERP we had a problem for configuration.
1. How to Configure Products - What will be the rates
2. How to Configure Price List - What will be the Currency
3. During creating Invoice - What will be the Currency
4. During creating Accounting Entries - What will be Currency and amount ?

Current Problem with OpenERP
Take an Example - (If we go through only Invoice and not use of Sale Order)
Configure Company with Currency EUR, So we must assume that now what ever we are going to configure for the Products that will be in EUR only.
In other ends during creating the Price List we will get the facility to change the price of same products in other currency.
Like Basic PC 450 EUR if we sale to 656.73 USD and in accounting system it must go to 450EUR

In OpenERP current problem is if we create invoice in usd and select the Basic PC it will give the price 450 and on invoice currency is USD so it becomes 450USD and not 450EUR here is a real problem.

We can solve with 2 ways
1. if we consider the currency while taking the price for product, also need to supply on change method for the currency field. and remains all things will be as it is.
2. create a new currency field which will represent only the currency and in invoice it will not use for any calculation, (as we can not use the current currency field to supply new solution.) so depends on that fields report will take care and convert the currency during printing only and in system every ware it will remains EUR only.

Which suggest will be suitable ?

Blueprint information

Needs approval
Mantavya Gajjar (Open ERP)
Pending Approval
Series goal:
Milestone target:
milestone icon 6.0
Started by
Mantavya Gajjar (Open ERP) on 2009-09-19
Completed by
Mantavya Gajjar (Open ERP) on 2009-11-20



Begin from Joël Grand-Guillaume
Hi !

I think this problem is bigger than "just" adding a new wizard to compute the currency rating and amount...

We do need something to handle this price and cost in product correctly for the 5.2 in all cases, please have a look on my suggestion here:




Hello Grzegorz Grzelak,

Could you please check the new development done in the trunk-extra-addons related to the this buleprint, a new module name is `invoice_multi_currency` which satisfy the specific requirements.

1. Install module
2. first change the currency and then add the invoice lines
3. for pre created invoice use wizard `Change Currency` to change the invoice currency

I think we need to make a new module and not direct changes in to the existing accounting module, it will be better, is some users want to use this functionalities only with invoice, as with the sales order everything seems working fine

Grzegorz Grzelak (Cirrus):
I think it is better to have two fields: one in home currency (for accounting) and second in invoice currency. To simplify printing I suggest always to fill both of them (even if the currency is the same). So printing will be always from second field, and accounting will use always first one. Something is telling me that in some other places you have to have two currencies concurrently (journals?, accounts?). Reason for my proposal is that according to national rules we have to keep documents for 5 years. And when we have both amounts in db we are sure they are exactly the same as they were 4 or 5 years ago. So we can print historical documents with the same amounts like original one. - yes i agree with proposal

Another problem is how to count the amounts.

"""When Invoice arise from sales order it should take amounts and currency from SO pricelist and calculate home currency via Currency rates (in date of invoice).""" - this is already working OpenERP
>GG: Thats right. Lets say its case 1.

"""But when Invoice with foreign currency is entered without SO or from SO with home currency it should calculate amounts from home currencies to invoice currencies. I think there are more cases to consider. In Poland it is often that SO is in EUR with note that invoice will be in PLN (polish currency) calculated with rates of date of invoice. I think that when we have two fields for each currency it will be easy to add functionality that when user change Currency in Invoice it will be recalculated into new chosen one.""" - here we need to develop such system in invoice so that if the currency will be changed appropreate amount must change with respect to rates
>GG: Case 2 Invoice without SO. Choosing partner we indicate pricelist which contains currency. So it should work like in case 1 until user change currency in invoice which will be case 3. When user choose partner and then change currency for each position entered later on operation from case 1 nad case 3 should be performed.
Case 3. When user change currency it should recalculate to new currency from home currency. I propose it because currency rates are defined with home currency basement.
I am not accountant but I have just read that in Poland foreign invoice amounts should be converted to home currency: VAT using rate in date of invoice, income using rate one day before invoice date. Any other country has similar curiosity?

Concerning opinion before mine: I think that if Currency field is already in Invoice form this functionality should be implemented in main modules. """If you decide to implement it in additional module you should remove Currency field from Invoice form.""" - i think in the base module we should keep this in background as its working fine with is the SO with price list(USD) so it will also create a invoice in the USD, and currently that field in use to take the reference in the accounting entries, so this is the main reason to have a new module if some customer want to sale with invoice only with different currency, or may be case like described above, so due to that with out this module it will work fine as normal, when we install new module it will support what we required for special requirements.
GG: At the beginning you agreed that invoice table should contain additional field for currency amount. I cannot imagine that this field is added yet when you install additional module. In such case current amount field would work different with and without additional module. And on the other hand if this field exists in invoice table in base account module it has to contain all conversion functionality. If so there is almost nothing to add in new module. This is design style discussion in which my opinion is that OpenERP shouldn't create so many thin modules. I know that now nobody wants to exclude functionality from current modules. But in my opinion if you decide to have additional module it should be named "account_multi_currency_invoice" or "account_multi_currency" and should contain all what is needed for multicurrency (with polish curiosity;) ). But when we have a little of multicurrency in base module we should add the rest to it.


Work Items