fix(stock): guard inventory dimension lookup without reference document (#58889)

Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
This commit is contained in:
Pandiyan P
2026-09-09 07:42:40 +05:30
committed by GitHub
parent 51fb261b6b
commit afd93cf867

View File

@@ -73,24 +73,44 @@ frappe.ui.form.on("Inventory Dimension", {
frm.trigger("set_parent_fields"); frm.trigger("set_parent_fields");
}, },
set_parent_fields(frm) { istable(frm) {
if (frm.doc.apply_to_all_doctypes) { frm.trigger("set_parent_fields");
let options = ["\n", frm.doc.reference_document]; },
frm.set_df_property("fetch_from_parent", "options", options); reference_document(frm) {
} else if (frm.doc.document_type && frm.doc.istable) { frm.trigger("set_parent_fields");
},
apply_to_all_doctypes(frm) {
frm.trigger("set_parent_fields");
},
set_parent_fields(frm) {
const { reference_document, document_type } = frm.doc;
if (!reference_document || (!frm.doc.apply_to_all_doctypes && (!document_type || !frm.doc.istable))) {
return set_parent_field_options(frm, []);
}
if (frm.doc.apply_to_all_doctypes) {
return set_parent_field_options(frm, [{ value: reference_document, label: reference_document }]);
} else if (document_type && frm.doc.istable) {
frappe.call({ frappe.call({
method: "erpnext.stock.doctype.inventory_dimension.inventory_dimension.get_parent_fields", method: "erpnext.stock.doctype.inventory_dimension.inventory_dimension.get_parent_fields",
args: { args: {
child_doctype: frm.doc.document_type, child_doctype: document_type,
dimension_name: frm.doc.reference_document, dimension_name: reference_document,
}, },
callback: (r) => { callback: (r) => {
if (r.message && r.message.length) { if (
frm.set_df_property("fetch_from_parent", "options", ["\n"].concat(r.message)); frm.doc.reference_document !== reference_document ||
} else { frm.doc.document_type !== document_type ||
frm.set_df_property("fetch_from_parent", "hidden", 1); frm.doc.apply_to_all_doctypes ||
!frm.doc.istable
) {
return;
} }
return set_parent_field_options(frm, r.message || []);
}, },
}); });
} }
@@ -115,3 +135,12 @@ frappe.ui.form.on("Inventory Dimension", {
}); });
}, },
}); });
function set_parent_field_options(frm, fields) {
frm.set_df_property("fetch_from_parent", "options", ["", ...fields]);
frm.set_df_property("fetch_from_parent", "hidden", !fields.length);
if (frm.doc.fetch_from_parent && !fields.some((field) => field.value === frm.doc.fetch_from_parent)) {
return frm.set_value("fetch_from_parent", "");
}
}