diff options
| author | ivan <ivan> | 2004-01-23 03:21:32 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2004-01-23 03:21:32 +0000 | 
| commit | 23558b5a6aeedbae8137263f07dbf515b0ce192e (patch) | |
| tree | bfdf162372a72d71550ed82baf0d059734402cea /FS | |
| parent | b4213929d5329847e5efcbd11a46a2e98d6e0c6f (diff) | |
consolidate large numbers of accounts to avoid gigantic line items
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/cust_bill.pm | 31 | 
1 files changed, 21 insertions, 10 deletions
| diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index 10088f395..a8b2f65d5 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -1333,7 +1333,7 @@ sub print_latex {      'zip'          => _latex_escape($cust_main->zip),      'country'      => _latex_escape($cust_main->country),      'footer'       => join("\n", $conf->config('invoice_latexfooter') ), -    'smallfooter'  => $conf->config('invoice_latexsmallfooter'), +    'smallfooter'  => join("\n", $conf->config('invoice_latexsmallfooter') ),      'quantity'     => 1,      'terms'        => $conf->config('invoice_default_terms') || 'Payable upon receipt',      #'notes'        => join("\n", $conf->config('invoice_latexnotes') ), @@ -1350,6 +1350,7 @@ sub print_latex {      );    $invoice_data{'footer'} =~ s/\n+$//; +  $invoice_data{'smallfooter'} =~ s/\n+$//;    $invoice_data{'notes'} =~ s/\n+$//;    $invoice_data{'po_line'} = @@ -1544,7 +1545,7 @@ sub print_pdf {    open(PDF, "<$file.pdf")      or die "can't open $file.pdf (probably error in LaTeX tempalte: $!\n"; -  unlink("$file.dvi", "$file.log", "$file.aux", "$file.pdf", "$file.tex"); +#  unlink("$file.dvi", "$file.log", "$file.aux", "$file.pdf", "$file.tex");    my $pdf = '';    while (<PDF>) { @@ -1655,20 +1656,31 @@ sub _items_cust_bill_pkg {        my $part_pkg = qsearchs('part_pkg', { pkgpart=>$cust_pkg->pkgpart } );        my $pkg = $part_pkg->pkg; +      my %labels; +      #tie %labels, 'Tie::IxHash'; +      push @{ $labels{$_->[0]} }, $_->[1] foreach $cust_pkg->labels; +      my @ext_description; +      foreach my $label ( keys %labels ) { +        my @values = @{ $labels{$label} }; +        my $num = scalar(@values); +        if ( $num > 5 ) { +          push @ext_description, "$label ($num)"; +        } else { +          push @ext_description, map { "$label: $_" } @values; +        } +      } +        if ( $cust_bill_pkg->setup != 0 ) {          my $description = $pkg;          $description .= ' Setup' if $cust_bill_pkg->recur != 0; -        my @d = (); -        @d = $cust_bill_pkg->details if $cust_bill_pkg->recur == 0; +        my @d = @ext_description; +        push @d, $cust_bill_pkg->details if $cust_bill_pkg->recur == 0;          push @b, {            'description'     => $description,            #'pkgpart'         => $part_pkg->pkgpart,            'pkgnum'          => $cust_pkg->pkgnum,            'amount'          => sprintf("%10.2f", $cust_bill_pkg->setup), -          'ext_description' => [ ( map { $_->[0]. ": ". $_->[1] } -                                         $cust_pkg->labels        ), -                                 @d, -                               ], +          'ext_description' => \@d,          };        } @@ -1680,8 +1692,7 @@ sub _items_cust_bill_pkg {            #'pkgpart'         => $part_pkg->pkgpart,            'pkgnum'          => $cust_pkg->pkgnum,            'amount'          => sprintf("%10.2f", $cust_bill_pkg->recur), -          'ext_description' => [ ( map { $_->[0]. ": ". $_->[1] } -                                       $cust_pkg->labels          ), +          'ext_description' => [ @ext_description,                                   $cust_bill_pkg->details,                                 ],          }; | 
