mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-09 15:29:30 +00:00
Merge pull request #58904 from frappe/mergify/bp/version-16-hotfix/pr-58889
fix(stock): guard inventory dimension lookup without reference document (backport #58889)
This commit is contained in:
@@ -72,24 +72,44 @@ frappe.ui.form.on("Inventory Dimension", {
|
||||
frm.trigger("set_parent_fields");
|
||||
},
|
||||
|
||||
set_parent_fields(frm) {
|
||||
if (frm.doc.apply_to_all_doctypes) {
|
||||
let options = ["\n", frm.doc.reference_document];
|
||||
istable(frm) {
|
||||
frm.trigger("set_parent_fields");
|
||||
},
|
||||
|
||||
frm.set_df_property("fetch_from_parent", "options", options);
|
||||
} else if (frm.doc.document_type && frm.doc.istable) {
|
||||
reference_document(frm) {
|
||||
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({
|
||||
method: "erpnext.stock.doctype.inventory_dimension.inventory_dimension.get_parent_fields",
|
||||
args: {
|
||||
child_doctype: frm.doc.document_type,
|
||||
dimension_name: frm.doc.reference_document,
|
||||
child_doctype: document_type,
|
||||
dimension_name: reference_document,
|
||||
},
|
||||
callback: (r) => {
|
||||
if (r.message && r.message.length) {
|
||||
frm.set_df_property("fetch_from_parent", "options", ["\n"].concat(r.message));
|
||||
} else {
|
||||
frm.set_df_property("fetch_from_parent", "hidden", 1);
|
||||
if (
|
||||
frm.doc.reference_document !== reference_document ||
|
||||
frm.doc.document_type !== document_type ||
|
||||
frm.doc.apply_to_all_doctypes ||
|
||||
!frm.doc.istable
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
return set_parent_field_options(frm, r.message || []);
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -114,3 +134,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", "");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user