i'm not usually like this.
[freeside.git] / httemplate / browse / part_referral.cgi
1 <!-- mason kludge -->
2 <%= header("Advertising source Listing", menubar(
3   'Main Menu' => $p,
4 #  'Add new referral' => "../edit/part_referral.cgi",
5 )) %>
6 Where a customer heard about your service. Tracked for informational purposes.
7 <BR><BR>
8 <A HREF="<%= $p %>edit/part_referral.cgi"><I>Add a new advertising source</I></A>
9 <BR><BR>
10
11 <%
12   my $today = timelocal(0, 0, 0, (localtime(time))[3..5] );
13   my %after;
14   tie %after, 'Tie::IxHash',
15     'Today'         =>        0,
16     'Yesterday'     =>    86400, # 60sec * 60min * 24hrs
17     'Past week'     =>   518400, # 60sec * 60min * 24hrs * 6days
18     'Past 30 days'  =>  2505600, # 60sec * 60min * 24hrs * 29days 
19     'Past 60 days'  =>  5097600, # 60sec * 60min * 24hrs * 59days 
20     'Past 90 days'  =>  7689600, # 60sec * 60min * 24hrs * 89days 
21     'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days 
22     'Past year'     => 31486000, # 60sec * 60min * 24hrs * 364days 
23     'Total'         => $today,
24   ;
25   my %before = (
26     'Today'         =>   86400, # 60sec * 60min * 24hrs
27     'Yesterday'     =>       0,
28     'Past week'     =>   86400, # 60sec * 60min * 24hrs
29     'Past 30 days'  =>   86400, # 60sec * 60min * 24hrs
30     'Past 60 days'  =>   86400, # 60sec * 60min * 24hrs
31     'Past 90 days'  =>   86400, # 60sec * 60min * 24hrs
32     'Past 6 months' =>   86400, # 60sec * 60min * 24hrs
33     'Past year'     =>   86400, # 60sec * 60min * 24hrs
34     'Total'         =>   86400, # 60sec * 60min * 24hrs
35   );
36
37   my $statement = "SELECT COUNT(*) FROM h_cust_main
38                     WHERE history_action = 'insert'
39                       AND refnum = ?
40                       AND history_date >= ?
41                       AND history_date < ?
42                   ";
43   my $sth = dbh->prepare($statement)
44     or die dbh->errstr;
45 %>
46
47 <%= table() %>
48 <TR>
49   <TH COLSPAN=2 ROWSPAN=2>Advertising source</TH>
50   <TH COLSPAN=<%= scalar(keys %after) %>>Customers</TH>
51 </TR>
52 <% for my $period ( keys %after ) { %>
53   <TH><FONT SIZE=-1><%= $period %></FONT></TH>
54 <% } %>
55 </TR>
56
57 <%
58 foreach my $part_referral ( sort { 
59   $a->getfield('refnum') <=> $b->getfield('refnum')
60 } qsearch('part_referral',{}) ) {
61 %>
62       <TR>
63         <TD><A HREF="<%= $p %>edit/part_referral.cgi?<%= $part_referral->refnum %>">
64           <%= $part_referral->refnum %></A></TD>
65         <TD><A HREF="<%= $p %>edit/part_referral.cgi?<%= $part_referral->refnum %>">
66           <%= $part_referral->referral %></A></TD>
67         <% for my $period ( keys %after ) {
68           $sth->execute( $part_referral->refnum,
69                          $today-$after{$period},
70                          $today+$before{$period},
71           ) or die $sth->errstr;
72           my $number = $sth->fetchrow_arrayref->[0];
73         %>
74           <TD ALIGN="right"><%= $number %></TD>
75         <% } %>
76       </TR>
77 <% } %>
78
79 <%
80   $statement =~ s/AND refnum = \?//;
81   $sth = dbh->prepare($statement)
82     or die dbh->errstr;
83 %>
84       <TR>
85         <TH COLSPAN=2>Total</TH>
86         <% for my $period ( keys %after ) {
87           $sth->execute( $today-$after{$period},
88                          $today+$before{$period},
89           ) or die $sth->errstr;
90           my $number = $sth->fetchrow_arrayref->[0];
91         %>
92           <TD ALIGN="right"><%= $number %></TD>
93         <% } %>
94       </TR>
95     </TABLE>
96   </BODY>
97 </HTML>