diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index fcd7c15a7ca..db85a3ec99e 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -195,10 +195,6 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ this._super(doc, cdt, cdn); }, - batch_no: function(doc, cdt, cdn) { - this._super(doc, cdt, cdn); - }, - received_qty: function(doc, cdt, cdn) { this.calculate_accepted_qty(doc, cdt, cdn) }, diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 7bd72c6b6bd..29d3c6d8b9a 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1104,11 +1104,6 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ } }, - batch_no: function(doc, cdt, cdn) { - let item = frappe.get_doc(cdt, cdn); - this.apply_price_list(item, true); - }, - toggle_conversion_factor: function(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) { @@ -1525,7 +1520,9 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({ return; } - if (me.in_apply_price_list == true) return; + let for_batch = (item && item.batch_no) ? true : false; + + if (me.in_apply_price_list == true && (!for_batch)) return; me.in_apply_price_list = true; return this.frm.call({ diff --git a/erpnext/public/js/utils/serial_no_batch_selector.js b/erpnext/public/js/utils/serial_no_batch_selector.js index 2623c3c1a73..cd2f9509e5b 100644 --- a/erpnext/public/js/utils/serial_no_batch_selector.js +++ b/erpnext/public/js/utils/serial_no_batch_selector.js @@ -154,7 +154,7 @@ erpnext.SerialNoBatchSelector = Class.extend({ if (this.item.serial_no) { this.dialog.fields_dict.serial_no.set_value(this.item.serial_no); } - + if (this.has_batch && !this.has_serial_no && d.batch_no) { this.frm.doc.items.forEach(data => { if(data.item_code == d.item_code) { @@ -220,6 +220,7 @@ erpnext.SerialNoBatchSelector = Class.extend({ if (i !== 0 && !this.batch_exists(batch_no)) { row = this.frm.add_child("items", { ...this.item }); + frappe.model.set_value(row.doctype, row.name, 'batch_no', batch_no); } else { row = this.frm.doc.items.find(i => i.batch_no === batch_no); } @@ -231,7 +232,7 @@ erpnext.SerialNoBatchSelector = Class.extend({ this.map_row_values(row, batch, 'batch_no', 'selected_qty', this.values.warehouse); }); - } + } }, update_serial_no_item() { @@ -250,7 +251,7 @@ erpnext.SerialNoBatchSelector = Class.extend({ filters: { 'name': ["in", selected_serial_nos]}, fields: ["batch_no", "name"] }).then((data) => { - // data = [{batch_no: 'batch-1', name: "SR-001"}, + // data = [{batch_no: 'batch-1', name: "SR-001"}, // {batch_no: 'batch-2', name: "SR-003"}, {batch_no: 'batch-2', name: "SR-004"}] const batch_serial_map = data.reduce((acc, d) => { if (!acc[d['batch_no']]) acc[d['batch_no']] = []; @@ -336,6 +337,8 @@ erpnext.SerialNoBatchSelector = Class.extend({ }, change: function () { const batch_no = this.get_value(); + let val = this.get_value(); + if (!batch_no) { this.grid_row.on_grid_fields_dict .available_qty.set_value(0); diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index ce084646e15..5c3860684a7 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -326,6 +326,8 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ }); } }) + + me.apply_price_list(item, true); }, set_dynamic_labels: function() { @@ -399,10 +401,6 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ } }, - batch_no: function(doc, cdt, cdn) { - this._super(doc, cdt, cdn); - }, - qty: function(doc, cdt, cdn) { this._super(doc, cdt, cdn);