Merge branch 'shf_rename' of github.com:webnotes/erpnext into shf_rename
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
index 15270de..8272fb2 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.js
@@ -173,6 +173,7 @@
 
 //Customer
 cur_frm.cscript.customer = function(doc,dt,dn,onload) {
+	var pl = doc.price_list_name;
 	var callback = function(r,rt) {
 			var callback2 = function(doc, dt, dn) {
 				doc = locals[dt][dn];
@@ -180,7 +181,7 @@
 					get_server_fields('get_cust_and_due_date','','',doc,dt,dn,1,
 					function(doc, dt, dn) {
 						cur_frm.refresh();
-						if (!onload) cur_frm.cscript.price_list_name(doc, dt, dn);
+						if (!onload && (pl != doc.price_list_name)) cur_frm.cscript.price_list_name(doc, dt, dn);
 					});
 					
 				}
diff --git a/erpnext/selling/doctype/quotation/quotation.js b/erpnext/selling/doctype/quotation/quotation.js
index 28008f5..eb1cfe4 100644
--- a/erpnext/selling/doctype/quotation/quotation.js
+++ b/erpnext/selling/doctype/quotation/quotation.js
@@ -100,10 +100,11 @@
 
 //customer
 cur_frm.cscript.customer = function(doc,dt,dn) {
+	var pl = doc.price_list_name;
 	var callback = function(r,rt) {
 		var doc = locals[cur_frm.doctype][cur_frm.docname];
 		cur_frm.refresh();		
-		cur_frm.cscript.price_list_name(doc, dt, dn); 
+		if (pl != doc.price_list_name) cur_frm.cscript.price_list_name(doc, dt, dn); 
 	}
 
 	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 
diff --git a/erpnext/selling/doctype/sales_common/sales_common.js b/erpnext/selling/doctype/sales_common/sales_common.js
index bd32fa3..32c5d9e 100644
--- a/erpnext/selling/doctype/sales_common/sales_common.js
+++ b/erpnext/selling/doctype/sales_common/sales_common.js
@@ -143,23 +143,23 @@
 				unhide_field(['price_list_currency', 'plc_conversion_rate']);
 				
 				if (pl_currency.length==1) {
-					set_multiple(cdt, cdn, {price_list_currency:pl_currency[0]});
+					if (doc.price_list_currency != pl_currency[0]) set_multiple(cdt, cdn, {price_list_currency:pl_currency[0]});
 					if (pl_currency[0] == doc.currency) {
-						set_multiple(cdt, cdn, {plc_conversion_rate:doc.conversion_rate});
+						if(doc.plc_conversion_rate != doc.conversion_rate) set_multiple(cdt, cdn, {plc_conversion_rate:doc.conversion_rate});
 						hide_field(['price_list_currency', 'plc_conversion_rate']);
 					} else if (pl_currency[0] == r.message[1]) {
-						set_multiple(cdt, cdn, {plc_conversion_rate:1})
+						if (doc.plc_conversion_rate != 1) set_multiple(cdt, cdn, {plc_conversion_rate:1})
 						hide_field(['price_list_currency', 'plc_conversion_rate']);
 					}					
 				}
 
 				if (r.message[1] == doc.currency) {
-					set_multiple(cdt, cdn, {conversion_rate:1});
+					if (doc.conversion_rate != 1) set_multiple(cdt, cdn, {conversion_rate:1});
 					hide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
 				} else unhide_field(['conversion_rate', 'grand_total_export', 'in_words_export', 'rounded_total_export']);
 
 				if (r.message[1] == doc.price_list_currency) {
-					set_multiple(cdt, cdn, {plc_conversion_rate:1});
+					if (doc.plc_conversion_rate != 1) set_multiple(cdt, cdn, {plc_conversion_rate:1});
 					hide_field('plc_conversion_rate');
 				} else unhide_field('plc_conversion_rate');
 				
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 7f89748..4faa6a3 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -98,18 +98,20 @@
 
 //customer
 cur_frm.cscript.customer = function(doc,dt,dn) {
+	var pl = doc.price_list_name;
 	var callback = function(r,rt) {
 		var callback2  = function(r, rt) {
+
 			if(doc.customer) unhide_field(['customer_address', 'contact_person', 'territory','customer_group','shipping_address']);
 			cur_frm.refresh();
-			if(!onload) cur_frm.cscript.price_list_name(doc, dt, dn); 
+			
+			if(!onload && (pl != doc.price_list_name)) cur_frm.cscript.price_list_name(doc, dt, dn);
 
 		}
 		var doc = locals[cur_frm.doctype][cur_frm.docname];
 		get_server_fields('get_shipping_address',doc.customer,'',doc, dt, dn, 0, callback2);
 			
 	}	 
-
 	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_address', '', callback);
 }
 
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 9822751..4be65ae 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -79,11 +79,12 @@
 
 //customer
 cur_frm.cscript.customer = function(doc,dt,dn,onload) {	
+	var pl = doc.price_list_name;
 	var callback = function(r,rt) {
 			var doc = locals[cur_frm.doctype][cur_frm.docname];
 			if(doc.customer) unhide_field(['customer_address','contact_person','territory','customer_group']);
 			cur_frm.refresh();
-			if(!onload) cur_frm.cscript.price_list_name(doc, dt, dn); 
+			if(!onload && (pl != doc.price_list_name)) cur_frm.cscript.price_list_name(doc, dt, dn); 
 	} 
 	var args = onload ? 'onload':''
 	if(doc.customer) $c_obj(make_doclist(doc.doctype, doc.name), 'get_default_customer_shipping_address', args, callback);