Merge pull request #53254 from rohitwaghchaure/fixed-github-53253

fix: bom UX issues
This commit is contained in:
rohitwaghchaure
2026-03-09 18:17:33 +05:30
committed by GitHub
2 changed files with 39 additions and 13 deletions

View File

@@ -637,11 +637,18 @@ erpnext.bom.BomController = class BomController extends erpnext.TransactionContr
}
buying_price_list(doc) {
this.apply_price_list();
if (doc.rm_cost_as_per !== "Price List" && doc.buying_price_list) {
this.frm.set_value("buying_price_list", "");
return;
}
if (doc.buying_price_list) {
this.apply_price_list();
}
}
plc_conversion_rate(doc) {
if (!this.in_apply_price_list) {
if (!this.in_apply_price_list && doc.rm_cost_as_per === "Price List") {
this.apply_price_list(null, true);
}
}

View File

@@ -15,18 +15,18 @@ frappe.treeview_settings["BOM"] = {
get_tree_root: false,
show_expand_all: false,
get_label: function (node) {
if (node.data.qty) {
const escape = frappe.utils.escape_html;
let label = escape(node.data.item_code);
if (node.data.item_name && node.data.item_code !== node.data.item_name) {
label += `: ${escape(node.data.item_name)}`;
}
return `${label} <span class="badge badge-pill badge-light">${node.data.qty} ${escape(
__(node.data.stock_uom)
)}</span>`;
} else {
return node.data.item_code || node.data.value;
if (node.is_root && node.data.value != "BOM") {
frappe.model.with_doc("BOM", node.data.value, function () {
var bom = frappe.model.get_doc("BOM", node.data.value);
node.data.item_name = bom.item_name || "";
node.data.item_code = bom.item || "";
node.data.qty = bom.quantity || "";
node.data.stock_uom = bom.uom || "";
return get_bom_node(node);
});
}
return get_bom_node(node);
},
onload: function (me) {
var label = frappe.get_route()[0] + "/" + frappe.get_route()[1];
@@ -78,3 +78,22 @@ frappe.treeview_settings["BOM"] = {
},
view_template: "bom_item_preview",
};
function get_bom_node(node) {
if (node.data.qty) {
const escape = frappe.utils.escape_html;
let label = escape(node.data.item_code);
if (node.is_root && node.data.value != "BOM") {
label = escape(node.data.value);
}
if (node.data.item_name && node.data.item_code !== node.data.item_name) {
label += `: ${escape(node.data.item_name)}`;
}
return `${label} <span class="badge badge-pill badge-light">${node.data.qty} ${escape(
__(node.data.stock_uom)
)}</span>`;
} else {
return node.data.item_code || node.data.value;
}
}