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)