fix: qty based check for stock reservation of serial-batch items based on qty
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index 1ed1c47..e9381d4 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -1833,20 +1833,20 @@
 		elif batch_nos := [entry.batch_no for entry in sbb_entries if entry.batch_no]:
 			validate_reserved_batch_nos(kwargs.item_code, kwargs.warehouse, batch_nos)
 
-	else:
-		precision = cint(frappe.db.get_default("float_precision")) or 2
-		balance_qty = get_stock_balance(kwargs.item_code, kwargs.warehouse)
+	# Qty based validation for non-serial-batch items OR SRE with Reservation Based On Qty.
+	precision = cint(frappe.db.get_default("float_precision")) or 2
+	balance_qty = get_stock_balance(kwargs.item_code, kwargs.warehouse)
 
-		diff = flt(balance_qty - kwargs.get("reserved_stock", 0), precision)
-		if diff < 0 and abs(diff) > 0.0001:
-			msg = _("{0} units of {1} needed in {2} on {3} {4} to complete this transaction.").format(
-				abs(diff),
-				frappe.get_desk_link("Item", kwargs.item_code),
-				frappe.get_desk_link("Warehouse", kwargs.warehouse),
-				nowdate(),
-				nowtime(),
-			)
-			frappe.throw(msg, title=_("Reserved Stock"))
+	diff = flt(balance_qty - kwargs.get("reserved_stock", 0), precision)
+	if diff < 0 and abs(diff) > 0.0001:
+		msg = _("{0} units of {1} needed in {2} on {3} {4} to complete this transaction.").format(
+			abs(diff),
+			frappe.get_desk_link("Item", kwargs.item_code),
+			frappe.get_desk_link("Warehouse", kwargs.warehouse),
+			nowdate(),
+			nowtime(),
+		)
+		frappe.throw(msg, title=_("Reserved Stock"))
 
 
 def validate_reserved_serial_nos(item_code, warehouse, serial_nos):