From feff40a9302616d20d42c2cd38e11aabf4092f9e Mon Sep 17 00:00:00 2001 From: Sambhaji Kolate Date: Wed, 11 Mar 2015 11:50:28 +0530 Subject: [PATCH] update get_batch_no query to sort batch with expiry date small fix to avoid error msg if item_code not selected and batch_no is entered --- erpnext/controllers/queries.py | 6 ++++-- erpnext/selling/sales_common.js | 22 ++++++++++++---------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index d555532419..60ba2f6fcb 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -232,7 +232,9 @@ def get_batch_no(doctype, txt, searchfield, start, page_len, filters): from erpnext.controllers.queries import get_match_cond if filters.has_key('warehouse'): - return frappe.db.sql("""select batch_no from `tabStock Ledger Entry` sle + return frappe.db.sql("""select batch_no, round(sum(actual_qty),2), stock_uom, expiry_date from `tabStock Ledger Entry` sle + INNER JOIN `tabBatch` + on sle.batch_no = `tabBatch`.batch_id where item_code = '%(item_code)s' and warehouse = '%(warehouse)s' and batch_no like '%(txt)s' @@ -242,7 +244,7 @@ def get_batch_no(doctype, txt, searchfield, start, page_len, filters): and docstatus != 2) %(mcond)s group by batch_no having sum(actual_qty) > 0 - order by batch_no desc + order by expiry_date,batch_no desc limit %(start)s, %(page_len)s """ % {'item_code': filters['item_code'], 'warehouse': filters['warehouse'], 'posting_date': filters['posting_date'], 'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype), diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js index 1c5df6e304..fa831ae0c2 100644 --- a/erpnext/selling/sales_common.js +++ b/erpnext/selling/sales_common.js @@ -481,16 +481,18 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ batch_no: function(doc, cdt, cdn) { var me = this; var item = frappe.get_doc(cdt, cdn); - return this.frm.call({ - method: "erpnext.stock.get_item_details.get_batch_qty", - child: item, - args: { - "batch_no": item.batch_no, - "warehouse": item.warehouse, - "item_code": item.item_code - }, - "fieldname": "actual_batch_qty" - }); + if(item.item_code) { + return this.frm.call({ + method: "erpnext.stock.get_item_details.get_batch_qty", + child: item, + args: { + "batch_no": item.batch_no, + "warehouse": item.warehouse, + "item_code": item.item_code + }, + "fieldname": "actual_batch_qty" + }); + } }, set_dynamic_labels: function() {