.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>
<td align="right">
<table CLASS="invoice_headerright" cellspacing=0>
<tr>
- <td align="right">
+ <td align="center">
Invoice date<BR>
<B><%= $date %></B>
</td>
)
%>
</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 %>
<%=
foreach my $section ( @sections ) {
+ if ($section->{'pretotal'}) {
+ $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></table>';
+ }
$OUT .= '<table><tr><td>';
if ($section->{'description'}) {
$OUT .=
'<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'}
@detail_items )
{
$OUT .=
- '<tr class="invoice_desc">'.
- '<td align="center">'. $line->{'ref'}. '</td>'.
+ '<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><table>';
+ $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>'.
+ '<td align="left" '.
+ ( $ext_desc =~ /<\/?TD>/i ? '' : 'colspan=99' ). '>'.
+ ' '. $ext_desc.
+ '</td>'.
'</tr>'
}
$OUT .= '</table></td><td></td></tr>';
$OUT .=
'<tr class="invoice_totaldesc">'.
qq(<td style="$style"> </td>).
- qq(<td align="left" style="$style">).
+ 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 .=
+ '<p><font size="+1">'. $section->{'posttotal'}.
+ '</font>'.
+ '<p>';
+ $OUT .= '</td></tr>';
+ }
+
}
my $style = 'border-top: 3px solid #000000;';
$OUT .=
'<tr class="invoice_totaldesc">'.
qq(<td style="$style"> </td>).
- qq(<td align="left" style="$style">).
+ qq(<td align="left" style="$style").
+ ( $unitprices ? ' colspan=3>' : '>' ).
$line->{'total_item'}. '</td>'.
qq(<td align="right" style="$style">).
$line->{'total_amount'}. '</td>'.