From 5e7cf3899bb6d841f4e96f12e8aa08db120b8ab0 Mon Sep 17 00:00:00 2001 From: Bhavan23 Date: Sat, 9 Nov 2024 19:54:50 +0530 Subject: [PATCH] feat: Add item group filtering for search results --- .../selling/page/point_of_sale/point_of_sale.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.py b/erpnext/selling/page/point_of_sale/point_of_sale.py index 2bb61a6439c..423fd427954 100644 --- a/erpnext/selling/page/point_of_sale/point_of_sale.py +++ b/erpnext/selling/page/point_of_sale/point_of_sale.py @@ -92,6 +92,20 @@ def search_by_term(search_term, warehouse, price_list): return {"items": [item]} +def filter_result_items(result, pos_profile): + if result and result.get("items"): + pos_item_groups = frappe.db.get_all("POS Item Group", {"parent": pos_profile}, pluck="item_group") + for i, item in enumerate(result.get("items")): + item_group = frappe.db.get_value( + "Item Group", frappe.db.get_value("Item", item.get("item_code"), "item_group"), "name" + ) + if item_group in pos_item_groups: + continue + else: + if result.get("items"): + result.get("items").pop(i) + + @frappe.whitelist() def get_items(start, page_length, price_list, item_group, pos_profile, search_term=""): warehouse, hide_unavailable_items = frappe.db.get_value( @@ -102,6 +116,7 @@ def get_items(start, page_length, price_list, item_group, pos_profile, search_te if search_term: result = search_by_term(search_term, warehouse, price_list) or [] + filter_result_items(result, pos_profile) if result: return result