Exchange Rate at Document Level
Contents |
Introduction
This document describes how to use "Exchange Rate at Document Level" feature.
"Exchange Rate at Document Level" feature is an Openbravo 3.0 Core feature which is delivered in Openbravo 3.0 MP2.
There are certain business scenarios which require to use a conversion rate, because the document/s currency is not the same as the general ledger currency.
This project supports entering an exchange rate in the purchase invoices, sales invoice and other windows, just because it is not enough to use a central conversion rate defined at system level for a given period.
The exchange rate currently used while posting a document in another currency than the general ledger currency is the "central" one defined at a system level, however now the end-user will be able to manually enter a different "Exchange Rate" in a new tab, which therefore will be the one used while posting that document, see the image below:
When accounting a document, the system will look first for the exchange rate enter at document level and in case there is no exchange rate there, it will look for the exchange rate set up at system level.
End-user will be able to enter either an exchange rate, so the system calculates the "foreign amount" or a "foreign amount", for the system to calculate the "exchange rate".
It is also important to remark that there is another "Exchange Rate" field which is used while creating a payment in/out in a different currency than the financial account currency, as shown in the screen below:
For more information, please take a look here: Multicurrency for APRM Functional Specifications
Above one is not the one to be used while posting a document in another currency than the general ledger currency, but while making the deposit/withdrawal of a payment in/out
in a financial account in a different currency than the payment currency.
Workflow overview
There are several documents which are/can be involved in the accounting workflow:
- Invoices (sales/purchase)
- Payments (Payment In/Out)
- Financial Account transactions (Withdrawal/Deposit/Reconciliations)
The scope of this functionaly assumes that a payment is made or received in the same currency as the invoice, however invoices&payments could be in a currency other than the general ledger/s currency/ies.
Having said that, a company could have:
- one currency defined as "base currency" at client level (e.g EUR)
- and as many general ledgers as required in different currencies (e.g EUR, USD, DKK...)
At any point in time there may be a difference in the Openbravo system exchange rate and the exchange rate used in a document created by a third party on that same date,
therefore it is possible now to enter exchange rates (document currency -> general ledger currency exchange rates), for the documents listed below:
- Purchase Invoice
- Sales Invoice
- Payment In
- Payment Out
- Deposit/Withdrawal or Reconciliations into a Financial Account
In practice:
- A company which has a general ledger configured to post transactions to the ledger in EUR needs to enter an USD Purchase Invoice. In this situation the exchange rate USD -> EUR should be entered in the Purchase Invoice, otherwise the system will take the global one setup at System Level.
- If the same company has also another general ledger configured to post transactions in USD, in that case the transactional currency is the same as the accounting currency of the general ledger.
Then an exchange rate of 1:1 is deduced. - If the same company has also a third general ledger configured in GBP by example, then the system could either use the exchange rate entered in the purchase invoice, if any, otherwise it will take into account the global one setup at system level.
When processing/accounting a document, the system will look:
- first for the applicable exchange rate entered at document level and
- then, and just in case there is no exchange rate at document level, it will look for the coversion rate setup at global/system level in the application path:
"General Setup // Application // Conversion Rates " - The system must warn the user in case there is no exchange rate setup at all.
When reversing a document, the system must take into account:
- the exchange rate used while posting the document being reversed.
Finally, it should be possible to either:
- entering the transactional currency amount (foreign document currency amount) and the domestic currency amount (general ledger currency amount), so that the exchange rate is deduced
- or entering the transactional currency amount and the exchange rate, so the domestic currency amount (general ledger currency amount) is deduced.
Note:
Finally, it is important to remark that:
- withdrawals and deposits are besides recorder in the currency of the Financial Account, which could be in a different currency (e.g USD) than the payment currency(e.g EUR).
- This feature is already covered as it is possible to receive/make payments in a financial account, in a different currency than the financial account currency.
- In the case of not posting either Withdrawals or Deposits but Reconciliations, Reconciliation posting will take into account the corresponding exchange rates setup in the Financial Account.
Configuration
For information about how this feature must be configured, please take a look here:
Exchange Rate at Document Level Configuration Manual
Business Scenarios
This section describe how the system behaves now for those cases where there is a need to vary the exchange rate, that means that the global exchange rate setup at system level is not enough.
- Base currency is EUR
- General Ledger configured in EUR
- Bank account is in EUR
- Purchase Invoice for USD 2.675,00
- Gloval exchange rate at the application path:
"General Setup // Application // Conversion rates".- USD to EUR as (1 USD = 1.31 EUR).
- Valid From = 01-June-2011 - Valid To= 30-June-2011
- USD to EUR as (1 USD = 1.31 EUR).
(This scenario would apply same way to sales).
A purchase invoice is received for USD 2675,00:
- Purchase Invoice Header:
- Business Partner = Vendor A
- Purchase Invoice Line/s:
- line = 10
- product = item 1
- invoiced quantity = 5
- unit price = 500.00 (USD)
- net invoice amount = 2.500,00 (USD)
- tax rate = 7%
- tax amount = 175 (USD)
- total invoice amount = 2.675,00 (USD)
- Purchase Invoice - "Exchange rates" tab:
- Currency (Document currency)= USD
- To Currency (General Ledger Currency) = EUR
- Exchange rate = 1.31
- Foreign Amount = 3.504,25 (EUR)
When this purchase invoice is posted, the conversion rate has changed to (1 USD = 1.34 EUR).
User is able to change the exchange rate at the "Exchange rate" tab, as described below:
- Currency (Document currency)= USD
- To Currency (General Ledger Currency)= EUR
- Exchange rate = 1.34
- Foreign Amount = 3.584,50 (EUR)
User post the invoice. The system will show below posting in EUR:
Account | Debit | Credit | Calculation |
Expense | 3.350,00 | 2.500,00 * 1.34 | |
Taxes | 234,50 | 175,00 *1.34 | |
Account payable | 3.584,50 | 2.675,00 * 1.34 |
The payment for the invoice is made later:
- User adds the payment to the invoice, specifies USD 2.675,00 as payment amount
- User selects the EUR bank account as the source to make the payment
- System should show the current exchange rate setup at system level (1 USD = 1.31 EUR), as the payment currency is different than the financial account currency.
- The expected USD amount using that conversion rate is 3.504,25 EUR
- User changes the give exchange rate to (1 USD = 1.36 EUR)
- The expected USD amount using the new conversion rate is 3.638,00 EUR
- This is the amount in EUR which is going to be withdrawn from the Financial Account.
- User process the payment.
A new payment is created in the "Payment Out" window.
When this payment is posted, the conversion rate has changed once more to (1 USD = 1,38 EUR).
- User is able to change the exchange rate at the "Exchange rate" tab, once more, as described below:
- Currency = USD
- To Currency = EUR
- Exchange rate = 1.38
- Foreing Amount = 3.691,50 (EUR)
User posts the payment. The system will show below posting in EUR:
Account | Debit | Credit | Calculation |
Account Payable | 3.584,50 | 2.675,00 * 1.34 | |
Currency Loss | 107,00 | 3.691,50 -3 .584,50 | |
In Transit Payment Account | 3.691,50 | 2.675,00 * 1.38 |
Once in the Financial Account, end-user can add the payment out transaction.
When this withdrawal is posted, the conversion rate has changed to (1 USD = 1,30 EUR).
User is able to change the exchange rate at the "Exchange rate" tab once more as described below:
- (Document) Currency = USD
- General Ledger Currency = EUR
- Exchange rate = 1.30
- Amount (document currency) = 3.477,50
- User post the withdrawal. The system will show below posting in EUR:
Account | Debit | Credit | Calculation |
In Transit Payment Account | 3.691,50 | 2.675,00 * 1.38 | |
Withdrawn Payment Account | 3.477,50 | 2.675,00 * 1.30 | |
Currency Gain | 214,00 | 3.691,50 - 3.477,50 |
This is the more complex scenario as the currency conversion rate is not fixed, therefore there are currency gains/losses to deal with.
If the end-user would have need to post the payment reconciliation, the conversion change rate used will have been the same, in our example (1 USD = 1,30 EUR).
System must take currency gain/loss accounts from the defaults accounts of the corresponding general ledger configuration.
Therefore below "default" accounts under the section "Bank" are used:
- Bank Revaluation Gain (income account) - must be credited in case of an exchange rate decrease,
- Bank Revaluation Loss (expense account) - must be debited in case of an exchange rate increase.
Reversal Documents
In the case of voiding/reverting an invoice or a payment document, the system should behave as explained below:
Invoice reversal
An invoice already posted can be voided/reversed:
By clicking on the "Reactivate" button and then choosing the action "Void".
- This process is going to create either a Reversed Purchase Invoice", in case of reversing an AP Invoice; or a "Reversed Sales Invoice", in case of reversing an AR Invoice.
- The exchange rate used while posting a "Reversed Purchase/Sales Invoice" is exactly the same one as the one used while posting the AP/AR invoice being reversed.
By creating either an "AP Credit Memo" or an "AR Credit Memo" and then selecting the invoice being reversed in the "Reversed Invoice" tab.
- The exchange rate to be used while posting an "AP/AR Credit Memo" is exactly the same one as the one used while posting the AP/AR invoice being reversed.
- It is out of the scope to reverse two invoices by the same AP/AR Credit Memo, in the case of a diferent exchange rate used while posting each invoice.
- Besides, there should be an invoice to be reversed selected in the "Reversed Invoice" tab, otherwise the exchange rate could be diferent and that should not be the case.
By creating either an "Reversed Purchase/Sales Invoice" and then selecting the invoice being reversed in the "Reversed Invoice" tab.
- The exchange rate to be used while posting a "Reversed Purchase/Sales Invoice" is exactly the same one as the one used while posting the AP/AR invoice being reversed.
- It is out of the scope to reverse two invoices by the same AP/AR Credit Memo, in the case of a diferent exchange rate used while posting each invoice.
- Besides, there should be an invoice to be reversed selected in the "Reversed Invoice" tab, otherwise the exchange rate could be diferent and that should not be the case.
By creating either a negative "AP Invoice" or a negative "AR Invoice" and selecting the invoice being reversed in the "Reversed Invoice" tab.
- The exchange rate to be used while posting the negative "AP/AR Invoice" is exactly the same one as the one used while posting the AP/AR invoice.
- Besides, there should be an invoice to be reversed selected in the "Reversed Invoice" tab, otherwise the exchange rate could be diferent and that should not be the case..
Payment/Withdrawal/Deposit reversal
Above documents can be reversed once posted by cliking on the "Unpost" button.
The exchange rate to be used while un-posting any of above the documents is exactly the same one as the one used while posting them.
Once reactivated, the process starts again.