How to manage foreign currencies accros the sales process ?
The purchase orders in your system are made in a "market currency", i.e. the contractual currency, which is the base for defining the contractual obligations.
Therefore, every purchase order must be stored in its market currency: this is the real base to invoice the customer, whatever the currency fluctuations could be.
When you invoice the customer, you still need to keep track of the amount in market currency. At the same time, you have the obligation to maintain all your accounts in the company's currency. So you need to keep track of the value in the company's currency as well.
Practical example
Imagine a European company that manages its account in EUR. Imagine that this company sells goods in USA, via an online shop in which the prices are displayed in USD. The customer places an order for an item:
Order 100 USD (market price)
at the time of the order this is worth 80 EUR (company currency).
1 week later, the company delivers the goods and invoice the customer.
Invoice 100 USD (agreed market price)
at the time of the invoice, this is worth 75 EUR due to an increase of the euro (company currency)
In the accounts of the company, the revenue is 75 EUR, and this is the amount that the company has to care of for local tax issues and legal reporting. So the best is to store it as well (with or without the exchange rate).
3 weeks later, the customer makes a bank transfer. Of course, he'll pay the amount owed in USD. He doesn't care about EUR:
Payment: 100 USD (market and invoice price)
at the time of the payment, this is worth 85 EUR due to a decrease of the euro
So in the customer accounts, you know that the customer owes 100 USD - 100 USD = 0 USD. So you the transaction is finished: you do no longer expect anything from the customer.
In the same time, in the company's currency, you've registered first a debt valued 75 EUR, and a payment valued 85. So in fact, you earned 10 EUR more than expected when you booked the invoice. These 10 EUR will then be posted as "currency exchange gains", so that the balance is also 0 in company's currency.
Both currencies ? Or one currency and a conversion rate ?
All the amounts must be protected against any rounding difference that could occur when using exchange rates. Unfortunately, if you have a more complex purchase order with several products, there could be rounding differences if you add the converted item price and if you convert the total amount of the order. To avoid issues with such rounding difference, the best is to store the value simultaneously in each currency.