Exchange difference is supposed to be recorded automatically when reconciling vendor bills with counterpart payments, but I noticed if the reconciliation is with a miscellaneous-type journal entry, it causes partial reconciliation despite the Exchange Difference journal entry being automatically created on bill reconciliation. The exchange difference is only for the FX difference between billing date and payment date, NOT the difference with actual final payment (and whatever its actual FX rate was based on).
For example:
- Create Vendor bill for $100, at P57.50/$ on Sept. 15. This is P5,750 in Accounts Payable.
- Create a MISC journal entry for its payment (i.e. reversal of Accounts Payable) in local currency on Sept. 16, totaling P5,800 (at P58/$ actual FX). NOTE: Assume on Sept. 16, FX recorded by Odoo is P57.80/$.
- Reconcile the Vendor Bill with the MISC journal entry (outstanding credit) to mark it as fully paid. This triggers an additional Exchange Difference journal entry of P30 FX loss (not actual FX loss of P50). P30 is the difference based on FX rates recorded by Odoo on the transaction dates (9/15 - P57.50/$, 9/16 - P57.80).
- On viewing the Accounting >> Reconcile list, I see that the reconciled transactions are just partial (Match numbering with "P" prefix). Clicking on the Matching number opens the list partially reconciled.
- I thought that if I select all partially reconciled transactions and click RECONCILE button to enter the "write-off" (for the additional exchange difference), it will only create 1 entry. Instead, two entries appear: (1) a manual write-off entry is recorded as zero (or some small difference), and (2) automatic recording of the actual difference added in the default Exchange Difference journal.
- Workaround I'm thinking is instead of doing #5 above, I check the residual and manually create the Exchange Difference journal entry, then go back to #4 and reconcile everything.
Is this a bug or by design? If payment was done using a bank journal instead, this wouldn't be happening.