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 14:20:59 -0700
commit2801b7c172cddcab51101d933e57a956d450ace2 (patch)
treed61cbe4e475dce08070783cfb6d24061e195fe88
parentc541cb0f1ab12a904252bd6b2658dba585860f28 (diff)
show data usage report link only for customers that might have data usage, #42310
-rw-r--r--FS/FS/cust_main/Packages.pm22
-rw-r--r--httemplate/view/cust_main/menu.html1
2 files changed, 23 insertions, 0 deletions
diff --git a/FS/FS/cust_main/Packages.pm b/FS/FS/cust_main/Packages.pm
index ee5bddaca..e9134021b 100644
--- a/FS/FS/cust_main/Packages.pm
+++ b/FS/FS/cust_main/Packages.pm
@@ -748,6 +748,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);
+}
+
=item display_recurring
Returns an array of hash references, one for each recurring freq
diff --git a/httemplate/view/cust_main/menu.html b/httemplate/view/cust_main/menu.html
index 7c7303bc9..695336c62 100644
--- a/httemplate/view/cust_main/menu.html
+++ b/httemplate/view/cust_main/menu.html
@@ -397,6 +397,7 @@ my @menu = (
actionlabel => 'Data usage report',
width => 480,
height => 245,
+ condition => sub { shift->num_usage_pkgs > 0 },
},
{
label => 'View CDRs',