Merge pull request #49183 from aerele/fix/mr-status-from-wo

Fix/mr status from wo

(cherry picked from commit 67e57018bc)
This commit is contained in:
Kavin
2025-08-20 15:12:18 +05:30
committed by Mergify
parent 696fbbb0e2
commit 1c7a18866f
4 changed files with 20 additions and 9 deletions

View File

@@ -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],

View File

@@ -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",

View File

@@ -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"];
}
}
},

View File

@@ -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"):