* prevent premature escape when item has serial no and batch no * fetch actual_batch_qty for item * add available_qty to dialog * remove expired batches from drop-down * Update queries.py
This commit is contained in:
parent
d7216b559f
commit
2a4fefc6ff
@ -410,3 +410,14 @@ def get_doctype_wise_filters(filters):
|
|||||||
for row in filters:
|
for row in filters:
|
||||||
filter_dict[row[0]].append(row)
|
filter_dict[row[0]].append(row)
|
||||||
return filter_dict
|
return filter_dict
|
||||||
|
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
|
def get_batch_numbers(doctype, txt, searchfield, start, page_len, filters):
|
||||||
|
query = 'select batch_id from `tabBatch` ' \
|
||||||
|
'where (`tabBatch`.expiry_date >= CURDATE() or `tabBatch`.expiry_date IS NULL)'
|
||||||
|
|
||||||
|
if filters and filters.get('item_code'):
|
||||||
|
query += 'where item = %(item_code)s' % filters
|
||||||
|
|
||||||
|
return frappe.db.sql(query)
|
||||||
|
@ -98,11 +98,14 @@ erpnext.SerialNoBatchSelector = Class.extend({
|
|||||||
let d = this.item;
|
let d = this.item;
|
||||||
if (d.has_serial_no && d.serial_no) {
|
if (d.has_serial_no && d.serial_no) {
|
||||||
this.dialog.set_value('serial_no', d.serial_no);
|
this.dialog.set_value('serial_no', d.serial_no);
|
||||||
} else if (d.batch_no) {
|
}
|
||||||
|
|
||||||
|
if (d.batch_no) {
|
||||||
this.dialog.fields_dict.batches.df.data.push({
|
this.dialog.fields_dict.batches.df.data.push({
|
||||||
'batch_no': d.batch_no,
|
'batch_no': d.batch_no,
|
||||||
'actual_qty': d.actual_qty,
|
'actual_qty': d.actual_qty,
|
||||||
'selected_qty': d.qty
|
'selected_qty': d.qty,
|
||||||
|
'available_qty': d.actual_batch_qty
|
||||||
});
|
});
|
||||||
|
|
||||||
this.dialog.fields_dict.batches.grid.refresh();
|
this.dialog.fields_dict.batches.grid.refresh();
|
||||||
@ -204,7 +207,10 @@ erpnext.SerialNoBatchSelector = Class.extend({
|
|||||||
label: __('Select Batch'),
|
label: __('Select Batch'),
|
||||||
in_list_view:1,
|
in_list_view:1,
|
||||||
get_query: function() {
|
get_query: function() {
|
||||||
return {filters: {item: me.item_code }};
|
return {
|
||||||
|
filters: {item: me.item_code },
|
||||||
|
query: 'erpnext.controllers.queries.get_batch_numbers'
|
||||||
|
};
|
||||||
},
|
},
|
||||||
onchange: function(e) {
|
onchange: function(e) {
|
||||||
let val = this.get_value();
|
let val = this.get_value();
|
||||||
|
@ -84,6 +84,7 @@ def get_item_details(args):
|
|||||||
|
|
||||||
if out.has_batch_no and not args.get("batch_no"):
|
if out.has_batch_no and not args.get("batch_no"):
|
||||||
out.batch_no = get_batch_no(out.item_code, out.warehouse, out.qty)
|
out.batch_no = get_batch_no(out.item_code, out.warehouse, out.qty)
|
||||||
|
out.update(get_batch_qty(out.batch_no, out.warehouse, out.item_code))
|
||||||
|
|
||||||
if args.transaction_date and item.lead_time_days:
|
if args.transaction_date and item.lead_time_days:
|
||||||
out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
|
out.schedule_date = out.lead_time_date = add_days(args.transaction_date,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user