blob: 8762920c6e161d216bf02b61adb3ffcc014fa04b [file] [log] [blame]
Rushabh Mehta621283c2016-04-21 19:00:34 +05301from __future__ import unicode_literals
2
3import frappe
Suraj Shettyc1658382019-01-24 15:45:46 +05304from frappe.model.db_query import DatabaseQuery
Rushabh Mehta621283c2016-04-21 19:00:34 +05305
6@frappe.whitelist()
Rushabh Mehta057db062016-11-08 12:40:04 +05307def get_data(item_code=None, warehouse=None, item_group=None,
8 start=0, sort_by='actual_qty', sort_order='desc'):
9 '''Return data to render the item dashboard'''
Suraj Shettyc1658382019-01-24 15:45:46 +053010 filters = []
Rushabh Mehta621283c2016-04-21 19:00:34 +053011 if item_code:
Suraj Shettyc1658382019-01-24 15:45:46 +053012 filters.append(['item_code', '=', item_code])
Rushabh Mehta621283c2016-04-21 19:00:34 +053013 if warehouse:
Suraj Shettyc1658382019-01-24 15:45:46 +053014 filters.append(['warehouse', '=', warehouse])
Rushabh Mehta057db062016-11-08 12:40:04 +053015 if item_group:
Suraj Shettyc1658382019-01-24 15:45:46 +053016 filters.append(['item_group', '=', item_group])
17 try:
18 # check if user has any restrictions based on user permissions on warehouse
19 if DatabaseQuery('Warehouse', user=frappe.session.user).build_match_conditions():
20 filters.append(['warehouse', 'in', [w.name for w in frappe.get_list('Warehouse')]])
21 except frappe.PermissionError:
22 # user does not have access to warehouse
23 return []
Rushabh Mehta057db062016-11-08 12:40:04 +053024
Suraj Shettyc1658382019-01-24 15:45:46 +053025 return frappe.db.get_all('Bin', fields=['item_code', 'warehouse', 'projected_qty',
26 'reserved_qty', 'reserved_qty_for_sub_contract', 'actual_qty', 'valuation_rate'],
27 or_filters={
28 'projected_qty': ['!=', 0],
29 'reserved_qty': ['!=', 0],
30 'reserved_qty_for_production': ['!=', 0],
31 'reserved_qty_for_sub_contract': ['!=', 0],
32 'actual_qty': ['!=', 0],
33 },
34 filters=filters,
35 order_by=sort_by + ' ' + sort_order,
36 limit_start=start,
37 limit_page_length='21')