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,
 								}
 							)