fix: SCO status on SCR cancel
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
index 73ab434..71cdc94 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
+++ b/erpnext/subcontracting/doctype/subcontracting_order/subcontracting_order.py
@@ -192,10 +192,11 @@
status = "Partial Material Transferred"
if total_supplied_qty >= total_required_qty:
status = "Material Transferred"
+ else:
+ status = "Open"
elif self.docstatus == 2:
status = "Cancelled"
- if status:
frappe.db.set_value("Subcontracting Order", self.name, "status", status, update_modified)
diff --git a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
index e579834..94bb38e 100644
--- a/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
+++ b/erpnext/subcontracting/doctype/subcontracting_order/test_subcontracting_order.py
@@ -96,6 +96,12 @@
sco.load_from_db()
self.assertEqual(sco.status, "Completed")
+ # Partially Received (scr cancelled)
+ scr.load_from_db()
+ scr.cancel()
+ sco.load_from_db()
+ self.assertEqual(sco.status, "Partially Received")
+
def test_make_rm_stock_entry(self):
sco = get_subcontracting_order()
rm_items = get_rm_items(sco.supplied_items)