add agent and cust-fields selection to package contract end date report, #71964
authorMark Wells <mark@freeside.biz>
Tue, 30 Aug 2016 19:24:36 +0000 (12:24 -0700)
committerMark Wells <mark@freeside.biz>
Tue, 30 Aug 2016 19:29:50 +0000 (12:29 -0700)
httemplate/elements/menu.html
httemplate/search/cust_pkg-date.html
httemplate/search/report_cust_pkg-date.html [new file with mode: 0755]

index 582dda6..cdb1d73 100644 (file)
@@ -274,7 +274,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',
index 5bb772b..231bbac 100644 (file)
@@ -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 {
 };
 
 </%init>
-<& 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 (executable)
index 0000000..ceb9a9c
--- /dev/null
@@ -0,0 +1,38 @@
+<& /elements/header.html, mt($title) &>
+
+<FORM ACTION="cust_pkg-date.html" METHOD="GET">
+<INPUT TYPE="hidden" NAME="date" VALUE="<% $col %>">
+
+<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
+
+  <& /elements/tr-select-agent.html,
+                 'curr_value'    => scalar( $cgi->param('agentnum') ),
+                 'disable_empty' => 0,
+  &>
+
+  <& /elements/tr-select-cust-fields.html &>
+  
+</TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="Get Report">
+
+</FORM>
+
+<% 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';
+
+</%init>