diff --git a/erpnext/controllers/status_updater.py b/erpnext/controllers/status_updater.py index e41ac0dd0ab..15c2760332e 100644 --- a/erpnext/controllers/status_updater.py +++ b/erpnext/controllers/status_updater.py @@ -108,7 +108,7 @@ status_map = { ["Pending", "eval:self.status != 'Stopped' and self.per_ordered == 0 and self.docstatus == 1"], [ "Ordered", - "eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type == 'Purchase'", + "eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type in ['Purchase', 'Manufacture']", ], [ "Transferred", @@ -134,10 +134,6 @@ status_map = { "Partially Ordered", "eval:self.status != 'Stopped' and self.per_ordered < 100 and self.per_ordered > 0 and self.docstatus == 1 and self.material_request_type != 'Material Transfer'", ], - [ - "Manufactured", - "eval:self.status != 'Stopped' and self.per_ordered == 100 and self.docstatus == 1 and self.material_request_type == 'Manufacture'", - ], ], "POS Opening Entry": [ ["Draft", None], diff --git a/erpnext/selling/doctype/sales_order/test_sales_order.py b/erpnext/selling/doctype/sales_order/test_sales_order.py index ae807e5b1c0..c5898a5ffaa 100644 --- a/erpnext/selling/doctype/sales_order/test_sales_order.py +++ b/erpnext/selling/doctype/sales_order/test_sales_order.py @@ -1830,7 +1830,7 @@ class TestSalesOrder(AccountsTestMixin, FrappeTestCase): wo.reload() so.reload() self.assertEqual(so.items[0].work_order_qty, wo.produced_qty) - self.assertEqual(mr.status, "Manufactured") + self.assertEqual(mr.status, "Ordered") @change_settings( "Accounts Settings", diff --git a/erpnext/stock/doctype/material_request/material_request_list.js b/erpnext/stock/doctype/material_request/material_request_list.js index ff928ea6a22..69d8c15803d 100644 --- a/erpnext/stock/doctype/material_request/material_request_list.js +++ b/erpnext/stock/doctype/material_request/material_request_list.js @@ -35,7 +35,7 @@ frappe.listview_settings["Material Request"] = { return [__("Partially Received"), "yellow", "per_received,<,100"]; } else if (doc.material_request_type == "Purchase" && flt(doc.per_received, precision) == 100) { return [__("Received"), "green", "per_received,=,100"]; - } else if (doc.material_request_type == "Purchase") { + } else if (["Purchase", "Manufacture"].includes(doc.material_request_type)) { return [__("Ordered"), "green", "per_ordered,=,100"]; } else if (doc.material_request_type == "Material Transfer") { return [__("Transfered"), "green", "per_ordered,=,100"]; @@ -43,8 +43,6 @@ frappe.listview_settings["Material Request"] = { return [__("Issued"), "green", "per_ordered,=,100"]; } else if (doc.material_request_type == "Customer Provided") { return [__("Received"), "green", "per_ordered,=,100"]; - } else if (doc.material_request_type == "Manufacture") { - return [__("Manufactured"), "green", "per_ordered,=,100"]; } } }, diff --git a/erpnext/stock/doctype/material_request/test_material_request.py b/erpnext/stock/doctype/material_request/test_material_request.py index 30b2d7fcdc2..66dd9c0c795 100644 --- a/erpnext/stock/doctype/material_request/test_material_request.py +++ b/erpnext/stock/doctype/material_request/test_material_request.py @@ -866,6 +866,23 @@ class TestMaterialRequest(FrappeTestCase): for perm in permissions: perm.delete() + def test_manufacture_type_status_over_wo(self): + from erpnext.stock.doctype.material_request.material_request import raise_work_orders + + mr = make_material_request( + item_code="_Test FG Item", material_request_type="Manufacture", do_not_submit=False + ) + + work_order = raise_work_orders(mr.name) + wo = frappe.get_doc("Work Order", work_order[0]) + wo.wip_warehouse = "_Test Warehouse 1 - _TC" + wo.submit() + + mr.reload() + + self.assertEqual(mr.per_ordered, 100) + self.assertEqual(mr.status, "Ordered") + def get_in_transit_warehouse(company): if not frappe.db.exists("Warehouse Type", "Transit"):