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