[fix] Item or Warehouse filter mandatory in Stock Balance if number of sle is greater than 500000
This commit is contained in:
parent
01a8473996
commit
d1f85c4fe6
@ -22,40 +22,14 @@ frappe.query_reports["Stock Balance"] = {
|
|||||||
"label": __("Item"),
|
"label": __("Item"),
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"width": "80",
|
"width": "80",
|
||||||
"options": "Item",
|
"options": "Item"
|
||||||
"reqd": 1,
|
|
||||||
"on_change": function(me) {
|
|
||||||
frappe.query_reports["Stock Balance"].toggle_mandatory_filters(me);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"fieldname": "warehouse",
|
"fieldname": "warehouse",
|
||||||
"label": __("Warehouse"),
|
"label": __("Warehouse"),
|
||||||
"fieldtype": "Link",
|
"fieldtype": "Link",
|
||||||
"width": "80",
|
"width": "80",
|
||||||
"options": "Warehouse",
|
"options": "Warehouse"
|
||||||
"reqd": 1,
|
|
||||||
"on_change": function(me) {
|
|
||||||
frappe.query_reports["Stock Balance"].toggle_mandatory_filters(me);
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
],
|
]
|
||||||
|
|
||||||
"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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,8 @@ from frappe.utils import flt, getdate
|
|||||||
def execute(filters=None):
|
def execute(filters=None):
|
||||||
if not filters: filters = {}
|
if not filters: filters = {}
|
||||||
|
|
||||||
|
validate_filters(filters)
|
||||||
|
|
||||||
columns = get_columns()
|
columns = get_columns()
|
||||||
item_map = get_item_details(filters)
|
item_map = get_item_details(filters)
|
||||||
iwb_map = get_item_warehouse_map(filters)
|
iwb_map = get_item_warehouse_map(filters)
|
||||||
@ -137,3 +139,10 @@ def get_item_details(filters):
|
|||||||
from tabItem {condition}""".format(condition=condition), value, as_dict=1)
|
from tabItem {condition}""".format(condition=condition), value, as_dict=1)
|
||||||
|
|
||||||
return dict((d.name, d) for d in items)
|
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"))
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user