% include("/elements/header.html",'Agent Listing', menubar(
  'Agent Types' => $p. 'browse/agent_type.cgi',
#  'Add new agent' => '../edit/agent.cgi'
)) %>
Agents are resellers of your service. Agents may be limited to a subset of your
full offerings (via their type).
Add a new agent
% if ( dbdef->table('agent')->column('disabled') ) { 
  <% $cgi->param('showdisabled')
      ? do { $cgi->param('showdisabled', 0);
             '( hide disabled agents )'; }
      : do { $cgi->param('showdisabled', 1);
             '( show disabled agents )'; }
  %>
% } 
<% include('/elements/table-grid.html') %>
% my $bgcolor1 = '#eeeeee';
%   my $bgcolor2 = '#ffffff';
%   my $bgcolor = '';
%       ##
%       # agentnum
%       ##
        | <% $agent->agentnum %>%       ##
%       # disabled
%       ##
%       if ( ! $cgi->param('showdisabled') ) { | <% $agent->disabled ? 'DISABLED'
                                : 'Active'
            %>%       } 
%       ##
%       # agent
%       ## | <% $agent->agent %>%       ##
%       # type
%       ## | <% $agent->agent_type->atype %>%       ##
%       # master customer
%       ## | %         if ( $agent->agent_custnum ) {
            <& /elements/small_custview.html,
                 $agent->agent_custnum,
                 scalar($conf->config('countrydefault')),
                 1, #show balance
                 $p.'view/cust_main.cgi',
            &>
%         }%       ##
%       # commissions
%       ## | %       ##
%       # access groups
%       ##
%           #surprising amount of false laziness w/ edit/process/agent.cgi
%           my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' });
%           foreach my $pkg_class ( '', @pkg_class ) {
%             my %agent_pkg_class = ( 'agentnum' => $agent->agentnum,
%                                     'classnum' => $pkg_class ? $pkg_class->classnum : ''
%                                   );
%             my $agent_pkg_class =
%               qsearchs( 'agent_pkg_class', \%agent_pkg_class )
%               || new FS::agent_pkg_class   \%agent_pkg_class;
%             my $param = 'classnum'. $agent_pkg_class{classnum};
              
                %           }| <% $agent_pkg_class->commission_percent || 0 %>% | <% $pkg_class ? $pkg_class->classname : mt('(no package class)') |h %> |  | %         foreach my $access_group (
%           map $_->access_group,
%               qsearch('access_groupagent', { 'agentnum' => $agent->agentnum })
%         ) {
            <% $access_group->groupname |h %> %       ##
%       # invoice template
%       ##%         }
 | <% $agent->invoice_template || '(Default)' %>%       ##
%       # customers
%       ## | %       ##
%       # customer packages
%       ##
%           my @cust_status =
%             qw( prospect inactive ordered active suspended cancelled );
%           my %method = ( 'suspended' => 'susp',
%                          'cancelled' => 'cancel'
%                        );
%           my %PL = ( 'prospect' => 'prospects', );
%           my %link = ( 'cancelled' => 'showcancelledcustomers=1&cancelled' );
%           my $statuscolor = FS::cust_main->statuscolors;
%
%           foreach my $status ( @cust_status ) {
%             my $meth = exists($method{$status}) ? $method{$status} : $status;
%             $meth = 'num_'. $meth. '_cust_main';
%             my $link = exists($link{$status}) ? $link{$status} : $status;
              
%               my $num = 0;
%               unless ( $disable_counts ) {
                  %           }| <% $num = $agent->$meth() %>%               } | % if ( $num || $disable_counts ) { 
%                 
                  ">
% } 
<% exists($PL{$status}) ? $PL{$status} : $status %>
% if ($num || $disable_counts ) {
% } |  |  | %       ##
%       # reports
%       ##
%           #my @pkg_status = FS::cust_pkg->statuses;
%           my @pkg_status = ( 'on hold', 'one-time charge', 'not yet billed',
%                              qw( active suspended cancelled ) );
%           my %method = ( 'one-time charge' => 'inactive',
%                          'suspended'       => 'susp',
%                          'cancelled'       => 'cancel',
%                        );
%           my $statuscolor = FS::cust_pkg->statuscolors;
%
%           foreach my $status ( @pkg_status ) {
%             my $magic = exists($method{$status}) ? $method{$status} : $status;
%             $magic =~ s/ /_/g;
%             my $meth = 'num_'. $magic. '_cust_pkg';
%             ( my $label = $status ) =~ s/ / /g;
              
%               my $num = 0;
%               unless ( $disable_counts ) {
                  %           }| <% $num = $agent->$meth() %>%               } | % if ( $num || $disable_counts ) { 
                  
% } 
<% $label %>
% if ( $num || $disable_counts ) { 
% } |  | Package Churn %       ##
%       # registration codes
%       ##Payments
 Credits
 A/R Aging
 | <% my $num_reg_code = $agent->num_reg_code %>
% if ( $num_reg_code ) { 
            
% } 
Unused
% if ( $num_reg_code ) { 
% } %       ##
%       # prepaid cards
%       ##Generate codes
 | <% my $num_prepay_credit = $agent->num_prepay_credit %>
% if ( $num_prepay_credit ) { 
            
% } 
Unused
% if ( $num_prepay_credit ) { 
% } %       ##
%       # ticketing
%       ##
% if ( $conf->config('ticket_system') ) {Generate cards
 | %         if ( $agent->ticketing_queueid ) { 
              Queue: <% $agent->ticketing_queueid %>:
                     <% $agent->ticketing_queue %> % } 
%       ##
%       # currencies
%       ##
% if ( $conf->config('currencies') ) {%         }
 | <% join(' % } 
%       ##
%       # payment gateway override
%       ##', sort keys %{ $agent->agent_currency_hashref } ) %>
 | %       ##
%       # configuration overrides
%       ##
% my $gw_override = qsearchs('agent_payment_gateway', { 'agentnum' => $agent->agentnum } );
% if ($gw_override) {
              
                % } else {| <% $gw_override->payment_gateway->gateway_module %> (<% $gw_override->payment_gateway->gateway_username %>)
                  (delete) |  
              % }| (add override) |  |  | 
% }