diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index e12a30e..b336637 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -194,6 +194,7 @@
 			}
 
 			this.frm.script_manager.trigger("currency");
+			this.apply_pricing_rule()
 		}
 	},
 
@@ -225,7 +226,9 @@
 			this.frm.doc.plc_conversion_rate !== this.frm.doc.conversion_rate) {
 				this.frm.set_value("plc_conversion_rate", this.frm.doc.conversion_rate);
 		}
-		if(flt(this.frm.doc.conversion_rate)>0.0) this.calculate_taxes_and_totals();
+		if(flt(this.frm.doc.conversion_rate)>0.0) {
+			this.apply_pricing_rule();
+		}
 	},
 
 	get_price_list_currency: function(buying_or_selling) {
@@ -278,12 +281,12 @@
 		}
 		if(this.frm.doc.price_list_currency === this.frm.doc.currency) {
 			this.frm.set_value("conversion_rate", this.frm.doc.plc_conversion_rate);
-			this.calculate_taxes_and_totals();
+			this.apply_pricing_rule();
 		}
 	},
 
 	qty: function(doc, cdt, cdn) {
-		this.calculate_taxes_and_totals();
+		this.apply_pricing_rule(frappe.get_doc(cdt, cdn));
 	},
 
 	// tax rate
@@ -326,6 +329,52 @@
 		this.calculate_taxes_and_totals();
 	},
 
+	apply_pricing_rule: function(item) {
+		var me = this;
+
+		var _apply_pricing_rule = function(item) {
+			return me.frm.call({
+				method: "erpnext.stock.get_item_details.apply_pricing_rule",
+				child: item,
+				args: {
+					args: {
+						item_code: item.item_code,
+						item_group: item.item_group,
+						brand: item.brand,
+						qty: item.qty,
+						customer: me.frm.doc.customer,
+						customer_group: me.frm.doc.customer_group,
+						territory: me.frm.doc.territory,
+						supplier: me.frm.doc.supplier,
+						supplier_type: me.frm.doc.supplier_type,
+						currency: me.frm.doc.currency,
+						conversion_rate: me.frm.doc.conversion_rate,
+						price_list: me.frm.doc.selling_price_list ||
+							 me.frm.doc.buying_price_list,
+						plc_conversion_rate: me.frm.doc.plc_conversion_rate,
+						company: me.frm.doc.company,
+						transaction_date: me.frm.doc.transaction_date || me.frm.doc.posting_date,
+						campaign: me.frm.doc.campaign,
+						sales_partner: me.frm.doc.sales_partner
+					}
+				},
+				callback: function(r) {
+					if(!r.exc) {
+						me.frm.script_manager.trigger("price_list_rate", item.doctype, item.name);
+					}
+				}
+			});
+		}
+
+
+		if(item) _apply_pricing_rule(item);
+		else {
+			$.each(this.get_item_doclist(), function(n, item) {
+				_apply_pricing_rule(item);
+			});
+		}
+	},
+
 	included_in_print_rate: function(doc, cdt, cdn) {
 		var tax = frappe.get_doc(cdt, cdn);
 		try {
diff --git a/erpnext/public/js/utils/party.js b/erpnext/public/js/utils/party.js
index 31abbb3..9da0353 100644
--- a/erpnext/public/js/utils/party.js
+++ b/erpnext/public/js/utils/party.js
@@ -2,7 +2,7 @@
 // License: GNU General Public License v3. See license.txt
 
 frappe.provide("erpnext.utils");
-erpnext.utils.get_party_details = function(frm, method, args) {
+erpnext.utils.get_party_details = function(frm, method, args, callback) {
 	if(!method) {
 		method = "erpnext.accounts.party.get_party_details";
 	}
@@ -33,6 +33,7 @@
 				frm.updating_party_details = true;
 				frm.set_value(r.message);
 				frm.updating_party_details = false;
+				if(callback) callback()
 			}
 		}
 	});
