#--
This is a meta-template that is used to generate invoice templates.
-->
${invoiceTitle} ${'$'}{invoice.number}
<#if showPageBackground>
#if>
<#if useCharacterEncoding>
#if>
${invoiceTitle}
<@showInvoiceHeader/>
<@showInvoiceItemsByProject/>
<#if showSubtotalInvoice>
<@showInvoiceSubtotal/>
#if>
[#if invoice.taxable] |
<#if showSubtotalTax>
<@showInvoiceTaxes/>
#if>
<#if showSubtotalTaxes>
<@showInvoiceTaxesSubtotal/>
#if>
<#if showTotalInvoice>
<@showInvoiceTotal/>
#if>
[/#if] |
<#if showSubtotalPayments>
<@showSubtotalPaymentsMacro/>
#if>
<#if showSubtotalPayment>
<@showSubtotalPaymentMacro/>
#if>
<#if showInvoiceBalance>
<@showInvoiceBalanceMacro/>
#if>
<#if showOtherInvoicesBalance>
<@showOtherInvoicesBalanceMacro/>
#if>
<#if showClientBalance>
<@showClientBalanceMacro/>
#if>
<#if showDepositsBalance>
<@showDepositsBalanceMacro/>
#if>
<#if showPaidStamp>
[#if invoice.paid]
[/#if]
#if>
<#if showClientStatement>
<@showClientStatementMacro/>
#if>
<#macro showClientStatementMacro>
[#if client.openInvoices?size != 0]
${clientStatementHeader}
<#if showClientStatementColumnNumber>
${clientStatementColumnNumber} |
#if>
<#if showClientStatementColumnDate>
${clientStatementColumnDate} |
#if>
<#if showClientStatementColumnDueDate>
${clientStatementColumnDueDate} |
#if>
<#if showClientStatementColumnAge>
${clientStatementColumnAge} |
#if>
<#if showClientStatementColumnGrandTotal>
${clientStatementColumnGrandTotal} |
#if>
<#if showClientStatementColumnPayments>
${clientStatementColumnPayments} |
#if>
<#if showClientStatementColumnBalance>
${clientStatementColumnBalance} |
#if>
[#list client.openInvoices?sort_by("ageInDays") as invoice] |
<#if showClientStatementColumnNumber>
${'$'}{invoice.number} |
#if>
<#if showClientStatementColumnDate>
${'$'}{invoice.date?date?string.short} |
#if>
<#if showClientStatementColumnDueDate>
${'$'}{invoice.dueDate?date?string.short} |
#if>
<#if showClientStatementColumnAge>
${'$'}{invoice.ageInDays?string("#0")} |
#if>
<#if showClientStatementColumnGrandTotal>
${'$'}{invoice.grandTotal} |
#if>
<#if showClientStatementColumnPayments>
${'$'}{invoice.paymentsTotal} |
#if>
<#if showClientStatementColumnBalance>
${'$'}{invoice.balance} |
#if>
[/#list] |
<#if showClientStatementColumnNumber>
|
#if>
<#if showClientStatementColumnDate>
|
#if>
<#if showClientStatementColumnDueDate>
|
#if>
<#if showClientStatementColumnAge>
|
#if>
<#if showClientStatementColumnGrandTotal>
|
#if>
<#if showClientStatementColumnPayments>
|
#if>
<#if showClientStatementColumnBalance>
${'$'}{client.balance} |
#if>
${clientStatementFooter}
[/#if]
#macro>
<#macro showSubtotalPaymentMacro>
[#list invoice.payments?sort_by("date") as payment] |
<#if showColumnDate>
${'$'}{payment.date?date?string.short} |
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{payment.amount}
|
#if>
[/#list] |
#macro>
<#macro showSubtotalPaymentsMacro>
${subtotalPaymentsName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.paymentsTotal}
|
#if>
#macro>
<#macro showInvoiceBalanceMacro>
${invoiceBalanceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.balance}
|
#if>
#macro>
<#macro showOtherInvoicesBalanceMacro>
${otherInvoicesBalanceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{client.otherInvoicesBalance}
|
#if>
#macro>
<#macro showClientBalanceMacro>
${clientBalanceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{client.balance}
|
#if>
#macro>
<#macro showDepositsBalanceMacro>
${depositsBalanceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{client.depositsBalance}
|
#if>
#macro>
<#macro showInvoiceTaxesSubtotal>
${subtotalTaxesName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.taxesTotal}
|
#if>
#macro>
<#macro showInvoiceTaxes>
[#list invoice.taxes?sort_by("name") as tax] |
${'$'}{tax.name} <#if showInvoiceTaxRate>${'$'}{tax.defaultRate}#if> |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.taxTotal(tax)}
|
#if>
[/#list] |
#macro>
<#macro showInvoiceTotal>
${totalInvoiceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.grandTotal}
|
#if>
#macro>
<#macro showInvoiceHeader>
<#if showColumnDate>
${columnDate} |
#if>
${columnName} |
<#if showColumnCatalogItem>
${columnCatalogItem} |
#if>
<#if showColumnTime>
${columnTime} |
#if>
<#if showColumnQuantity>
${columnQuantity} |
#if>
<#if showColumnMeasure>
${columnMeasure} |
#if>
<#if showColumnPrice>
${columnPrice} |
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
${'$'}{tax.name} <#if showItemTaxRate>${'$'}{tax.defaultRate}#if> |
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
${columnTaxExempt} |
[/#if] |
#if>
<#if showColumnTotal>
${columnTotal} |
#if>
#macro>
<#macro showRegularItems items>
<#if showRegularItemsHeader>
${regularItemsHeaderName} |
#if>
[#list ${items}?sort_by("date") as item] |
<#if showColumnDate>
${'$'}{item.date?date?string.short} |
#if>
${'$'}{item.name}
<#if showItemDescription>
${'$'}{item.description}
#if>
|
<#if showColumnCatalogItem>
${'$'}{item.catalogItem!"-"} |
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
${'$'}{item.quantity}
[#if item.quantityDiscounted]
${'$'}{item.regularQuantity}
[/#if]
|
#if>
<#if showColumnMeasure>
${'$'}{item.unitOfMeasure} |
#if>
<#if showColumnPrice>
${'$'}{item.price}
[#if item.priceDiscounted]
${'$'}{item.regularPrice}
[/#if]
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
[#if item.taxExempt]
<#if showTaxExempt>
${taxExempt}
<#else>
${'$'}{invoice.taxTotal(tax, item)}
#if>
[#else]
${'$'}{invoice.taxTotal(tax, item)}
[/#if]
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
<#if showTaxExempt>
${taxExempt} |
<#else>
|
#if>
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{item.total} |
#if>
[/#list] |
#macro>
<#macro showProductItems items>
<#if showProductsHeader>
${productsHeaderName} |
#if>
[#list ${items}?sort_by("date") as item] |
<#if showColumnDate>
${'$'}{item.date?date?string.short} |
#if>
${'$'}{item.name}
<#if showItemDescription>
${'$'}{item.description}
#if>
|
<#if showColumnCatalogItem>
${'$'}{item.catalogItem!"-"} |
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
${'$'}{item.quantity}
[#if item.quantityDiscounted]
${'$'}{item.regularQuantity}
[/#if]
|
#if>
<#if showColumnMeasure>
${'$'}{item.unitOfMeasure} |
#if>
<#if showColumnPrice>
${'$'}{item.price}
[#if item.priceDiscounted]
${'$'}{item.regularPrice}
[/#if]
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
[#if item.taxExempt]
<#if showTaxExempt>
${taxExempt}
<#else>
${'$'}{invoice.taxTotal(tax, item)}
#if>
[#else]
${'$'}{invoice.taxTotal(tax, item)}
[/#if]
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
<#if showTaxExempt>
${taxExempt} |
<#else>
|
#if>
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{item.total} |
#if>
[/#list] |
#macro>
<#macro showExpenseItems items>
<#if showExpensesHeader>
${expensesHeaderName} |
#if>
[#list ${items}?sort_by("date") as item] |
<#if showColumnDate>
${'$'}{item.date?date?string.short} |
#if>
${'$'}{item.name}
<#if showItemDescription>
${'$'}{item.description}
#if>
|
<#if showColumnCatalogItem>
${'$'}{item.catalogItem!"-"} |
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
${'$'}{item.quantity} |
#if>
<#if showColumnMeasure>
${'$'}{item.unitOfMeasure} |
#if>
<#if showColumnPrice>
${'$'}{item.price} |
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
[#if item.taxExempt]
<#if showTaxExempt>
${taxExempt}
<#else>
${'$'}{invoice.taxTotal(tax, item)}
#if>
[#else]
${'$'}{invoice.taxTotal(tax, item)}
[/#if]
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
<#if showTaxExempt>
${taxExempt} |
<#else>
|
#if>
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{item.total} |
#if>
[/#list] |
#macro>
<#macro showMileageItems items>
<#if showMileageHeader>
${mileageHeaderName} |
#if>
[#list ${items}?sort_by("name") as item] |
<#if showColumnDate>
|
#if>
${'$'}{item.name}
<#if showItemDescription>
${'$'}{item.description}
#if>
|
<#if showColumnCatalogItem>
${'$'}{item.catalogItem!"-"} |
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
${'$'}{item.quantity} |
#if>
<#if showColumnMeasure>
${'$'}{item.unitOfMeasure} |
#if>
<#if showColumnPrice>
${'$'}{item.price} |
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
[#if item.taxExempt]
<#if showTaxExempt>
${taxExempt}
<#else>
${'$'}{invoice.taxTotal(tax, item)}
#if>
[#else]
${'$'}{invoice.taxTotal(tax, item)}
[/#if]
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
<#if showTaxExempt>
${taxExempt} |
<#else>
|
#if>
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{item.total} |
#if>
<#if showMileageTrips && showColumnQuantity>
<@showMileageTripsMacro item="item"/>
#if>
[/#list] |
#macro>
<#macro showMileageTripsMacro item>
[#list ${item}.trips?sort_by("startTime") as trip] |
<#if showColumnDate>
|
#if>
${'$'}{trip.description} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
${'$'}{trip.startTime?string("MMM dd")} - ${'$'}{trip.distance} |
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
|
#if>
[/#list] |
#macro>
<#macro showServiceItems items>
<#if showServicesHeader>
${servicesHeaderName} |
#if>
[#list ${items}?sort_by("date") as item] |
<#if showColumnDate>
${'$'}{item.date?date?string.short} |
#if>
${'$'}{item.name}
<#if showItemDescription>
${'$'}{item.description}
#if>
|
<#if showColumnCatalogItem>
${'$'}{item.catalogItem!"-"} |
#if>
<#if showColumnTime>
<#if useDecimalTimeFormat>${'$'}{item.billingTimeAsDecimal}<#else>${'$'}{item.billingTimeAsHour}#if> |
#if>
<#if showColumnQuantity>
${'$'}{item.quantity}
[#if item.quantityDiscounted]
${'$'}{item.regularQuantity}
[/#if]
|
#if>
<#if showColumnMeasure>
${'$'}{item.unitOfMeasure} |
#if>
<#if showColumnPrice>
${'$'}{item.price}
[#if item.priceDiscounted]
${'$'}{item.regularPrice}
[/#if]
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
[#if item.taxExempt]
<#if showTaxExempt>
${taxExempt}
<#else>
${'$'}{invoice.taxTotal(tax, item)}
#if>
[#else]
${'$'}{invoice.taxTotal(tax, item)}
[/#if]
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
<#if showTaxExempt>
${taxExempt} |
<#else>
|
#if>
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{item.total} |
#if>
<#if showServiceTime && showColumnTime>
<#if groupServiceTimeByDate>
<@showServiceItemTimeByDate item="item"/>
<#else>
<@showServiceItemTimeMacro item="item"/>
#if>
#if>
[/#list] |
#macro>
<#macro showServiceItemTimeMacro item>
[#list ${item}.timeEntries?sort_by("date") as timeEntry] |
<#if showColumnDate>
|
#if>
${'$'}{timeEntry.description} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
${'$'}{timeEntry.date?string("MMM dd")} - <#if useDecimalTimeFormat>${'$'}{timeEntry.billingTimeAsDecimal}<#else>${'$'}{timeEntry.billingTimeAsHour}#if> |
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
|
#if>
[/#list] |
#macro>
<#macro showServiceItemTimeByDate item>
[#list invoice.groupDatesByDate(${item}.timeEntries)?sort as date][#assign dateTimeEntries = invoice.filterByDate(${item}.timeEntries, date.toInterval())] |
<#if showColumnDate>
|
#if>
[#list dateTimeEntries?sort as timeEntry]${'$'}{timeEntry.description} [/#list] |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
${'$'}{date.toDate()?string("MMM dd")} - <#if useDecimalTimeFormat>${'$'}{invoice.calculateBillingTimeAsDecimal(dateTimeEntries)}<#else>${'$'}{invoice.calculateBillingTimeAsHour(dateTimeEntries)}#if> |
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
|
#if>
[/#list] |
#macro>
<#macro showInvoiceSubtotal>
${subtotalInvoiceName} |
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
[#if invoice.timeEntries?size != 0]<#if useDecimalTimeFormat>${'$'}{invoice.billingTimeAsDecimal}<#else>${'$'}{invoice.billingTimeAsHour}#if>[/#if] |
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
${'$'}{invoice.taxTotal(tax)} |
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{invoice.total}
[#if invoice.totalDiscounted]
${'$'}{invoice.regularTotal}
[/#if]
|
#if>
#macro>
<#macro showInvoiceItemsByProject>
[#list invoice.projects?sort_by("name") as project] |
${'$'}{project.name} |
[#if project.serviceItems?size != 0] |
<@showServiceItems items="project.serviceItems"/>
<#if showSubtotalServices>
<#if showColumnDate>
|
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{project.serviceItemsSubtotal} |
#if>
#if>
[/#if] |
[#if project.productItems?size != 0] |
<@showProductItems items="project.productItems"/>
<#if showSubtotalProducts>
<#if showColumnDate>
|
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{project.productItemsSubtotal} |
#if>
#if>
[/#if] |
[#if project.expenseItems?size != 0] |
<@showExpenseItems items="project.expenseItems"/>
<#if showSubtotalExpenses>
<#if showColumnDate>
|
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{project.expenseItemsSubtotal} |
#if>
#if>
[/#if] |
[#if project.mileageItems?size != 0] |
<@showMileageItems items="project.mileageItems"/>
<#if showSubtotalMileage>
<#if showColumnDate>
|
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
|
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes?sort_by("name") as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{project.mileageItemsSubtotal} |
#if>
#if>
[/#if] |
<#if showSubtotalProject>
[#if invoice.projects?size != 1] |
<#if showColumnDate>
|
#if>
|
<#if showColumnCatalogItem>
|
#if>
<#if showColumnTime>
[#if invoice.timeEntries?size != 0]<#if useDecimalTimeFormat>${'$'}{project.billingTimeAsDecimal}<#else>${'$'}{project.billingTimeAsHour}#if>[/#if] |
#if>
<#if showColumnQuantity>
|
#if>
<#if showColumnMeasure>
|
#if>
<#if showColumnPrice>
|
#if>
<#if showColumnTax>
[#list invoice.taxes as tax] |
|
[/#list] |
#if>
<#if showColumnTaxExempt>
[#if invoice.taxes?size == 0] |
|
[/#if] |
#if>
<#if showColumnTotal>
${'$'}{project.total} |
#if>
[/#if] |
#if>
[/#list] |
[#if invoice.regularItems?size != 0] |
<@showRegularItems items="invoice.regularItems"/>
[/#if] |
#macro>