fix: remove applied pricing rule

(cherry picked from commit 50223c6bec)

# Conflicts:
#	erpnext/public/js/controllers/transaction.js
This commit is contained in:
Sanket322
2025-01-23 11:55:12 +05:30
committed by Mergify
parent 914f4bffea
commit c484563bea
2 changed files with 46 additions and 2 deletions

View File

@@ -328,8 +328,6 @@ def get_pricing_rule_for_item(args, doc=None, for_validate=False):
"parent": args.parent,
"parenttype": args.parenttype,
"child_docname": args.get("child_docname"),
"discount_percentage": args.get("discount_percentage") or 0.0,
"discount_amount": args.get("discount_amount") or 0.0,
}
)

View File

@@ -1443,6 +1443,41 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
}
}
<<<<<<< HEAD
=======
remove_pricing_rule_for_item(item) {
// capture pricing rule before removing it to delete free items
let removed_pricing_rule = item.pricing_rules;
if (item.pricing_rules){
let me = this;
return this.frm.call({
method: "erpnext.accounts.doctype.pricing_rule.pricing_rule.remove_pricing_rule_for_item",
args: {
pricing_rules: item.pricing_rules,
item_details: {
"doctype": item.doctype,
"name": item.name,
"item_code": item.item_code,
"pricing_rules": item.pricing_rules,
"parenttype": item.parenttype,
"parent": item.parent,
"price_list_rate": item.price_list_rate
},
item_code: item.item_code,
rate: item.price_list_rate,
},
callback: function(r) {
if (!r.exc && r.message) {
me.remove_pricing_rule(r.message, removed_pricing_rule, item.name);
me.calculate_taxes_and_totals();
if(me.frm.doc.apply_discount_on) me.frm.trigger("apply_discount_on");
}
}
});
}
}
>>>>>>> 50223c6bec (fix: remove applied pricing rule)
apply_pricing_rule(item, calculate_taxes_and_totals) {
var me = this;
var args = this._get_args(item);
@@ -1705,7 +1740,11 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
});
}
<<<<<<< HEAD
remove_pricing_rule(item) {
=======
remove_pricing_rule(item, removed_pricing_rule, row_name) {
>>>>>>> 50223c6bec (fix: remove applied pricing rule)
let me = this;
const fields = ["discount_percentage",
"discount_amount", "margin_rate_or_amount", "rate_with_margin"];
@@ -1739,6 +1778,13 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe
me.trigger_price_list_rate();
}
else if(!item.is_free_item && row_name){
me.frm.doc.items.forEach(d => {
if (d.name != row_name) return;
Object.assign(d, item);
});
}
}
trigger_price_list_rate() {