From 2512d4c7f24876070b7912e2faa84292ec2555c8 Mon Sep 17 00:00:00 2001 From: Deepesh Garg Date: Wed, 13 Mar 2024 11:59:43 +0530 Subject: [PATCH] chore: Remove custom party queries (cherry picked from commit c9623b6fd66beebd94627a6a63698b0240b3b6ca) --- .../buying_settings/buying_settings.py | 26 +++++++++++++ erpnext/buying/doctype/supplier/supplier.json | 4 +- .../buying/doctype/supplier/test_supplier.py | 38 ------------------- erpnext/controllers/queries.py | 33 ---------------- erpnext/controllers/tests/test_queries.py | 6 --- erpnext/public/js/controllers/buying.js | 5 --- erpnext/public/js/queries.js | 4 -- erpnext/stock/doctype/item/item.js | 4 -- .../material_request/material_request.js | 6 --- 9 files changed, 28 insertions(+), 98 deletions(-) diff --git a/erpnext/buying/doctype/buying_settings/buying_settings.py b/erpnext/buying/doctype/buying_settings/buying_settings.py index ec9b88888b7..98935c1e57d 100644 --- a/erpnext/buying/doctype/buying_settings/buying_settings.py +++ b/erpnext/buying/doctype/buying_settings/buying_settings.py @@ -54,9 +54,35 @@ class BuyingSettings(Document): 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): + """Change a doctype's naming to user 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/buying/doctype/supplier/supplier.json b/erpnext/buying/doctype/supplier/supplier.json index 60dd54c2385..3dae0442cce 100644 --- a/erpnext/buying/doctype/supplier/supplier.json +++ b/erpnext/buying/doctype/supplier/supplier.json @@ -485,7 +485,7 @@ "link_fieldname": "party" } ], - "modified": "2023-10-19 16:55:15.148325", + "modified": "2024-03-13 11:14:06.516519", "modified_by": "Administrator", "module": "Buying", "name": "Supplier", @@ -544,7 +544,7 @@ } ], "quick_entry": 1, - "search_fields": "supplier_name, supplier_group", + "search_fields": "supplier_group", "show_name_in_global_search": 1, "sort_field": "modified", "sort_order": "ASC", diff --git a/erpnext/buying/doctype/supplier/test_supplier.py b/erpnext/buying/doctype/supplier/test_supplier.py index 350a25f26e7..55974ea6c46 100644 --- a/erpnext/buying/doctype/supplier/test_supplier.py +++ b/erpnext/buying/doctype/supplier/test_supplier.py @@ -154,44 +154,6 @@ class TestSupplier(FrappeTestCase): # Rollback address.delete() - def test_serach_fields_for_supplier(self): - from erpnext.controllers.queries import supplier_query - - frappe.db.set_single_value("Buying Settings", "supp_master_name", "Naming Series") - - supplier_name = create_supplier(supplier_name="Test Supplier 1").name - - make_property_setter( - "Supplier", None, "search_fields", "supplier_group", "Data", for_doctype="Doctype" - ) - - data = supplier_query( - "Supplier", supplier_name, "name", 0, 20, filters={"name": supplier_name}, as_dict=True - ) - - self.assertEqual(data[0].name, supplier_name) - self.assertEqual(data[0].supplier_group, "Services") - self.assertTrue("supplier_type" not in data[0]) - - make_property_setter( - "Supplier", - None, - "search_fields", - "supplier_group, supplier_type", - "Data", - for_doctype="Doctype", - ) - data = supplier_query( - "Supplier", supplier_name, "name", 0, 20, filters={"name": supplier_name}, as_dict=True - ) - - self.assertEqual(data[0].name, supplier_name) - self.assertEqual(data[0].supplier_group, "Services") - self.assertEqual(data[0].supplier_type, "Company") - self.assertTrue("supplier_type" in data[0]) - - frappe.db.set_single_value("Buying Settings", "supp_master_name", "Supplier Name") - def create_supplier(**args): args = frappe._dict(args) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 6463d17cd90..bef2ae66bb2 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -126,39 +126,6 @@ def customer_query(doctype, txt, searchfield, start, page_len, filters, as_dict= ) -# searches for supplier -@frappe.whitelist() -@frappe.validate_and_sanitize_search_inputs -def supplier_query(doctype, txt, searchfield, start, page_len, filters, as_dict=False): - doctype = "Supplier" - supp_master_name = frappe.defaults.get_user_default("supp_master_name") - - fields = ["name"] - if supp_master_name != "Supplier Name": - fields.append("supplier_name") - - fields = get_fields(doctype, fields) - - return frappe.db.sql( - """select {field} from `tabSupplier` - where docstatus < 2 - and ({key} like %(txt)s - or supplier_name like %(txt)s) and disabled=0 - and (on_hold = 0 or (on_hold = 1 and CURRENT_DATE > release_date)) - {mcond} - order by - (case when locate(%(_txt)s, name) > 0 then locate(%(_txt)s, name) else 99999 end), - (case when locate(%(_txt)s, supplier_name) > 0 then locate(%(_txt)s, supplier_name) else 99999 end), - idx desc, - name, supplier_name - limit %(page_len)s offset %(start)s""".format( - **{"field": ", ".join(fields), "key": searchfield, "mcond": get_match_cond(doctype)} - ), - {"txt": "%%%s%%" % txt, "_txt": txt.replace("%", ""), "start": start, "page_len": page_len}, - as_dict=as_dict, - ) - - @frappe.whitelist() @frappe.validate_and_sanitize_search_inputs def tax_account_query(doctype, txt, searchfield, start, page_len, filters): diff --git a/erpnext/controllers/tests/test_queries.py b/erpnext/controllers/tests/test_queries.py index 3a3bc1cd725..0ec3bd6a180 100644 --- a/erpnext/controllers/tests/test_queries.py +++ b/erpnext/controllers/tests/test_queries.py @@ -37,12 +37,6 @@ class TestQueries(unittest.TestCase): self.assertGreaterEqual(len(query(txt="_Test Customer")), 7) self.assertGreaterEqual(len(query(txt="_Test Customer USD")), 1) - def test_supplier_query(self): - query = add_default_params(queries.supplier_query, "Supplier") - - self.assertGreaterEqual(len(query(txt="_Test Supplier")), 7) - self.assertGreaterEqual(len(query(txt="_Test Supplier USD")), 1) - def test_item_query(self): query = add_default_params(queries.item_query, "Item") diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index 1d0d47ec3d3..934becf6641 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -74,11 +74,6 @@ erpnext.buying = { me.frm.set_query('billing_address', erpnext.queries.company_address_query); erpnext.accounts.dimensions.setup_dimension_filters(me.frm, me.frm.doctype); - if(this.frm.fields_dict.supplier) { - this.frm.set_query("supplier", function() { - return{ query: "erpnext.controllers.queries.supplier_query" }}); - } - this.frm.set_query("item_code", "items", function() { if (me.frm.doc.is_subcontracted) { var filters = {'supplier': me.frm.doc.supplier}; diff --git a/erpnext/public/js/queries.js b/erpnext/public/js/queries.js index b7e685cd6fb..e20ea7b3adc 100644 --- a/erpnext/public/js/queries.js +++ b/erpnext/public/js/queries.js @@ -16,10 +16,6 @@ $.extend(erpnext.queries, { return { query: "erpnext.controllers.queries.customer_query" }; }, - supplier: function () { - return { query: "erpnext.controllers.queries.supplier_query" }; - }, - item: function (filters) { var args = { query: "erpnext.controllers.queries.item_query" }; if (filters) args["filters"] = filters; diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index 7a38024872e..93a2939f977 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -410,10 +410,6 @@ $.extend(erpnext.item, { return { query: "erpnext.controllers.queries.customer_query" }; }; - frm.fields_dict.supplier_items.grid.get_field("supplier").get_query = function (doc, cdt, cdn) { - return { query: "erpnext.controllers.queries.supplier_query" }; - }; - frm.fields_dict["item_defaults"].grid.get_field("default_warehouse").get_query = function ( doc, cdt, diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index f04acc85ed5..0b77465d0d8 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -365,12 +365,6 @@ frappe.ui.form.on("Material Request", { description: __( "Select a Supplier from the Default Suppliers of the items below. On selection, a Purchase Order will be made against items belonging to the selected Supplier only." ), - get_query: () => { - return { - query: "erpnext.stock.doctype.material_request.material_request.get_default_supplier_query", - filters: { doc: frm.doc.name }, - }; - }, }, (values) => { frappe.model.open_mapped_doc({