summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
authorivan <ivan>2004-01-23 03:21:32 +0000
committerivan <ivan>2004-01-23 03:21:32 +0000
commit23558b5a6aeedbae8137263f07dbf515b0ce192e (patch)
treebfdf162372a72d71550ed82baf0d059734402cea /FS
parentb4213929d5329847e5efcbd11a46a2e98d6e0c6f (diff)
consolidate large numbers of accounts to avoid gigantic line items
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/cust_bill.pm31
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,
],
};