fix: make use of 'flt' to prevent really low precision exc gain/loss
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 063c1e3..fcc3863 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -46,6 +46,7 @@
from erpnext.accounts.utils import (
create_gain_loss_journal,
get_account_currency,
+ get_currency_precision,
get_fiscal_years,
validate_fiscal_year,
)
@@ -1291,10 +1292,12 @@
# These are generated by Sales/Purchase Invoice during reconciliation and advance allocation.
# and below logic is only for such scenarios
if args:
+ precision = get_currency_precision()
for arg in args:
# Advance section uses `exchange_gain_loss` and reconciliation uses `difference_amount`
if (
- arg.get("difference_amount", 0) != 0 or arg.get("exchange_gain_loss", 0) != 0
+ flt(arg.get("difference_amount", 0), precision) != 0
+ or flt(arg.get("exchange_gain_loss", 0), precision) != 0
) and arg.get("difference_account"):
party_account = arg.get("account")