From 3d8ef5da99b377760185bf2cc372986b8150facc Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Wed, 7 Mar 2012 22:25:52 -0800 Subject: [PATCH] agent-virt package summary report, RT#16534 --- httemplate/search/cust_pkg_summary.cgi | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/httemplate/search/cust_pkg_summary.cgi b/httemplate/search/cust_pkg_summary.cgi index fc71c81d8..cea4cdcd2 100644 --- a/httemplate/search/cust_pkg_summary.cgi +++ b/httemplate/search/cust_pkg_summary.cgi @@ -21,8 +21,11 @@ <%init> + +my $curuser = $FS::CurrentUser::CurrentUser; + die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('List packages'); + unless $curuser->access_right('List packages'); my $title = 'Package Summary Report'; my ($begin, $end) = FS::UI::Web::parse_beginning_ending($cgi); @@ -61,7 +64,19 @@ if( !$begin ) { splice @head, 1, 1; } -foreach my $part_pkg (qsearch('part_pkg', {} )) { +my $agentnums_sql = $curuser->agentnums_sql( + 'null' => 1, + 'table' => 'part_pkg', + ); + +my $extra_sql = " WHERE $agentnums_sql"; + +foreach my $part_pkg (qsearch({ 'table' => 'part_pkg', + 'hashref' => {}, + 'extra_sql' => $extra_sql, + }) + ) +{ my @row = (); next if !$part_pkg->freq; # exclude one-time packages push @row, $part_pkg->pkg; @@ -70,10 +85,15 @@ foreach my $part_pkg (qsearch('part_pkg', {} )) { if($cond) { my $result = qsearchs({ 'table' => 'h_cust_pkg', + 'addl_from' => $addl_from. + ' LEFT JOIN cust_main USING ( custnum )', + 'hashref' => {}, 'select' => 'count(*)', - 'addl_from' => $addl_from, - 'extra_sql' => 'WHERE pkgpart = '.$part_pkg->pkgpart.$cond, + 'extra_sql' => 'WHERE pkgpart = '.$part_pkg->pkgpart.$cond. + ' AND '. $curuser->agentnums_sql( + 'table' => 'cust_main', + ), }); $row[$i] = $result->getfield('count'); $totals[$i] += $row[$i]; -- 2.11.0