Customer Query include Searchfields
frappe/erpnext#8821
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index 0fc08c1..8130af9 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -68,14 +68,17 @@
fields = ["name", "customer_name", "customer_group", "territory"]
meta = frappe.get_meta("Customer")
- fields = fields + [f for f in meta.get_search_fields() if not f in fields]
+ searchfields = meta.get_search_fields()
+ searchfields = searchfields + [f for f in [searchfield or "name", "customer_name"] \
+ if not f in searchfields]
+ fields = fields + [f for f in searchfields if not f in fields]
fields = ", ".join(fields)
+ searchfields = " or ".join([field + " like %(txt)s" for field in searchfields])
return frappe.db.sql("""select {fields} from `tabCustomer`
where docstatus < 2
- and ({key} like %(txt)s
- or customer_name like %(txt)s) and disabled=0
+ and ({scond}) and disabled=0
{mcond}
order by
if(locate(%(_txt)s, name), locate(%(_txt)s, name), 99999),
@@ -84,7 +87,7 @@
name, customer_name
limit %(start)s, %(page_len)s""".format(**{
"fields": fields,
- "key": searchfield,
+ "scond": searchfields,
"mcond": get_match_cond(doctype)
}), {
'txt': "%%%s%%" % txt,