From a3c907281217b1b4f255ab44c074a6218873cea2 Mon Sep 17 00:00:00 2001 From: ravibharathi656 Date: Wed, 10 Jun 2026 08:56:11 +0530 Subject: [PATCH 1/2] fix: set transaction currency on payment entry gl entries --- .../accounts/doctype/payment_entry/services/gl_composer.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/accounts/doctype/payment_entry/services/gl_composer.py b/erpnext/accounts/doctype/payment_entry/services/gl_composer.py index 28af09ec309..c4093a8e4e9 100644 --- a/erpnext/accounts/doctype/payment_entry/services/gl_composer.py +++ b/erpnext/accounts/doctype/payment_entry/services/gl_composer.py @@ -34,8 +34,14 @@ class PaymentEntryGLComposer(BaseGLComposer): self.add_deductions_gl_entries(gl_entries) self.add_tax_gl_entries(gl_entries) add_regional_gl_entries(gl_entries, doc) + self.set_transaction_currency_and_rate_in_gl_map(gl_entries, doc) return gl_entries + def set_transaction_currency_and_rate_in_gl_map(self, gl_entries, doc): + for gle in gl_entries: + gle.setdefault("transaction_currency", doc.transaction_currency) + gle.setdefault("transaction_exchange_rate", doc.transaction_exchange_rate) + def add_party_gl_entries(self, gl_entries): doc = self.doc if not doc.party_account: From 288f36bbd7efbaf1e59ae1d6f662e52ad15e5569 Mon Sep 17 00:00:00 2001 From: ravibharathi656 Date: Wed, 10 Jun 2026 15:07:37 +0530 Subject: [PATCH 2/2] test: assert transaction currency and rate on payment entry gl entries --- .../accounts/doctype/payment_entry/test_payment_entry.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py index b566b625934..9b4bea59589 100644 --- a/erpnext/accounts/doctype/payment_entry/test_payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/test_payment_entry.py @@ -1033,14 +1033,17 @@ class TestPaymentEntry(ERPNextTestSuite): gle.credit_in_account_currency, gle.debit_in_transaction_currency, gle.credit_in_transaction_currency, + gle.transaction_currency, + gle.transaction_exchange_rate, ) .orderby(gle.account) .where(gle.voucher_no == payment_entry.name) .run() ) + # transaction currency/rate come from the paid-from USD account (company currency is INR) expected_gl_entries = ( - (paid_from, 0.0, 8440.0, 0.0, 100.0, 0.0, 100.0), - ("_Test Payable USD - _TC", 8440.0, 0.0, 100.0, 0.0, 100.0, 0.0), + (paid_from, 0.0, 8440.0, 0.0, 100.0, 0.0, 100.0, "USD", 84.4), + ("_Test Payable USD - _TC", 8440.0, 0.0, 100.0, 0.0, 100.0, 0.0, "USD", 84.4), ) self.assertEqual(gl_entries, expected_gl_entries)