Merge pull request #5678 from nabinhait/exchange_rate_issue

[fix] Dont set currency and exchange rate while Quotation made from Opportunity for lead
diff --git a/erpnext/crm/doctype/opportunity/opportunity.py b/erpnext/crm/doctype/opportunity/opportunity.py
index ad8eea6..903f405 100644
--- a/erpnext/crm/doctype/opportunity/opportunity.py
+++ b/erpnext/crm/doctype/opportunity/opportunity.py
@@ -191,16 +191,18 @@
 def make_quotation(source_name, target_doc=None):
 	def set_missing_values(source, target):
 		quotation = frappe.get_doc(target)
-
+		
 		company_currency = frappe.db.get_value("Company", quotation.company, "default_currency")
-		party_account_currency = get_party_account_currency("Customer", quotation.customer, quotation.company)
+		party_account_currency = get_party_account_currency("Customer", quotation.customer, 
+			quotation.company) if quotation.customer else company_currency
+		
+		quotation.currency = party_account_currency or company_currency
 
-		if company_currency == party_account_currency:
+		if company_currency == quotation.currency:
 			exchange_rate = 1
 		else:
-			exchange_rate = get_exchange_rate(party_account_currency, company_currency)
+			exchange_rate = get_exchange_rate(quotation.currency, company_currency)
 
-		quotation.currency = party_account_currency or company_currency
 		quotation.conversion_rate = exchange_rate
 
 		quotation.run_method("set_missing_values")
diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js
index 1379048..c39048d 100644
--- a/erpnext/public/js/controllers/transaction.js
+++ b/erpnext/public/js/controllers/transaction.js
@@ -432,7 +432,8 @@
 
 		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.currency !== company_currency && !this.frm.doc.ignore_pricing_rule) {
+		if(this.frm.doc.currency && this.frm.doc.currency !== company_currency 
+				&& !this.frm.doc.ignore_pricing_rule) {
 			this.get_exchange_rate(this.frm.doc.currency, company_currency,
 				function(exchange_rate) {
 					me.frm.set_value("conversion_rate", exchange_rate);
diff --git a/erpnext/setup/utils.py b/erpnext/setup/utils.py
index 8c0d1cb..eda2042 100644
--- a/erpnext/setup/utils.py
+++ b/erpnext/setup/utils.py
@@ -65,6 +65,9 @@
 
 @frappe.whitelist()
 def get_exchange_rate(from_currency, to_currency):
+	if not (from_currency and to_currency):
+		return
+	
 	if from_currency == to_currency:
 		return 1