<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> [% USE format -%] [% money = format('%.2f') -%] <html> <head> <style type="text/css"> @page { size: A4 portrait; margin-left: 0.25in; margin-right: 0.25in; margin-top: 0.25in; margin-bottom: 0.25in; } @page { @top-left { content: "Page " counter(page) " of " counter(pages); font-family: serif; font-size: 9pt; }; } table { border-collapse: collapse; } body { font-family: serif; } .abs { position: absolute; } .logo { top: 10mm; left: 10mm; } .company { top: 10mm; left: 40mm; width: 50mm; } .invoice { top: 10mm; left: 150mm; font-size: 24pt; font-weight: bold; } .date-num { top: 20mm; left: 120mm; width: 70mm; } .date-num td { border: black solid 1px; font-size: 10pt; text-align: center; vertical-align: center; height: 8mm; } .bill-to { top: 50mm; left: 10mm; width: 80mm; } .bill-to td { border: black solid 1px; padding-left: 3px; } .bill-to-header { height: 10mm; } .bill-to-body { height: 30mm; } .statement { top: 95mm; left: 10mm; width: 130mm; } .statement-header1 { table-column-span: 2; border: black solid 1px; text-align: center; height: 10mm; font-size: 10pt; } .statement-header2 { border: black solid 1px; text-align: center; height: 7mm; font-size: 10pt; } .statement-row { border: black solid 1px; text-align: center; height: 7mm; font-size: 10pt; } .due { top: 120mm; left: 10mm; width: 100mm; } .due .label { width: 70mm; border-bottom: 1px solid black; height: 10mm; font-size: 10pt; } .due .amount { border-bottom: 1px solid black; height: 10mm; font-size: 10pt; text-align: right; } .due .total { font-weight: bold; border-top: 3px solid black; border-bottom: none } .rule { top: 160mm; left: 15mm; width: 160mm; height: 1px; } .rule td { border-top: 1px solid black; } .totals { top: 160mm; left: 80mm; width: 100mm; } .totals .label { width: 75mm; border-bottom: 1px solid black; height: 10mm; font-size: 10pt; } .totals .amount { border-bottom: 1px solid black; height: 10mm; font-size: 10pt; text-align: right; } .totals .total { font-weight: bold; border-top: 3px solid black; border-bottom: none } .totals .subtotal { border-top: 3px solid black; } .details { top: 225mm; left: 10mm; width: 170mm; height: 30mm; border: 1px solid black; font-size: 10pt; text-align: center; vertical-align: top; padding-top: 2mm; } .disclaimer { top: 260mm; left: 10mm; width: 170mm; height: 20mm; border: 1px solid black; font-size: 10pt; text-align: center; vertical-align: top; padding-top: 2mm; } .xdrs { width: 200mm; font-size: 9pt; } .xdrs td { height: 7mm; text-align: left; } </style> </head> <body> <img class="abs logo" src="[% image_path %]parcel.gif"/> <div class="abs company"> [% env.companyname | html %]<br> [% env.addr1 | html %]<br> [% env.addr2 | html %]<br> [% env.addr3 | html %]<br> [% env.addr4 | html %] </div> <div class="abs invoice">Invoice</div> <table class="abs date-num"> <tr> <td>Date</td> <td>Invoice #</td> </tr> <tr> <td>[% invoice.issue_date | html %]</td> <td>[% invoice.invoice_number | html %]</td> </tr> </table> <table class="abs bill-to"> <tr> <td class="bill-to-header">Bill To:</td> </tr> <tr> <td class="bill-to-body"> [% customer.companyname | html %]<br> [% customer.salutation | html %] [% customer.firstname | html %] [% customer.midinit | html %] [% customer.lastname | html %] <br> [% customer.baddr1 %]<br> [% customer.baddr2 %]<br> [% customer.baddr3 %] </td> </tr> </table> <table class="abs statement"> <tr> <td class="statement-header1">Statement Period</td> <td></td> <td></td> </tr> <tr> <td class="statement-header2">From</td> <td class="statement-header2">To</td> <td class="statement-header2">Terms</td> <td class="statement-header2">Due Date</td> </tr> <tr> <td class="statement-row">[% invoice.period_from | html %]</td> <td class="statement-row">[% invoice.period_to | html %]</td> <td class="statement-row">Pay in full</td> <td class="statement-row">[% invoice.due_date | html %]</td> </tr> </table> <table class="abs due"> <tr> <td class="label">Previous Balance</td> <td class="amount">[% money(invoice.previous_balance) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label">Payments</td> <td class="amount">[% money(0 - invoice.payments) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label">Charges this period</td> <td class="amount">[% money(invoice.amount_net - invoice.taxes) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label total">Total due</td> <td class="amount total">[% money(invoice.amount_due) %] [% customer.iso_4217 %]</td> </tr> </table> <table class="abs rule"><tr><td></td></tr></table> <table class="abs totals"> <tr> <td class="label">Session charges</td> <td class="amount">[% money(invoice.calls) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label">Subscription charges</td> <td class="amount">[% money(invoice.subscriptions) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label">Credits</td> <td class="amount">[% money(invoice.manual_charges) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label subtotal">Subtotal</td> <td class="amount subtotal">[% money(invoice.amount_net - invoice.taxes) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label">Taxes</td> <td class="amount">[% money(invoice.taxes) %] [% customer.iso_4217 %]</td> </tr> <tr> <td class="label total">Total</td> <td class="amount total">[% money(invoice.amount_net) %] [% customer.iso_4217 %]</td> </tr> </table> <div class="abs details">Payment Details:<br>Explain how to pay here</div> <div class="abs disclaimer">Fine Print / Disclaimer</div> <div style="page-break-before: always;"></div> <!-- xdrs --> <!-- Payments --> [% SET iter = services.2 -%] [% SET row = iter.next_row -%] [% IF row -%] <table class="xdrs"> <thead> <tr> <td style="table-column-span: 5;"><b>Payments</b></td> </tr> </thead> <tbody> [% SET total_amount = 0 -%] [% WHILE row -%] <tr> <td>[% row.account_id | html %]</td> <td>[% row.destination_description | html %]</td> <td>[% row.xdr_cld | html %]</td> <td>[% row.xdr_connect_time | html %]</td> <td>[% money(row.xdr_charged_amount) %] [% customer.iso_4217 | html %]</td> </tr> [% SET total_amount = total_amount + money(row.xdr_charged_amount) -%] [% row = iter.next_row %] [% END %] </tbody> <tfoot> <tr> <td style="table-column-span: 4;"><b>Total Payments</b></td> <td>[% money(total_amount) %] [% customer.iso_4217 | html %]</td> </tr> </tfoot> </table> [% END -%] <!-- Credits/Adjustments --> [% SET iter = services.1 -%] [% SET row = iter.next_row -%] [% IF row -%] <table class="xdrs"> <thead> <tr> <td style="table-column-span: 5;"><b>Credits</b></td> </tr> </thead> <tbody> [% SET total_amount = 0 -%] [% WHILE row -%] <tr> <td>[% row.account_id | html %]</td> <td>[% row.destination_description | html %]</td> <td>[% row.xdr_cld | html %]</td> <td>[% row.xdr_connect_time | html %]</td> <td>[% money(row.xdr_charged_amount) %] [% customer.iso_4217 | html %]</td> </tr> [% SET total_amount = total_amount + money(row.xdr_charged_amount) -%] [% row = iter.next_row %] [% END %] </tbody> <tfoot> <tr> <td style="table-column-span: 4;"><b>Total Credits</b></td> <td>[% money(total_amount) %] [% customer.iso_4217 | html %]</td> </tr> </tfoot> </table> [% END -%] <!-- Subscriptions --> [% SET iter = services.4 -%] [% SET row = iter.next_row -%] [% IF row -%] <table class="xdrs"> <thead> <tr> <td style="table-column-span: 6;"><b>Subscriptions</b></td> </tr> </thead> <tbody> [% SET total_amount = 0 -%] [% WHILE row -%] <tr> <td style="width: 30mm;">[% row.account_id | html %]</td> <td>[% row.destination_description | html %]</td> <td>[% row.xdr_cld | html %]</td> <td>[% row.xdr_connect_time | html %]</td> <td>[% row.xdr_disconnect_time | html %]</td> <td>[% money(row.xdr_charged_amount) %]</td> </tr> [% SET total_amount = total_amount + money(row.xdr_charged_amount) -%] [% row = iter.next_row -%] [% END -%] </tbody> <tfoot> <tr> <td style="table-column-span: 5;"><b>Total Subscriptions</b></td> <td><b>[% money(total_amount) %]</b></td> </tr> </tfoot> </table> [% END -%] <!-- Taxes --> [% SET iter = services.12 -%] [% SET row = iter.next_row -%] [% IF row -%] <table class="xdrs"> <thead> <tr> <td style="table-column-span: 6;"><b>Taxes</b></td> </tr> </thead> <tbody> [% SET total_amount = 0 -%] [% WHILE row -%] <tr> <td>[% row.account_id | html %]</td> <td>[% row.destination_description | html %]</td> <td>[% row.xdr_cld | html %]</td> <td>[% row.xdr_connect_time | html %]</td> <td>[% row.xdr_disconnect_time | html %]</td> <td>[% money(row.xdr_charged_amount) %] [% customer.iso_4217 | html %]</td> </tr> [% SET total_amount = total_amount + money(row.xdr_charged_amount) -%] [% row = iter.next_row %] [% END %] </tbody> <tfoot> <tr> <td style="table-column-span: 5;"><b>Total Taxes</b></td> <td>[% money(total_amount) %] [% customer.iso_4217 | html %]</td> </tr> </tfoot> </table> [% END -%] <!-- all other... 3, 4, 6, 7, 8, 9, 10, 14, 15 --> [% FOREACH srv = services -%] [% NEXT UNLESS srv -%] [% SET i_service = srv.i_service -%] [% NEXT IF i_service == 1 -%] [% NEXT IF i_service == 2 -%] [% NEXT IF i_service == 11 -%] [% NEXT IF i_service == 12 -%] [% NEXT IF i_service == 100 -%] [% SET row = srv.next_row -%] [% IF row -%] <table class="xdrs"> <thead> <tr> <td style="table-column-span: 7;"><b>[% srv.name | html %]</b></td> </tr> </thead> <tbody> [% SET total_amount = 0 -%] [% SET total_time = 0 -%] [% SET prev_row = {} -%] [% WHILE row -%] [% IF prev_row AND prev_row.country_name != row.country_name -%] <tr> <td style="table-column-span: 5;"><b>Total by [% prev_row.country_name | html -%]</b></td> <td>[% total_time %]</td> <td>[% total_amount %] [% customer.iso_4217 %]</td> </tr> <tr> <td style="table-column-span: 7;">[% row.country_name | html -%]</td> </tr> [% SET total_amount = 0 -%] [% SET total_time = 0 -%] [% END -%] <tr> <td>[% row.xdr_cli | html %]</td> <td>[% row.xdr_cld | html %]</td> <td>[% row.country_name | html -%]</td> <td>[% row.destination_description | html %]</td> <td>[% row.xdr_connect_time | html %]</td> <td>[% row.xdr_charged_quantity %]</td> <td>[% money(row.xdr_charged_amount) %] [% customer.iso_4217 | html %]</td> </tr> [% SET total_amount = total_amount + money(row.xdr_charged_amount) -%] [% SET total_time = total_time + row.xdr_charged_quantity -%] [% SET prev_row = row -%] [% SET row = srv.next_row -%] [% END -%] [% IF prev_row -%] [% END -%] [% IF prev_row -%] <tr> <td style="table-column-span: 5;"><b>Total by [% prev_row.country_name | html -%]</b></td> <td>[% total_time %]</td> <td>[% total_amount %] [% customer.iso_4217 %]</td> </tr> [% END -%] </tbody> </table> [% END -%] [% END -%] </body> </html>