RT# 83450 - added fields interface and map_location to export
[freeside.git] / conf / invoice_html
index e9b0bdf..1241f87 100644 (file)
@@ -1,6 +1,18 @@
 <STYLE TYPE="text/css">
-.invoice { font-family: sans-serif; font-size: 10pt }
-.invoice_header { font-size: 10pt }
+.invoice {
+  font-family: sans-serif;
+  font-size: 10pt;
+  display: inline-block;
+  padding: 4pt;
+  border: 1px solid black;
+  background-color: white;
+  min-width: 625px;
+  position: relative;
+}
+.invoice_header {
+  font-size: 10pt;
+  border-spacing: 4pt;
+}
 .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_extdesc TD { font-size: 8pt }
 .invoice_totaldesc TD { font-size: 10pt; empty-cells: show }
 .allcaps { text-transform:uppercase; font-size: 12pt }
+.watermark-box {
+  z-index: 10;
+  position: absolute;
+  text-align: center;
+  padding: 0;
+  filter: alpha(opacity=25);
+  opacity: 0.25;
+  width: 100%;
+  height: 100%;
+  display: table;
+  pointer-events: none;
+}
+.watermark-content {
+  display: table-cell;
+  vertical-align: middle;
+  font-size: 96pt;
+}
 </STYLE>
 
-<table class="invoice" bgcolor="#ffffff" WIDTH=625 CELLSPACING=8 STYLE="border:1px solid #000000"><tr><td>
+<div class="invoice">
+
+  <DIV CLASS="watermark-box"><DIV CLASS="watermark-content">
+      <%= $watermark %>
+  </DIV></DIV>
 
   <table class="invoice_header" width="100%">
     <tr>
-     <td><img src="<%= $cid ? "cid:$cid" : "cust_bill-logo.cgi?invnum=$invnum;template=$template" %>"></td>
      <td align="left"><%= $returnaddress %></td>
+     <td align="left"><img src="<%= $cid ? "cid:$cid" : "cust_bill-logo.cgi?invnum=$invnum;template=$template" %>"></td>
       <td align="right">
         <table CLASS="invoice_headerright" cellspacing=0>
           <tr>
         </table>
       </td>
     </tr>
+  </table>
 
+  <table class="invoice_header" width="100%">
     <tr>
-      <td>
+      <td WIDTH="10%">
       </td>
       <td align="left">
         <b><%= $payname %></b><BR>
            $OUT .= qq! <img src="cust_bill-barcode.cgi?invnum=$invnum;template=$template"><br> !;
        }
     %>
-        <%= $terms ? emt('Terms') . ": $terms" : '' %><BR>
+        <%= $terms ? emt('Terms') . ': ' . emt($terms) : '' %><BR>
         <%= $po_line %>
       </td>
     </tr>
       my $columncount = $unitprices ? 5 : 3;
       foreach my $section ( grep { !$summary || $_->{description} ne $finance_section } @sections ) {
         if ($section->{'pretotal'} && !$summary) {
-          $OUT .= '</table>' if $notfirst;
+          $OUT .= '</table>' if $notfirst++;
           $OUT .=
             '<table width="100%"><tr><td>'.
             '<p align="right"><b><font size="+1">'.
             '</td></tr>';
         }
         unless ($section->{'summarized'}) {
-          $OUT .= '</table>' if ( $notfirst || $section->{'pretotal'} && !$summary );
+          if ( $notfirst || $section->{'pretotal'} && !$summary ) {
+            $OUT .= '</table>';
+            $notfirst = 1;
+          }
           $OUT .= '<table><tr><td>';
           $OUT .= '<p class="allcaps"><b>';
           my $sectionhead;
             $OUT .= $header;
             $columncount = scalar(my @array = split /<\/th><th/i, $header);
           } else {
-            $OUT .=  '<th align="center"></th>'.
-                     '<th align="left">' . emt('Description') . '</th>'.
-                     ( $unitprices 
-                       ? '<th align="right">' . emt('Unit Price') . '</th>'.
-                         '<th align="right">' . emt('Quantity') . '</th>'
-                        : '' ).
-                     '<th align="right">' . emt('Amount') . '</th>';
+            my @headings = ( '', 'Description', 'Amount' );
+            my @aligns = ( 'center', 'left', 'right' );
+            if ( $unitprices ) {
+              splice @headings, 2, 0, 'Unit Price', 'Quantity';
+              splice @aligns,   2, 0, 'right', 'right';
+            }
+            if ( $section->{usage_section} ) {
+              @headings = ( '', 'Description', 'Calls', 'Duration', 'Amount' );
+              @aligns = ( '', 'left', 'right', 'right', 'right' );
+              $columncount = 5;
+            }
+
+            while ( @headings ) {
+              my $heading = shift @headings;
+              $heading = emt($heading) if $heading;
+              my $align = shift @aligns;
+              $OUT .= '
+                <th align="' . $align . '">' . $heading . '</th>';
+            }
           }
-            $OUT .= '</tr>';
+
+          $OUT .= '</tr>';
 
           my $lastref = 0;
           foreach my $line (
             if ( $section->{description_generator} ) {
               $OUT .= '<tr class="invoice_desc' .
                       &{$section->{description_generator}}($line);
+            } elsif ( $section->{usage_section} ) {
+              my $minutes = sprintf('%d', $line->{'duration'} / 60);
+              my $seconds = $line->{'duration'} % 60;
+              $OUT .= '
+                <tr class="invoice_desc_more">
+                  <td></td>
+                  <td align="left">' . $line->{'description'} . '</td>
+                  <td align="right">' . $line->{'quantity'} . '</td>
+                  <td align="right">' . $minutes . 'm ' . $seconds . 's' . '</td>
+                  <td align="right">' . $line->{'amount'} . '</td>
+                </tr>';
             } else {
               my $class = 'invoice_desc_more';
-              if ( $line->{'ref'} and $line->{'ref'} ne $lastref ) {
+              if ( ($line->{'ref'} || 0) ne $lastref ) {
                 # then it's a new package (not a continuation)
                 $class = 'invoice_desc';
               }
               $OUT .= '<tr class="'.$class.'">
                        <td align="center">';
-              #if ( $line->{'ref'} ne $lastref ) {
-              #  $OUT .= $line->{'ref'};
-              #}
               $OUT .= '</td>
                        <td align="left">'. $line->{'description'}. '</td>';
               if ( $unitprices ) {
               $OUT .= '<td align="right">'. $line->{'amount'}. '</td>';
             }
             $OUT .= '</tr>';
-            $lastref = $line->{'ref'};
+            $lastref = $line->{'ref'} || 0;
             if ( @{$line->{'ext_description'} } ) {
               unless ( $section->{description_generator} ) {
                 $OUT .= '<tr class="invoice_extdesc"><td></td><td';
             }
             $OUT .= '</tr>';
           }
-        } 
+        } # if !$section->{summarized}
         if ($section->{'posttotal'}) {
           $OUT .= '<tr><td align="right" colspan='. $columncount. '>';
           $OUT .=
             '<p>';
           $OUT .= '</td></tr>';
         }
-
-        $notfirst++;
-
       }
 
       my $style = 'border-top: 3px solid #000000;';
   </table>
   <br><br>
 
+<%=
+
+  my @location_summary_sections =
+    grep {
+      ref $_->{location}
+      && $_->{locationnum}
+      && $_->{description}
+      && $_->{description} ne $finance_section
+    } @sections;
+
+  if ( $multisection eq 'location' && scalar(@location_summary_sections) > 1 ) {
+
+    $OUT .= '
+      <hr>
+      <table width="100%">
+        <tr>
+          <td>
+            <p class="allcaps">
+              <b>'.emt('Summary Of New Charges By Location').'</b>
+            <p>
+          </td>
+        </tr>
+      </table>
+
+      <table class="invoice_longtable" cellspacing="0" width="100%">
+      <thead>
+        <tr>
+          <th></th>
+          <th align="left">'.emt('Location').'</th>
+          <th align="right">'.emt('Amount').'</th>
+        </tr>
+      </thead>
+      <tbody>
+    ';
+
+    for my $section (@location_summary_sections) {
+      next unless $section->{description};
+      $OUT .= '
+        <tr class="invoice_desc_more">
+          <td></td>
+          <td>'.$section->{description}.'</td>
+          <td align="right">'. $section->{subtotal} .'</td>
+        </tr>
+      ';
+    }
+
+    $OUT .= '
+      <tr class="invoice_desc"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
+      </tbody>
+      </table>
+      <br><br>
+    ';
+
+} %>
+
 <%= length($summary)
       ? ''
       : ( $smallernotes
   <hr NOSHADE SIZE=2 COLOR="#000000">
   <p align="center" <%= $smallerfooter ? 'STYLE="font-size:75%;"' : '' %>><%= $footer %>
 
-</td></tr></table>
+</div>