diff options
author | jeff <jeff> | 2009-10-05 00:49:34 +0000 |
---|---|---|
committer | jeff <jeff> | 2009-10-05 00:49:34 +0000 |
commit | 947c1f964f1304242f8a6ffabacccf040f1d505e (patch) | |
tree | ba3e3a042f40ac4b1b660e944973a2f1b29f80fa /conf | |
parent | 161eeea92a87e07d071a6c953f2dbd30daeb480c (diff) |
leading summary page invoices #RT5086
Diffstat (limited to 'conf')
-rw-r--r-- | conf/invoice_html | 167 | ||||
-rw-r--r-- | conf/invoice_htmlsummary | 74 | ||||
-rw-r--r-- | conf/invoice_latex | 133 | ||||
-rw-r--r-- | conf/invoice_latexsummary | 45 |
4 files changed, 272 insertions, 147 deletions
diff --git a/conf/invoice_html b/conf/invoice_html index d5e24b812..73dcc2e42 100644 --- a/conf/invoice_html +++ b/conf/invoice_html @@ -3,6 +3,8 @@ .invoice_header { font-size: 10pt } .invoice_headerright TH { border-top: 2px solid #000000; border-bottom: 2px solid #000000 } .invoice_headerright TD { font-size: 10pt; empty-cells: show } +.invoice_summary TH { border-bottom: 2px solid #000000 } +.invoice_summary TD { font-size: 10pt; empty-cells: show } .invoice_longtable table { cellspacing: none } .invoice_longtable TH { border-top: 2px solid #000000; border-bottom: 1px solid #000000; padding-left: none; padding-right: none; font-size: 10pt } .invoice_desc TD { border-top: 2px solid #000000; font-weight: bold; font-size: 10pt } @@ -11,7 +13,7 @@ .invoice_totaldesc TD { font-size: 10pt; empty-cells: show } </STYLE> -<table class="invoice" bgcolor="#ffffff" WIDTH=625 CELLSPACING=8><tr><td> +<table class="invoice" bgcolor="#ffffff" WIDTH=768 CELLSPACING=8><tr><td> <table class="invoice_header" width="100%"> <tr> @@ -82,10 +84,10 @@ </tr> </table> - + <%= $summary %> <%= - foreach my $section ( @sections ) { - if ($section->{'pretotal'}) { + foreach my $section ( grep { !$summary || $_->{description} ne $finance_section } @sections ) { + if ($section->{'pretotal'} && !$summary) { $OUT .= '<table width="100%"><tr><td>'. '<p align="right"><b><font size="+1">'. @@ -95,91 +97,92 @@ '<p>'. '</td></tr></table>'; } - $OUT .= '<table><tr><td>'; - if ($section->{'description'}) { - $OUT .= - '<p><b><font size="+1">'. uc(substr($section->{'description'},0,1)). - '</font><font size="+0">'. uc(substr($section->{'description'},1)). - '</font></b>'. - '<p>'; - }else{ - $OUT .= - '<p><b><font size="+1">C</font><font size="+0">HARGES</font></b>'. - '<p>'; - } - $OUT .= '</td></tr></table>'; + unless ($section->{'summarized'}) { + $OUT .= '<table><tr><td>'; + if ($section->{'description'}) { + $OUT .= + '<p><b><font size="+1">'. uc(substr($section->{'description'},0,1)). + '</font><font size="+0">'. uc(substr($section->{'description'},1)). + '</font></b>'. + '<p>'; + }else{ + $OUT .= + '<p><b><font size="+1">C</font><font size="+0">HARGES</font></b>'. + '<p>'; + } + $OUT .= '</td></tr></table>'; - $OUT .= - '<table class="invoice_longtable" CELLSPACING=0 WIDTH="100%">'. - '<tr>'. - '<th align="center">Ref</th>'. - '<th align="left">Description</th>'. - ( $unitprices - ? '<th align="left">Unit Price</th>'. - '<th align="left">Quantity</th>' - : '' - ). - '<th align="right">Amount</th>'. - '</tr>'; - - my $lastref = 0; - foreach my $line ( - grep { ( scalar(@sections) > 1 - ? $section->{'description'} eq $_->{'section'}->{'description'} - : 1 - ) } - @detail_items ) - { $OUT .= - '<tr class="invoice_desc'. - ( ($line->{'ref'} && $line->{'ref'} ne $lastref) ? '' : '_more' ). - '">'. - '<td align="center">'. - ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ). '</td>'. - '<td align="left">'. $line->{'description'}. '</td>'. + '<table class="invoice_longtable" CELLSPACING=0 WIDTH="100%">'. + '<tr>'. + '<th align="center">Ref</th>'. + '<th align="left">Description</th>'. ( $unitprices - ? '<td align="left">'. $line->{'unit_amount'}. '</td>'. - '<td align="left">'. $line->{'quantity'}. '</td>' + ? '<th align="left">Unit Price</th>'. + '<th align="left">Quantity</th>' : '' - ). - - '<td align="right">'. $line->{'amount'}. '</td>'. - '</tr>' - ; - $lastref = $line->{'ref'}; - if ( @{$line->{'ext_description'} } ) { - $OUT .= '<tr class="invoice_extdesc"><td></td><td'; - $OUT .= $unitprices ? ' colspan=3>' : '>'; - $OUT .= '<table width="100%">'; - foreach my $ext_desc ( @{$line->{'ext_description'} } ) { - $OUT .= - '<tr class="invoice_extdesc">'. - '<td align="left" '. - ( $ext_desc =~ /<\/?TD>/i ? '' : 'colspan=99' ). '>'. - ' '. $ext_desc. - '</td>'. - '</tr>' + ). + '<th align="right">Amount</th>'. + '</tr>'; + + my $lastref = 0; + foreach my $line ( + grep { ( scalar(@sections) > 1 + ? $section->{'description'} eq $_->{'section'}->{'description'} + : 1 + ) } + @detail_items ) + { + $OUT .= + '<tr class="invoice_desc'. + ( ($line->{'ref'} && $line->{'ref'} ne $lastref) ? '' : '_more' ). + '">'. + '<td align="center">'. + ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ). '</td>'. + '<td align="left">'. $line->{'description'}. '</td>'. + ( $unitprices + ? '<td align="left">'. $line->{'unit_amount'}. '</td>'. + '<td align="left">'. $line->{'quantity'}. '</td>' + : '' + ). + + '<td align="right">'. $line->{'amount'}. '</td>'. + '</tr>' + ; + $lastref = $line->{'ref'}; + if ( @{$line->{'ext_description'} } ) { + $OUT .= '<tr class="invoice_extdesc"><td></td><td'; + $OUT .= $unitprices ? ' colspan=3>' : '>'; + $OUT .= '<table width="100%">'; + foreach my $ext_desc ( @{$line->{'ext_description'} } ) { + $OUT .= + '<tr class="invoice_extdesc">'. + '<td align="left" '. + ( $ext_desc =~ /<\/?TD>/i ? '' : 'colspan=99' ). '>'. + ' '. $ext_desc. + '</td>'. + '</tr>' + } + $OUT .= '</table></td><td></td></tr>'; } - $OUT .= '</table></td><td></td></tr>'; } - } - if (scalar(@sections) > 1) { - my $style = 'border-top: 3px solid #000000;'. - 'border-bottom: 3px solid #000000;'; - $OUT .= - '<tr class="invoice_totaldesc">'. - qq(<td style="$style"> </td>). - qq(<td align="left" style="$style"). - ( $unitprices ? ' colspan=3>' : '>' ). - $section->{'description'}. ' Total </td>'. - qq(<td align="right" style="$style">). - $section->{'subtotal'}. '</td>'. - '</tr>' - ; - } - + if (scalar(@sections) > 1) { + my $style = 'border-top: 3px solid #000000;'. + 'border-bottom: 3px solid #000000;'; + $OUT .= + '<tr class="invoice_totaldesc">'. + qq(<td style="$style"> </td>). + qq(<td align="left" style="$style"). + ( $unitprices ? ' colspan=3>' : '>' ). + $section->{'description'}. ' Total </td>'. + qq(<td align="right" style="$style">). + $section->{'subtotal'}. '</td>'. + '</tr>' + ; + } + } if ($section->{'posttotal'}) { $OUT .= '<tr><td align="right" colspan=5>'; $OUT .= @@ -218,7 +221,7 @@ </table> <br><br> -<%= $notes %> +<%= length($summary) ? '' : $notes %> <hr NOSHADE SIZE=2 COLOR="#000000"> <p align="center"><%= $footer %> diff --git a/conf/invoice_htmlsummary b/conf/invoice_htmlsummary new file mode 100644 index 000000000..b158478e1 --- /dev/null +++ b/conf/invoice_htmlsummary @@ -0,0 +1,74 @@ +<table> + <tr> + <td> + <table> + <tr><td><%= $notes %></td></tr> + </table> + </td> + <td> + <table class="invoice_summary"> + <tr><th colspan=2><br></th></tr> + <tr> + <td><b><u><br>Summary of Previous Balance and Payments<br></u></b></td> + <td></td> + </tr> + <tr> + <td><b>Previous Balance</b></td> + <td align="right"><b><%= $dollar.$true_previous_balance %></b></td> + </tr> + <tr> + <td><b>Payments</b></td> + <th align="right"><b><%= $dollar.$balance_adjustments %></b></th> + </tr> + <tr> + <td><b>Balance Outstanding</b></td> + <td align="right"><b><%= $dollar.sprintf('%.2f', $true_previous_balance - $balance_adjustments) %></b></td> + </tr> + <tr><th colspan=2><br></th></tr> + <tr><td colspan=2><br></td></tr> + <tr> + <td><b><u>Summary of New Charges</u></b></td> + <td></td> + </tr> + <tr><td colspan=2><br></td></tr> + <%= + my ($last) = grep { $_->{tax_section} || !$_->{summarized} and !($finance_section && $_->{'description'} eq $finance_section)} reverse @sections; + + foreach my $section ( grep { $_->{tax_section} || !$_->{summarized} and !($finance_section && $_->{'description'} eq $finance_section)} @sections ) { + $OUT .= '<tr><td><b>'. ($section->{'description'} ? $section->{'description'} : 'Charges' ). '</b></td>'; + my $celltype = ($last == $section) ? 'th' : 'td'; + $OUT .= qq(<$celltype align="right"><b>). $section->{'subtotal'}. "</b></$celltype></tr>"; + } + %> + <tr> + <td><b>New Charges Total</b></td> + <td align="right"><b><%= $dollar.$current_less_finance %></b></td> + </tr> + <tr><th colspan=2><br></th></tr> + <tr><td colspan=2><br></td></tr> + <tr> + <td><b><u>Invoice Summary</u></b></td> + <td></td> + </tr> + <tr><td colspan=2><br></td></tr> + <tr> + <td><b>Previous Past Due Charges</b></td> + <td align="right"><b><%= $dollar.sprintf('%.2f', $true_previous_balance - $balance_adjustments) %></b></td> + </tr> + <tr> + <td><b>Finance charges on overdue amount</b></td> + <td align="right"><b><%= $dollar.$finance_amount %></b></td> + </tr> + <tr> + <td><b>New Charges</b></td> + <th align="right"><b><%= $dollar.$current_less_finance %></b></th> + </tr> + <tr> + <td><b>Total Amount Due</b></td> + <td align="right"><b><%= $dollar.sprintf('%.2f', $true_previous_balance + $current_charges - $balance_adjustments) %></b></td> + </tr> + <tr><th colspan=2><br></th></tr> + </table> + </td> + </tr> +</table> diff --git a/conf/invoice_latex b/conf/invoice_latex index 7facc19da..cf684ef75 100644 --- a/conf/invoice_latex +++ b/conf/invoice_latex @@ -19,7 +19,7 @@ \documentclass[letterpaper]{article}
-\usepackage{fancyhdr,lastpage,ifthen,fslongtable,afterpage,caption,multirow,bigstrut}
+\usepackage{fancyhdr,lastpage,ifthen,array,fslongtable,afterpage,caption,multirow,bigstrut}
\usepackage{graphicx} % required for logo graphic
\addtolength{\voffset}{-0.0cm} % top margin to top of header
@@ -232,83 +232,86 @@ Terms: [@-- $terms --@]\\ \end{minipage}}
\vspace{1.5cm}
%
+[@-- $summary --@]
+%
\section*{}
[@--
- foreach my $section ( @sections ) {
- if ($section->{'pretotal'}) {
+ foreach my $section ( grep { !$summary || $_->{description} ne $finance_section } @sections ) {
+ if ($section->{'pretotal'} && !$summary) {
$OUT .= '\begin{flushright}';
$OUT .= '\large\textsc{'. $section->{'pretotal'}. '}\\\\';
$OUT .= '\\end{flushright}';
}
$OUT .= '\pagebreak' if $section{'post_total'};
- $OUT .= '\captionsetup{singlelinecheck=false,justification=raggedright,font={Large,sc,bf}}';
- $OUT .= '\ifthenelse{\equal{\thepage}{1}}{\setlength{\LTextracouponspace}{\extracouponspace}}{\setlength{\LTextracouponspace}{0pt}}'
- if $coupon;
- $OUT .= '\begin{longtable}{cllllllr}';
- $OUT .= '\caption*{ ';
- $OUT .= ($section->{'description'}) ? $section->{'description'}: 'Charges';
- $OUT .= '}\\\\';
- $OUT .= '\FShead';
- $OUT .= '\endfirsthead';
- $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\\\';
- $OUT .= '\FShead';
- $OUT .= '\endhead';
- $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\\\';
- $OUT .= '\endfoot';
- $OUT .= '\hline';
-
- if (scalar(@sections) > 1) {
- $OUT .= '\FStotaldesc{' . $section->{'description'} . ' Total}' .
- '{' . $section->{'subtotal'} . '}' . "\n";
- }
-
- #if ($section == $sections[$#sections]) {
- foreach my $line (grep {$_->{section}->{description} eq $section->{description}} @total_items) {
- $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
- '{' . $line->{'total_amount'} . '}' . "\n";
+ unless ($section->{'summarized'} ) {
+ $OUT .= '\captionsetup{singlelinecheck=false,justification=raggedright,font={Large,sc,bf}}';
+ $OUT .= '\ifthenelse{\equal{\thepage}{1}}{\setlength{\LTextracouponspace}{\extracouponspace}}{\setlength{\LTextracouponspace}{0pt}}'
+ if $coupon;
+ $OUT .= '\begin{longtable}{cllllllr}';
+ $OUT .= '\caption*{ ';
+ $OUT .= ($section->{'description'}) ? $section->{'description'}: 'Charges';
+ $OUT .= '}\\\\';
+ $OUT .= '\FShead';
+ $OUT .= '\endfirsthead';
+ $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\\\';
+ $OUT .= '\FShead';
+ $OUT .= '\endhead';
+ $OUT .= '\multicolumn{7}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\\\';
+ $OUT .= '\endfoot';
+ $OUT .= '\hline';
+
+ if (scalar(@sections) > 1) {
+ $OUT .= '\FStotaldesc{' . $section->{'description'} . ' Total}' .
+ '{' . $section->{'subtotal'} . '}' . "\n";
}
- #}
-
- $OUT .= '\hline';
- $OUT .= '\endlastfoot';
-
- my $lastref = 0;
- foreach my $line (
- grep { ( scalar( @sections ) > 1
- ? $section->{'description'} eq $_->{'section'}->{'description'}
- : 1
- ) }
- @detail_items )
- {
- my $ext_description = $line->{'ext_description'};
+
+ #if ($section == $sections[$#sections]) {
+ foreach my $line (grep {$_->{section}->{description} eq $section->{description}} @total_items) {
+ $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
+ '{' . $line->{'total_amount'} . '}' . "\n";
+ }
+ #}
+
+ $OUT .= '\hline';
+ $OUT .= '\endlastfoot';
+
+ my $lastref = 0;
+ foreach my $line (
+ grep { ( scalar( @sections ) > 1
+ ? $section->{'description'} eq $_->{'section'}->{'description'}
+ : 1
+ ) }
+ @detail_items )
+ {
+ my $ext_description = $line->{'ext_description'};
- # Don't break-up small packages.
- my $rowbreak = @$ext_description < 5 ? '*' : '';
+ # Don't break-up small packages.
+ my $rowbreak = @$ext_description < 5 ? '*' : '';
- $OUT .= "\\hline\n" if ($line->{'ref'} && $line->{'ref'} ne $lastref);
- $OUT .= '\FSdesc'.
- '{' . ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ) . '}'.
- '{' . $line->{'description'} . '}' .
- '{' . ( $unitprices ? $line->{'unit_amount'} : '' ) . '}'.
- '{' . ( $unitprices ? $line->{'quantity'} : '' ) . '}' .
- '{' . $line->{'amount'} . "}${rowbreak}\n";
- $lastref = $line->{'ref'};
-
- foreach my $ext_desc (@$ext_description) {
- if ( $ext_desc !~ /[^\\]&/ ) {
- $ext_desc = substr($ext_desc, 0, 80) . '...'
- if (length($ext_desc) > 80);
- $ext_desc = '\multicolumn{6}{l}{\small{~~~'. $ext_desc. '}}';
- }else{
- $ext_desc = "~~~$ext_desc";
+ $OUT .= "\\hline\n" if ($line->{'ref'} && $line->{'ref'} ne $lastref);
+ $OUT .= '\FSdesc'.
+ '{' . ( $line->{'ref'} ne $lastref ? $line->{'ref'} : '' ) . '}'.
+ '{' . $line->{'description'} . '}' .
+ '{' . ( $unitprices ? $line->{'unit_amount'} : '' ) . '}'.
+ '{' . ( $unitprices ? $line->{'quantity'} : '' ) . '}' .
+ '{' . $line->{'amount'} . "}${rowbreak}\n";
+ $lastref = $line->{'ref'};
+
+ foreach my $ext_desc (@$ext_description) {
+ if ( $ext_desc !~ /[^\\]&/ ) {
+ $ext_desc = substr($ext_desc, 0, 80) . '...'
+ if (length($ext_desc) > 80);
+ $ext_desc = '\multicolumn{6}{l}{\small{~~~'. $ext_desc. '}}';
+ }else{
+ $ext_desc = "~~~$ext_desc";
+ }
+ $OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n";
}
- $OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n";
+
}
+ $OUT .= '\end{longtable}';
}
-
- $OUT .= '\end{longtable}';
-
if ($section->{'posttotal'}) {
$OUT .= '\begin{flushright}';
$OUT .= '\normalfont\large\bfseries\textsc{'. $section->{'posttotal'}. '}\\\\';
@@ -319,7 +322,7 @@ Terms: [@-- $terms --@]\\ --@]
\vfill
\begin{minipage}[t]{\textwidth}
- [@-- $notes --@]
+ [@-- length($summary) ? '' : $notes --@]
[@-- $coupon ? '\ifthenelse{\equal{\thepage}{1}}{\rule{0pt}{\extracouponspace}}{}' : '' --@]
\end{minipage}
\end{document}
diff --git a/conf/invoice_latexsummary b/conf/invoice_latexsummary new file mode 100644 index 000000000..a181ee435 --- /dev/null +++ b/conf/invoice_latexsummary @@ -0,0 +1,45 @@ +\begin{tabular}{ll} +\begin{minipage}{6.4cm} +\begin{tabular}{m{0cm}m{6.4cm}} +\rule{0cm}{10cm}&\begin{minipage}{6cm}[@-- $notes --@]\end{minipage}\\ +\end{tabular} +\end{minipage} & +\rule{2cm}{0cm} +\begin{minipage}{12.8cm} +\begin{tabular}{lr} +\hline +&\\ +\textbf{\underline{Summary of Previous Balance and Payments}} & \\ +&\\ +\textbf{Previous Balance}&\textbf{\dollar[@-- $true_previous_balance --@]}\\ +\textbf{Payments}&\textbf{\dollar[@-- $balance_adjustments --@]}\\ +\cline{2-2} +\textbf{Balance Outstanding}&\textbf{\dollar[@-- sprintf('%.2f', $true_previous_balance -$balance_adjustments) --@]}\\ +&\\ +\hline +&\\ +\textbf{\underline{Summary of New Charges}} & \\ +&\\ +[@-- + foreach my $section ( grep { $_->{tax_section} || !$_->{summarized} and !($finance_section && $_->{'description'} eq $finance_section)} @sections ) { + $OUT .= '\textbf{'. ($section->{'description'} ? $section->{'description'} : 'Charges' ). '}'; + $OUT .= '&\textbf{'. $section->{'subtotal'}. '}\\\\'; + } + $OUT .= '\cline{2-2}'; +--@] +\textbf{New Charges Total}&\textbf{\dollar[@-- $current_less_finance --@]}\\ +&\\ +\hline +&\\ +\textbf{\underline{Invoice Summary}} & \\ +& \\ +\textbf{Previous Past Due Charges}&\textbf{\dollar[@-- sprintf('%.2f', $true_previous_balance - $balance_adjustments) --@]}\\ +\textbf{Finance charges on overdue amount}&\textbf{\dollar[@-- $finance_amount --@]}\\ +\textbf{New Charges}&\textbf{\dollar[@-- $current_less_finance --@]}\\ +\cline{2-2} +\textbf{Total Amount Due}&\textbf{\dollar[@-- sprintf('%.2f', $true_previous_balance + $current_charges - $balance_adjustments) --@]}\\ +&\\ +\hline +\end{tabular} +\end{minipage} \\ +\end{tabular} |