% 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
% ##
% #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 %>
|
% }
|
% ##
% # access groups
% ##
% foreach my $access_group (
% map $_->access_group,
% qsearch('access_groupagent', { 'agentnum' => $agent->agentnum })
% ) {
<% $access_group->groupname |h %>
% }
|
% ##
% # invoice template
% ##
<% $agent->invoice_template || '(Default)' %>
|
% ##
% # customers
% ##
% 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 ) {
% }
|
|
% }
|
% ##
% # customer packages
% ##
% #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 ) {
% }
|
% }
|
% ##
% # reports
% ##
Package Churn
Payments
Credits
A/R Aging
|
% ##
% # registration codes
% ##
<% my $num_reg_code = $agent->num_reg_code %>
% if ( $num_reg_code ) {
% }
Unused
% if ( $num_reg_code ) {
% }
Generate codes
|
% ##
% # prepaid cards
% ##
<% my $num_prepay_credit = $agent->num_prepay_credit %>
% if ( $num_prepay_credit ) {
% }
Unused
% if ( $num_prepay_credit ) {
% }
Generate cards
|
% ##
% # ticketing
% ##
% if ( $conf->config('ticket_system') ) {
% if ( $agent->ticketing_queueid ) {
Queue: <% $agent->ticketing_queueid %>:
<% $agent->ticketing_queue %>
% }
|
% }
% ##
% # currencies
% ##
% if ( $conf->config('currencies') ) {
<% join(' ', sort keys %{ $agent->agent_currency_hashref } ) %>
|
% }
% ##
% # payment gateway overrides
% ##
% foreach my $override (
% # sort { } want taxclass-full stuff first? and default cards (empty cardtype)
% qsearch('agent_payment_gateway', { 'agentnum' => $agent->agentnum } )
% ) {
%
<% $override->cardtype || 'Default' %> to <% $override->payment_gateway->gateway_module %> (<% $override->payment_gateway->gateway_username %>)
<% $override->taxclass
? ' for '. $override->taxclass. ' only'
: ''
%>
(delete)
|
% }
(add override) |
|
% ##
% # configuration overrides
% ##
|
% }