From 09beed9cc380c3b65cdd3ca961c6020328701f49 Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Wed, 17 Jun 2026 18:37:57 +0530 Subject: [PATCH] refactor(postgres): port Payment Order doctype queries to the query builder Co-Authored-By: Claude Opus 4.8 (1M context) --- .../doctype/payment_order/payment_order.py | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/erpnext/accounts/doctype/payment_order/payment_order.py b/erpnext/accounts/doctype/payment_order/payment_order.py index 5f1651a9f7c..d75bce51a4f 100644 --- a/erpnext/accounts/doctype/payment_order/payment_order.py +++ b/erpnext/accounts/doctype/payment_order/payment_order.py @@ -60,23 +60,32 @@ class PaymentOrder(Document): @frappe.whitelist() @frappe.validate_and_sanitize_search_inputs def get_mop_query(doctype: str, txt: str, searchfield: str, start: int, page_len: int, filters: dict): - return frappe.db.sql( - """ select mode_of_payment from `tabPayment Order Reference` - where parent = %(parent)s and mode_of_payment like %(txt)s - limit %(page_len)s offset %(start)s""", - {"parent": filters.get("parent"), "start": start, "page_len": page_len, "txt": "%%%s%%" % txt}, + return frappe.get_all( + "Payment Order Reference", + filters={"parent": filters.get("parent"), "mode_of_payment": ["like", f"%{txt}%"]}, + fields=["mode_of_payment"], + limit_start=start, + limit_page_length=page_len, + order_by="", # match the original query (no ORDER BY); avoid get_all's default sort + as_list=True, ) @frappe.whitelist() @frappe.validate_and_sanitize_search_inputs def get_supplier_query(doctype: str, txt: str, searchfield: str, start: int, page_len: int, filters: dict): - return frappe.db.sql( - """ select supplier from `tabPayment Order Reference` - where parent = %(parent)s and supplier like %(txt)s and - (payment_reference is null or payment_reference='') - limit %(page_len)s offset %(start)s""", - {"parent": filters.get("parent"), "start": start, "page_len": page_len, "txt": "%%%s%%" % txt}, + return frappe.get_all( + "Payment Order Reference", + filters={ + "parent": filters.get("parent"), + "supplier": ["like", f"%{txt}%"], + "payment_reference": ["is", "not set"], + }, + fields=["supplier"], + limit_start=start, + limit_page_length=page_len, + order_by="", # match the original query (no ORDER BY); avoid get_all's default sort + as_list=True, )