fix: Usability fixes to Serial No and batch selector (#18071)

* fix: Usability fixes to Serial No and batch selector

* fix: Codacy

* Update sales_common.js
This commit is contained in:
Deepesh Garg 2019-06-28 14:08:08 +05:30 committed by Nabin Hait
parent a15d100cbd
commit fb29ffc90c
2 changed files with 29 additions and 5 deletions

View File

@ -44,6 +44,13 @@ erpnext.SerialNoBatchSelector = Class.extend({
label: __(me.warehouse_details.type), label: __(me.warehouse_details.type),
default: me.warehouse_details.name, default: me.warehouse_details.name,
onchange: function(e) { onchange: function(e) {
if(me.has_batch) {
fields = fields.concat(me.get_batch_fields());
} else {
fields = fields.concat(me.get_serial_no_fields());
}
me.warehouse_details.name = this.get_value(); me.warehouse_details.name = this.get_value();
var batches = this.layout.fields_dict.batches; var batches = this.layout.fields_dict.batches;
if(batches) { if(batches) {
@ -263,6 +270,15 @@ erpnext.SerialNoBatchSelector = Class.extend({
get_batch_fields: function() { get_batch_fields: function() {
var me = this; var me = this;
let filters = {
item_code: me.item_code
}
if (me.warehouse || me.warehouse_details.name) {
filters['warehouse'] = me.warehouse || me.warehouse_details.name;
}
return [ return [
{fieldtype:'Section Break', label: __('Batches')}, {fieldtype:'Section Break', label: __('Batches')},
{fieldname: 'batches', fieldtype: 'Table', label: __('Batch Entries'), {fieldname: 'batches', fieldtype: 'Table', label: __('Batch Entries'),
@ -276,8 +292,8 @@ erpnext.SerialNoBatchSelector = Class.extend({
'in_list_view': 1, 'in_list_view': 1,
get_query: function () { get_query: function () {
return { return {
filters: { item: me.item_code }, filters: filters,
query: 'erpnext.controllers.queries.get_batch_numbers' query: 'erpnext.controllers.queries.get_batch_no'
}; };
}, },
change: function () { change: function () {

View File

@ -229,6 +229,9 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
}, },
callback:function(r){ callback:function(r){
if (in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) { if (in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
if (doc.doctype === 'Sales Invoice' && (!doc.update_stock)) return;
me.set_batch_number(cdt, cdn); me.set_batch_number(cdt, cdn);
me.batch_no(doc, cdt, cdn); me.batch_no(doc, cdt, cdn);
} }
@ -372,13 +375,18 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
this._super(doc, cdt, cdn, dont_fetch_price_list_rate); this._super(doc, cdt, cdn, dont_fetch_price_list_rate);
if(frappe.meta.get_docfield(cdt, "stock_qty", cdn) && if(frappe.meta.get_docfield(cdt, "stock_qty", cdn) &&
in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) { in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
if (doc.doctype === 'Sales Invoice' && (!doc.update_stock)) return;
this.set_batch_number(cdt, cdn); this.set_batch_number(cdt, cdn);
} }
}, },
qty: function(doc, cdt, cdn) { qty: function(doc, cdt, cdn) {
this._super(doc, cdt, cdn); this._super(doc, cdt, cdn);
if(in_list(['Delivery Note', 'Sales Invoice'], doc.doctype)) {
if (doc.doctype === 'Sales Invoice' && (!doc.update_stock)) return;
this.set_batch_number(cdt, cdn); this.set_batch_number(cdt, cdn);
}
}, },
/* Determine appropriate batch number and set it in the form. /* Determine appropriate batch number and set it in the form.