refactor: convert query to ORM
diff --git a/erpnext/patches/v13_0/trim_whitespace_from_serial_nos.py b/erpnext/patches/v13_0/trim_whitespace_from_serial_nos.py
index 4f11255..8a9633d 100644
--- a/erpnext/patches/v13_0/trim_whitespace_from_serial_nos.py
+++ b/erpnext/patches/v13_0/trim_whitespace_from_serial_nos.py
@@ -27,6 +27,7 @@
 
 	broken_serial_nos = set()
 
+	# patch SLEs
 	for sle in broken_sles:
 		serial_no_list = get_serial_nos(sle.serial_no)
 		correct_sr_no = "\n".join(serial_no_list)
@@ -40,13 +41,16 @@
 	if not broken_serial_nos:
 		return
 
-	broken_sr_no_records = [sr[0] for sr in frappe.db.sql("""
-							select name
-							from `tabSerial No`
-							where status='Active'
-								and coalesce(purchase_document_type, '') = ''
-								and name in %s """, (list(broken_serial_nos),)
-							)]
+	# Patch serial No documents if they don't have purchase info
+	# Purchase info is used for fetching incoming rate
+	broken_sr_no_records = frappe.get_list("Serial No",
+			filters={
+				"status":"Active",
+				"name": ("in", broken_serial_nos),
+				"purchase_document_type": ("is", "not set")
+			},
+			pluck="name",
+		)
 
 	frappe.db.MAX_WRITES_PER_TRANSACTION += len(broken_sr_no_records)