diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 5456b6553ae..42d4cc51c40 100755 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -51,38 +51,7 @@ $.extend(erpnext, { }, setup_serial_or_batch_no: function () { - let grid_row = cur_frm.open_grid_row(); - if ( - !grid_row || - !grid_row.grid_form.fields_dict.serial_no || - grid_row.grid_form.fields_dict.serial_no.get_status() !== "Write" - ) - return; - - frappe.model.get_value( - "Item", - { name: grid_row.doc.item_code }, - ["has_serial_no", "has_batch_no"], - ({ has_serial_no, has_batch_no }) => { - Object.assign(grid_row.doc, { has_serial_no, has_batch_no }); - - if (has_serial_no) { - attach_selector_button( - __("Add Serial No"), - grid_row.grid_form.fields_dict.serial_no.$wrapper, - this, - grid_row - ); - } else if (has_batch_no) { - attach_selector_button( - __("Pick Batch No"), - grid_row.grid_form.fields_dict.batch_no.$wrapper, - this, - grid_row - ); - } - } - ); + // Deprecated in v15 }, route_to_adjustment_jv: (args) => { diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 0ba1b56272d..569d4e9c0a0 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -194,6 +194,7 @@ class StockEntry(StockController): if self.work_order: self.pro_doc = frappe.get_doc("Work Order", self.work_order) + self.validate_duplicate_serial_and_batch_bundle("items") self.validate_posting_time() self.validate_purpose() self.validate_item() diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index ccd7f64e6e7..64a6b6503cc 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -70,6 +70,7 @@ class StockReconciliation(StockController): self.validate_posting_time() self.set_current_serial_and_batch_bundle() self.set_new_serial_and_batch_bundle() + self.validate_duplicate_serial_and_batch_bundle("items") self.remove_items_with_no_change() self.validate_data() self.validate_expense_account()