fix: validate sales order linked work order creation on server side
diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py
index 9873efa..59ad678 100644
--- a/erpnext/manufacturing/doctype/work_order/work_order.py
+++ b/erpnext/manufacturing/doctype/work_order/work_order.py
@@ -56,6 +56,7 @@
def validate_sales_order(self):
if self.sales_order:
+ self.check_sales_order_on_hold_or_close()
so = frappe.db.sql("""
select so.name, so_item.delivery_date, so.project
from `tabSales Order` so
@@ -91,6 +92,11 @@
else:
frappe.throw(_("Sales Order {0} is not valid").format(self.sales_order))
+ def check_sales_order_on_hold_or_close(self):
+ status = frappe.db.get_value("Sales Order", self.sales_order, "status")
+ if status in ("Closed", "On Hold"):
+ frappe.throw(_("Sales Order {0} is {1}").format(self.sales_order, status))
+
def set_default_warehouse(self):
if not self.wip_warehouse:
self.wip_warehouse = frappe.db.get_single_value("Manufacturing Settings", "default_wip_warehouse")