From fba328864880d1375780b94911acd9ff33cba805 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Tue, 30 Aug 2016 12:24:36 -0700 Subject: [PATCH] add agent and cust-fields selection to package contract end date report, #71964 --- httemplate/elements/menu.html | 2 +- httemplate/search/cust_pkg-date.html | 34 ++++++++++++++++---------- httemplate/search/report_cust_pkg-date.html | 38 +++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 14 deletions(-) create mode 100755 httemplate/search/report_cust_pkg-date.html diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index 9a9fc4e5b..fcfc9fb74 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -275,7 +275,7 @@ $report_packages{'Suspension summary'} = [ $fsurl.'search/cust_pkg_susp.html', ' $report_packages{'Customer packages with unconfigured services'} = [ $fsurl.'search/cust_pkg.cgi?APKG_pkgnum', 'List packages which have provisionable services' ]; $report_packages{'FCC Form 477'} = [ $fsurl.'search/report_477.html' ] if $conf->exists('part_pkg-show_fcc_options'); -$report_packages{'Contract end dates'} = [ $fsurl.'search/cust_pkg-date.html?date=contract_end', 'Show packages by contract end date' ]; +$report_packages{'Contract end dates'} = [ $fsurl.'search/report_cust_pkg-date.html?date=contract_end', 'Show packages by contract end date' ]; $report_packages{'Advanced package reports'} = [ $fsurl.'search/report_cust_pkg.html', 'by agent, date range, status, package definition' ]; tie my %report_inventory, 'Tie::IxHash', diff --git a/httemplate/search/cust_pkg-date.html b/httemplate/search/cust_pkg-date.html index 5bb772bf6..231bbac16 100644 --- a/httemplate/search/cust_pkg-date.html +++ b/httemplate/search/cust_pkg-date.html @@ -1,3 +1,16 @@ +<& elements/search.html, + 'title' => $title, + 'name' => 'packages', + 'query' => $query, + 'count_query' => $count_query, + 'header' => \@header, + 'fields' => \@fields, + 'align' => 'rrrl'. FS::UI::Web::cust_aligns(), + 'color' => \@color, + 'style' => \@style, + 'links' => \@links, + 'cell_style' => [ $date_color_sub ], +&> <%init> my $curuser = $FS::CurrentUser::CurrentUser; die 'access denied' unless $curuser->access_right('List packages'); @@ -18,8 +31,7 @@ my $col = $cgi->param('date'); die "invalid date column" unless $cols{$col}; my $title = 'Packages by ' . lc($cols{$col}) . ' date'; -# second option on the cust_fields_avail list, plus email -my $cust_fields = 'Cust# | Customer | Day phone | Night phone | Mobile phone | Invoicing email(s)'; +my $cust_fields = $cgi->param('cust_fields'); my @header = ( $cols{$col}, emt('#'), emt('Quan.'), @@ -32,11 +44,18 @@ my @fields = ( sub { time2str('%b %d %Y', $_[0]->$col) }, 'pkg_label', ); my @sort_fields = ( map '', @fields ); # should only ever sort by $col +my @color = ( map '', @fields ); +my @style = ( map '', @fields ); push @header, FS::UI::Web::cust_header($cust_fields); push @fields, \&FS::UI::Web::cust_fields; +push @color, FS::UI::Web::cust_colors(); +push @style, FS::UI::Web::cust_styles(); my $agentnums_sql = $curuser->agentnums_sql('table' => 'cust_main'); +if ( $cgi->param('agentnum') =~ /^(\d+)$/ and $1 ) { + $agentnums_sql .= " AND agentnum = $1"; +} my $query = { 'table' => 'cust_pkg', @@ -80,15 +99,4 @@ my $date_color_sub = sub { }; -<& elements/search.html, - 'title' => $title, - 'name' => 'packages', - 'query' => $query, - 'count_query' => $count_query, - 'header' => \@header, - 'fields' => \@fields, - 'align' => 'rrrl'. FS::UI::Web::cust_aligns(), - 'links' => \@links, - 'cell_style' => [ $date_color_sub ], -&> diff --git a/httemplate/search/report_cust_pkg-date.html b/httemplate/search/report_cust_pkg-date.html new file mode 100755 index 000000000..ceb9a9c75 --- /dev/null +++ b/httemplate/search/report_cust_pkg-date.html @@ -0,0 +1,38 @@ +<& /elements/header.html, mt($title) &> + +
+ + + + + <& /elements/tr-select-agent.html, + 'curr_value' => scalar( $cgi->param('agentnum') ), + 'disable_empty' => 0, + &> + + <& /elements/tr-select-cust-fields.html &> + +
+ +
+ + +
+ +<% include('/elements/footer.html') %> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('List packages'); + +# for the page title +my %cols = ( + 'contract_end' => 'Contract end' +); + +# or let the column be selected here? +my $col = $cgi->param('date'); +die "invalid date column" unless $cols{$col}; +my $title = 'Packages by ' . lc($cols{$col}) . ' date'; + + -- 2.11.0