diff --git a/erpnext/manufacturing/doctype/work_order/work_order.js b/erpnext/manufacturing/doctype/work_order/work_order.js index 2f189ba4c46..2d67c7bd490 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.js +++ b/erpnext/manufacturing/doctype/work_order/work_order.js @@ -116,20 +116,6 @@ frappe.ui.form.on("Work Order", { frm.set_indicator_formatter("operation", function (doc) { return frm.doc.qty == doc.completed_qty ? "green" : "orange"; }); - - if (frm.doc.docstatus == 0 && frm.doc.bom_no) { - frappe.call({ - method: "erpnext.manufacturing.doctype.work_order.work_order.check_if_scrap_warehouse_mandatory", - args: { - bom_no: frm.doc.bom_no, - }, - callback: function (r) { - if (r.message["set_scrap_wh_mandatory"]) { - frm.toggle_reqd("scrap_warehouse", true); - } - }, - }); - } }, onload: function (frm) { @@ -144,6 +130,20 @@ frappe.ui.form.on("Work Order", { }); erpnext.work_order.set_default_warehouse(frm); } + + if (frm.doc.docstatus == 0 && frm.doc.bom_no) { + frappe.call({ + method: "erpnext.manufacturing.doctype.work_order.work_order.check_if_scrap_warehouse_mandatory", + args: { + bom_no: frm.doc.bom_no, + }, + callback: function (r) { + if (r.message["set_scrap_wh_mandatory"]) { + frm.toggle_reqd("scrap_warehouse", true); + } + }, + }); + } }, source_warehouse: function (frm) { diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 0d1175b2fe0..6bdfeef74a9 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -2123,14 +2123,16 @@ class StockEntry(StockController): "Work Order", self.work_order, "allow_alternative_item" ) + skip_transfer, from_wip_warehouse = frappe.get_value( + "Work Order", self.work_order, ["skip_transfer", "from_wip_warehouse"] + ) item.from_warehouse = ( frappe.get_value( "Work Order Item", {"parent": self.work_order, "item_code": item.item_code}, "source_warehouse", ) - if frappe.get_value("Work Order", self.work_order, "skip_transfer") - and not frappe.get_value("Work Order", self.work_order, "from_wip_warehouse") + if skip_transfer and not from_wip_warehouse else self.from_warehouse or item.source_warehouse or item.default_warehouse ) if item.item_code in used_alternative_items: