diff options
Diffstat (limited to 'conf/invoice_html')
-rw-r--r-- | conf/invoice_html | 263 |
1 files changed, 263 insertions, 0 deletions
diff --git a/conf/invoice_html b/conf/invoice_html new file mode 100644 index 0000000..2073d7f --- /dev/null +++ b/conf/invoice_html @@ -0,0 +1,263 @@ +<STYLE TYPE="text/css"> +.invoice { font-family: sans-serif; font-size: 10pt } +.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 } +.invoice_desc_more TD { font-weight: bold; font-size: 10pt } +.invoice_extdesc TD { font-size: 8pt } +.invoice_totaldesc TD { font-size: 10pt; empty-cells: show } +</STYLE> + +<table class="invoice" bgcolor="#ffffff" WIDTH=625 CELLSPACING=8><tr><td> + + <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="right"> + <table CLASS="invoice_headerright" cellspacing=0> + <tr> + <td align="center"> + Invoice date<BR> + <B><%= $date %></B> + </td> + <td> + </td> + <td align="center"> + Invoice #<BR> + <B><%= $invnum %></B> + </td> + <td> + </td> + <td align="center"> + Customer #<BR> + <B><%= $custnum %></B> + </td> + </tr> + <tr> + <th> </th> + <th colspan=3 align="center"> + <FONT SIZE="+3"><%= $notice_name ? substr($notice_name, 0, 1) : 'I' %></FONT><FONT SIZE="+2"><%= $notice_name ? uc(substr($notice_name, 1)) : 'NVOICE' %></FONT> + </th> + <th> </th> + </tr> + </table> + </td> + </tr> + + <tr> + <td> + </td> + <td align="left"> + <b><%= $payname %></b><BR> + <%= join('<BR>', grep length($_), $company, + $address1, + $address2, + "$city, $state $zip", + $country, + ) + %> + </td> + <%= $ship_enable ? ('<td align="left">'. + join('<BR>',grep length($_), '<b>Service Address</b>', + $ship_company, + $ship_address1, + $ship_address2, + "$ship_city, $ship_state $ship_zip", + $ship_country, + ' ', + ' ', + ). + '</td><tr><td></td><td></td>' + ) + : '' + %> + <td align="right"> + Terms: <%= $terms %><BR> + <%= $po_line %> + </td> + </tr> + + </table> + <%= $summary %> + <%= + my $notfirst = 0; + 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 width="100%"><tr><td>'. + '<p align="right"><b><font size="+1">'. + uc(substr($section->{'pretotal'},0,1)). + '</font><font size="+0">'. uc(substr($section->{'pretotal'},1)). + '</font></b>'. + '<p>'. + '</td></tr>'; + } + unless ($section->{'summarized'}) { + $OUT .= '</table>' if ( $notfirst || $section->{'pretotal'} && !$summary ); + $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>'; + + if ($section->{header_generator}) { + my $header = &{$section->{header_generator}}(); + $OUT .= $header; + $columncount = scalar(my @array = split /<\/th><th/i, $header); + } else { + $OUT .= '<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>'; + } + $OUT .= '</tr>'; + + my $lastref = 0; + foreach my $line ( + grep { ( scalar(@sections) > 1 + ? $section->{'description'} eq $_->{'section'}->{'description'} + : 1 + ) } + @detail_items ) + { + $OUT .= + '<tr class="invoice_desc'; + if ( $section->{description_generator} ) { + $OUT .= &{$section->{description_generator}}($line); + } else { + $OUT .= ( ($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>'; + } + $OUT .= '</tr>'; + $lastref = $line->{'ref'}; + if ( @{$line->{'ext_description'} } ) { + unless ( $section->{description_generator} ) { + $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">'. + ( $section->{'description_generator'} ? '<td></td>' : '' ). + '<td align="left" '. + ( $ext_desc =~ /<\/?TD>/i ? '' : 'colspan=99' ). '>'. + ' '. $ext_desc. + '</td>'. + '</tr>' + } + unless ( $section->{description_generator} ) { + $OUT .= '</table></td><td></td>'; + } + $OUT .= '</tr>'; + } + } + + + if ($section->{'description'} || $multisection) { + my $style = 'border-top: 3px solid #000000;'. + 'border-bottom: 3px solid #000000;'; + $OUT .= + '<tr class="invoice_totaldesc">'. + qq(<td style="$style"> </td>); + if ($section->{total_generator}) { + $OUT .= &{$section->{total_generator}}($section); + } else { + $OUT .= qq(<td align="left" style="$style"). + ( $unitprices ? ' colspan=3>' : '>' ). + $section->{'description'}. ' Total </td>'. + qq(<td align="right" style="$style">). + $section->{'subtotal'}. '</td>'; + } + $OUT .= '</tr>'; + } + } + if ($section->{'posttotal'}) { + $OUT .= '<tr><td align="right" colspan='. $columncount. '>'; + $OUT .= + '<p><font size="+1">'. $section->{'posttotal'}. + '</font>'. + '<p>'; + $OUT .= '</td></tr>'; + } + + $notfirst++; + + } + + my $style = 'border-top: 3px solid #000000;'; + my $linenum = 0; + + foreach my $line ( @total_items ) { + + $style .= 'border-bottom: 3px solid #000000;' + if ++$linenum == scalar(@total_items) - ( $balance_due_below_line ? 1 : 0 ); + + $OUT .= + '<tr class="invoice_totaldesc">'; + if ($section->{total_line_generator}) { + $OUT .= &{$section->{total_line_generator}}($line); + } else { + $OUT .= qq(<td style="$style"> </td>). + qq(<td align="left" style="$style" colspan="). + ( $columncount - 2 ). '">'. + $line->{'total_item'}. '</td>'. + qq(<td align="right" style="$style">). + $line->{'total_amount'}. '</td>'; + } + $OUT .= '</tr>'; + + $style=''; + + } + + %> + </table> + <br><br> + +<%= length($summary) + ? '' + : ( $smallernotes + ? '<FONT SIZE="-1">'.$notes.'</FONT>' + : $notes + ) +%> + + <hr NOSHADE SIZE=2 COLOR="#000000"> + <p align="center" <%= $smallerfooter ? 'STYLE="font-size:75%;"' : '' %>><%= $footer %> + +</td></tr></table> |