Merge pull request #6861 from rmehta/item-dashboard-enhancements
[minor] enhancements to item dashboard, filter by item group and show item name fixes #6459
This commit is contained in:
commit
82d1b23dcb
@ -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,
|
||||
|
@ -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)
|
||||
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)
|
||||
|
@ -7,7 +7,9 @@
|
||||
<div class="col-sm-3 small" style="margin-top: 8px;">
|
||||
{% if show_item %}
|
||||
<a data-type="item"
|
||||
data-name="{{ d.item_code }}">{{ d.item_code }}</a>
|
||||
data-name="{{ d.item_code }}">{{ d.item_code }}
|
||||
{% if d.item_name != d.item_code %}({{ d.item_name }}){% endif %}
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-sm-4 small">
|
||||
|
@ -28,6 +28,17 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
}
|
||||
});
|
||||
|
||||
page.item_group_field = page.add_field({
|
||||
fieldname: 'item_group',
|
||||
label: __('Item Group'),
|
||||
fieldtype:'Link',
|
||||
options:'Item Group',
|
||||
change: function() {
|
||||
page.item_dashboard.start = 0;
|
||||
page.item_dashboard.refresh();
|
||||
}
|
||||
});
|
||||
|
||||
page.sort_selector = new frappe.ui.SortSelector({
|
||||
parent: page.wrapper.find('.page-form'),
|
||||
args: {
|
||||
@ -58,6 +69,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
||||
page.item_dashboard.before_refresh = function() {
|
||||
this.item_code = page.item_field.get_value();
|
||||
this.warehouse = page.warehouse_field.get_value();
|
||||
this.item_group = page.item_group_field.get_value();
|
||||
}
|
||||
|
||||
page.item_dashboard.refresh();
|
||||
|
Loading…
x
Reference in New Issue
Block a user