From 0e7d7ec762a547d80ad19eeb5ea35342392bc944 Mon Sep 17 00:00:00 2001 From: mark Date: Sun, 14 Nov 2010 09:10:21 +0000 Subject: [PATCH] better hidden pkg_svc flag, RT#9871 --- FS/FS/cust_bill.pm | 1 + FS/FS/cust_pkg.pm | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm index b3dd48a69..5a5aecbf3 100644 --- a/FS/FS/cust_bill.pm +++ b/FS/FS/cust_bill.pm @@ -4156,6 +4156,7 @@ sub _items_cust_bill_pkg { my @dates = ( $self->_date ); my $prev = $cust_bill_pkg->previous_cust_bill_pkg; push @dates, $prev->sdate if $prev; + push @dates, undef if !$prev; unless ( $cust_pkg->part_pkg->hide_svc_detail || $cust_bill_pkg->itemdesc diff --git a/FS/FS/cust_pkg.pm b/FS/FS/cust_pkg.pm index e0fb58996..66d8baec3 100644 --- a/FS/FS/cust_pkg.pm +++ b/FS/FS/cust_pkg.pm @@ -1650,21 +1650,19 @@ I flag will be omitted. sub h_cust_svc { my $self = shift; my ($end, $start, $mode) = @_; - my %search = ( - 'table' => 'h_cust_svc', - 'hashref' => { 'pkgnum' => $self->pkgnum } + my @cust_svc = $self->_sort_cust_svc( + [ qsearch( 'h_cust_svc', + { 'pkgnum' => $self->pkgnum, }, + FS::h_cust_svc->sql_h_search(@_), + ) ] ); - @search{'select', 'extra_sql', 'cache_obj', 'addl_from'} = - FS::h_cust_svc->sql_h_search($end, $start); if ( $mode eq 'I' ) { - $search{'addl_from'} .= ' JOIN cust_pkg USING (pkgnum) - JOIN pkg_svc USING (pkgpart, svcpart)'; - $search{'extra_sql'} = ' AND pkg_svc.hidden IS NULL '.$search{'extra_sql'}; + my %hidden_svcpart = map { $_->svcpart => $_->hidden } $self->part_svc; + return grep { !$hidden_svcpart{$_->svcpart} } @cust_svc; + } + else { + return @cust_svc; } - - $self->_sort_cust_svc( - [ qsearch(\%search) ] - ); } sub _sort_cust_svc { @@ -1767,6 +1765,7 @@ sub part_svc { max( 0, $pkg_svc->quantity - $num_cust_svc ); $part_svc->{'Hash'}{'cust_pkg_svc'} = $num_cust_svc ? [ $self->cust_svc($part_svc->svcpart) ] : []; + $part_svc->{'Hash'}{'hidden'} = $pkg_svc->hidden; $part_svc; } $self->part_pkg->pkg_svc; -- 2.11.0