refactor(minor): SRE functions
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 10a1221..5accaf6 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -623,13 +623,13 @@
 @frappe.whitelist()
 def make_delivery_note(source_name, target_doc=None, skip_item_mapping=False):
 	from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
-		get_stock_reservation_entry_for_voucher,
+		get_stock_reservation_entries_for_voucher,
 		has_reserved_stock,
 	)
 
 	def set_missing_values(source, target):
 		if not target.items and has_reserved_stock("Sales Order", source_name):
-			sre_list = get_stock_reservation_entry_for_voucher("Sales Order", source_name)
+			sre_list = get_stock_reservation_entries_for_voucher("Sales Order", source_name)
 			sre_dict = {d.pop("voucher_detail_no"): d for d in sre_list}
 
 			for item in source.get("items"):
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.py b/erpnext/stock/doctype/delivery_note/delivery_note.py
index 55a4975..77c435e 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.py
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.py
@@ -277,20 +277,20 @@
 	def update_stock_reservation_entry(self):
 		if not self.is_return:
 			from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
-				update_delivered_qty,
+				update_sre_delivered_qty,
 			)
 
 			for item in self.get("items"):
 				if item.against_sre:
-					update_delivered_qty(item.doctype, item.against_sre)
+					update_sre_delivered_qty(item.doctype, item.against_sre)
 
 	def validate_against_sre(self):
 		from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
-			get_stock_reservation_entry_for_items,
+			get_stock_reservation_entries_for_items,
 			has_reserved_stock,
 		)
 
-		sre_details = get_stock_reservation_entry_for_items(self.items)
+		sre_details = get_stock_reservation_entries_for_items(self.items)
 
 		for item in self.items:
 			if item.against_sre:
diff --git a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py
index 3c5b621..73cda72 100644
--- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py
+++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py
@@ -9,7 +9,7 @@
 
 
 class StockReservationEntry(TransactionBase):
-	def validate(self):
+	def validate(self) -> None:
 		from erpnext.stock.utils import validate_disabled_warehouse, validate_warehouse_company
 
 		self.validate_posting_time()
@@ -17,15 +17,15 @@
 		validate_disabled_warehouse(self.warehouse)
 		validate_warehouse_company(self.warehouse, self.company)
 
-	def on_submit(self):
+	def on_submit(self) -> None:
 		self.update_reserved_qty_in_voucher()
 		self.update_status()
 
-	def on_cancel(self):
+	def on_cancel(self) -> None:
 		self.update_reserved_qty_in_voucher()
 		self.update_status()
 
-	def validate_mandatory(self):
+	def validate_mandatory(self) -> None:
 		mandatory = [
 			"item_code",
 			"warehouse",
@@ -44,7 +44,7 @@
 			if not self.get(d):
 				frappe.throw(_("{0} is required").format(self.meta.get_label(d)))
 
-	def update_status(self, status=None, update_modified=True):
+	def update_status(self, status: str = None, update_modified: bool = True) -> None:
 		if not status:
 			if self.docstatus == 2:
 				status = "Cancelled"
@@ -62,41 +62,50 @@
 
 		frappe.db.set_value(self.doctype, self.name, "status", status, update_modified=update_modified)
 
-	def update_reserved_qty_in_voucher(self, update_modified=True):
-		sre = frappe.qb.DocType("Stock Reservation Entry")
-		reserved_qty = (
-			frappe.qb.from_(sre)
-			.select(Sum(sre.reserved_qty))
-			.where(
-				(sre.docstatus == 1)
-				& (sre.voucher_type == self.voucher_type)
-				& (sre.voucher_no == self.voucher_no)
-				& (sre.voucher_detail_no == self.voucher_detail_no)
+	def update_reserved_qty_in_voucher(
+		self, reserved_qty_field: str = "stock_reserved_qty", update_modified: bool = True
+	) -> None:
+		item_doctype = "Sales Order Item" if self.voucher_type == "Sales Order" else None
+
+		if item_doctype:
+			sre = frappe.qb.DocType("Stock Reservation Entry")
+			reserved_qty = (
+				frappe.qb.from_(sre)
+				.select(Sum(sre.reserved_qty))
+				.where(
+					(sre.docstatus == 1)
+					& (sre.voucher_type == self.voucher_type)
+					& (sre.voucher_no == self.voucher_no)
+					& (sre.voucher_detail_no == self.voucher_detail_no)
+				)
+			).run(as_list=True)[0][0] or 0
+
+			frappe.db.set_value(
+				item_doctype,
+				self.voucher_detail_no,
+				reserved_qty_field,
+				reserved_qty,
+				update_modified=update_modified,
 			)
-		).run(as_list=True)[0][0] or 0
-
-		frappe.db.set_value(
-			"Sales Order Item",
-			self.voucher_detail_no,
-			"stock_reserved_qty",
-			reserved_qty,
-			update_modified=update_modified,
-		)
 
 
-def get_stock_reservation_entry_for_voucher(voucher_type, voucher_no, voucher_detail_no=None):
+def get_stock_reservation_entries_for_voucher(
+	voucher_type: str, voucher_no: str, voucher_detail_no: str = None, fields: list[str] = None
+) -> list[dict]:
+	if not fields or not isinstance(fields, list):
+		fields = [
+			"name",
+			"item_code",
+			"warehouse",
+			"voucher_detail_no",
+			"reserved_qty",
+			"delivered_qty",
+			"stock_uom",
+		]
+
 	sre = frappe.qb.DocType("Stock Reservation Entry")
 	query = (
 		frappe.qb.from_(sre)
-		.select(
-			sre.name,
-			sre.item_code,
-			sre.warehouse,
-			sre.voucher_detail_no,
-			sre.reserved_qty,
-			sre.delivered_qty,
-			sre.stock_uom,
-		)
 		.where(
 			(sre.docstatus == 1)
 			& (sre.voucher_type == voucher_type)
@@ -106,20 +115,27 @@
 		.orderby(sre.creation)
 	)
 
+	for field in fields:
+		query = query.select(sre[field])
+
 	if voucher_detail_no:
 		query = query.where(sre.voucher_detail_no == voucher_detail_no)
 
 	return query.run(as_dict=True)
 
 
-def has_reserved_stock(voucher_type, voucher_no, voucher_detail_no=None):
-	if get_stock_reservation_entry_for_voucher(voucher_type, voucher_no, voucher_detail_no):
+def has_reserved_stock(voucher_type: str, voucher_no: str, voucher_detail_no: str = None) -> bool:
+	if get_stock_reservation_entries_for_voucher(
+		voucher_type, voucher_no, voucher_detail_no, fields=["name"]
+	):
 		return True
 
 	return False
 
 
-def update_delivered_qty(doctype, sre_name, sre_field="against_sre", qty_field="stock_qty"):
+def update_sre_delivered_qty(
+	doctype: str, sre_name: str, sre_field: str = "against_sre", qty_field: str = "stock_qty"
+) -> None:
 	table = frappe.qb.DocType(doctype)
 	delivered_qty = (
 		frappe.qb.from_(table)
@@ -133,32 +149,35 @@
 	sre_doc.update_status()
 
 
-def get_stock_reservation_entry_for_items(items, sre_field="against_sre"):
+def get_stock_reservation_entries_for_items(
+	items: list[dict | object], sre_field: str = "against_sre"
+) -> dict[dict]:
 	sre_details = {}
 
-	sre_list = [item.get(sre_field) for item in items if item.get(sre_field)]
+	if items:
+		sre_list = [item.get(sre_field) for item in items if item.get(sre_field)]
 
-	if sre_list:
-		sre = frappe.qb.DocType("Stock Reservation Entry")
-		sre_data = (
-			frappe.qb.from_(sre)
-			.select(
-				sre.name,
-				sre.status,
-				sre.docstatus,
-				sre.item_code,
-				sre.warehouse,
-				sre.voucher_type,
-				sre.voucher_no,
-				sre.voucher_detail_no,
-				sre.reserved_qty,
-				sre.delivered_qty,
-				sre.stock_uom,
-			)
-			.where(sre.name.isin(sre_list))
-			.orderby(sre.creation)
-		).run(as_dict=True)
+		if sre_list:
+			sre = frappe.qb.DocType("Stock Reservation Entry")
+			sre_data = (
+				frappe.qb.from_(sre)
+				.select(
+					sre.name,
+					sre.status,
+					sre.docstatus,
+					sre.item_code,
+					sre.warehouse,
+					sre.voucher_type,
+					sre.voucher_no,
+					sre.voucher_detail_no,
+					sre.reserved_qty,
+					sre.delivered_qty,
+					sre.stock_uom,
+				)
+				.where(sre.name.isin(sre_list))
+				.orderby(sre.creation)
+			).run(as_dict=True)
 
-		sre_details = {d.name: d for d in sre_data}
+			sre_details = {d.name: d for d in sre_data}
 
 	return sre_details