summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark <mark>2010-11-14 09:10:35 +0000
committermark <mark>2010-11-14 09:10:35 +0000
commit59af8d61aff44840bcf8b18e4d00526b5d982789 (patch)
treee50966cf13e62b760082a91dd5e5568b38bef6c1
parente3076a94625f63b821a314fa99f5b7ad71f693f4 (diff)
better hidden pkg_svc flag, RT#9871
-rw-r--r--FS/FS/cust_bill.pm1
-rw-r--r--FS/FS/cust_pkg.pm23
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<pkg_svc.hidden> 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;