From 0b5f03e88cfa2cdfef5f4a3541c0e8a5693fdab7 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Sun, 23 Apr 2023 15:31:53 +0530 Subject: [PATCH] Revert "fix: Reserve and Unreserve buttons visibility in SO" This reverts commit cdb31816918c8d07344f9af4b7cdf43d0f2b959e. --- .../doctype/sales_order/sales_order.js | 22 ++++++++++--------- .../doctype/sales_order/sales_order.py | 13 +++++------ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index 417e93b4b0..37c229417f 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -66,16 +66,18 @@ frappe.ui.form.on("Sales Order", { } if (frm.is_new()) { - 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); + 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); } - } 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); - } + }) } } }, @@ -287,7 +289,7 @@ erpnext.selling.SalesOrderController = class SalesOrderController extends erpnex } // Stock Reservation > Reserve button will be only visible if the SO has unreserved stock. - if (this.frm.doc.__onload && this.frm.doc.__onload.enable_stock_reservation && this.frm.doc.__onload.has_unreserved_stock) { + if (this.frm.doc.__onload && 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 6abb8edd87..e9b5c0f966 100755 --- a/erpnext/selling/doctype/sales_order/sales_order.py +++ b/erpnext/selling/doctype/sales_order/sales_order.py @@ -50,13 +50,12 @@ class SalesOrder(SellingController): super(SalesOrder, self).__init__(*args, **kwargs) def onload(self) -> None: - 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()) + if frappe.get_cached_value("Stock Settings", None, "enable_stock_reservation"): + if self.has_unreserved_stock(): + self.set_onload("has_unreserved_stock", True) + + if has_reserved_stock(self.doctype, self.name): + self.set_onload("has_reserved_stock", True) def validate(self): super(SalesOrder, self).validate()