fix: don't allow to submit/cancel SCR against a closed SCO
diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
index 52bf13c..7c2a1f1 100644
--- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
+++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py
@@ -8,6 +8,7 @@
 
 import erpnext
 from erpnext.accounts.utils import get_account_currency
+from erpnext.buying.utils import check_on_hold_or_closed_status
 from erpnext.controllers.subcontracting_controller import SubcontractingController
 from erpnext.stock.stock_ledger import get_valuation_rate
 
@@ -142,6 +143,7 @@
 		self.get_current_stock()
 
 	def on_submit(self):
+		self.validate_closed_subcontracting_order()
 		self.validate_available_qty_for_consumption()
 		self.update_status_updater_args()
 		self.update_prevdoc_status()
@@ -165,6 +167,7 @@
 			"Repost Item Valuation",
 			"Serial and Batch Bundle",
 		)
+		self.validate_closed_subcontracting_order()
 		self.update_status_updater_args()
 		self.update_prevdoc_status()
 		self.set_consumed_qty_in_subcontract_order()
@@ -175,6 +178,11 @@
 		self.update_status()
 		self.delete_auto_created_batches()
 
+	def validate_closed_subcontracting_order(self):
+		for item in self.items:
+			if item.subcontracting_order:
+				check_on_hold_or_closed_status("Subcontracting Order", item.subcontracting_order)
+
 	def validate_items_qty(self):
 		for item in self.items:
 			if not (item.qty or item.rejected_qty):