From e1b2b3e995129d2d553d527d343da6a3a150b786 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Sat, 14 Jun 2014 15:26:10 +0530 Subject: [PATCH] Account common get_query --- erpnext/controllers/queries.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index a4d2b52916..789e7a331a 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -236,13 +236,21 @@ def get_batch_no(doctype, txt, searchfield, start, page_len, filters): 'page_len': page_len}) def get_account_list(doctype, txt, searchfield, start, page_len, filters): - if isinstance(filters, dict): - if not filters.get("group_or_ledger"): - filters["group_or_ledger"] = "Ledger" - elif isinstance(filters, list): - if "group_or_ledger" not in [d[0] for d in filters]: - filters.append(["Account", "group_or_ledger", "=", "Ledger"]) + filter_list = [] - return frappe.widgets.reportview.execute("Account", filters = filters, + if isinstance(filters, dict): + for key, val in filters.items(): + if isinstance(val, (list, tuple)): + filter_list.append([doctype, key, val[0], val[1]]) + else: + filter_list.append([doctype, key, "=", val]) + + if "group_or_ledger" not in [d[1] for d in filter_list]: + filter_list.append(["Account", "group_or_ledger", "=", "Ledger"]) + + if searchfield and txt: + filter_list.append([doctype, searchfield, "like", "%%%s%%" % txt]) + + return frappe.widgets.reportview.execute("Account", filters = filter_list, fields = ["name", "parent_account"], limit_start=start, limit_page_length=page_len, as_list=True)