refactor: gain/loss should use same posting date as payment
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
index 4ef35fd..96ae0c3 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
@@ -647,6 +647,7 @@
create_gain_loss_journal(
company,
+ today(),
inv.party_type,
inv.party,
inv.account,
diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py
index 06d05cb..eed74a5 100644
--- a/erpnext/accounts/utils.py
+++ b/erpnext/accounts/utils.py
@@ -1888,6 +1888,7 @@
def create_gain_loss_journal(
company,
+ posting_date,
party_type,
party,
party_account,
@@ -1906,7 +1907,7 @@
journal_entry = frappe.new_doc("Journal Entry")
journal_entry.voucher_type = "Exchange Gain Or Loss"
journal_entry.company = company
- journal_entry.posting_date = nowdate()
+ journal_entry.posting_date = posting_date or nowdate()
journal_entry.multi_currency = 1
journal_entry.is_system_generated = True
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index fd2be2c..9725c25 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -1096,8 +1096,10 @@
self.name,
arg.get("referenced_row"),
):
+ posting_date = frappe.db.get_value(arg.voucher_type, arg.voucher_no, "posting_date")
je = create_gain_loss_journal(
self.company,
+ posting_date,
arg.get("party_type"),
arg.get("party"),
party_account,
@@ -1177,6 +1179,7 @@
je = create_gain_loss_journal(
self.company,
+ self.posting_date,
self.party_type,
self.party,
party_account,