Skip to content

Commit

Permalink
fix: Add additional condition application
Browse files Browse the repository at this point in the history
  • Loading branch information
deepeshgarg007 committed Jun 7, 2024
1 parent d2af36e commit 8ec364d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def _execute(filters=None, additional_table_columns=None):

company_currency = erpnext.get_company_currency(filters.company)

item_list = get_items(filters, get_query_columns(additional_table_columns))
item_list = get_items(filters, additional_table_columns)
aii_account_map = get_aii_accounts()
if item_list:
itemised_tax, tax_columns = get_tax_accounts(
Expand Down Expand Up @@ -311,7 +311,7 @@ def apply_conditions(query, pi, pii, filters):
return query


def get_items(filters, additional_query_columns):
def get_items(filters, additional_table_columns):
pi = frappe.qb.DocType("Purchase Invoice")
pii = frappe.qb.DocType("Purchase Invoice Item")
Item = frappe.qb.DocType("Item")
Expand Down Expand Up @@ -352,14 +352,19 @@ def get_items(filters, additional_query_columns):
.where(pi.docstatus == 1)
)

if additional_query_columns:
query = query.select(*additional_query_columns)

if filters.get("supplier"):
query = query.where(pi.supplier == filters["supplier"])
if filters.get("company"):
query = query.where(pi.company == filters["company"])

if additional_table_columns:
for column in additional_table_columns:
if column.get("_doctype"):
table = frappe.qb.DocType(column.get("_doctype"))
query = query.select(table[column.get("fieldname")])
else:
query = query.select(pi[column.get("fieldname")])

query = apply_conditions(query, pi, pii, filters)

return query.run(as_dict=True)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def _execute(filters=None, additional_table_columns=None, additional_conditions=

company_currency = frappe.get_cached_value("Company", filters.get("company"), "default_currency")

item_list = get_items(filters, get_query_columns(additional_table_columns), additional_conditions)
item_list = get_items(filters, additional_table_columns, additional_conditions)
if item_list:
itemised_tax, tax_columns = get_tax_accounts(item_list, columns, company_currency)

Expand Down Expand Up @@ -387,6 +387,9 @@ def apply_conditions(query, si, sii, filters, additional_conditions=None):
else:
query = apply_group_by_conditions(query, si, sii, filters)

for key, value in (additional_conditions or {}).items():
query = query.where(si[key] == value)

return query


Expand Down Expand Up @@ -456,7 +459,12 @@ def get_items(filters, additional_query_columns, additional_conditions=None):
)

if additional_query_columns:
query = query.select(*additional_query_columns)
for column in additional_query_columns:
if column.get("_doctype"):
table = frappe.qb.DocType(column.get("_doctype"))
query = query.select(table[column.get("fieldname")])
else:
query = query.select(si[column.get("fieldname")])

if filters.get("customer"):
query = query.where(si.customer == filters["customer"])
Expand Down

0 comments on commit 8ec364d

Please sign in to comment.