refactor: handle diff amount in various names
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index dfc3114..2ce1eb8 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -980,7 +980,10 @@
# These are generated by Sales/Purchase Invoice during reconciliation and advance allocation.
if args:
for arg in args:
- if arg.get("difference_amount", 0) != 0 and arg.get("difference_account"):
+ # 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
+ ) and arg.get("difference_account"):
journal_entry = frappe.new_doc("Journal Entry")
journal_entry.voucher_type = "Exchange Gain Or Loss"
journal_entry.company = self.company
@@ -992,7 +995,8 @@
"Account", party_account, "account_currency"
)
- if arg.get("difference_amount") > 0:
+ difference_amount = arg.get("difference_amount") or arg.get("exchange_gain_loss")
+ if difference_amount > 0:
dr_or_cr = "debit" if arg.get("party_type") == "Customer" else "credit"
else:
dr_or_cr = "credit" if arg.get("party_type") == "Customer" else "debit"
@@ -1024,7 +1028,7 @@
"reference_type": arg.get("against_voucher_type"),
"reference_name": arg.get("against_voucher"),
"reference_detail_no": arg.get("idx"),
- dr_or_cr: abs(arg.difference_amount),
+ dr_or_cr: abs(difference_amount),
dr_or_cr + "_in_account_currency": 0,
}
)
@@ -1043,7 +1047,7 @@
"reference_type": self.doctype,
"reference_name": self.name,
"reference_detail_no": arg.idx,
- reverse_dr_or_cr: abs(arg.get("difference_amount")),
+ reverse_dr_or_cr: abs(difference_amount),
reverse_dr_or_cr + "_in_account_currency": 0,
}
)