Pilot ERP tracks AP and AR in multiple currencies, the currency of the invoices being based on the currency of the vendor or customer. When you set up a vendor or customer you specify their currency, then all invoices or payments for that company are in their currency.
The (AP) Open Payables report and (AR) Aged Trial Balance report show any foreign currency balances in both the foreign currency and in domestic currency. There is an extra line printed such as "Vendor totals (domestic)" for foreign currency vendors and customers, and the report totals are in domestic currency. Also these reports allow currency selection, so you can see how much you owe or are owed in each currency.
The GL is in one currency (referred to as "domestic" currency). Data originating from the AR and AP (revenue and expense accounts) is automatically converted to domestic currency via the exchange rate on the currency table. Foreign currency balances (bank accounts, each foreign currency AP account, AR, and any loans) are stored in foreign currency, but converted to domestic currency by an auto-reversing JV at period-end prior to printing financial statements. See example. This JV uses the latest exchange rate and the foreign currency balances which you could get from the GL Trial Balance report or the GL Totals screen.
The net result is that the expense and revenue accounts are converted using the rate for the currency when the invoice is posted, and the difference between that and the actual rate (the day the payment goes through the bank) goes to the exchange gain/loss accounts (one for each foreign currency). Any increase or decrease in the value of the foreign assets and liabilities due to exchange rate fluctuations also goes to the exchange gain/loss accounts.
Note: The exchange gain/loss accounts can be categorised as "expense" or "revenue" accounts, either is suitable.
The exchange rates don't have to be updated daily, they only need to be approximately accurate, so maybe only updated monthly, because the fluctuations in exchange rates are tracked through the gain/loss accounts.
When entering AP Checks or AR payments, you specify the bank account. The currency of the bank account must match the currency of the vendor or customer.
Ideally you should have a bank account for each currency you deal in. So if a vendor bills you in xyz currency, you pay him in xyz currency from the xyz currency bank account. Alternatively, if your bank accepts foreign currency deposits to your domestic currency account, you can do this by setting up "dummy" foreign currency bank accounts and entering a JV to convert each deposit to domestic currency.
Domestic currency is Canadian dollars and we want to deposit a US$100 check
Bank name: US deposits
Currency: US dollars (exchange rate: 1.3)
Bank GL account: Bank Canadian
Invoice US$100 (Revenue GL account CDN$130 CR, AR US$100 DR, gain/loss CDN$30 DR)
Payment US$100 (AR US$100 CR, Bank CDN$100 to be adjusted by JV)
JV Description: To record exchange on US deposit
30.00 Bank Canadian
-30.00 Gain/loss foreign exchange
Foreign currency inventory purchases (inventory receipts) are converted to domestic currency when updating inventory costs.