diff options
author | Mark Wells <mark@freeside.biz> | 2016-08-22 13:41:13 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2016-08-22 13:41:13 -0700 |
commit | f6a37fa1d6a30484ce8a268de170ecc8d5c31a23 (patch) | |
tree | dd7ebd9a89bacc456f10e5ea0900ab0e97e6a09a | |
parent | f5935488fe25773db20f376150e24e35a123870a (diff) |
show data usage report link only for customers that might have data usage, #42310
-rw-r--r-- | FS/FS/cust_main/Packages.pm | 22 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages.html | 3 |
2 files changed, 24 insertions, 1 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm index 343112da1..8f96f81aa 100644 --- a/FS/FS/cust_main/Packages.pm +++ b/FS/FS/cust_main/Packages.pm @@ -684,6 +684,28 @@ sub num_pkgs { $sth->fetchrow_arrayref->[0]; } +=item num_usage_pkgs + +Returns the number of packages for this customer that have services that +can have RADIUS usage statistics. + +=cut + +sub num_usage_pkgs { + my $self = shift; + # have to enumerate exportnums but it's not bad + my @exportnums = map { $_->exportnum } + grep { $_->can('usage_sessions') } + qsearch('part_export'); + return 0 if !@exportnums; + my $in_exportnums = join(',', @exportnums); + my $sql = "SELECT COUNT(DISTINCT pkgnum) FROM cust_pkg + JOIN cust_svc USING (pkgnum) + JOIN export_svc USING (svcpart) + WHERE exportnum IN( $in_exportnums ) AND custnum = ?"; + FS::Record->scalar_sql($sql, $self->custnum); +} + =back =head1 BUGS diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html index f3cfc06f4..958a0612d 100755 --- a/httemplate/view/cust_main/packages.html +++ b/httemplate/view/cust_main/packages.html @@ -167,7 +167,8 @@ if ( el ) el.scrollIntoView(true); <A HREF="<%$p%>search/report_svc_acct.html?custnum=<% $cust_main->custnum %>"><% mt('accounts') |h %></A><BR> <% mt('Usage reports:') |h %> <A HREF="<%$p%>search/report_cdr.html?custnum=<% $cust_main->custnum %>"><% mt('CDRs') |h %></A> -% if ( $curuser->access_right('Usage: RADIUS sessions') ) { +% if ( $curuser->access_right('Usage: RADIUS sessions') +% and $cust_main->num_usage_pkgs > 0 ) { | <& /elements/popup_link-cust_main.html, 'label' => emt('Data usage'), |