fix: SQL syntax error in Purchase Receipt query for empty filters (#44636)

fix(po-analysis): handle SQL error due to empty data in IN() clause

Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
(cherry picked from commit 48b49cdea4)
This commit is contained in:
Navin R C
2024-12-13 15:49:38 +05:30
committed by Mergify
parent 6bb2b76040
commit 2f279a6eb4

View File

@@ -103,6 +103,11 @@ def get_received_amount_data(data):
pr = frappe.qb.DocType("Purchase Receipt")
pr_item = frappe.qb.DocType("Purchase Receipt Item")
po_items = [row.name for row in data]
if not po_items:
return frappe._dict()
query = (
frappe.qb.from_(pr)
.inner_join(pr_item)
@@ -111,12 +116,10 @@ def get_received_amount_data(data):
pr_item.purchase_order_item,
Sum(pr_item.base_amount).as_("received_qty_amount"),
)
.where((pr_item.parent == pr.name) & (pr.docstatus == 1))
.where((pr.docstatus == 1) & (pr_item.purchase_order_item.isin(po_items)))
.groupby(pr_item.purchase_order_item)
)
query = query.where(pr_item.purchase_order_item.isin([row.name for row in data]))
data = query.run()
if not data: