From ccbca57420b23207c8c0edf7b9e92f0a79f7588c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 2 Jun 2026 21:41:47 +0200 Subject: [PATCH] perf(transaction): exit early before backend query (backport #55556) (#55557) Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> --- erpnext/public/js/controllers/transaction.js | 25 +++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 42163c1a6c3..e6eb9180eeb 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -418,7 +418,6 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } }) } - onload_post_render() { if(this.frm.doc.__islocal && !(this.frm.doc.taxes || []).length && !this.frm.doc.__onload?.load_after_mapping) { @@ -659,15 +658,23 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe }, async () => { // for internal customer instead of pricing rule directly apply valuation rate on item - const fetch_valuation_rate_for_internal_transactions = await frappe.db.get_single_value( - "Accounts Settings", "fetch_valuation_rate_for_internal_transaction" - ); - if ((me.frm.doc.is_internal_customer || me.frm.doc.is_internal_supplier) && fetch_valuation_rate_for_internal_transactions) { - me.get_incoming_rate(item, me.frm.posting_date, me.frm.posting_time, - me.frm.doc.doctype, me.frm.doc.company); - } else { - me.frm.script_manager.trigger("price_list_rate", cdt, cdn); + if ((me.frm.doc.is_internal_customer || me.frm.doc.is_internal_supplier)) { + const fetch_valuation_rate_for_internal_transactions = await frappe.db.get_single_value( + "Accounts Settings", "fetch_valuation_rate_for_internal_transaction" + ); + if (fetch_valuation_rate_for_internal_transactions) { + me.get_incoming_rate( + item, + me.frm.posting_date, + me.frm.posting_time, + me.frm.doc.doctype, + me.frm.doc.company + ); + return; + } } + + me.frm.script_manager.trigger("price_list_rate", cdt, cdn); }, () => { if (me.frm.doc.is_internal_customer || me.frm.doc.is_internal_supplier) {