diff options
author | Ivan Kohler <ivan@freeside.biz> | 2012-03-07 22:25:52 -0800 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2012-03-07 22:25:52 -0800 |
commit | 3d8ef5da99b377760185bf2cc372986b8150facc (patch) | |
tree | 3c40f1db12b81aa045fd7abea227cb0e57a930b4 /httemplate | |
parent | b7cb0504d5b4bf302745e9ac296410147000e007 (diff) |
agent-virt package summary report, RT#16534
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/search/cust_pkg_summary.cgi | 28 |
1 files 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 @@ </TR> </TABLE> <%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]; |