fix: Reserve and Unreserve buttons visibility in SO
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 37c2294..417e93b 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -66,18 +66,16 @@
 			}
 
 			if (frm.is_new()) {
-				frappe.db.get_single_value("Stock Settings", "enable_stock_reservation").then((value) => {
-					if (value) {
-						frappe.db.get_single_value("Stock Settings", "reserve_stock_on_sales_order_submission").then((value) => {
-							// If `Reserve Stock on Sales Order Submission` is enabled in Stock Settings, set Reserve Stock to 1 else 0.
-							frm.set_value("reserve_stock", value ? 1 : 0);
-						})
-					} else {
-						// If `Stock Reservation` is disabled in Stock Settings, set Reserve Stock to 0 and read only.
-						frm.set_value("reserve_stock", 0);
-						frm.set_df_property("reserve_stock", "read_only", 1);
+				if (frm.doc.__onload && frm.doc.__onload.enable_stock_reservation) {
+					if (frm.doc.__onload.reserve_stock_on_so_submission) {
+						// If `Reserve Stock on Sales Order Submission` is enabled in Stock Settings, set Reserve Stock to 1 else 0.
+						frm.set_value("reserve_stock", value ? 1 : 0);
 					}
-				})
+				} else {
+					// If `Stock Reservation` is disabled in Stock Settings, set Reserve Stock to 0 and read only.
+					frm.set_value("reserve_stock", 0);
+					frm.set_df_property("reserve_stock", "read_only", 1);
+				}
 			}
 		}
 	},
@@ -289,7 +287,7 @@
 			}
 
 			// Stock Reservation > Reserve button will be only visible if the SO has unreserved stock.
-			if (this.frm.doc.__onload && this.frm.doc.__onload.has_unreserved_stock) {
+			if (this.frm.doc.__onload && this.frm.doc.__onload.enable_stock_reservation && this.frm.doc.__onload.has_unreserved_stock) {
 				this.frm.add_custom_button(__('Reserve'), () => this.create_stock_reservation_entries(), __('Stock Reservation'));
 			}
 
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index d6afd10..6abb8ed 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -33,6 +33,7 @@
 from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
 	cancel_stock_reservation_entries,
 	get_sre_reserved_qty_details_for_voucher,
+	has_reserved_stock,
 )
 from erpnext.stock.get_item_details import get_default_bom, get_price_list_rate
 from erpnext.stock.stock_balance import get_reserved_qty, update_bin_qty
@@ -49,16 +50,13 @@
 		super(SalesOrder, self).__init__(*args, **kwargs)
 
 	def onload(self) -> None:
-		if frappe.get_cached_value("Stock Settings", None, "enable_stock_reservation"):
-			from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
-				has_reserved_stock,
-			)
-
-			if has_reserved_stock(self.doctype, self.name):
-				self.set_onload("has_reserved_stock", True)
-
-			if self.has_unreserved_stock():
-				self.set_onload("has_unreserved_stock", True)
+		stock_settings = frappe.get_doc("Stock Settings")
+		self.set_onload("enable_stock_reservation", stock_settings.enable_stock_reservation)
+		self.set_onload(
+			"reserve_stock_on_so_submission", stock_settings.reserve_stock_on_sales_order_submission
+		)
+		self.set_onload("has_reserved_stock", has_reserved_stock(self.doctype, self.name))
+		self.set_onload("has_unreserved_stock", self.has_unreserved_stock())
 
 	def validate(self):
 		super(SalesOrder, self).validate()