Time Report

Task summary by month


[#if timereport.dateIntervalStart??] [#if timereport.dateIntervalEnd??] Date: ${timereport.dateIntervalStart?date} - ${timereport.dateIntervalEnd?date} [#else] Date: After ${timereport.dateIntervalStart?date} [/#if] [#else] [#if timereport.dateIntervalEnd??] Date: Before ${timereport.dateIntervalEnd?date} [#else] Date: All dates [/#if] [/#if]

[#assign allTimeEntries=timereport.timeEntries]

[#assign months=timereport.groupDatesByMonth(allTimeEntries)]

Task

[#list months?sort as month]

${month.toString("MMM yyyy")}

[/#list]

Total

[#list timereport.groupClients(allTimeEntries)?sort as client] [#assign clientTimeEntries=timereport.filterByClient(allTimeEntries, client)]
[#list timereport.groupProjects(clientTimeEntries)?sort as project] [#assign projectTimeEntries=timereport.filterByProject(clientTimeEntries, project)]

${client.name} > ${project.name}

[#list months?sort as month] [/#list]

${timereport.calculateElapsedTimeAsHour(projectTimeEntries)}

[#list timereport.groupTasks(projectTimeEntries)?sort as task] [#assign taskTimeEntries=timereport.filterByTask(projectTimeEntries, task)]

${task.name}

[#list months?sort as month]

[#assign taskDateTimeEntries=timereport.filterByDate(taskTimeEntries, month.toInterval())]${timereport.calculateElapsedTimeAsHour(taskDateTimeEntries)}

[/#list]

${timereport.calculateElapsedTimeAsHour(taskTimeEntries)}

[/#list]
[/#list]
[/#list]

Total

[#list months?sort as month]

[#assign dateTimeEntries=timereport.filterByDate(allTimeEntries, month.toInterval())]${timereport.calculateElapsedTimeAsHour(dateTimeEntries)}

[/#list]

${timereport.calculateElapsedTimeAsHour(allTimeEntries)}