fix: Remove custom queries for customer
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index ab50c38..961ee20 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -395,10 +395,6 @@
return {
query: "erpnext.controllers.queries.employee_query",
};
- } else if (frm.doc.party_type == "Customer") {
- return {
- query: "erpnext.controllers.queries.customer_query",
- };
}
});
diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.py b/erpnext/buying/doctype/buying_settings/buying_settings.py
index 70759aa..ec9b888 100644
--- a/erpnext/buying/doctype/buying_settings/buying_settings.py
+++ b/erpnext/buying/doctype/buying_settings/buying_settings.py
@@ -54,34 +54,9 @@
hide_name_field=False,
)
- set_search_fields("Supplier", "supplier_name", self.get("supp_master_name") == "Naming Series")
-
def before_save(self):
self.check_maintain_same_rate()
def check_maintain_same_rate(self):
if self.maintain_same_rate:
self.set_landed_cost_based_on_purchase_invoice_rate = 0
-
-
-def set_search_fields(doctype, fieldname, naming_series):
- from frappe.custom.doctype.property_setter.property_setter import make_property_setter
-
- searchfields = frappe.get_meta(doctype).get_search_fields()
-
- if naming_series:
- if fieldname not in searchfields:
- searchfields.append(fieldname)
- else:
- if fieldname in searchfields:
- searchfields.remove(fieldname)
-
- make_property_setter(
- doctype,
- "",
- "search_fields",
- ", ".join(searchfields),
- "Data",
- for_doctype=True,
- validate_fields_for_doctype=False,
- )
diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py
index 129ca7a..9ce7d28 100644
--- a/erpnext/controllers/queries.py
+++ b/erpnext/controllers/queries.py
@@ -85,46 +85,6 @@
{"txt": "%%%s%%" % txt, "_txt": txt.replace("%", ""), "start": start, "page_len": page_len},
)
- # searches for customer
-
-
-@frappe.whitelist()
-@frappe.validate_and_sanitize_search_inputs
-def customer_query(doctype, txt, searchfield, start, page_len, filters, as_dict=False):
- doctype = "Customer"
- conditions = []
- cust_master_name = frappe.defaults.get_user_default("cust_master_name")
-
- fields = ["name"]
- if cust_master_name != "Customer Name":
- fields.append("customer_name")
-
- fields = get_fields(doctype, fields)
- searchfields = frappe.get_meta(doctype).get_search_fields()
- searchfields = " or ".join(field + " like %(txt)s" for field in searchfields)
-
- return frappe.db.sql(
- """select {fields} from `tabCustomer`
- where docstatus < 2
- and ({scond}) and disabled=0
- {fcond} {mcond}
- order by
- (case when locate(%(_txt)s, name) > 0 then locate(%(_txt)s, name) else 99999 end),
- (case when locate(%(_txt)s, customer_name) > 0 then locate(%(_txt)s, customer_name) else 99999 end),
- idx desc,
- name, customer_name
- limit %(page_len)s offset %(start)s""".format(
- **{
- "fields": ", ".join(fields),
- "scond": searchfields,
- "mcond": get_match_cond(doctype),
- "fcond": get_filters_cond(doctype, filters, conditions).replace("%", "%%"),
- }
- ),
- {"txt": "%%%s%%" % txt, "_txt": txt.replace("%", ""), "start": start, "page_len": page_len},
- as_dict=as_dict,
- )
-
@frappe.whitelist()
@frappe.validate_and_sanitize_search_inputs
diff --git a/erpnext/controllers/tests/test_queries.py b/erpnext/controllers/tests/test_queries.py
index 0ec3bd6..c536d1c 100644
--- a/erpnext/controllers/tests/test_queries.py
+++ b/erpnext/controllers/tests/test_queries.py
@@ -31,12 +31,6 @@
self.assertGreaterEqual(len(query(txt="_Test Lead")), 4)
self.assertEqual(len(query(txt="_Test Lead 4")), 1)
- def test_customer_query(self):
- query = add_default_params(queries.customer_query, "Customer")
-
- self.assertGreaterEqual(len(query(txt="_Test Customer")), 7)
- self.assertGreaterEqual(len(query(txt="_Test Customer USD")), 1)
-
def test_item_query(self):
query = add_default_params(queries.item_query, "Item")
diff --git a/erpnext/crm/doctype/lead/lead.js b/erpnext/crm/doctype/lead/lead.js
index 0b6cdf2..609eab7 100644
--- a/erpnext/crm/doctype/lead/lead.js
+++ b/erpnext/crm/doctype/lead/lead.js
@@ -17,10 +17,6 @@
}
onload() {
- this.frm.set_query("customer", function (doc, cdt, cdn) {
- return { query: "erpnext.controllers.queries.customer_query" };
- });
-
this.frm.set_query("lead_owner", function (doc, cdt, cdn) {
return { query: "frappe.core.doctype.user.user.user_query" };
});
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 308e6ca..9b996fe 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -282,9 +282,6 @@
before_tests = "erpnext.setup.utils.before_tests"
-standard_queries = {
- "Customer": "erpnext.controllers.queries.customer_query",
-}
period_closing_doctypes = [
"Sales Invoice",
diff --git a/erpnext/projects/doctype/project/project.js b/erpnext/projects/doctype/project/project.js
index 16ac8db..49e8d84 100644
--- a/erpnext/projects/doctype/project/project.js
+++ b/erpnext/projects/doctype/project/project.js
@@ -27,8 +27,6 @@
};
};
- frm.set_query("customer", "erpnext.controllers.queries.customer_query");
-
frm.set_query("user", "users", function () {
return {
query: "erpnext.projects.doctype.project.project.get_users_for_project",
diff --git a/erpnext/public/js/queries.js b/erpnext/public/js/queries.js
index e20ea7b..d7edac3 100644
--- a/erpnext/public/js/queries.js
+++ b/erpnext/public/js/queries.js
@@ -12,10 +12,6 @@
return { query: "erpnext.controllers.queries.lead_query" };
},
- customer: function () {
- return { query: "erpnext.controllers.queries.customer_query" };
- },
-
item: function (filters) {
var args = { query: "erpnext.controllers.queries.item_query" };
if (filters) args["filters"] = filters;
diff --git a/erpnext/selling/doctype/customer/customer.json b/erpnext/selling/doctype/customer/customer.json
index db712d9..41c6311 100644
--- a/erpnext/selling/doctype/customer/customer.json
+++ b/erpnext/selling/doctype/customer/customer.json
@@ -583,7 +583,7 @@
"link_fieldname": "party"
}
],
- "modified": "2023-12-28 13:15:36.298369",
+ "modified": "2024-03-16 19:41:47.971815",
"modified_by": "Administrator",
"module": "Selling",
"name": "Customer",
@@ -661,7 +661,7 @@
}
],
"quick_entry": 1,
- "search_fields": "customer_name,customer_group,territory, mobile_no,primary_address",
+ "search_fields": "customer_group,territory, mobile_no,primary_address",
"show_name_in_global_search": 1,
"sort_field": "modified",
"sort_order": "DESC",
diff --git a/erpnext/selling/doctype/customer/test_customer.py b/erpnext/selling/doctype/customer/test_customer.py
index a8ebccd..7e6d6de 100644
--- a/erpnext/selling/doctype/customer/test_customer.py
+++ b/erpnext/selling/doctype/customer/test_customer.py
@@ -370,37 +370,6 @@
due_date = get_due_date("2017-01-22", "Customer", "_Test Customer")
self.assertEqual(due_date, "2017-01-22")
- def test_serach_fields_for_customer(self):
- from erpnext.controllers.queries import customer_query
-
- frappe.db.set_single_value("Selling Settings", "cust_master_name", "Naming Series")
-
- make_property_setter(
- "Customer", None, "search_fields", "customer_group", "Data", for_doctype="Doctype"
- )
-
- data = customer_query(
- "Customer", "_Test Customer", "", 0, 20, filters={"name": "_Test Customer"}, as_dict=True
- )
-
- self.assertEqual(data[0].name, "_Test Customer")
- self.assertEqual(data[0].customer_group, "_Test Customer Group")
- self.assertTrue("territory" not in data[0])
-
- make_property_setter(
- "Customer", None, "search_fields", "customer_group, territory", "Data", for_doctype="Doctype"
- )
- data = customer_query(
- "Customer", "_Test Customer", "", 0, 20, filters={"name": "_Test Customer"}, as_dict=True
- )
-
- self.assertEqual(data[0].name, "_Test Customer")
- self.assertEqual(data[0].customer_group, "_Test Customer Group")
- self.assertEqual(data[0].territory, "_Test Territory")
- self.assertTrue("territory" in data[0])
-
- frappe.db.set_single_value("Selling Settings", "cust_master_name", "Customer Name")
-
def test_parse_full_name(self):
first, middle, last = parse_full_name("John")
self.assertEqual(first, "John")
diff --git a/erpnext/selling/page/point_of_sale/pos_item_cart.js b/erpnext/selling/page/point_of_sale/pos_item_cart.js
index d95ef58..fbee9c1 100644
--- a/erpnext/selling/page/point_of_sale/pos_item_cart.js
+++ b/erpnext/selling/page/point_of_sale/pos_item_cart.js
@@ -295,10 +295,10 @@
<div class="customer-field"></div>
`);
const me = this;
- const query = { query: "erpnext.controllers.queries.customer_query" };
const allowed_customer_group = this.allowed_customer_groups || [];
+ let filters = {};
if (allowed_customer_group.length) {
- query.filters = {
+ filters = {
customer_group: ["in", allowed_customer_group],
};
}
@@ -308,7 +308,11 @@
fieldtype: "Link",
options: "Customer",
placeholder: __("Search by customer name, phone, email."),
- get_query: () => query,
+ get_query: function () {
+ return {
+ filters: filters,
+ };
+ },
onchange: function () {
if (this.value) {
const frm = me.events.get_frm();
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 93a2939..5310a0f 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -406,10 +406,6 @@
};
};
- frm.fields_dict.customer_items.grid.get_field("customer_name").get_query = function (doc, cdt, cdn) {
- return { query: "erpnext.controllers.queries.customer_query" };
- };
-
frm.fields_dict["item_defaults"].grid.get_field("default_warehouse").get_query = function (
doc,
cdt,