From 627a08b7dbbd12f80e956c06a5f6e3fedaddd25f Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Tue, 23 Apr 2013 17:49:24 +0530 Subject: [PATCH 1/2] [report] total added in daily time log summary report --- .../daily_time_log_summary.py | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/projects/report/daily_time_log_summary/daily_time_log_summary.py b/projects/report/daily_time_log_summary/daily_time_log_summary.py index 808d1ba7d0..8c1e2668cd 100644 --- a/projects/report/daily_time_log_summary/daily_time_log_summary.py +++ b/projects/report/daily_time_log_summary/daily_time_log_summary.py @@ -19,23 +19,29 @@ def execute(filters=None): time_logs = webnotes.conn.sql("""select * from `tabTime Log` where docstatus < 2 %s order by owner asc""" % (conditions, ), filters, as_dict=1) - data = [] if time_logs: profiles = [time_logs[0].owner] - total_hours = 0 + data = [] + total_hours = total_employee_hours = count = 0 for tl in time_logs: if tl.owner not in profiles: profiles.append(tl.owner) - data.append([]) - + data.append(["", "", "", "Total", total_employee_hours, "", "", "", "", ""]) + total_employee_hours = 0 + data.append([tl.name, profile_map[tl.owner], tl.from_time, tl.to_time, tl.hours, tl.activity_type, tl.task, task_map.get(tl.task), tl.project, tl.status]) - + + count += 1 total_hours += flt(tl.hours) - + total_employee_hours += flt(tl.hours) + + if count == len(time_logs): + data.append(["", "", "", "Total Hours", total_employee_hours, "", "", "", "", ""]) + if total_hours: - data.append(["", "", "", "Total", total_hours, "", "", "", "", ""]) + data.append(["", "", "", "Grand Total", total_hours, "", "", "", "", ""]) return columns, data From 77bb4cef39186c18b6890aade3b5cb348753052c Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 24 Apr 2013 15:32:39 +0530 Subject: [PATCH 2/2] [naming series] [fixes] consider custom fields with fieldname naming_series --- setup/doctype/naming_series/naming_series.py | 30 ++++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/setup/doctype/naming_series/naming_series.py b/setup/doctype/naming_series/naming_series.py index 599118152d..7b804f8a96 100644 --- a/setup/doctype/naming_series/naming_series.py +++ b/setup/doctype/naming_series/naming_series.py @@ -29,12 +29,12 @@ class DocType: def get_transactions(self, arg=None): return { - "transactions": "\n".join([''] + [i[0] for i in - sql("""select `tabDocField`.`parent` - FROM `tabDocField`, `tabDocType` - WHERE `tabDocField`.`fieldname` = 'naming_series' - and `tabDocType`.name=`tabDocField`.parent - order by `tabDocField`.parent""")]), + "transactions": "\n".join([''] + sorted(list(set( + webnotes.conn.sql_list("""select parent + from `tabDocField` where fieldname='naming_series'""") + + webnotes.conn.sql_list("""select dt from `tabCustom Field` + where fieldname='naming_series'""") + )))), "prefixes": "\n".join([''] + [i[0] for i in sql("""select name from tabSeries""")]) } @@ -89,7 +89,6 @@ class DocType: 'property': prop, 'value': prop_dict[prop], 'property_type': 'Select', - 'select_doctype': doctype }) ps.save(1) @@ -101,11 +100,18 @@ class DocType: from core.doctype.doctype.doctype import DocType dt = DocType() - parent = sql("""select dt.name from `tabDocField` df, `tabDocType` dt - where dt.name = df.parent and df.fieldname='naming_series' and dt.name != %s""", - self.doc.select_doc_for_series) - sr = ([webnotes.model.doctype.get_property(p[0], 'options', 'naming_series'), p[0]] - for p in parent) + parent = list(set( + webnotes.conn.sql_list("""select dt.name + from `tabDocField` df, `tabDocType` dt + where dt.name = df.parent and df.fieldname='naming_series' and dt.name != %s""", + self.doc.select_doc_for_series) + + webnotes.conn.sql_list("""select dt.name + from `tabCustom Field` df, `tabDocType` dt + where dt.name = df.dt and df.fieldname='naming_series' and dt.name != %s""", + self.doc.select_doc_for_series) + )) + sr = [[webnotes.model.doctype.get_property(p, 'options', 'naming_series'), p] + for p in parent] options = self.scrub_options_list(self.doc.set_options.split("\n")) for series in options: dt.validate_series(series, self.doc.select_doc_for_series)