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()) {
|
if (frm.is_new()) {
|
||||||
frappe.db.get_single_value("Stock Settings", "enable_stock_reservation").then((value) => {
|
if (frm.doc.__onload && frm.doc.__onload.enable_stock_reservation) {
|
||||||
if (value) {
|
if (frm.doc.__onload.reserve_stock_on_so_submission) {
|
||||||
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.
|
// 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);
|
frm.set_value("reserve_stock", value ? 1 : 0);
|
||||||
})
|
}
|
||||||
} else {
|
} else {
|
||||||
// If `Stock Reservation` is disabled in Stock Settings, set Reserve Stock to 0 and read only.
|
// If `Stock Reservation` is disabled in Stock Settings, set Reserve Stock to 0 and read only.
|
||||||
frm.set_value("reserve_stock", 0);
|
frm.set_value("reserve_stock", 0);
|
||||||
frm.set_df_property("reserve_stock", "read_only", 1);
|
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.
|
// 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'));
|
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 (
|
from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
|
||||||
cancel_stock_reservation_entries,
|
cancel_stock_reservation_entries,
|
||||||
get_sre_reserved_qty_details_for_voucher,
|
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.get_item_details import get_default_bom, get_price_list_rate
|
||||||
from erpnext.stock.stock_balance import get_reserved_qty, update_bin_qty
|
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)
|
super(SalesOrder, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def onload(self) -> None:
|
def onload(self) -> None:
|
||||||
if frappe.get_cached_value("Stock Settings", None, "enable_stock_reservation"):
|
stock_settings = frappe.get_doc("Stock Settings")
|
||||||
from erpnext.stock.doctype.stock_reservation_entry.stock_reservation_entry import (
|
self.set_onload("enable_stock_reservation", stock_settings.enable_stock_reservation)
|
||||||
has_reserved_stock,
|
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))
|
||||||
if has_reserved_stock(self.doctype, self.name):
|
self.set_onload("has_unreserved_stock", self.has_unreserved_stock())
|
||||||
self.set_onload("has_reserved_stock", True)
|
|
||||||
|
|
||||||
if self.has_unreserved_stock():
|
|
||||||
self.set_onload("has_unreserved_stock", True)
|
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
super(SalesOrder, self).validate()
|
super(SalesOrder, self).validate()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user