summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorjeff <jeff>2008-02-29 17:57:38 +0000
committerjeff <jeff>2008-02-29 17:57:38 +0000
commit162a742110ede26cbb904b1f38c6a99e4b692eef (patch)
tree406b9f557c3f38dcd1d1ec611f53d4efe135f14c /conf
parent9e6c6f13593dd5137ea920f49d36dc4321c9e99c (diff)
refactor print_*; invoice sections by package class; could still stand some more refactoring
Diffstat (limited to 'conf')
-rw-r--r--conf/invoice_html78
-rw-r--r--conf/invoice_latex96
2 files changed, 113 insertions, 61 deletions
diff --git a/conf/invoice_html b/conf/invoice_html
index b13b08f..9d97243 100644
--- a/conf/invoice_html
+++ b/conf/invoice_html
@@ -68,31 +68,67 @@
</table>
- <p><b><font size="+1">C</font><font size="+0">HARGES</font></b>
- <p>
- <table class="invoice_longtable" CELLSPACING=0 WIDTH="100%">
- <tr>
- <th align="center">Ref</th>
- <th align="left">Description</th>
- <th align="right">Amount</th>
- </tr>
- <%=
+ <%=
+ foreach my $section ( @sections ) {
+ $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>';
- foreach my $line ( @detail_items ) {
$OUT .=
- '<tr class="invoice_desc">'.
- '<td align="center">'. $line->{'ref'}. '</td>'.
- '<td align="left">'. $line->{'description'}. '</td>'.
- '<td align="right">'. $line->{'amount'}. '</td>'.
- '</tr>'
- ;
- foreach my $ext_desc ( @{$line->{'ext_description'} } ) {
+ '<table class="invoice_longtable" CELLSPACING=0 WIDTH="100%">'.
+ '<tr>'.
+ '<th align="center">Ref</th>'.
+ '<th align="left">Description</th>'.
+ '<th align="right">Amount</th>'.
+ '</tr>';
+
+ foreach my $line (
+ grep { ( scalar(@sections) > 1
+ ? $section->{'description'} eq $_->{'section'}->{'description'}
+ : 1
+ ) }
+ @detail_items )
+ {
$OUT .=
- '<tr class="invoice_extdesc">'.
- '<td></td>'.
- '<td align="left">-&nbsp;'. $ext_desc. '</td>'.
- '<td></td>'.
+ '<tr class="invoice_desc">'.
+ '<td align="center">'. $line->{'ref'}. '</td>'.
+ '<td align="left">'. $line->{'description'}. '</td>'.
+ '<td align="right">'. $line->{'amount'}. '</td>'.
'</tr>'
+ ;
+ foreach my $ext_desc ( @{$line->{'ext_description'} } ) {
+ $OUT .=
+ '<tr class="invoice_extdesc">'.
+ '<td></td>'.
+ '<td align="left">-&nbsp;'. $ext_desc. '</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">&nbsp;</td>).
+ qq(<td align="left" style="$style">).
+ $section->{'description'}. ' Total </td>'.
+ qq(<td align="right" style="$style">).
+ $section->{'subtotal'}. '</td>'.
+ '</tr>'
+ ;
}
}
diff --git a/conf/invoice_latex b/conf/invoice_latex
index 660c4d5..6a81c4c 100644
--- a/conf/invoice_latex
+++ b/conf/invoice_latex
@@ -187,58 +187,74 @@ Terms: [@-- $terms --@]\\
\end{minipage}}
\vspace{1.5cm}
%
-\section*{\textsc{Charges}}
-\begin{longtable}{clr}
-\hline
-\rule{0pt}{2.5ex}
-\makebox[1.4cm]{\textbf{Ref}} &
-\makebox[12.8cm][l]{\textbf{Description}} &
-\makebox[2.5cm][r]{\textbf{Amount}} \\
-\hline
-\endfirsthead
-\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\
-\hline
-\rule{0pt}{2.5ex}
-\makebox[1.4cm]{\textbf{Ref}} &
-\makebox[12.8cm][l]{\textbf{Description}} &
-\makebox[2.5cm][r]{\textbf{Amount}} \\
-\hline
-\endhead
-\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\
-\endfoot
-\hline
[@--
+ foreach my $section ( @sections ) {
+ $OUT .= '\section*{\textsc{';
+ $OUT .= ($section->{'description'}) ? $section->{'description'} : 'Charges';
+ $OUT .= '}}\begin{longtable}{clr}';
+ $OUT .= '\hline';
+ $OUT .= '\rule{0pt}{2.5ex}';
+ $OUT .= '\makebox[1.4cm]{\textbf{Ref}} & ';
+ $OUT .= '\makebox[12.8cm][l]{\textbf{Description}} & ';
+ $OUT .= '\makebox[2.5cm][r]{\textbf{Amount}} \\\\';
+ $OUT .= '\hline';
+ $OUT .= '\endfirsthead';
+ $OUT .= '\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued from previous page}\\\\';
+ $OUT .= '\hline';
+ $OUT .= '\rule{0pt}{2.5ex}';
+ $OUT .= '\makebox[1.4cm]{\textbf{Ref}} & ';
+ $OUT .= '\makebox[12.8cm][l]{\textbf{Description}} & ';
+ $OUT .= '\makebox[2.5cm][r]{\textbf{Amount}} \\\\';
+ $OUT .= '\hline';
+ $OUT .= '\endhead';
+ $OUT .= '\multicolumn{3}{r}{\rule{0pt}{2.5ex}Continued on next page...}\\\\';
+ $OUT .= '\endfoot';
+ $OUT .= '\hline';
- foreach my $line (@total_items) {
- $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
- '{' . $line->{'total_amount'} . '}' . "\n";
- }
+ if (scalar(@sections) > 1) {
+ $OUT .= '\FStotaldesc{' . $section->{'description'} . ' Total}' .
+ '{' . $section->{'subtotal'} . '}' . "\n";
+ }
---@]
-\hline
-\endlastfoot
-[@--
+ if ($section == $sections[$#sections]) {
+ foreach my $line (@total_items) {
+ $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
+ '{' . $line->{'total_amount'} . '}' . "\n";
+ }
+ }
- foreach my $line (@detail_items) {
- my $ext_description = $line->{'ext_description'};
+ $OUT .= '\hline';
+ $OUT .= '\endlastfoot';
- # Don't break-up small packages.
- my $rowbreak = @$ext_description < 5 ? '*' : '';
+ 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 ? '*' : '';
+
+ $OUT .= "\\hline\n";
+ $OUT .= '\FSdesc{' . $line->{'ref'} . '}{' . $line->{'description'} . '}' .
+ '{' . $line->{'amount'} . "}${rowbreak}\n";
- $OUT .= "\\hline\n";
- $OUT .= '\FSdesc{' . $line->{'ref'} . '}{' . $line->{'description'} . '}' .
- '{' . $line->{'amount'} . "}${rowbreak}\n";
+ foreach my $ext_desc (@$ext_description) {
+ $ext_desc = substr($ext_desc, 0, 80) . '...'
+ if (length($ext_desc) > 80);
+ $OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n";
+ }
- foreach my $ext_desc (@$ext_description) {
- $ext_desc = substr($ext_desc, 0, 80) . '...'
- if (length($ext_desc) > 80);
- $OUT .= '\FSextdesc{' . $ext_desc . '}' . "${rowbreak}\n";
}
+ $OUT .= '\end{longtable}';
+
}
--@]
-\end{longtable}
\vfill
[@-- $notes --@]
\end{document}