1 <% include("/elements/header.html",'Agent Listing', menubar(
3 'Agent Types' => $p. 'browse/agent_type.cgi',
4 # 'Add new agent' => '../edit/agent.cgi'
6 Agents are resellers of your service. Agents may be limited to a subset of your
7 full offerings (via their type).<BR><BR>
8 <A HREF="<% $p %>edit/agent.cgi"><I>Add a new agent</I></A><BR><BR>
9 % if ( dbdef->table('agent')->column('disabled') ) {
11 <% $cgi->param('showdisabled')
12 ? do { $cgi->param('showdisabled', 0);
13 '( <a href="'. $cgi->self_url. '">hide disabled agents</a> )'; }
14 : do { $cgi->param('showdisabled', 1);
15 '( <a href="'. $cgi->self_url. '">show disabled agents</a> )'; }
20 <% include('/elements/table-grid.html') %>
21 % my $bgcolor1 = '#eeeeee';
22 % my $bgcolor2 = '#ffffff';
28 <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% ( $cgi->param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent</TH>
29 <TH CLASS="grid" BGCOLOR="#cccccc">Type</TH>
30 <TH CLASS="grid" BGCOLOR="#cccccc">Customers</TH>
31 <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Customer<BR>packages</FONT></TH>
32 <TH CLASS="grid" BGCOLOR="#cccccc">Reports</TH>
33 <TH CLASS="grid" BGCOLOR="#cccccc">Registration codes</TH>
34 <TH CLASS="grid" BGCOLOR="#cccccc">Prepaid cards</TH>
35 % if ( $conf->config('ticket_system') ) {
37 <TH CLASS="grid" BGCOLOR="#cccccc">Ticketing</TH>
40 <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH>
41 <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Configuration Overrides</FONT></TH>
42 <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Freq.</FONT></TH>
43 <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Prog.</FONT></TH>
46 %# <TH><FONT SIZE=-1>Agent #</FONT></TH>
49 %foreach my $agent ( sort {
50 % #$a->getfield('agentnum') <=> $b->getfield('agentnum')
51 % $a->getfield('agent') cmp $b->getfield('agent')
52 %} qsearch('agent', \%search ) ) {
54 % my $cust_main_link = $p. 'search/cust_main.cgi?agentnum_on=1&'.
55 % 'agentnum='. $agent->agentnum;
57 % my $cust_pkg_link = $p. 'search/cust_pkg.cgi?agentnum='. $agent->agentnum;
59 % if ( $bgcolor eq $bgcolor1 ) {
60 % $bgcolor = $bgcolor2;
62 % $bgcolor = $bgcolor1;
69 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
70 <% $agent->agentnum %></A></TD>
71 % if ( dbdef->table('agent')->column('disabled')
72 % && !$cgi->param('showdisabled') ) {
74 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->disabled ? 'DISABLED' : '' %></TD>
78 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
79 <% $agent->agent %></A></TD>
80 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A></TD>
82 <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
83 <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
86 <TH ALIGN="right" WIDTH="40%">
87 <FONT COLOR="#7e0079">
88 <% my $num_prospect = $agent->num_prospect_cust_main %>
93 % if ( $num_prospect ) {
95 <A HREF="<% $cust_main_link %>&prospect=1">
98 % if ($num_prospect ) {
106 <TH ALIGN="right" WIDTH="40%">
107 <FONT COLOR="#0000CC">
108 <% my $num_inactive = $agent->num_inactive_cust_main %>
113 % if ( $num_inactive ) {
115 <A HREF="<% $cust_main_link %>&inactive=1">
118 % if ( $num_inactive ) {
126 <TH ALIGN="right" WIDTH="40%">
127 <FONT COLOR="#00CC00">
128 <% my $num_active = $agent->num_active_cust_main %>
133 % if ( $num_active ) {
135 <A HREF="<% $cust_main_link %>&active=1">
138 % if ( $num_active ) {
146 <TH ALIGN="right" WIDTH="40%">
147 <FONT COLOR="#FF9900">
148 <% my $num_susp = $agent->num_susp_cust_main %>
155 <A HREF="<% $cust_main_link %>&suspended=1">
166 <TH ALIGN="right" WIDTH="40%">
167 <FONT COLOR="#FF0000">
168 <% my $num_cancel = $agent->num_cancel_cust_main %>
173 % if ( $num_cancel ) {
175 <A HREF="<% $cust_main_link %>&showcancelledcustomers=1&cancelled=1">
178 % if ( $num_cancel ) {
188 <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" VALIGN="bottom">
189 <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
192 <TH ALIGN="right" WIDTH="40%">
193 <FONT COLOR="#0000CC">
194 <% my $num_inactive_pkg = $agent->num_inactive_cust_pkg %>
199 % if ( $num_inactive_pkg ) {
201 <A HREF="<% $cust_pkg_link %>&magic=inactive">
204 % if ( $num_inactive_pkg ) {
212 <TH ALIGN="right" WIDTH="40%">
213 <FONT COLOR="#00CC00">
214 <% my $num_active_pkg = $agent->num_active_cust_pkg %>
219 % if ( $num_active_pkg ) {
221 <A HREF="<% $cust_pkg_link %>&magic=active">
224 % if ( $num_active_pkg ) {
232 <TH ALIGN="right" WIDTH="40%">
233 <FONT COLOR="#FF9900">
234 <% my $num_susp_pkg = $agent->num_susp_cust_pkg %>
239 % if ( $num_susp_pkg ) {
241 <A HREF="<% $cust_pkg_link %>&magic=suspended">
244 % if ( $num_susp_pkg ) {
252 <TH ALIGN="right" WIDTH="40%">
253 <FONT COLOR="#FF0000">
254 <% my $num_cancel_pkg = $agent->num_cancel_cust_pkg %>
259 % if ( $num_cancel_pkg ) {
261 <A HREF="<% $cust_pkg_link %>&magic=cancelled">
264 % if ( $num_cancel_pkg ) {
274 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
275 <A HREF="<% $p %>search/report_cust_pay.html?agentnum=<% $agent->agentnum %>">Payments</A>
276 <BR><A HREF="<% $p %>search/report_cust_credit.html?agentnum=<% $agent->agentnum %>">Credits</A>
277 <BR><A HREF="<% $p %>search/report_receivables.cgi?agentnum=<% $agent->agentnum %>">A/R Aging</A>
278 <!--<BR><A HREF="<% $p %>search/money_time.cgi?agentnum=<% $agent->agentnum %>">Sales/Credits/Receipts</A>-->
282 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
283 <% my $num_reg_code = $agent->num_reg_code %>
284 % if ( $num_reg_code ) {
286 <A HREF="<%$p%>search/reg_code.html?agentnum=<% $agent->agentnum %>">
289 % if ( $num_reg_code ) {
293 <BR><A HREF="<%$p%>edit/reg_code.cgi?agentnum=<% $agent->agentnum %>">Generate codes</A>
296 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
297 <% my $num_prepay_credit = $agent->num_prepay_credit %>
298 % if ( $num_prepay_credit ) {
300 <A HREF="<%$p%>search/prepay_credit.html?agentnum=<% $agent->agentnum %>">
303 % if ( $num_prepay_credit ) {
307 <BR><A HREF="<%$p%>edit/prepay_credit.cgi?agentnum=<% $agent->agentnum %>">Generate cards</A>
309 % if ( $conf->config('ticket_system') ) {
312 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
313 % if ( $agent->ticketing_queueid ) {
315 Queue: <% $agent->ticketing_queueid %>: <% $agent->ticketing_queue %><BR>
322 <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
323 <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
324 % foreach my $override (
325 % # sort { } want taxclass-full stuff first? and default cards (empty cardtype)
326 % qsearch('agent_payment_gateway', { 'agentnum' => $agent->agentnum } )
332 <% $override->cardtype || 'Default' %> to <% $override->payment_gateway->gateway_module %> (<% $override->payment_gateway->gateway_username %>)
333 <% $override->taxclass
334 ? ' for '. $override->taxclass. ' only'
337 <FONT SIZE=-1><A HREF="<%$p%>misc/delete-agent_payment_gateway.cgi?<% $override->agentgatewaynum %>">(delete)</A></FONT>
343 <TD><FONT SIZE=-1><A HREF="<%$p%>edit/agent_payment_gateway.html?agentnum=<% $agent->agentnum %>">(add override)</A></FONT></TD>
348 <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
349 <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
350 % foreach my $override (
351 % qsearch('conf', { 'agentnum' => $agent->agentnum } )
357 <% $override->name %>
358 <FONT SIZE=-1><A HREF="<%$p%>config/config-delete.cgi?<% $override->confnum %>">(delete)</A></FONT>
364 <TD><FONT SIZE=-1><A HREF="<%$p%>config/config-view.cgi?agentnum=<% $agent->agentnum %>">(add override)</A></FONT></TD>
370 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->freq %></TD>
371 <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->prog %></TD>
384 unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
387 if ( $cgi->param('showdisabled')
388 || !dbdef->table('agent')->column('disabled') ) {
391 %search = ( 'disabled' => '' );
394 my $conf = new FS::Conf;