From c423d6f2e4f87fdf1e97d0aaa2458970e2bc3229 Mon Sep 17 00:00:00 2001 From: Mangesh-Khairnar Date: Wed, 6 Mar 2019 10:36:18 +0530 Subject: [PATCH] fix: validate sales order linked work order creation on server side --- erpnext/manufacturing/doctype/work_order/work_order.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 9873efa124b..59ad6789555 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -56,6 +56,7 @@ class WorkOrder(Document): 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 @@ class WorkOrder(Document): 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")