From 11a9d4124f44e174e5e7493582cf4842253c2c80 Mon Sep 17 00:00:00 2001 From: Anand Baburajan Date: Tue, 25 Jul 2023 21:55:17 +0530 Subject: [PATCH] fix: apply discount on item after applying price list (#36317) --- erpnext/public/js/controllers/transaction.js | 13 +++++++++++++ erpnext/public/js/utils/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 6410333f0cb..59d2b154ac0 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -991,6 +991,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) { @@ -1661,6 +1671,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/public/js/utils/sales_common.js b/erpnext/public/js/utils/sales_common.js index 517d87127a7..89dcaa64853 100644 --- a/erpnext/public/js/utils/sales_common.js +++ b/erpnext/public/js/utils/sales_common.js @@ -142,16 +142,6 @@ erpnext.sales_common = { 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(); }