From da1455198e18ce7acf1cf2817793a419c78e25e7 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 20 Mar 2023 12:03:47 +0530 Subject: [PATCH] chore: field validation for `Stock Reservation Entry` --- .../stock_reservation_entry.js | 10 +++--- .../stock_reservation_entry.py | 35 ++++++++++++++++--- 2 files changed, 36 insertions(+), 9 deletions(-) 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 c898816d0e5..666fd24329b 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 0b9f4a9357d..50a05bce457 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)