From a4471865a9485cd9aab33abca8f86354741c474f Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Fri, 25 Apr 2025 14:45:01 +0530 Subject: [PATCH] fix: enable use serial / batch fields on batch selection --- erpnext/public/js/controllers/transaction.js | 18 ++++++++++-------- .../stock/doctype/stock_entry/stock_entry.js | 16 ++++++++++++++++ .../stock_reconciliation.js | 17 +++++++++++++++-- 3 files changed, 41 insertions(+), 10 deletions(-) diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index e6d78339454..af141e2edf2 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -795,6 +795,10 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe return; } + if (item.serial_no) { + item.use_serial_batch_fields = 1 + } + if (item && item.serial_no) { if (!item.item_code) { this.frm.trigger("item_code", cdt, cdn); @@ -1358,13 +1362,6 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe } } - batch_no(doc, cdt, cdn) { - let item = frappe.get_doc(cdt, cdn); - if (!this.is_a_mapped_document(item)) { - this.apply_price_list(item, true); - } - } - toggle_conversion_factor(item) { // toggle read only property for conversion factor field if the uom and stock uom are same if(this.frm.get_field('items').grid.fields_map.conversion_factor) { @@ -1590,7 +1587,12 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe batch_no(frm, cdt, cdn) { let row = locals[cdt][cdn]; - if (row.use_serial_batch_fields && row.batch_no) { + + if (row.batch_no) { + row.use_serial_batch_fields = 1 + } + + if (row.batch_no) { var params = this._get_args(row); params.batch_no = row.batch_no; params.uom = row.uom; diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 0c619b22a33..223789fc8a3 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -950,6 +950,15 @@ frappe.ui.form.on("Stock Entry Detail", { }, batch_no(frm, cdt, cdn) { + let row = locals[cdt][cdn]; + + if (row.batch_no) { + frappe.model.set_value(cdt, cdn, { + use_serial_batch_fields: 1, + serial_and_batch_bundle: "", + }); + } + validate_sample_quantity(frm, cdt, cdn); }, @@ -1074,6 +1083,13 @@ erpnext.stock.StockEntry = class StockEntry extends erpnext.stock.StockControlle serial_no(doc, cdt, cdn) { var item = frappe.get_doc(cdt, cdn); + if (item.serial_no) { + frappe.model.set_value(cdt, cdn, { + use_serial_batch_fields: 1, + serial_and_batch_bundle: "", + }); + } + if (item?.serial_no) { // Replace all occurences of comma with line feed item.serial_no = item.serial_no.replace(/,/g, "\n"); diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js index 9307eee46f1..44dd2952409 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.js @@ -289,8 +289,16 @@ frappe.ui.form.on("Stock Reconciliation Item", { frm.events.set_valuation_rate_and_qty(frm, cdt, cdn); }, - batch_no: function (frm, cdt, cdn) { - frm.events.set_valuation_rate_and_qty(frm, cdt, cdn); + batch_no(frm, cdt, cdn) { + let row = locals[cdt][cdn]; + if (row.batch_no) { + frappe.model.set_value(cdt, cdn, { + use_serial_batch_fields: 1, + serial_and_batch_bundle: "", + }); + + frm.events.set_valuation_rate_and_qty(frm, cdt, cdn); + } }, qty: function (frm, cdt, cdn) { @@ -310,6 +318,11 @@ frappe.ui.form.on("Stock Reconciliation Item", { var child = locals[cdt][cdn]; if (child.serial_no) { + frappe.model.set_value(cdt, cdn, { + use_serial_batch_fields: 1, + serial_and_batch_bundle: "", + }); + const serial_nos = child.serial_no.trim().split("\n"); frappe.model.set_value(cdt, cdn, "qty", serial_nos.length); }