From 2eb7921bfff61052a56f09b625d0115875a1a1ee Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Mon, 28 Feb 2022 21:07:08 +0530 Subject: [PATCH] fix: Exchange rate not getting set in payment entry (cherry picked from commit 86e6bdf2c9ffc0a656c14663b6f790071a7f3afd) --- .../doctype/payment_entry/payment_entry.js | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js index cc32a6ccd9..b2b818a214 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.js +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js @@ -346,6 +346,8 @@ frappe.ui.form.on('Payment Entry', { } frm.set_party_account_based_on_party = true; + let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; + return frappe.call({ method: "erpnext.accounts.doctype.payment_entry.payment_entry.get_party_details", args: { @@ -379,7 +381,11 @@ frappe.ui.form.on('Payment Entry', { if (r.message.bank_account) { frm.set_value("bank_account", r.message.bank_account); } - } + }, + () => frm.events.set_current_exchange_rate(frm, "source_exchange_rate", + frm.doc.paid_from_account_currency, company_currency), + () => frm.events.set_current_exchange_rate(frm, "target_exchange_rate", + frm.doc.paid_to_account_currency, company_currency) ]); } } @@ -483,14 +489,14 @@ frappe.ui.form.on('Payment Entry', { }, paid_from_account_currency: function(frm) { - if(!frm.doc.paid_from_account_currency) return; - var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; + if(!frm.doc.paid_from_account_currency || !frm.doc.company) return; + let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; if (frm.doc.paid_from_account_currency == company_currency) { frm.set_value("source_exchange_rate", 1); } else if (frm.doc.paid_from){ if (in_list(["Internal Transfer", "Pay"], frm.doc.payment_type)) { - var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; + let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; frappe.call({ method: "erpnext.setup.utils.get_exchange_rate", args: { @@ -510,8 +516,8 @@ frappe.ui.form.on('Payment Entry', { }, paid_to_account_currency: function(frm) { - if(!frm.doc.paid_to_account_currency) return; - var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; + if(!frm.doc.paid_to_account_currency || !frm.doc.company) return; + let company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; frm.events.set_current_exchange_rate(frm, "target_exchange_rate", frm.doc.paid_to_account_currency, company_currency);