diff --git a/erpnext/manufacturing/doctype/work_order/work_order.js b/erpnext/manufacturing/doctype/work_order/work_order.js index f0b5e90c42a..09ea14264f8 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.js +++ b/erpnext/manufacturing/doctype/work_order/work_order.js @@ -139,6 +139,10 @@ frappe.ui.form.on("Work Order", { frm.fields_dict["secondary_items"].grid.wrapper?.find("> .control-label").text(label); }, + company: function (frm) { + erpnext.work_order.set_default_warehouse(frm); + }, + source_warehouse: function (frm) { let transaction_controller = new erpnext.TransactionController(); transaction_controller.autofill_warehouse( @@ -986,14 +990,16 @@ erpnext.work_order = { }, set_default_warehouse: function (frm) { - if (!(frm.doc.wip_warehouse || frm.doc.fg_warehouse)) { + if (frm.doc.company && !(frm.doc.wip_warehouse || frm.doc.fg_warehouse)) { + let company = frm.doc.company; frappe.call({ method: "erpnext.manufacturing.doctype.work_order.work_order.get_default_warehouse", args: { - company: frm.doc.company, + company: company, }, callback: function (r) { - if (!r.exe) { + // ignore stale responses if the company changed while the request was in flight + if (!r.exe && frm.doc.company === company) { frm.set_value("wip_warehouse", r.message.wip_warehouse); frm.set_value("fg_warehouse", r.message.fg_warehouse); frm.set_value("scrap_warehouse", r.message.scrap_warehouse);