fix: Report conditional query simplification.

This commit is contained in:
marination 2020-05-12 18:58:54 +05:30
parent 7adca986fb
commit e4fc5ba83c

View File

@ -36,25 +36,20 @@ def validate_filters(filters):
def get_conditions(filters):
conditions = ""
if filters.get("from_date") and filters.get("to_date"):
conditions += " and po.transaction_date between '{0}' and '{1}'".format(filters.get("from_date"),filters.get("to_date"))
conditions += " and po.transaction_date between %(from_date)s and %(to_date)s"
if filters.get("company"):
conditions += " and po.company = '{0}'".format(filters.get("company"))
conditions += " and po.company = %(company)s"
if filters.get("purchase_order"):
conditions += " and po.name = '{0}'".format(filters.get("purchase_order"))
conditions += " and po.name = %(purchase_order)s"
if filters.get("status"):
conditions += " and po.status in (%s)" % ', '.join(['%s']*len(filters.get("status")))
conditions += " and po.status in %(status)s"
return conditions
def get_data(conditions, filters):
status = filters.get("status")
# temporary fix for dashboard chart
if status is None:
status = []
data = frappe.db.sql("""
SELECT
po.transaction_date as date,
@ -82,7 +77,7 @@ def get_data(conditions, filters):
{0}
GROUP BY poi.name
ORDER BY po.transaction_date ASC
""".format(conditions), tuple(status), as_dict=1)
""".format(conditions), filters, as_dict=1)
return data