From cff6e72838b9a118de269f1ed4d6806d1474bbbd Mon Sep 17 00:00:00 2001 From: Anand Baburajan Date: Tue, 25 Jul 2023 21:55:26 +0530 Subject: [PATCH] fix: apply discount on item after applying price list (#36316) --- erpnext/public/js/controllers/transaction.js | 13 +++++++++++++ erpnext/selling/sales_common.js | 10 ---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index cfbb54ab2d00..b6b6e2e5ad60 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -969,6 +969,16 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe this.frm.set_df_property("conversion_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1); } + apply_discount_on_item(doc, cdt, cdn, field) { + var item = frappe.get_doc(cdt, cdn); + if(!item.price_list_rate) { + item[field] = 0.0; + } else { + this.price_list_rate(doc, cdt, cdn); + } + this.set_gross_profit(item); + } + shipping_rule() { var me = this; if(this.frm.doc.shipping_rule) { @@ -1639,6 +1649,9 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe () => { if(args.items.length) { me._set_values_for_item_list(r.message.children); + $.each(r.message.children || [], function(i, d) { + me.apply_discount_on_item(d, d.doctype, d.name, 'discount_percentage'); + }); } }, () => { me.in_apply_price_list = false; } diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index e3de49c57d81..80a6b7712fc5 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -145,16 +145,6 @@ erpnext.selling.SellingController = class SellingController extends erpnext.Tran this.apply_discount_on_item(doc, cdt, cdn, 'discount_amount'); } - apply_discount_on_item(doc, cdt, cdn, field) { - var item = frappe.get_doc(cdt, cdn); - if(!item.price_list_rate) { - item[field] = 0.0; - } else { - this.price_list_rate(doc, cdt, cdn); - } - this.set_gross_profit(item); - } - commission_rate() { this.calculate_commission(); }