From 00261094c8ce0663f953b73ae17a5e7f3f494b59 Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Mon, 4 Dec 2023 18:00:06 +0530 Subject: [PATCH] fix(ux): show row index and field label while selecting the Sales Order Item --- erpnext/controllers/queries.py | 28 +++++++++++++++++++ .../doctype/sales_order/sales_order.js | 1 + 2 files changed, 29 insertions(+) diff --git a/erpnext/controllers/queries.py b/erpnext/controllers/queries.py index 199732b152..e858820965 100644 --- a/erpnext/controllers/queries.py +++ b/erpnext/controllers/queries.py @@ -891,3 +891,31 @@ def get_payment_terms_for_references(doctype, txt, searchfield, start, page_len, as_list=1, ) return terms + + +@frappe.whitelist() +@frappe.validate_and_sanitize_search_inputs +def get_filtered_child_rows(doctype, txt, searchfield, start, page_len, filters) -> list: + table = frappe.qb.DocType(doctype) + query = ( + frappe.qb.from_(table) + .select( + table.name, + Concat("#", table.idx, ", ", table.item_code), + ) + .orderby(table.idx) + .offset(start) + .limit(page_len) + ) + + if filters: + for field, value in filters.items(): + query = query.where(table[field] == value) + + if txt: + txt += "%" + query = query.where( + ((table.idx.like(txt.replace("#", ""))) | (table.item_code.like(txt))) | (table.name.like(txt)) + ) + + return query.run(as_dict=False) diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js index be02877a1b..0d36f23695 100644 --- a/erpnext/selling/doctype/sales_order/sales_order.js +++ b/erpnext/selling/doctype/sales_order/sales_order.js @@ -225,6 +225,7 @@ frappe.ui.form.on("Sales Order", { in_list_view: 1, get_query: () => { return { + query: "erpnext.controllers.queries.get_filtered_child_rows", filters: { "parenttype": frm.doc.doctype, "parent": frm.doc.name,