summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wells <mark@freeside.biz>2016-08-22 13:41:13 -0700
committerMark Wells <mark@freeside.biz>2016-08-22 13:41:13 -0700
commitf6a37fa1d6a30484ce8a268de170ecc8d5c31a23 (patch)
treedd7ebd9a89bacc456f10e5ea0900ab0e97e6a09a
parentf5935488fe25773db20f376150e24e35a123870a (diff)
show data usage report link only for customers that might have data usage, #42310
-rw-r--r--FS/FS/cust_main/Packages.pm22
-rwxr-xr-xhttemplate/view/cust_main/packages.html3
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'),