its all about control
[freeside.git] / httemplate / browse / agent.cgi
1 <% include("/elements/header.html",'Agent Listing', menubar(
2   'Main Menu'   => $p,
3   'Agent Types' => $p. 'browse/agent_type.cgi',
4 #  'Add new agent' => '../edit/agent.cgi'
5 )) %>
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') ) { 
10
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> )'; }
16   %>
17 % } 
18
19
20 <% include('/elements/table-grid.html') %>
21 % my $bgcolor1 = '#eeeeee';
22 %   my $bgcolor2 = '#ffffff';
23 %   my $bgcolor = '';
24 %
25
26
27 <TR>
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') ) { 
36
37     <TH CLASS="grid" BGCOLOR="#cccccc">Ticketing</TH>
38 % } 
39
40   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH>
41   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Freq.</FONT></TH>
42   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Prog.</FONT></TH>
43 </TR>
44
45 %#        <TH><FONT SIZE=-1>Agent #</FONT></TH>
46 %#        <TH>Agent</TH>
47 %
48 %foreach my $agent ( sort { 
49 %  #$a->getfield('agentnum') <=> $b->getfield('agentnum')
50 %  $a->getfield('agent') cmp $b->getfield('agent')
51 %} qsearch('agent', \%search ) ) {
52 %
53 %  my $cust_main_link = $p. 'search/cust_main.cgi?agentnum_on=1&'.
54 %                       'agentnum='. $agent->agentnum;
55 %
56 %  my $cust_pkg_link = $p. 'search/cust_pkg.cgi?agentnum='. $agent->agentnum;
57 %  
58 %  if ( $bgcolor eq $bgcolor1 ) {
59 %    $bgcolor = $bgcolor2;
60 %  } else {
61 %    $bgcolor = $bgcolor1;
62 %  }
63 %
64 %
65
66
67       <TR>
68         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
69           <% $agent->agentnum %></A></TD>
70 % if ( dbdef->table('agent')->column('disabled')
71 %        && !$cgi->param('showdisabled')           ) { 
72
73         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->disabled ? 'DISABLED' : '' %></TD>
74 % } 
75
76
77         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
78           <% $agent->agent %></A></TD>
79         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A></TD>
80
81         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
82           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
83
84             <TR>
85               <TH ALIGN="right" WIDTH="40%">
86                 <FONT COLOR="#7e0079">
87                   <% my $num_prospect = $agent->num_prospect_cust_main %>&nbsp;
88                 </FONT>
89               </TH>
90
91               <TD>
92 % if ( $num_prospect ) { 
93
94                   <A HREF="<% $cust_main_link %>&prospect=1">
95 % } 
96 prospects
97 % if ($num_prospect ) { 
98 </A>
99 % } 
100
101               <TD>
102             </TR>
103
104             <TR>
105               <TH ALIGN="right" WIDTH="40%">
106                 <FONT COLOR="#0000CC">
107                   <% my $num_inactive = $agent->num_inactive_cust_main %>&nbsp;
108                 </FONT>
109               </TH>
110
111               <TD>
112 % if ( $num_inactive ) { 
113
114                   <A HREF="<% $cust_main_link %>&inactive=1">
115 % } 
116 inactive
117 % if ( $num_inactive ) { 
118 </A>
119 % } 
120
121               </TD>
122             </TR>
123
124             <TR>
125               <TH ALIGN="right" WIDTH="40%">
126                 <FONT COLOR="#00CC00">
127                   <% my $num_active = $agent->num_active_cust_main %>&nbsp;
128                 </FONT>
129               </TH>
130
131               <TD>
132 % if ( $num_active ) { 
133
134                   <A HREF="<% $cust_main_link %>&active=1">
135 % } 
136 active
137 % if ( $num_active ) { 
138 </A>
139 % } 
140
141               </TD>
142             </TR>
143
144             <TR>
145               <TH ALIGN="right" WIDTH="40%">
146                 <FONT COLOR="#FF9900">
147                   <% my $num_susp = $agent->num_susp_cust_main %>&nbsp;
148                 </FONT>
149               </TH>
150
151               <TD>
152 % if ( $num_susp ) { 
153
154                   <A HREF="<% $cust_main_link %>&suspended=1">
155 % } 
156 suspended
157 % if ( $num_susp ) { 
158 </A>
159 % } 
160
161               </TD>
162             </TR>
163
164             <TR>
165               <TH ALIGN="right" WIDTH="40%">
166                 <FONT COLOR="#FF0000">
167                   <% my $num_cancel = $agent->num_cancel_cust_main %>&nbsp;
168                 </FONT>
169               </TH>
170
171               <TD>
172 % if ( $num_cancel ) { 
173
174                   <A HREF="<% $cust_main_link %>&showcancelledcustomers=1&cancelled=1">
175 % } 
176 cancelled
177 % if ( $num_cancel ) { 
178 </A>
179 % } 
180
181               </TD>
182             </TR>
183
184           </TABLE>
185         </TD>
186
187         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" VALIGN="bottom">
188           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
189
190             <TR>
191               <TH ALIGN="right" WIDTH="40%">
192                 <FONT COLOR="#0000CC">
193                   <% my $num_inactive_pkg = $agent->num_inactive_cust_pkg %>&nbsp;
194                 </FONT>
195               </TH>
196
197               <TD>
198 % if ( $num_inactive_pkg ) { 
199
200                   <A HREF="<% $cust_pkg_link %>&magic=inactive">
201 % } 
202 inactive
203 % if ( $num_inactive_pkg ) { 
204 </A>
205 % } 
206
207               </TD>
208             </TR>
209
210             <TR>
211               <TH ALIGN="right" WIDTH="40%">
212                 <FONT COLOR="#00CC00">
213                   <% my $num_active_pkg = $agent->num_active_cust_pkg %>&nbsp;
214                 </FONT>
215               </TH>
216
217               <TD>
218 % if ( $num_active_pkg ) { 
219
220                   <A HREF="<% $cust_pkg_link %>&magic=active">
221 % } 
222 active
223 % if ( $num_active_pkg ) { 
224 </A>
225 % } 
226
227               </TD>
228             </TR>
229
230             <TR>
231               <TH ALIGN="right" WIDTH="40%">
232                 <FONT COLOR="#FF9900">
233                   <% my $num_susp_pkg = $agent->num_susp_cust_pkg %>&nbsp;
234                 </FONT>
235
236               </TH>
237               <TD>
238 % if ( $num_susp_pkg ) { 
239
240                   <A HREF="<% $cust_pkg_link %>&magic=suspended">
241 % } 
242 suspended
243 % if ( $num_susp_pkg ) { 
244 </A>
245 % } 
246
247               </TD>
248             </TR>
249             
250             <TR>
251               <TH ALIGN="right" WIDTH="40%">
252                 <FONT COLOR="#FF0000">
253                   <% my $num_cancel_pkg = $agent->num_cancel_cust_pkg %>&nbsp;
254                 </FONT>
255               </TH>
256
257               <TD>
258 % if ( $num_cancel_pkg ) { 
259
260                   <A HREF="<% $cust_pkg_link %>&magic=cancelled">
261 % } 
262 cancelled
263 % if ( $num_cancel_pkg ) { 
264 </A>
265 % } 
266
267               </TD>
268             </TR>
269
270           </TABLE>
271         </TD>
272
273         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
274           <A HREF="<% $p %>search/report_cust_pay.html?agentnum=<% $agent->agentnum %>">Payments</A>
275           <BR><A HREF="<% $p %>search/report_cust_credit.html?agentnum=<% $agent->agentnum %>">Credits</A>
276           <BR><A HREF="<% $p %>search/report_receivables.cgi?agentnum=<% $agent->agentnum %>">A/R Aging</A>
277           <!--<BR><A HREF="<% $p %>search/money_time.cgi?agentnum=<% $agent->agentnum %>">Sales/Credits/Receipts</A>-->
278
279         </TD>
280
281         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
282           <% my $num_reg_code = $agent->num_reg_code %>
283 % if ( $num_reg_code ) { 
284
285             <A HREF="<%$p%>search/reg_code.html?agentnum=<% $agent->agentnum %>">
286 % } 
287 Unused
288 % if ( $num_reg_code ) { 
289 </A>
290 % } 
291
292           <BR><A HREF="<%$p%>edit/reg_code.cgi?agentnum=<% $agent->agentnum %>">Generate codes</A>
293         </TD>
294
295         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
296           <% my $num_prepay_credit = $agent->num_prepay_credit %>
297 % if ( $num_prepay_credit ) { 
298
299             <A HREF="<%$p%>search/prepay_credit.html?agentnum=<% $agent->agentnum %>">
300 % } 
301 Unused
302 % if ( $num_prepay_credit ) { 
303 </A>
304 % } 
305
306           <BR><A HREF="<%$p%>edit/prepay_credit.cgi?agentnum=<% $agent->agentnum %>">Generate cards</A>
307         </TD>
308 % if ( $conf->config('ticket_system') ) { 
309
310
311           <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
312 % if ( $agent->ticketing_queueid ) { 
313
314               Queue: <% $agent->ticketing_queueid %>: <% $agent->ticketing_queue %><BR>
315 % } 
316
317           </TD>
318 % } 
319
320
321         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
322           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
323 % foreach my $override (
324 %                 # sort { }  want taxclass-full stuff first?  and default cards (empty cardtype)
325 %                 qsearch('agent_payment_gateway', { 'agentnum' => $agent->agentnum } )
326 %               ) {
327 %            
328
329               <TR>
330                 <TD> 
331                   <% $override->cardtype || 'Default' %> to <% $override->payment_gateway->gateway_module %> (<% $override->payment_gateway->gateway_username %>)
332                   <% $override->taxclass
333                         ? ' for '. $override->taxclass. ' only'
334                         : ''
335                   %>
336                   <FONT SIZE=-1><A HREF="<%$p%>misc/delete-agent_payment_gateway.cgi?<% $override->agentgatewaynum %>">(delete)</A></FONT>
337                 </TD>
338               </TR>
339 % } 
340
341             <TR>
342               <TD><FONT SIZE=-1><A HREF="<%$p%>edit/agent_payment_gateway.html?agentnum=<% $agent->agentnum %>">(add override)</A></FONT></TD>
343             </TR>
344           </TABLE>
345         </TD>
346
347 <!--
348         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->freq %></TD>
349         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->prog %></TD>
350 -->
351
352       </TR>
353 % } 
354
355
356     </TABLE>
357   </BODY>
358 </HTML>
359 <%init>
360
361 die "access denied"
362   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
363
364 my %search;
365 if ( $cgi->param('showdisabled')
366      || !dbdef->table('agent')->column('disabled') ) {
367   %search = ();
368 } else {
369   %search = ( 'disabled' => '' );
370 }
371
372 my $conf = new FS::Conf;
373
374 </%init>