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