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
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index d555532..60ba2f6 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -232,7 +232,9 @@
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 @@
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 1c5df6e..fa831ae 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -481,16 +481,18 @@
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() {