diff --git a/erpnext/stock/dashboard/item_dashboard.js b/erpnext/stock/dashboard/item_dashboard.js index 33296ee0c2..43bd6d42bf 100644 --- a/erpnext/stock/dashboard/item_dashboard.js +++ b/erpnext/stock/dashboard/item_dashboard.js @@ -46,6 +46,7 @@ erpnext.stock.ItemDashboard = Class.extend({ args: { item_code: this.item_code, warehouse: this.warehouse, + item_group: this.item_group, start: this.start, sort_by: this.sort_by, sort_order: this.sort_order, diff --git a/erpnext/stock/dashboard/item_dashboard.py b/erpnext/stock/dashboard/item_dashboard.py index 5a00b3d8dc..28ea045d5d 100644 --- a/erpnext/stock/dashboard/item_dashboard.py +++ b/erpnext/stock/dashboard/item_dashboard.py @@ -3,12 +3,38 @@ from __future__ import unicode_literals import frappe @frappe.whitelist() -def get_data(item_code=None, warehouse=None, start=0, sort_by='actual_qty', sort_order='desc'): - filters = {} +def get_data(item_code=None, warehouse=None, item_group=None, + start=0, sort_by='actual_qty', sort_order='desc'): + '''Return data to render the item dashboard''' + conditions = [] + values = [] if item_code: - filters['item_code'] = item_code + conditions.append('b.item_code=%s') + values.append(item_code) if warehouse: - filters['warehouse'] = warehouse - return frappe.get_list("Bin", filters=filters, fields=['item_code', 'warehouse', - 'projected_qty', 'reserved_qty', 'reserved_qty_for_production', 'actual_qty', 'valuation_rate'], - order_by='{0} {1}'.format(sort_by, sort_order), start=start, page_length = 21) \ No newline at end of file + conditions.append('b.warehouse=%s') + values.append(warehouse) + if item_group: + conditions.append('i.item_group=%s') + values.append(item_group) + + if conditions: + conditions = ' and ' + ' and '.join(conditions) + else: + conditions = '' + + return frappe.db.sql(''' + select + b.item_code, b.warehouse, b.projected_qty, b.reserved_qty, + b.reserved_qty_for_production, b.actual_qty, b.valuation_rate, i.item_name + from + tabBin b, tabItem i + where + b.item_code = i.name + {conditions} + order by + {sort_by} {sort_order} + limit + {start}, 21 + '''.format(conditions=conditions, sort_by=sort_by, sort_order=sort_order, + start=start), values, as_dict=True) diff --git a/erpnext/stock/dashboard/item_dashboard_list.html b/erpnext/stock/dashboard/item_dashboard_list.html index f9ffbb3956..c1792a9b96 100644 --- a/erpnext/stock/dashboard/item_dashboard_list.html +++ b/erpnext/stock/dashboard/item_dashboard_list.html @@ -7,7 +7,9 @@