chore: field validation for `Stock Reservation Entry`
diff --git a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.js b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.js
index c898816..666fd24 100644
--- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.js
+++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.js
@@ -1,8 +1,8 @@
// Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
// For license information, please see license.txt
-// frappe.ui.form.on("Stock Reservation Entry", {
-// refresh(frm) {
-
-// },
-// });
+frappe.ui.form.on("Stock Reservation Entry", {
+ refresh(frm) {
+ frm.page.btn_primary.hide()
+ },
+});
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 0b9f4a9..50a05bc 100644
--- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py
+++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py
@@ -1,9 +1,36 @@
# Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors
# For license information, please see license.txt
-# import frappe
-from frappe.model.document import Document
+import frappe
+from frappe import _
+
+from erpnext.utilities.transaction_base import TransactionBase
-class StockReservationEntry(Document):
- pass
+class StockReservationEntry(TransactionBase):
+ def validate(self):
+ from erpnext.stock.utils import validate_disabled_warehouse, validate_warehouse_company
+
+ self.validate_posting_time()
+ self.validate_mandatory()
+ validate_disabled_warehouse(self.warehouse)
+ validate_warehouse_company(self.warehouse, self.company)
+
+ def validate_mandatory(self):
+ mandatory = [
+ "item_code",
+ "warehouse",
+ "posting_date",
+ "posting_time",
+ "voucher_type",
+ "voucher_no",
+ "voucher_detail_no",
+ "reserved_qty",
+ "company",
+ ]
+ for d in mandatory:
+ if not self.get(d):
+ frappe.throw(_("{0} is required").format(self.meta.get_label(d)))
+
+ def on_cancel(self):
+ frappe.db.set_value(self.doctype, self.name, "is_cancelled", 1)