From 6c96606c182cc81ff9252151462c45fa0440486a Mon Sep 17 00:00:00 2001 From: Mihir Kandoi Date: Fri, 19 Jun 2026 23:19:45 +0530 Subject: [PATCH] refactor(stock): convert packing-slip cancellation lookup to get_all cancel_packing_slips: raw "SELECT name FROM `tabPacking Slip` WHERE delivery_note=%s AND docstatus=1" -> frappe.get_all(pluck="name") with pluck-aware iteration. Same result on MariaDB; valid under Postgres. Covered by test_cancel_packing_slips_cancels_submitted_slips in test_delivery_note.py. Co-Authored-By: Claude Opus 4.8 (1M context) --- erpnext/stock/doctype/delivery_note/services/packing.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/erpnext/stock/doctype/delivery_note/services/packing.py b/erpnext/stock/doctype/delivery_note/services/packing.py index 999174cd876..da4da55e1eb 100644 --- a/erpnext/stock/doctype/delivery_note/services/packing.py +++ b/erpnext/stock/doctype/delivery_note/services/packing.py @@ -50,14 +50,12 @@ class PackingService: def cancel_packing_slips(self) -> None: """Cancel submitted packing slips related to this delivery note""" - res = frappe.db.sql( - """SELECT name FROM `tabPacking Slip` WHERE delivery_note = %s - AND docstatus = 1""", - self.doc.name, + res = frappe.get_all( + "Packing Slip", filters={"delivery_note": self.doc.name, "docstatus": 1}, pluck="name" ) if res: for r in res: - ps = frappe.get_doc("Packing Slip", r[0]) + ps = frappe.get_doc("Packing Slip", r) ps.cancel() frappe.msgprint(_("Packing Slip(s) cancelled"))