Merge branch 'develop' into fix/stock-entry/sco
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 1bbe570..a952a93 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -815,7 +815,8 @@
return {
"filters": {
"docstatus": 1,
- "company": me.frm.doc.company
+ "company": me.frm.doc.company,
+ "status": ["not in", ["Completed", "Closed"]]
}
};
});
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 211401a..76bba8a 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -117,6 +117,7 @@
self.validate_work_order()
self.validate_bom()
self.validate_purchase_order()
+ self.validate_subcontracting_order()
if self.purpose in ("Manufacture", "Repack"):
self.mark_finished_and_scrap_items()
@@ -959,6 +960,20 @@
)
)
+ def validate_subcontracting_order(self):
+ if self.get("subcontracting_order") and self.purpose in [
+ "Send to Subcontractor",
+ "Material Transfer",
+ ]:
+ sco_status = frappe.db.get_value("Subcontracting Order", self.subcontracting_order, "status")
+
+ if sco_status == "Closed":
+ frappe.throw(
+ _("Cannot create Stock Entry against a closed Subcontracting Order {0}.").format(
+ self.subcontracting_order
+ )
+ )
+
def mark_finished_and_scrap_items(self):
if any([d.item_code for d in self.items if (d.is_finished_item and d.t_warehouse)]):
return