[#if tasksreport.dateIntervalStart??] [#if tasksreport.dateIntervalEnd??] ${tasksreport.dateIntervalStart?date} - ${tasksreport.dateIntervalEnd?date} [#else] After ${tasksreport.dateIntervalStart?date} [/#if] [#else] [#if tasksreport.dateIntervalEnd??] Before ${tasksreport.dateIntervalEnd?date} [#else] All dates [/#if] [/#if]
[#if tasksreport.tasks?size == 0]
There is no data available for the selected report settings.
[#else]
[#assign allTasks=tasksreport.filterWithTimeOrMoney(tasksreport.tasks)]
Description |
Time |
Invoiced Total |
Uninvoiced Total |
Total |
---|---|---|---|---|
[#list tasksreport.groupClients(allTasks)?sort as client] [#assign clientTasks=tasksreport.filterByClient(allTasks, client)] | ||||
${client.name} |
||||
[#list tasksreport.groupProjects(clientTasks)?sort as project] [#assign projectTasks=tasksreport.filterByProject(clientTasks, project)] | ||||
${project.name} |
${tasksreport.calculateElapsedTimeAsHour(projectTasks)} |
${tasksreport.calculateInvoicedTotal(projectTasks)} |
${tasksreport.calculateUninvoicedTotal(projectTasks)} |
${tasksreport.calculateTotal(projectTasks)} |
[#list projectTasks?sort as task] | ||||
${task.name} ${task.description} |
${tasksreport.calculateElapsedTimeAsHour(task)} |
${tasksreport.calculateInvoicedTotal(task)} |
${tasksreport.calculateUninvoicedTotal(task)} |
${tasksreport.calculateTotal(task)} |
[#list tasksreport.getTimeEntries(task)?sort_by("date") as timeEntry] | ||||
${timeEntry.description} |
${timeEntry.date?string("EEE, MMM dd")} - ${timeEntry.elapsedTimeAsHour} |
|||
[/#list] | ||||
[/#list] | ||||
[/#list] | ||||
Subtotal for ${client.name} |
${tasksreport.calculateElapsedTimeAsHour(clientTasks)} |
${tasksreport.calculateInvoicedTotal(clientTasks)} |
${tasksreport.calculateUninvoicedTotal(clientTasks)} |
${tasksreport.calculateTotal(clientTasks)} |
[/#list] | ||||
Total |
${tasksreport.calculateElapsedTimeAsHour(allTasks)} |
${tasksreport.calculateInvoicedTotal(allTasks)} |
${tasksreport.calculateUninvoicedTotal(allTasks)} |
${tasksreport.calculateTotal(allTasks)} |
[/#if]