[freeside-commits] freeside/conf invoice_htmlsummary, NONE, 1.1 invoice_latexsummary, NONE, 1.1 invoice_html, 1.29, 1.30 invoice_latex, 1.37, 1.38

Jeff Finucane,420,, jeff at wavetail.420.am
Sun Oct 4 17:49:35 PDT 2009


Update of /home/cvs/cvsroot/freeside/conf
In directory wavetail.420.am:/tmp/cvs-serv31511/conf

Modified Files:
	invoice_html invoice_latex 
Added Files:
	invoice_htmlsummary invoice_latexsummary 
Log Message:
leading summary page invoices #RT5086

--- NEW FILE: invoice_latexsummary ---
\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}

Index: invoice_latex
===================================================================
RCS file: /home/cvs/cvsroot/freeside/conf/invoice_latex,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- invoice_latex	10 Jun 2009 23:30:46 -0000	1.37
+++ invoice_latex	5 Oct 2009 00:49:33 -0000	1.38
@@ -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 @@
 \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";
-    }
+    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 ($section == $sections[$#sections]) {
-      foreach my $line (grep {$_->{section}->{description} eq $section->{description}} @total_items) {
-        $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
-                '{' . $line->{'total_amount'} . '}' . "\n";
+      if (scalar(@sections) > 1) {
+        $OUT .= '\FStotaldesc{' . $section->{'description'} . ' Total}' .
+                '{' . $section->{'subtotal'} . '}' . "\n";
       }
-    #}
 
-    $OUT .= '\hline';
-    $OUT .= '\endlastfoot';
+      #if ($section == $sections[$#sections]) {
+        foreach my $line (grep {$_->{section}->{description} eq $section->{description}} @total_items) {
+          $OUT .= '\FStotaldesc{' . $line->{'total_item'} . '}' .
+                  '{' . $line->{'total_amount'} . '}' . "\n";
+        }
+      #}
 
-    my $lastref = 0;
-    foreach my $line (
-      grep { ( scalar( @sections ) > 1 
-             ? $section->{'description'} eq $_->{'section'}->{'description'}
-             : 1
-           ) }
-      @detail_items )
-    {
-      my $ext_description = $line->{'ext_description'};
+      $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'};
+        $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";
+        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 @@
 --@]
 \vfill
 \begin{minipage}[t]{\textwidth}
-  [@-- $notes --@]
+  [@-- length($summary) ? '' : $notes --@]
   [@-- $coupon ? '\ifthenelse{\equal{\thepage}{1}}{\rule{0pt}{\extracouponspace}}{}' : '' --@]
 \end{minipage}
 \end{document}

--- NEW FILE: invoice_htmlsummary ---
<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>

Index: invoice_html
===================================================================
RCS file: /home/cvs/cvsroot/freeside/conf/invoice_html,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- invoice_html	13 Jul 2009 07:21:02 -0000	1.29
+++ invoice_html	5 Oct 2009 00:49:33 -0000	1.30
@@ -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>';
-
-        $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>';
+        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>';
 
-        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>'
                   : ''
-              ).
+                ).
+              '<th align="right">Amount</th>'.
+            '</tr>';
 
-              '<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' ). '>'.
-                    '&nbsp;&nbsp;'. $ext_desc.
-                  '</td>'.
-                '</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' ). '>'.
+                      '&nbsp;&nbsp;'. $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">&nbsp;</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">&nbsp;</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 %>



More information about the freeside-commits mailing list