fix(UX): Optimize rate updation of changing price list
This commit is contained in:
@@ -1566,17 +1566,19 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
|
|||||||
var items_rule_dict = {};
|
var items_rule_dict = {};
|
||||||
|
|
||||||
for(var i=0, l=children.length; i<l; i++) {
|
for(var i=0, l=children.length; i<l; i++) {
|
||||||
var d = children[i];
|
var d = children[i] ;
|
||||||
|
let item_row = frappe.get_doc(d.doctype, d.name)
|
||||||
var existing_pricing_rule = frappe.model.get_value(d.doctype, d.name, "pricing_rules");
|
var existing_pricing_rule = frappe.model.get_value(d.doctype, d.name, "pricing_rules");
|
||||||
for(var k in d) {
|
for(var k in d) {
|
||||||
var v = d[k];
|
var v = d[k];
|
||||||
if (["doctype", "name"].indexOf(k)===-1) {
|
if (["doctype", "name"].indexOf(k)===-1) {
|
||||||
if(k=="price_list_rate") {
|
if(k=="price_list_rate") {
|
||||||
if(flt(v) != flt(d.price_list_rate)) price_list_rate_changed = true;
|
if(flt(v) != flt(d.price_list_rate)) price_list_rate_changed = true;
|
||||||
|
item_row['rate'] = v;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (k !== 'free_item_data') {
|
if (k !== 'free_item_data') {
|
||||||
frappe.model.set_value(d.doctype, d.name, k, v);
|
item_row[k] = v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1597,6 +1599,7 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
me.frm.refresh_field('items');
|
||||||
me.apply_rule_on_other_items(items_rule_dict);
|
me.apply_rule_on_other_items(items_rule_dict);
|
||||||
|
|
||||||
if(!price_list_rate_changed) me.calculate_taxes_and_totals();
|
if(!price_list_rate_changed) me.calculate_taxes_and_totals();
|
||||||
|
|||||||
@@ -1098,7 +1098,7 @@ def apply_price_list(args, as_doc=False):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def apply_price_list_on_item(args):
|
def apply_price_list_on_item(args):
|
||||||
item_doc = frappe.get_doc("Item", args.item_code)
|
item_doc = frappe.db.get_value("Item", args.item_code, ['name', 'variant_of'], as_dict=1)
|
||||||
item_details = get_price_list_rate(args, item_doc)
|
item_details = get_price_list_rate(args, item_doc)
|
||||||
|
|
||||||
item_details.update(get_pricing_rule_for_item(args, item_details.price_list_rate))
|
item_details.update(get_pricing_rule_for_item(args, item_details.price_list_rate))
|
||||||
|
|||||||
Reference in New Issue
Block a user