From 3d8a344173131e5265b482a7df51115d4cab377e Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Tue, 4 Nov 2025 12:38:17 +0530 Subject: [PATCH] fix: on changes of paid from/to account fetch company bank account (cherry picked from commit 4901dc2531c559246428e32dd6c9e067731cc296) --- .../doctype/payment_entry/payment_entry.js | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index d36313dc6da..7ca374e6575 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -592,6 +592,8 @@ frappe.ui.form.on("Payment Entry", { paid_from: function (frm) { if (frm.set_party_account_based_on_party) return; + frm.events.set_company_bank_account(frm); + frm.events.set_account_currency_and_balance( frm, frm.doc.paid_from, @@ -609,6 +611,8 @@ frappe.ui.form.on("Payment Entry", { paid_to: function (frm) { if (frm.set_party_account_based_on_party) return; + frm.events.set_company_bank_account(frm); + frm.events.set_account_currency_and_balance( frm, frm.doc.paid_to, @@ -1350,6 +1354,8 @@ frappe.ui.form.on("Payment Entry", { }, bank_account: function (frm) { + if (frm.set_company_bank_account_based_on_coa) return; + const field = frm.doc.payment_type == "Pay" ? "paid_from" : "paid_to"; if (frm.doc.bank_account && ["Pay", "Receive"].includes(frm.doc.payment_type)) { frappe.call({ @@ -1388,6 +1394,34 @@ frappe.ui.form.on("Payment Entry", { } }, + set_company_bank_account: function (frm) { + if (!["Pay", "Receive"].includes(frm.doc.payment_type)) return; + + const field = frm.doc.payment_type == "Pay" ? "paid_from" : "paid_to"; + + if (!frm.doc.company || !frm.doc[field]) return; + + frm.set_company_bank_account_based_on_coa = true; + + frappe.call({ + method: "frappe.client.get_value", + args: { + doctype: "Bank Account", + filters: { + company: frm.doc.company, + account: frm.doc[field], + disabled: 0, + }, + fieldname: ["name"], + }, + callback: async function (r) { + if (r.message) await frm.set_value("bank_account", r.message.name); + + frm.set_company_bank_account_based_on_coa = false; + }, + }); + }, + sales_taxes_and_charges_template: function (frm) { frm.trigger("fetch_taxes_from_template"); },