In version 4.90 we are changing the way that base totals for foreign currency orders are calculated. This will solve an issue where discrepancies are seen between the order and payment values [BP-10528] and prepare Brightpearl for introducing full multi-currency support.
The old method of converting & rounding
Prior to 4.90 the net and tax of each order row was converted to base currency and then rounded to 2 decimal places. This was done because it’s those figures which are then posted to accounting at 2 decimal places. The sum of all those rounded values then gives the base order total.
This is not always the same as the foreign currency order total converted to base, for example:
This same issue would cause additional problems when Brightpearl goes multi-currency and begins handling foreign currency payments. Since Brightpearl currently only handles payments in base currency, any downloaded foreign currency payment was converted directly to base (using the order exchange rate) and the discrepancy was seen.
The new method of converting & rounding
In version 4.90 we will still need to convert the order at a row level as it is explained above so that the accounting can be posted in 2 decimal places. However, we will do an additional calculation to convert the foreign currency order total directly to base. If there is a difference in the values a correction is automatically made to bring the converted order total in line. On the order you will simply see the correct converted total, but in accounting you will see a correction row has been added to the invoice journal to post the difference to “rounding corrections”.
What this means for historical orders
Any invoiced orders which existed in your account before the upgrade to 4.90 will not be updated.
Any orders which are not invoiced and existed in your account before the upgrade to 4.90 will be updated when one of the following events occur:
- The order is opened and saved
When the order is opened you will see the new converted base total is displayed. This value is only committed if the order is saved.
- The order is invoiced
When the order is invoiced, either from within the order or via batch processing, the base total will be recalculated
Complications with prepaid foreign currency orders created before 4.90 but re-saved/invoiced in 4.90
The following complications will only occur under the unique scenario described. Once these complications have been rectified you will get no new occurrences of the same problem, nor of the original discrepancy issues.
If the following events occur the discrepancies will be created between the order base total and payment:
- A foreign currency order was created and paid prior to 4.90
- A discrepancy (due to rounding) was caused (as per the issue described above)
- The discrepancy was manually fixed by editing the payment journal
- The order is opened and saved or it is invoiced in 4.90 which causes the order total to recalculate and now no longer match the payment
The recalculation that is applied (on save or invoice), will cause the payment and order totals to be recalculated, because Brightpearl is auto-correcting itself. But since the discrepancy has already been manually corrected via the payment then a discrepancy in the opposite direction will be seen. There is no way to prevent this from happening and will need to be corrected manually.
If you believe that these complications have occurred in your account, please contact our support team for advice and guidance on how to correct it.