X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_pkg.pm;h=c31b7e5d540a19e1880a2a2e79814737af54e235;hb=89d6ed35f6c14f2e03b73d4148d18f6255ce57e4;hp=09b46292e06f8f1fc867e282453d74fbb7796d50;hpb=07578e9926188648e7f26fca5cd9e99b5dc2db16;p=freeside.git diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index 09b46292e..c31b7e5d5 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -594,6 +594,7 @@ sub check { || $self->ut_numbern('adjourn') || $self->ut_numbern('expire') || $self->ut_enum('no_auto', [ '', 'Y' ]) + || $self->ut_numbern('agent_pkgid') ; return $error if $error; @@ -1770,7 +1771,7 @@ I flag will be omitted. sub h_cust_svc { my $self = shift; warn "$me _h_cust_svc called on $self\n" - if $DEBUG > 1; + if $DEBUG; my ($end, $start, $mode) = @_; my @cust_svc = $self->_sort_cust_svc( @@ -2125,7 +2126,7 @@ Returns a list of lists, calling the label method for all (historical) services sub h_labels { my $self = shift; warn "$me _h_labels called on $self\n" - if $DEBUG > 1; + if $DEBUG; map { [ $_->label(@_) ] } $self->h_cust_svc(@_); } @@ -2159,13 +2160,13 @@ sub _labels_short { my( $self, $method ) = ( shift, shift ); warn "$me _labels_short called on $self with $method method\n" - if $DEBUG > 1; + if $DEBUG; my $conf = new FS::Conf; my $max_same_services = $conf->config('cust_bill-max_same_services') || 5; warn "$me _labels_short populating \%labels\n" - if $DEBUG > 1; + if $DEBUG; my %labels; #tie %labels, 'Tie::IxHash'; @@ -2173,26 +2174,38 @@ sub _labels_short { foreach $self->$method(@_); warn "$me _labels_short populating \@labels\n" - if $DEBUG > 1; + if $DEBUG; my @labels; foreach my $label ( keys %labels ) { my %seen = (); my @values = grep { ! $seen{$_}++ } @{ $labels{$label} }; my $num = scalar(@values); + warn "$me _labels_short $num items for $label\n" + if $DEBUG; + if ( $num > $max_same_services ) { + warn "$me _labels_short more than $max_same_services, so summarizing\n" + if $DEBUG; push @labels, "$label ($num)"; } else { if ( $conf->exists('cust_bill-consolidate_services') ) { + warn "$me _labels_short consolidating services\n" + if $DEBUG; # push @labels, "$label: ". join(', ', @values); while ( @values ) { my $detail = "$label: "; $detail .= shift(@values). ', ' - while @values && length($detail.$values[0]) < 78; + while @values + && ( length($detail.$values[0]) < 78 || $detail eq "$label: " ); $detail =~ s/, $//; push @labels, $detail; } + warn "$me _labels_short done consolidating services\n" + if $DEBUG; } else { + warn "$me _labels_short adding service data\n" + if $DEBUG; push @labels, map { "$label: $_" } @values; } }