From 96abfd2ab9fd6b5511c81aac06202032ea6fdc99 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 22 Nov 2017 15:13:16 +0530 Subject: [PATCH] [fix] In payment entry, run some events serially to avoid async issue --- .../doctype/payment_entry/payment_entry.js | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index c5e0306486..d8995a9d98 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -253,20 +253,24 @@ frappe.ui.form.on('Payment Entry', { }, callback: function(r, rt) { if(r.message) { - if(frm.doc.payment_type == "Receive") { - frm.set_value("paid_from", r.message.party_account); - frm.set_value("paid_from_account_currency", r.message.party_account_currency); - frm.set_value("paid_from_account_balance", r.message.account_balance); - } else if (frm.doc.payment_type == "Pay"){ - frm.set_value("paid_to", r.message.party_account); - frm.set_value("paid_to_account_currency", r.message.party_account_currency); - frm.set_value("paid_to_account_balance", r.message.account_balance); - } - frm.set_value("party_balance", r.message.party_balance); - frm.events.get_outstanding_documents(frm); - frm.events.hide_unhide_fields(frm); - frm.events.set_dynamic_labels(frm); - frm.set_party_account_based_on_party = false; + frappe.run_serially([ + () => { + if(frm.doc.payment_type == "Receive") { + frm.set_value("paid_from", r.message.party_account); + frm.set_value("paid_from_account_currency", r.message.party_account_currency); + frm.set_value("paid_from_account_balance", r.message.account_balance); + } else if (frm.doc.payment_type == "Pay"){ + frm.set_value("paid_to", r.message.party_account); + frm.set_value("paid_to_account_currency", r.message.party_account_currency); + frm.set_value("paid_to_account_balance", r.message.account_balance); + } + }, + () => frm.set_value("party_balance", r.message.party_balance), + () => frm.events.get_outstanding_documents(frm), + () => frm.events.hide_unhide_fields(frm), + () => frm.events.set_dynamic_labels(frm), + () => { frm.set_party_account_based_on_party = false; } + ]); } } });