X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=conf%2Finvoice_html;h=1241f870e98dfbd12ab7ec2b0369082a13233c0a;hp=e4e145e419b83da85a9b70504bab9dfbc696375f;hb=38e34bbc53a4222c7507e95914e1364a5a74623f;hpb=df185d34f354c5788e8c4693182b7689a3333839 diff --git a/conf/invoice_html b/conf/invoice_html index e4e145e41..1241f870e 100644 --- a/conf/invoice_html +++ b/conf/invoice_html @@ -1,48 +1,93 @@ -
+
+ +
+ <%= $watermark %> +
- + +
"> <%= $returnaddress %>"> - - + + -
- Invoice date
+
+ <%= emt('Invoice date') %>
<%= $date %>
- Invoice number
+
+ <%= emt('Invoice #') %>
<%= $invnum %>
+ + <%= emt('Customer #') %>
+ <%= $custnum %> +
  - INVOICE + + <%= substr(emt($notice_name),0,1) %><%= substr(emt($notice_name),1) %>  
+ - + <%= $ship_enable ? ('' + ) + : '' + %>
+ <%= $payname %>
@@ -54,39 +99,201 @@ ) %>
'. + join('
',grep length($_), ''.emt('Service Address').'', + $ship_company, + $ship_address1, + $ship_address2, + "$ship_city, $ship_state $ship_zip", + $ship_country, + ' ', + ' ', + ). + '
- Terms: <%= $terms %>
+ <%= + if($barcode_cid) { + $OUT .= qq!
!; + } + elsif($barcode_img) { + $OUT .= qq!
!; + } + %> + <%= $terms ? emt('Terms') . ': ' . emt($terms) : '' %>
<%= $po_line %>
+ <%= $summary %> + <%= + my $notfirst = 0; + my $columncount = $unitprices ? 5 : 3; + foreach my $section ( grep { !$summary || $_->{description} ne $finance_section } @sections ) { + if ($section->{'pretotal'} && !$summary) { + $OUT .= '
' if $notfirst++; + $OUT .= + ''; + } + unless ($section->{'summarized'}) { + if ( $notfirst || $section->{'pretotal'} && !$summary ) { + $OUT .= '
'. + '

'. + uc(substr($section->{'pretotal'},0,1)). + ''. uc(substr($section->{'pretotal'},1)). + ''. + '

'. + '

'; + $notfirst = 1; + } + $OUT .= '
'; + $OUT .= '

'; + my $sectionhead; + if ( $section->{'location'} ) { + $sectionhead .= $section->{'location'}{'label_prefix'}. ': ' + if length($section->{'location'}{'label_prefix'}); + $sectionhead = $section->{'location'}{'address1'}; + $sectionhead .= ', '.$section->{'location'}{'address2'} + if length($section->{'location'}{'address2'}); + $sectionhead .= ', ' . + $section->{'location'}{'city'} . ', ' . + $section->{'location'}{'state'} . ' ' . + $section->{'location'}{'zip'}; + $OUT .= $sectionhead; + } else { + $sectionhead = $section->{'description'} || emt('Charges'); + $OUT .= ''. substr($sectionhead,0,1). + ''. substr($sectionhead,1). + + ''; + } + $OUT .= '

'; -

CHARGES -

- - - - - - - <%= + $OUT .= + '
RefDescriptionAmount
'. + ''; - foreach my $line ( @detail_items ) { - $OUT .= - ''. - ''. - ''. - ''. - '' - ; - foreach my $ext_desc ( @{$line->{'ext_description'} } ) { + if ($section->{header_generator}) { + my $header = &{$section->{header_generator}}(); + $OUT .= $header; + $columncount = scalar(my @array = split /<\/th>'; + } + } + + $OUT .= ''; + + my $lastref = 0; + foreach my $line ( + grep { ( scalar(@sections) > 1 + ? $section->{'description'} eq $_->{'section'}->{'description'} + : 1 + ) } + @detail_items ) + { + if ( $section->{description_generator} ) { + $OUT .= ' + + + + + + '; + } else { + my $class = 'invoice_desc_more'; + if ( ($line->{'ref'} || 0) ne $lastref ) { + # then it's a new package (not a continuation) + $class = 'invoice_desc'; + } + $OUT .= ' + + '; + if ( $unitprices ) { + $OUT .= + ''. + ''; + } + $OUT .= ''; + } + $OUT .= ''; + $lastref = $line->{'ref'} || 0; + if ( @{$line->{'ext_description'} } ) { + unless ( $section->{description_generator} ) { + $OUT .= '{'ext_description'} } ) { + $OUT .= + ''. + ( $section->{'description_generator'} ? '' : '' ). + ''. + '' + } + unless ( $section->{description_generator} ) { + $OUT .= '
'. $line->{'ref'}. ''. $line->{'description'}. ''. $line->{'amount'}. '
{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 .= ' + ' . $heading . '
' . $line->{'description'} . '' . $line->{'quantity'} . '' . $minutes . 'm ' . $seconds . 's' . '' . $line->{'amount'} . '
'; + $OUT .= ''. $line->{'description'}. ''. $line->{'unit_amount'}. ''. $line->{'quantity'}. ''. $line->{'amount'}. '
/i ? '' : 'colspan=99' ). '>'. + '  '. $ext_desc. + '
'; + } + $OUT .= ''; + } + } + + + if ($section->{'description'} || $multisection and !$section->{no_subtotal}) { + my $style = 'border-top: 3px solid #000000;'. + 'border-bottom: 3px solid #000000;'; + $OUT .= + ''. + qq( ); + if ($section->{total_generator}) { + $OUT .= &{$section->{total_generator}}($section); + } else { + $OUT .= qq(' : '>' ). + $section->{'description'}. ' ' . emt('Total') . ''. + qq(). + $section->{'subtotal'}. ''; + } + $OUT .= ''; + } + } # if !$section->{summarized} + if ($section->{'posttotal'}) { + $OUT .= ''; $OUT .= - ''. - ''. - '- '. $ext_desc. ''. - ''. - '' + '

'. $section->{'posttotal'}. + ''. + '

'; + $OUT .= ''; } } @@ -96,17 +303,21 @@ foreach my $line ( @total_items ) { $style .= 'border-bottom: 3px solid #000000;' - if ++$linenum == scalar(@total_items); + if ++$linenum == scalar(@total_items) - ( $balance_due_below_line ? 1 : 0 ); $OUT .= - ''. - qq( ). - qq(). - $line->{'total_item'}. ''. - qq(). - $line->{'total_amount'}. ''. - '' - ; + ''; + if ($section->{total_line_generator}) { + $OUT .= &{$section->{total_line_generator}}($line); + } else { + $OUT .= qq( ). + qq('. + $line->{'total_item'}. ''. + qq(). + $line->{'total_amount'}. ''; + } + $OUT .= ''; $style=''; @@ -116,16 +327,70 @@

- -<%= $notes %> +<%= length($summary) + ? '' + : ( $smallernotes + ? ''.$notes.'' + : $notes + ) +%>


-

<%= $footer %> +

><%= $footer %> - +