Expense report

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

[#-- Build the data set expression record by record --] [#assign dataSet] [ ['Date', 'Amount'], [#list expensesreport.groupDatesByDate(expensesreport.expenses)?sort as date] [#assign dateExpenses=expensesreport.filterByDate(expensesreport.expenses, date.toInterval())] [#assign dateAmount=expensesreport.calculateAmount(dateExpenses)] ['${date.toDate()?date?iso_local}'?date.iso, ${dateAmount.contents()?first.amount?c}] [#if date?has_next],[/#if] [/#list] ] [/#assign] [#assign chartProperties = { 'legend.visible': false, 'plot.backgroundPaint': '', 'plot.outlineVisible': false, 'plot.rangeGridlinesVisible': true, 'plot.rangeGridlinePaint': '#aaaaaa', 'plot.domainGridlinesVisible': false, 'plot.renderer.seriesItemLabelGenerator': ['{2}'], 'plot.renderer.seriesItemLabelsVisible': [true], 'plot.domainAxis.axisLineVisible': false, 'plot.domainAxis.lowerMargin': 0.05, 'plot.domainAxis.upperMargin': 0.05, 'plot.domainAxis.dateFormatOverride': 'M/d', 'plot.domainAxis.tickUnit': {'unitType': 'day', 'multiple': 1}, 'plot.rangeAxis.axisLineVisible': false, 'plot.rangeAxis.numberFormatOverride': '#0', 'plot.rangeAxis.lowerMargin': 0.00, 'plot.rangeAxis.upperMargin': 0.00, 'plot.rangeAxis.tickMarksVisible': false, 'plot.rangeAxis.tickUnit': {'size': 50} } /]

[#if expensesreport.expenses?size != 0]

[/#if]

Date

Description

Amount

[#list expensesreport.expenses?sort_by("date") as expense]

${expense.date?date}

[#if expense.category??][${expense.category}] [/#if]${expense.description}

${expense.project.client} / ${expense.project}

${expense.amount}

[/#list]

${expensesreport.calculateAmount(expensesreport.expenses)}