feat: sort timesheets by start time

This commit is contained in:
barredterra
2021-08-02 23:19:57 +02:00
parent 1110f88e5a
commit c82611aa62

View File

@@ -216,15 +216,15 @@ class Timesheet(Document):
@frappe.whitelist() @frappe.whitelist()
def get_projectwise_timesheet_data(project=None, parent=None, from_time=None, to_time=None): def get_projectwise_timesheet_data(project=None, parent=None, from_time=None, to_time=None):
condition = '' condition = ""
if project: if project:
condition += "and tsd.project = %(project)s" condition += "AND tsd.project = %(project)s "
if parent: if parent:
condition += "AND tsd.parent = %(parent)s" condition += "AND tsd.parent = %(parent)s "
if from_time and to_time: if from_time and to_time:
condition += "AND CAST(tsd.from_time as DATE) BETWEEN %(from_time)s AND %(to_time)s" condition += "AND CAST(tsd.from_time as DATE) BETWEEN %(from_time)s AND %(to_time)s"
return frappe.db.sql(""" query = f"""
SELECT SELECT
tsd.name as name, tsd.name as name,
@@ -242,16 +242,25 @@ def get_projectwise_timesheet_data(project=None, parent=None, from_time=None, to
INNER JOIN `tabTimesheet` ts INNER JOIN `tabTimesheet` ts
ON ts.name = tsd.parent ON ts.name = tsd.parent
WHERE tsd.parenttype = 'Timesheet' WHERE
AND tsd.docstatus=1 {0}
tsd.parenttype = 'Timesheet'
AND tsd.docstatus = 1
AND tsd.is_billable = 1 AND tsd.is_billable = 1
AND tsd.sales_invoice is null AND tsd.sales_invoice is NULL
""".format(condition), { {condition}
'project': project,
'parent': parent, ORDER BY tsd.from_time ASC
'from_time': from_time, """
'to_time': to_time
}, as_dict=1) filters = {
"project": project,
"parent": parent,
"from_time": from_time,
"to_time": to_time
}
return frappe.db.sql(query, filters, as_dict=1)
@frappe.whitelist() @frappe.whitelist()
@frappe.validate_and_sanitize_search_inputs @frappe.validate_and_sanitize_search_inputs