mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-25 16:04:46 +00:00
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:
@@ -108,7 +108,7 @@ status_map = {
|
|||||||
["Pending", "eval:self.status != 'Stopped' and self.per_ordered == 0 and self.docstatus == 1"],
|
["Pending", "eval:self.status != 'Stopped' and self.per_ordered == 0 and self.docstatus == 1"],
|
||||||
[
|
[
|
||||||
"Ordered",
|
"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",
|
"Transferred",
|
||||||
@@ -134,10 +134,6 @@ status_map = {
|
|||||||
"Partially Ordered",
|
"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'",
|
"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": [
|
"POS Opening Entry": [
|
||||||
["Draft", None],
|
["Draft", None],
|
||||||
|
|||||||
@@ -1830,7 +1830,7 @@ class TestSalesOrder(AccountsTestMixin, FrappeTestCase):
|
|||||||
wo.reload()
|
wo.reload()
|
||||||
so.reload()
|
so.reload()
|
||||||
self.assertEqual(so.items[0].work_order_qty, wo.produced_qty)
|
self.assertEqual(so.items[0].work_order_qty, wo.produced_qty)
|
||||||
self.assertEqual(mr.status, "Manufactured")
|
self.assertEqual(mr.status, "Ordered")
|
||||||
|
|
||||||
@change_settings(
|
@change_settings(
|
||||||
"Accounts Settings",
|
"Accounts Settings",
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ frappe.listview_settings["Material Request"] = {
|
|||||||
return [__("Partially Received"), "yellow", "per_received,<,100"];
|
return [__("Partially Received"), "yellow", "per_received,<,100"];
|
||||||
} else if (doc.material_request_type == "Purchase" && flt(doc.per_received, precision) == 100) {
|
} else if (doc.material_request_type == "Purchase" && flt(doc.per_received, precision) == 100) {
|
||||||
return [__("Received"), "green", "per_received,=,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"];
|
return [__("Ordered"), "green", "per_ordered,=,100"];
|
||||||
} else if (doc.material_request_type == "Material Transfer") {
|
} else if (doc.material_request_type == "Material Transfer") {
|
||||||
return [__("Transfered"), "green", "per_ordered,=,100"];
|
return [__("Transfered"), "green", "per_ordered,=,100"];
|
||||||
@@ -43,8 +43,6 @@ frappe.listview_settings["Material Request"] = {
|
|||||||
return [__("Issued"), "green", "per_ordered,=,100"];
|
return [__("Issued"), "green", "per_ordered,=,100"];
|
||||||
} else if (doc.material_request_type == "Customer Provided") {
|
} else if (doc.material_request_type == "Customer Provided") {
|
||||||
return [__("Received"), "green", "per_ordered,=,100"];
|
return [__("Received"), "green", "per_ordered,=,100"];
|
||||||
} else if (doc.material_request_type == "Manufacture") {
|
|
||||||
return [__("Manufactured"), "green", "per_ordered,=,100"];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -866,6 +866,23 @@ class TestMaterialRequest(FrappeTestCase):
|
|||||||
for perm in permissions:
|
for perm in permissions:
|
||||||
perm.delete()
|
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):
|
def get_in_transit_warehouse(company):
|
||||||
if not frappe.db.exists("Warehouse Type", "Transit"):
|
if not frappe.db.exists("Warehouse Type", "Transit"):
|
||||||
|
|||||||
Reference in New Issue
Block a user