%
  my %search;
  if ( $cgi->param('showdisabled')
       || !dbdef->table('agent')->column('disabled') ) {
    %search = ();
  } else {
    %search = ( 'disabled' => '' );
  }
  #bad false laziness with search/cust_main.cgi (also needs fixing up for
  #old mysql)
  my $ncancelled = "
     0 < ( SELECT COUNT(*) FROM cust_pkg
                  WHERE cust_pkg.custnum = cust_main.custnum
                    AND ( cust_pkg.cancel IS NULL
                          OR cust_pkg.cancel = 0
                        )
              )
       OR 0 = ( SELECT COUNT(*) FROM cust_pkg
                  WHERE cust_pkg.custnum = cust_main.custnum
              )
  ";
  my $ncancelled_sth = dbh->prepare("SELECT COUNT(*) FROM cust_main
                                       WHERE agentnum = ?
                                         AND ( $ncancelled )         ")
    or die dbh->errstr;
  my $total_sth = dbh->prepare("SELECT COUNT(*) FROM cust_main
                                  WHERE agentnum = ?           ")
    or die dbh->errstr;
%>
<%= header('Agent Listing', menubar(
  'Main Menu'   => $p,
  '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 )'; }
  %>
<% } %>
<%= table() %>