From ec361ea6480f254978540e51aafa6c354bc40058 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 11 May 2015 18:14:45 +0530 Subject: [PATCH] exchange rate fix --- erpnext/public/js/controllers/transaction.js | 27 ++++++++++++-------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 27500a52b4f..106b3cca271 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -260,22 +260,29 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ price_list_currency: function() { var me=this; this.set_dynamic_labels(); - this.set_plc_conversion_rate(); + + var company_currency = this.get_company_currency(); + // Added `ignore_pricing_rule` to determine if document is loading after mapping from another doc + if(this.frm.doc.price_list_currency !== company_currency && !this.frm.doc.ignore_pricing_rule) { + this.get_exchange_rate(this.frm.doc.price_list_currency, company_currency, + function(exchange_rate) { + me.frm.set_value("plc_conversion_rate", exchange_rate); + }); + } else { + this.plc_conversion_rate(); + } }, plc_conversion_rate: function() { - this.set_plc_conversion_rate(); - if(!this.in_apply_price_list) { - this.apply_price_list(); - } - }, - - set_plc_conversion_rate: function() { if(this.frm.doc.price_list_currency === this.get_company_currency()) { this.frm.set_value("plc_conversion_rate", 1.0); + } else if(this.frm.doc.price_list_currency === this.frm.doc.currency && this.frm.doc.plc_conversion_rate && cint(this.frm.doc.plc_conversion_rate) != 1 && + cint(this.frm.doc.plc_conversion_rate) != cint(this.frm.doc.conversion_rate)) { + this.frm.set_value("conversion_rate", this.frm.doc.plc_conversion_rate); } - if(this.frm.doc.price_list_currency === this.frm.doc.currency) { - this.frm.set_value("conversion_rate", this.frm.doc.plc_conversion_rate); + + if(!this.in_apply_price_list) { + this.apply_price_list(); } },