fix: Reserve and Unreserve buttons visibility in SO
This commit is contained in:
parent
b70273b988
commit
cdb3181691
@ -66,18 +66,16 @@ frappe.ui.form.on("Sales Order", {
|
||||
}
|
||||
|
||||
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 @@ 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.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'));
|
||||
}
|
||||
|
||||
|
@ -33,6 +33,7 @@ from erpnext.stock.doctype.item.item import get_item_defaults
|
||||
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 @@ class SalesOrder(SellingController):
|
||||
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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user