<% include("/elements/header.html","Advertising source Listing" ) %>

Where a customer heard about your service. Tracked for informational purposes.
<BR><BR>

<A HREF="<% $p %>edit/part_referral.html"><I>Add a new advertising source</I></A>
<BR><BR>

<% include('/elements/table-grid.html') %>
% my $bgcolor1 = '#eeeeee';
%   my $bgcolor2 = '#ffffff';
%   my $bgcolor = '';

<TR>
  <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=2 ROWSPAN=2>Advertising source</TH>
% if ( $show_agentnums ) { 

    <TH CLASS="grid" BGCOLOR="#cccccc" ROWSPAN=2>Agent</TH>
% } 

  <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% scalar(keys %after) %>>Customers and Packages</TH>
</TR>
% for my $period ( keys %after ) { 

  <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1><% $period %></FONT></TH>
% } 

</TR>

%foreach my $part_referral ( FS::part_referral->all_part_referral(1) ) {
%
%  if ( $bgcolor eq $bgcolor1 ) {
%    $bgcolor = $bgcolor2;
%  } else {
%    $bgcolor = $bgcolor1;
%  }
%
%  $a = 0;

      <TR>

        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
% if ( $part_referral->agentnum || $curuser->access_right('Edit global advertising sources') ) { 
%            $a++;
%          

            <A HREF="<% $p %>edit/part_referral.html?<% $part_referral->refnum %>">
% } 

          <% $part_referral->refnum %><% $a ? '</A>' : '' %></TD>
        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
% if ( $a ) { 

            <A HREF="<% $p %>edit/part_referral.html?<% $part_referral->refnum %>">
% } 

          <% $part_referral->referral %><% $a ? '</A>' : '' %></TD>
% if ( $show_agentnums ) { 

          <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $part_referral->agentnum ? $part_referral->agent->agent : '(global)' %></TD>
% } 
% for my $period ( keys %after ) {
%          my @param = ( $part_referral->refnum,
%                        $today-$after{$period},
%                        $today+$before{$period},
%                      );
%          $cust_sth->execute(@param) or die $cust_sth->errstr;
%          my $num_cust = $cust_sth->fetchrow_arrayref->[0];
%          $pkg_sth->execute(@param) or die $pkg_sth->errstr;
%          my $num_pkg = $pkg_sth->fetchrow_arrayref->[0];

          <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" ALIGN="right">
            <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
              <TR>
                <TD ALIGN="right"><B><% $num_cust %></B></TD>
                <TD ALIGN="left">customers</TD>
              </TR>
              <TR>
                <TD ALIGN="right"><B><% $num_pkg %></B></TD>
                <TD ALIGN="left">packages</TD>
              </TR>
            </TABLE>
          </TD>
% } 

      </TR>
% } 
%
%  $cust_statement =~ s/AND refnum = \?//;
%  $cust_sth = dbh->prepare($cust_statement)
%    or die dbh->errstr;
%  $pkg_statement =~ s/AND h_pkg_referral\.refnum = \?//;
%  $pkg_sth = dbh->prepare($pkg_statement)
%    or die dbh->errstr;

      <TR>
        <TD BGCOLOR="#dddddd" ALIGN="center" COLSPAN=3><B>Total</B></TD>
% for my $period ( keys %after ) {
%          my @param = ( $today-$after{$period},
%                        $today+$before{$period},
%                      );
%          $cust_sth->execute( @param ) or die $cust_sth->errstr;
%          my $num_cust = $cust_sth->fetchrow_arrayref->[0];
%          $pkg_sth->execute(@param) or die $pkg_sth->errstr;
%          my $num_pkg = $pkg_sth->fetchrow_arrayref->[0];

          <TD CLASS="inv" BGCOLOR="#dddddd" ALIGN="right">
            <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
              <TR>
                <TD ALIGN="right"><B><% $num_cust %></B></TD>
                <TD ALIGN="left">customers</TD>
              </TR>
              <TR>
                <TD ALIGN="right"><B><% $num_pkg %></B></TD>
                <TD ALIGN="left">packages</TD>
              </TR>
            </TABLE>
          </TD>

% } 

      </TR>
    </TABLE>
  </BODY>
</HTML>
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Edit advertising sources')
      || $FS::CurrentUser::CurrentUser->access_right('Edit global advertising sources');

my $today = timelocal(0, 0, 0, (localtime(time))[3..5] );

tie my %after, 'Tie::IxHash',
  'Today'         =>        0,
  'Yesterday'     =>    86400, # 60sec * 60min * 24hrs
  'Past week'     =>   518400, # 60sec * 60min * 24hrs * 6days
  'Past 30 days'  =>  2505600, # 60sec * 60min * 24hrs * 29days 
  'Past 60 days'  =>  5097600, # 60sec * 60min * 24hrs * 59days 
  'Past 90 days'  =>  7689600, # 60sec * 60min * 24hrs * 89days 
  'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days 
  'Past year'     => 31486000, # 60sec * 60min * 24hrs * 364days 
  'Total'         => $today,
;
my %before = (
  'Today'         =>   86400, # 60sec * 60min * 24hrs
  'Yesterday'     =>       0,
  'Past week'     =>   86400, # 60sec * 60min * 24hrs
  'Past 30 days'  =>   86400, # 60sec * 60min * 24hrs
  'Past 60 days'  =>   86400, # 60sec * 60min * 24hrs
  'Past 90 days'  =>   86400, # 60sec * 60min * 24hrs
  'Past 6 months' =>   86400, # 60sec * 60min * 24hrs
  'Past year'     =>   86400, # 60sec * 60min * 24hrs
  'Total'         =>   86400, # 60sec * 60min * 24hrs
);

my $curuser = $FS::CurrentUser::CurrentUser;

my $show_agentnums = ( scalar($curuser->agentnums) > 1 );

my $cust_statement = "SELECT COUNT(*) FROM h_cust_main
                       WHERE history_action = 'insert'
                         AND refnum = ?
                         AND history_date >= ?
                         AND history_date < ?
                         AND ". $curuser->agentnums_sql;
my $cust_sth = dbh->prepare($cust_statement)
  or die dbh->errstr;

my $pkg_statement = "SELECT COUNT(*) FROM h_pkg_referral
                       LEFT JOIN cust_pkg  USING ( pkgnum )
                       LEFT JOIN cust_main USING ( custnum )
                       WHERE history_action = 'insert'
                         AND h_pkg_referral.refnum = ?
                         AND history_date >= ?
                         AND history_date < ?
                         AND ". $curuser->agentnums_sql;
my $pkg_sth = dbh->prepare($pkg_statement)
  or die dbh->errstr;

</%init>