diff --git a/erpnext/stock/report/stock_balance/stock_balance.js b/erpnext/stock/report/stock_balance/stock_balance.js index 1af32ed34f..43b3657d10 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.js +++ b/erpnext/stock/report/stock_balance/stock_balance.js @@ -22,40 +22,14 @@ frappe.query_reports["Stock Balance"] = { "label": __("Item"), "fieldtype": "Link", "width": "80", - "options": "Item", - "reqd": 1, - "on_change": function(me) { - frappe.query_reports["Stock Balance"].toggle_mandatory_filters(me); - } + "options": "Item" }, { "fieldname": "warehouse", "label": __("Warehouse"), "fieldtype": "Link", "width": "80", - "options": "Warehouse", - "reqd": 1, - "on_change": function(me) { - frappe.query_reports["Stock Balance"].toggle_mandatory_filters(me); - } + "options": "Warehouse" }, - ], - - "toggle_mandatory_filters": function(me) { - var values = me.get_values(false); - var item_filter = me.filters_by_name["item_code"]; - var warehouse_filter = me.filters_by_name["warehouse"]; - - if (values.item_code) { - warehouse_filter.df.reqd = 0; - } else if (values.warehouse) { - item_filter.df.reqd = 0; - } else { - item_filter.df.reqd = 1; - warehouse_filter.df.reqd = 1; - } - - item_filter.set_mandatory(values.item_code); - warehouse_filter.set_mandatory(values.warehouse); - } + ] } diff --git a/erpnext/stock/report/stock_balance/stock_balance.py b/erpnext/stock/report/stock_balance/stock_balance.py index d465050a65..43b6b9a4f3 100644 --- a/erpnext/stock/report/stock_balance/stock_balance.py +++ b/erpnext/stock/report/stock_balance/stock_balance.py @@ -8,6 +8,8 @@ from frappe.utils import flt, getdate def execute(filters=None): if not filters: filters = {} + + validate_filters(filters) columns = get_columns() item_map = get_item_details(filters) @@ -137,3 +139,10 @@ def get_item_details(filters): from tabItem {condition}""".format(condition=condition), value, as_dict=1) return dict((d.name, d) for d in items) + +def validate_filters(filters): + if not (filters.get("item_code") or filters.get("warehouse")): + sle_count = flt(frappe.db.sql("""select count(name) from `tabStock Ledger Entry`""")[0][0]) + if sle_count > 500000: + frappe.throw(_("Please set filter based on Item or Warehouse")) + \ No newline at end of file