From 705814f0666bc91b9380b0c7c4ae3c56e15740e3 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 25 May 2026 23:22:02 +0530 Subject: [PATCH] fix(payment_entry): sync paid/received amounts for cross-currency entries (backport #55270) (#55272) Co-authored-by: diptanilsaha fix(payment_entry): sync paid/received amounts for cross-currency entries (#55270) --- .../doctype/payment_entry/payment_entry.js | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index cf15139b712..33f0dee0702 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -807,11 +807,14 @@ frappe.ui.form.on("Payment Entry", { frm.set_value("base_paid_amount", flt(frm.doc.paid_amount) * flt(frm.doc.source_exchange_rate)); let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; if (!frm.doc.received_amount) { - if (frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency) { - frm.set_value("received_amount", frm.doc.paid_amount); - } else if (company_currency == frm.doc.paid_to_account_currency) { + frm.set_value("base_received_amount", frm.doc.base_paid_amount); + if (company_currency == frm.doc.paid_to_account_currency) { frm.set_value("received_amount", frm.doc.base_paid_amount); - frm.set_value("base_received_amount", frm.doc.base_paid_amount); + } else if (frm.doc.target_exchange_rate) { + frm.set_value( + "received_amount", + flt(frm.doc.base_paid_amount) / flt(frm.doc.target_exchange_rate) + ); } } frm.trigger("reset_received_amount"); @@ -828,15 +831,14 @@ frappe.ui.form.on("Payment Entry", { ); if (!frm.doc.paid_amount) { - if (frm.doc.paid_from_account_currency == frm.doc.paid_to_account_currency) { - frm.set_value("paid_amount", frm.doc.received_amount); - if (frm.doc.target_exchange_rate) { - frm.set_value("source_exchange_rate", frm.doc.target_exchange_rate); - } - frm.set_value("base_paid_amount", frm.doc.base_received_amount); - } else if (company_currency == frm.doc.paid_from_account_currency) { + frm.set_value("base_paid_amount", frm.doc.base_received_amount); + if (company_currency == frm.doc.paid_from_account_currency) { frm.set_value("paid_amount", frm.doc.base_received_amount); - frm.set_value("base_paid_amount", frm.doc.base_received_amount); + } else if (frm.doc.source_exchange_rate) { + frm.set_value( + "paid_amount", + flt(frm.doc.base_received_amount) / flt(frm.doc.source_exchange_rate) + ); } }