diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index 479eaafd23..dc24522926 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -347,6 +347,7 @@ frappe.ui.form.on("Journal Entry Account", { callback: function(r) { if(r.message) { $.extend(d, r.message); + erpnext.journal_entry.set_debit_credit_in_company_currency(frm, dt, dn); refresh_field('accounts'); } } @@ -355,11 +356,11 @@ frappe.ui.form.on("Journal Entry Account", { }, debit_in_account_currency: function(frm, cdt, cdn) { - erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); + erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn); }, credit_in_account_currency: function(frm, cdt, cdn) { - erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); + erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn); }, debit: function(frm, dt, dn) { @@ -368,6 +369,17 @@ frappe.ui.form.on("Journal Entry Account", { credit: function(frm, dt, dn) { cur_frm.cscript.update_totals(frm.doc); + }, + + exchange_rate: function(frm, cdt, cdn) { + var company_currency = frappe.get_doc(":Company", frm.doc.company).default_currency; + var row = locals[cdt][cdn]; + + if(row.account_currency == company_currency || !frm.doc.multi_currency) { + frappe.model.set_value(cdt, cdn, "exchange_rate", 1); + } + + erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); } }) @@ -395,8 +407,6 @@ $.extend(erpnext.journal_entry, { }, set_debit_credit_in_company_currency: function(frm, cdt, cdn) { - erpnext.journal_entry.set_exchange_rate(frm, cdt, cdn); - var row = locals[cdt][cdn]; frappe.model.set_value(cdt, cdn, "debit", @@ -413,7 +423,8 @@ $.extend(erpnext.journal_entry, { var row = locals[cdt][cdn]; if(row.account_currency == company_currency || !frm.doc.multi_currency) { - frappe.model.set_value(cdt, cdn, "exchange_rate", 1); + row.exchange_rate = 1; + erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); } else if (!row.exchange_rate || row.exchange_rate == 1 || row.account_type == "Bank") { frappe.call({ method: "erpnext.accounts.doctype.journal_entry.journal_entry.get_exchange_rate", @@ -429,11 +440,15 @@ $.extend(erpnext.journal_entry, { }, callback: function(r) { if(r.message) { - frappe.model.set_value(cdt, cdn, "exchange_rate", r.message); + row.exchange_rate = r.message; + erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); } } }) + } else { + erpnext.journal_entry.set_debit_credit_in_company_currency(frm, cdt, cdn); } + refresh_field("exchange_rate", cdn, "accounts"); }, quick_entry: function(frm) {