fix: make DN item reference mandatory for Packing Slip Item
diff --git a/erpnext/stock/doctype/packing_slip/packing_slip.py b/erpnext/stock/doctype/packing_slip/packing_slip.py
index d1c122d..b356a20 100644
--- a/erpnext/stock/doctype/packing_slip/packing_slip.py
+++ b/erpnext/stock/doctype/packing_slip/packing_slip.py
@@ -38,6 +38,7 @@
 
 		self.validate_delivery_note()
 		self.validate_case_nos()
+		self.validate_mandatory()
 
 		validate_uom_is_integer(self, "stock_uom", "qty")
 		validate_uom_is_integer(self, "weight_uom", "net_weight")
@@ -90,6 +91,13 @@
 					)
 				)
 
+	def validate_mandatory(self):
+		for item in self.items:
+			if not item.dn_detail and not item.pi_detail:
+				frappe.throw(
+					_("Row {0}: Either Delivery Note Item or Packed Item reference is mandatory").format(item.idx)
+				)
+
 	def set_missing_values(self):
 		if not self.from_case_no:
 			self.from_case_no = self.get_recommended_case_no()