refactor: use group fields from Sales Order and Sales Order Items
diff --git a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
index befbf40..cb22fb6 100644
--- a/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
+++ b/erpnext/selling/report/payment_terms_status_for_sales_order/payment_terms_status_for_sales_order.py
@@ -143,16 +143,24 @@
qb_criterions = []
if filters.customer_group:
- qb_criterions.append(qb.DocType("Customer").customer_group == filters.customer_group)
+ qb_criterions.append(
+ qb.DocType("Sales Order").customer_group.isin(
+ get_descendants_of("Customer Group", filters.customer_group)
+ )
+ )
if filters.customer:
- qb_criterions.append(qb.DocType("Customer").name == filters.customer)
+ qb_criterions.append(qb.DocType("Sales Order").customer == filters.customer)
if filters.item_group:
- qb_criterions.append(qb.DocType("Item").item_group == filters.item_group)
+ qb_criterions.append(
+ qb.DocType("Sales Order Item").item_group.isin(
+ get_descendants_of("Item Group", filters.item_group)
+ )
+ )
if filters.item:
- qb_criterions.append(qb.DocType("Item").name == filters.item)
+ qb_criterions.append(qb.DocType("Sales Order Item").item_code == filters.item)
return qb_criterions
@@ -165,8 +173,6 @@
so = qb.DocType("Sales Order")
ps = qb.DocType("Payment Schedule")
- cust = qb.DocType("Customer")
- item = qb.DocType("Item")
soi = qb.DocType("Sales Order Item")
conditions = get_conditions(filters)
@@ -176,13 +182,9 @@
ifelse = query_builder.CustomFunction("IF", ["condition", "then", "else"])
query_so = (
- qb.from_(cust)
- .join(so)
- .on(so.customer == cust.name)
+ qb.from_(so)
.join(soi)
.on(soi.parent == so.name)
- .join(item)
- .on(item.item_code == soi.item_code)
.join(ps)
.on(ps.parent == so.name)
.select(