feat(sales order on hold): check status of sales order to validate entry
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index e2d7307..95578cb 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -257,11 +257,11 @@
 		so_warehouse = so_item and so_item[0]["warehouse"] or ""
 		return so_qty, so_warehouse
 
-	def check_close_sales_order(self, ref_fieldname):
+	def check_sales_order_on_hold_or_close(self, ref_fieldname):
 		for d in self.get("items"):
 			if d.get(ref_fieldname):
 				status = frappe.db.get_value("Sales Order", d.get(ref_fieldname), "status")
-				if status == "Closed":
+				if status == "Closed" or status == "On Hold":
 					frappe.throw(_("Sales Order {0} is {1}").format(d.get(ref_fieldname), status))
 
 	def update_reserved_qty(self):