From e72c98dafb3c6825a66434f26cfd4dd4de66d39a Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 24 May 2017 09:01:44 +0530 Subject: [PATCH] On change of item rate, set margin amount on price list rate, instead of margin percentage (#8988) --- erpnext/public/js/controllers/transaction.js | 8 ++++---- erpnext/selling/sales_common.js | 10 +++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 44bf21da3ec..2d0d83b125b 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -15,10 +15,10 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ // if rate is greater than price_list_rate, set margin // or set discount item.discount_percentage = 0; - item.margin_type = 'Percentage'; - item.margin_rate_or_amount = flt(Math.abs(1 - item.rate / item.price_list_rate) * 100.0, - precision("discount_percentage", item)); - item.rate_with_margin = item.rate; + item.margin_type = 'Amount'; + item.margin_rate_or_amount = flt(item.rate - item.price_list_rate, + precision("margin_rate_or_amount", item)); + item.rate_with_margin = item.rate; } else { item.discount_percentage = flt((1 - item.rate / item.price_list_rate) * 100.0, precision("discount_percentage", item)); diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index 715434384be..1fcf334717b 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -348,9 +348,13 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ margin_type: function(doc, cdt, cdn){ // calculate the revised total margin and rate on margin type changes item = locals[cdt][cdn]; - this.apply_pricing_rule_on_item(item, doc,cdt, cdn) - this.calculate_taxes_and_totals(); - cur_frm.refresh_fields(); + if(!item.margin_type) { + frappe.model.set_value(cdt, cdn, "margin_rate_or_amount", 0); + } else { + this.apply_pricing_rule_on_item(item, doc,cdt, cdn) + this.calculate_taxes_and_totals(); + cur_frm.refresh_fields(); + } } });