[#if projectsreport.dateIntervalStart??] [#if projectsreport.dateIntervalEnd??] ${projectsreport.dateIntervalStart?date} - ${projectsreport.dateIntervalEnd?date} [#else] After ${projectsreport.dateIntervalStart?date} [/#if] [#else] [#if projectsreport.dateIntervalEnd??] Before ${projectsreport.dateIntervalEnd?date} [#else] All dates [/#if] [/#if]
[#if projectsreport.projects?size == 0]
There is no data available for the selected report settings.
[#else]
[#assign allProjects=projectsreport.filterWithActivity(projectsreport.projects)]
Description |
Date |
Time |
Amount |
Distance |
Total |
---|---|---|---|---|---|
[#list projectsreport.groupClients(allProjects)?sort as client] [#assign clientProjects=projectsreport.filterByClient(allProjects, client)] | |||||
${client.name} |
|||||
[#list clientProjects?sort as project] | |||||
${project.name} |
${projectsreport.calculateElapsedTimeAsHour(project)} |
${projectsreport.calculateExpensesAmount(project)} |
${projectsreport.calculateTripsDistance(project)} |
${projectsreport.calculateTotal(project)} |
|
[#if projectsreport.getTasks(project)?size != 0] | |||||
Tasks |
|||||
[#list projectsreport.getTasks(project)?sort as task] | |||||
${task.name} |
${task.startDate?date} |
${projectsreport.calculateElapsedTimeAsHour(task)} |
${projectsreport.calculateTaskTotal(task)} |
||
[#list projectsreport.getTimeEntries(task)?sort_by("date") as timeEntry] | |||||
${timeEntry.description} |
${timeEntry.date?date} |
${timeEntry.elapsedTimeAsHour} |
|||
[/#list] | |||||
[/#list] | |||||
[/#if] | |||||
[#if projectsreport.getExpenses(project)?size != 0] | |||||
Expenses |
|||||
[#list projectsreport.getExpenses(project)?sort_by("date") as expense] | |||||
${expense.description} |
${expense.date?date} |
${expense.amount} |
${expense.total} |
||
[/#list] | |||||
[/#if] | |||||
[#if projectsreport.getTrips(project)?size != 0] | |||||
Trips |
|||||
[#list projectsreport.getTrips(project)?sort_by("startTime") as trip] | |||||
${trip.description} |
${trip.startTime?date} |
${trip.distance} |
${trip.total} |
||
[/#list] | |||||
[/#if] | |||||
[#if projectsreport.getProducts(project)?size != 0] | |||||
Products |
|||||
[#list projectsreport.getProducts(project)?sort_by("name") as product] | |||||
${product.name} |
${product.total} |
||||
[/#list] | |||||
[/#if] | |||||
[/#list] | |||||
Subtotal for ${client.name} |
${projectsreport.calculateElapsedTimeAsHour(clientProjects)} |
${projectsreport.calculateExpensesAmount(clientProjects)} |
${projectsreport.calculateTripsDistance(clientProjects)} |
${projectsreport.calculateTotal(clientProjects)} |
|
[/#list] | |||||
Total |
${projectsreport.calculateElapsedTimeAsHour(allProjects)} |
${projectsreport.calculateExpensesAmount(allProjects)} |
${projectsreport.calculateTripsDistance(allProjects)} |
${projectsreport.calculateTotal(allProjects)} |
[/#if]