1 <% include('elements/report.html',
2 'title' => $agentname . 'Customer signups by time of day',
3 'items' => [ 'signupdate' ],
5 'row_labels' => [ 'New customers' ],
6 'colors' => [ '00cc00' ], #green
7 'col_labels' => [ map { "$_:00" } @hours ],
8 'links' => [ \@links ],
9 'graph_type' => 'Bars',
17 unless $FS::CurrentUser::CurrentUser->access_right('Financial reports');
20 my( $agentnum, $agent ) = ('', '');
21 if ( $cgi->param('agentnum') =~ /^(\d+)$/ ) {
23 $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
24 die "agentnum $agentnum not found!" unless $agent;
27 my $agentname = $agent ? $agent->agent.' ' : '';
28 my $usernum = $cgi->param('usernum');
33 $where{'agentnum'} = $agentnum if $agentnum;
34 $where{'usernum'} = $usernum if $usernum;
36 my $sdate = DateTime->new(
37 year => $cgi->param('start_year'),
38 month => $cgi->param('start_month'),
41 my $edate = DateTime->new(
42 year => $cgi->param('end_year'),
43 month => $cgi->param('end_month')
44 )->add( months => 1 )->epoch();
46 my $where = (%where ? ' AND ' : ' WHERE ');
47 $where .= " signupdate >= $sdate ".
48 " AND signupdate < $edate ";
50 foreach my $cust (qsearch({ table => 'cust_main',
52 extra_sql => $where } )) {
53 next if !$cust->signupdate;
54 my $hour = time2str('%H',$cust->signupdate);
58 my @links = ("${p}search/cust_main.html?" .
59 join (';', map {$_.'='.$where{$_}} (keys(%where))) ).
60 ";signupdate_beginning=$sdate;signupdate_ending=$edate";
61 push @links, map { ";signuphour=$_" } @hours;