An unrealized foreign exchange gain (loss) occurs when a company measures the change of the value of assets over time.
I may purchase Inventory and, even though I don't see it, the value will go up (and down) over time with the fluctuations in exchange rates.
How does Odoo handle this?
I would like to bump this question as i have it too.
Hello ray .. thanks for your explanation . i am working on odoo 13 enterprise and i am using multi currency but when i change the exchange rate balance sheet did not update according to the new rate ..why ???
thanks..
The example I have given is when the balance sheet is made up of two different GL's from two different companies with two different currencies. There is no revaluation of a single GL in a single company with a single base currency. We capture realized gains or losses when payments are posted against receivables and payables, since everything is recorded in the base currency with the "as of that date" equivalent in the secondary currency, allowing us to know whether the difference between that same amount of base currency "as of another date" is a loss or a gain.
@Hyperview
We have Odoo 16 currently in a multi-company environment and we are starting to realise some issues with multi currency. Have you updated your code to address changes within Odoo versions and are you willing to share this? I have an internal dev team and we would love to have a look at the changes you have mentioned to help improve the issues we are seeing with multi currency and how realised and unrealised gains/losses are shown.
@AMV1
Happy to help. The code we made was to solve issues in Odoo 15. For several reasons:
the consolidation APP is useless
the answer Ray provided we were never able to replicate or setup.
the financial reporting, and report generator used a function to translate the balance sheet and income statement based on the latest currency rate! Which Does NOT with GAAP or IFRS
Our fix handled multiple aspects:
Fixed the missing dates in the exchange tables. Most of central banks will be missing Weekend, and with UTC cutoff it becomes an issue, especially if the Corn job is scheduled in your timezone, that conflicts with the timezone of the central bank you are using to populate the tables.
We added on the account a concept of (Historical, Acquisition, closing rate).
Historical, basically translate the transaction based on the transaction date.
Acquisition: Check the Asset and deferred revenue schedule Acquisition date and use that date to translate all the booked entries. To eliminate currency fluctuation in Revenue and Fixed assets based on exchange rate. Also known as GAP. The key here is enforce the discipline the every asset and deferred revenue has corresponding schedules and entries.
We also modified the Account_asset module to populate the relevant information to provide (deferred revenue, Prepaid expense and fixed assets reporting in Odoo 15).
Closing: Use the reporting date rate (this applies to monetary assets, revaluing your bank accounts based on the currency balance if it is different than company balance i.e USD account in Canadian entity)
We modified the Account groups to be multi-company. After months trying to convince Odoo team that is requirement. This drives streamline hierarchy in the chart of accounts and automated reporting.
Lastly we modified the reports in Odoo 15 to build the hierarchy we and unrealized gain/loss from translation and use account groups from the point above.
Odoo 16 changed the reporting structure and Subscription model. Odoo broke the historical audit trail for sales orders and removed the subscription object, as such we remained on Odoo 15 and currently assessing should we develop code and modules or move back to Netsuite. If we do end up investing to support Odoo16 and 18, I will share the code with you.
As we are exhausted from releases that breaks features, from complicated bank reconciliation. We have been advocates since 2017, and unfortunately ... I will leave it at that!
Hit me up later this week on linkedin and reference this discussion. Happy to help you solve this issue.