refactor: use group fields from Sales Order and Sales Order Items

This commit is contained in:
ruthra kumar 2022-04-04 16:21:46 +05:30
parent e324d668d3
commit b2ed9fd3fe

View File

@ -143,16 +143,24 @@ def build_filter_criterions(filters):
qb_criterions = [] qb_criterions = []
if filters.customer_group: 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: 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: 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: 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 return qb_criterions
@ -165,8 +173,6 @@ def get_so_with_invoices(filters):
so = qb.DocType("Sales Order") so = qb.DocType("Sales Order")
ps = qb.DocType("Payment Schedule") ps = qb.DocType("Payment Schedule")
cust = qb.DocType("Customer")
item = qb.DocType("Item")
soi = qb.DocType("Sales Order Item") soi = qb.DocType("Sales Order Item")
conditions = get_conditions(filters) conditions = get_conditions(filters)
@ -176,13 +182,9 @@ def get_so_with_invoices(filters):
ifelse = query_builder.CustomFunction("IF", ["condition", "then", "else"]) ifelse = query_builder.CustomFunction("IF", ["condition", "then", "else"])
query_so = ( query_so = (
qb.from_(cust) qb.from_(so)
.join(so)
.on(so.customer == cust.name)
.join(soi) .join(soi)
.on(soi.parent == so.name) .on(soi.parent == so.name)
.join(item)
.on(item.item_code == soi.item_code)
.join(ps) .join(ps)
.on(ps.parent == so.name) .on(ps.parent == so.name)
.select( .select(