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: {
|
args: {
|
||||||
item_code: this.item_code,
|
item_code: this.item_code,
|
||||||
warehouse: this.warehouse,
|
warehouse: this.warehouse,
|
||||||
|
item_group: this.item_group,
|
||||||
start: this.start,
|
start: this.start,
|
||||||
sort_by: this.sort_by,
|
sort_by: this.sort_by,
|
||||||
sort_order: this.sort_order,
|
sort_order: this.sort_order,
|
||||||
|
@ -3,12 +3,38 @@ from __future__ import unicode_literals
|
|||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_data(item_code=None, warehouse=None, start=0, sort_by='actual_qty', sort_order='desc'):
|
def get_data(item_code=None, warehouse=None, item_group=None,
|
||||||
filters = {}
|
start=0, sort_by='actual_qty', sort_order='desc'):
|
||||||
|
'''Return data to render the item dashboard'''
|
||||||
|
conditions = []
|
||||||
|
values = []
|
||||||
if item_code:
|
if item_code:
|
||||||
filters['item_code'] = item_code
|
conditions.append('b.item_code=%s')
|
||||||
|
values.append(item_code)
|
||||||
if warehouse:
|
if warehouse:
|
||||||
filters['warehouse'] = warehouse
|
conditions.append('b.warehouse=%s')
|
||||||
return frappe.get_list("Bin", filters=filters, fields=['item_code', 'warehouse',
|
values.append(warehouse)
|
||||||
'projected_qty', 'reserved_qty', 'reserved_qty_for_production', 'actual_qty', 'valuation_rate'],
|
if item_group:
|
||||||
order_by='{0} {1}'.format(sort_by, sort_order), start=start, page_length = 21)
|
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;">
|
<div class="col-sm-3 small" style="margin-top: 8px;">
|
||||||
{% if show_item %}
|
{% if show_item %}
|
||||||
<a data-type="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 %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4 small">
|
<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({
|
page.sort_selector = new frappe.ui.SortSelector({
|
||||||
parent: page.wrapper.find('.page-form'),
|
parent: page.wrapper.find('.page-form'),
|
||||||
args: {
|
args: {
|
||||||
@ -58,6 +69,7 @@ frappe.pages['stock-balance'].on_page_load = function(wrapper) {
|
|||||||
page.item_dashboard.before_refresh = function() {
|
page.item_dashboard.before_refresh = function() {
|
||||||
this.item_code = page.item_field.get_value();
|
this.item_code = page.item_field.get_value();
|
||||||
this.warehouse = page.warehouse_field.get_value();
|
this.warehouse = page.warehouse_field.get_value();
|
||||||
|
this.item_group = page.item_group_field.get_value();
|
||||||
}
|
}
|
||||||
|
|
||||||
page.item_dashboard.refresh();
|
page.item_dashboard.refresh();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user