add agent type list to package def browse, RT#4880
[freeside.git] / httemplate / browse / agent.cgi
1 <% include("/elements/header.html",'Agent Listing', menubar(
2   'Agent Types' => $p. 'browse/agent_type.cgi',
3 #  'Add new agent' => '../edit/agent.cgi'
4 )) %>
5 Agents are resellers of your service. Agents may be limited to a subset of your
6 full offerings (via their type).<BR><BR>
7 <A HREF="<% $p %>edit/agent.cgi"><I>Add a new agent</I></A><BR><BR>
8 % if ( dbdef->table('agent')->column('disabled') ) { 
9
10   <% $cgi->param('showdisabled')
11       ? do { $cgi->param('showdisabled', 0);
12              '( <a href="'. $cgi->self_url. '">hide disabled agents</a> )'; }
13       : do { $cgi->param('showdisabled', 1);
14              '( <a href="'. $cgi->self_url. '">show disabled agents</a> )'; }
15   %>
16 % } 
17
18
19 <% include('/elements/table-grid.html') %>
20 % my $bgcolor1 = '#eeeeee';
21 %   my $bgcolor2 = '#ffffff';
22 %   my $bgcolor = '';
23 %
24
25
26 <TR>
27   <TH CLASS="grid" BGCOLOR="#cccccc" COLSPAN=<% ( $cgi->param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent</TH>
28   <TH CLASS="grid" BGCOLOR="#cccccc">Type</TH>
29   <TH CLASS="grid" BGCOLOR="#cccccc">Master Customer</TH>
30   <TH CLASS="grid" BGCOLOR="#cccccc">Access Groups</TH>
31   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Invoice<BR>Template</FONT></TH>
32   <TH CLASS="grid" BGCOLOR="#cccccc">Customers</TH>
33   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Customer<BR>packages</FONT></TH>
34   <TH CLASS="grid" BGCOLOR="#cccccc">Reports</TH>
35   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Registration<BR>codes</FONT></TH>
36   <TH CLASS="grid" BGCOLOR="#cccccc">Prepaid cards</TH>
37 % if ( $conf->config('ticket_system') ) { 
38
39     <TH CLASS="grid" BGCOLOR="#cccccc">Ticketing</TH>
40 % } 
41
42   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH>
43   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Configuration Overrides</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
70         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
71           <A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>"><% $agent->agentnum %></A>
72         </TD>
73
74 %       if ( dbdef->table('agent')->column('disabled')
75 %            && !$cgi->param('showdisabled')           ) { 
76           <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
77             <% $agent->disabled ? 'DISABLED' : '' %>
78           </TD>
79 %       } 
80
81         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
82           <A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>"><% $agent->agent %></A>
83         </TD>
84
85         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
86           <A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A>
87         </TD>
88
89         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
90 %         if ( $agent->agent_custnum ) {
91             <% include('/elements/small_custview.html',
92                          $agent->agent_custnum,
93                          scalar($conf->config('countrydefault')),
94                          1, #show balance
95                       )
96             %>
97 %         }
98         </TD>
99
100         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
101 %         foreach my $access_group (
102 %           map $_->access_group,
103 %               qsearch('access_groupagent', { 'agentnum' => $agent->agentnum })
104 %         ) {
105             <A HREF="<%$p%>edit/access_group.html?<% $access_group->groupnum %>"><% $access_group->groupname |h %><BR>
106 %         }
107         </TD>
108
109         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
110           <% $agent->invoice_template || '(Default)' %>
111         </TD>
112
113         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" VALIGN="bottom">
114           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
115
116             <TR>
117               <TH ALIGN="right" WIDTH="40%">
118                 <FONT COLOR="#7e0079">
119                   <% my $num_prospect = $agent->num_prospect_cust_main %>&nbsp;
120                 </FONT>
121               </TH>
122
123               <TD>
124 % if ( $num_prospect ) { 
125
126                   <A HREF="<% $cust_main_link %>&prospect=1">
127 % } 
128 prospects
129 % if ($num_prospect ) { 
130 </A>
131 % } 
132
133               <TD>
134             </TR>
135
136             <TR>
137               <TH ALIGN="right" WIDTH="40%">
138                 <FONT COLOR="#0000CC">
139                   <% my $num_inactive = $agent->num_inactive_cust_main %>&nbsp;
140                 </FONT>
141               </TH>
142
143               <TD>
144 % if ( $num_inactive ) { 
145
146                   <A HREF="<% $cust_main_link %>&inactive=1">
147 % } 
148 inactive
149 % if ( $num_inactive ) { 
150 </A>
151 % } 
152
153               </TD>
154             </TR>
155
156             <TR>
157               <TH ALIGN="right" WIDTH="40%">
158                 <FONT COLOR="#00CC00">
159                   <% my $num_active = $agent->num_active_cust_main %>&nbsp;
160                 </FONT>
161               </TH>
162
163               <TD>
164 % if ( $num_active ) { 
165
166                   <A HREF="<% $cust_main_link %>&active=1">
167 % } 
168 active
169 % if ( $num_active ) { 
170 </A>
171 % } 
172
173               </TD>
174             </TR>
175
176             <TR>
177               <TH ALIGN="right" WIDTH="40%">
178                 <FONT COLOR="#FF9900">
179                   <% my $num_susp = $agent->num_susp_cust_main %>&nbsp;
180                 </FONT>
181               </TH>
182
183               <TD>
184 % if ( $num_susp ) { 
185
186                   <A HREF="<% $cust_main_link %>&suspended=1">
187 % } 
188 suspended
189 % if ( $num_susp ) { 
190 </A>
191 % } 
192
193               </TD>
194             </TR>
195
196             <TR>
197               <TH ALIGN="right" WIDTH="40%">
198                 <FONT COLOR="#FF0000">
199                   <% my $num_cancel = $agent->num_cancel_cust_main %>&nbsp;
200                 </FONT>
201               </TH>
202
203               <TD>
204 % if ( $num_cancel ) { 
205
206                   <A HREF="<% $cust_main_link %>&showcancelledcustomers=1&cancelled=1">
207 % } 
208 cancelled
209 % if ( $num_cancel ) { 
210 </A>
211 % } 
212
213               </TD>
214             </TR>
215
216           </TABLE>
217         </TD>
218
219         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" VALIGN="bottom">
220           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
221
222             <TR>
223               <TH ALIGN="right" WIDTH="40%">
224                 <FONT COLOR="#0000CC">
225                   <% my $num_inactive_pkg = $agent->num_inactive_cust_pkg %>&nbsp;
226                 </FONT>
227               </TH>
228
229               <TD>
230 % if ( $num_inactive_pkg ) { 
231
232                   <A HREF="<% $cust_pkg_link %>&magic=inactive">
233 % } 
234 inactive
235 % if ( $num_inactive_pkg ) { 
236 </A>
237 % } 
238
239               </TD>
240             </TR>
241
242             <TR>
243               <TH ALIGN="right" WIDTH="40%">
244                 <FONT COLOR="#00CC00">
245                   <% my $num_active_pkg = $agent->num_active_cust_pkg %>&nbsp;
246                 </FONT>
247               </TH>
248
249               <TD>
250 % if ( $num_active_pkg ) { 
251
252                   <A HREF="<% $cust_pkg_link %>&magic=active">
253 % } 
254 active
255 % if ( $num_active_pkg ) { 
256 </A>
257 % } 
258
259               </TD>
260             </TR>
261
262             <TR>
263               <TH ALIGN="right" WIDTH="40%">
264                 <FONT COLOR="#FF9900">
265                   <% my $num_susp_pkg = $agent->num_susp_cust_pkg %>&nbsp;
266                 </FONT>
267
268               </TH>
269               <TD>
270 % if ( $num_susp_pkg ) { 
271
272                   <A HREF="<% $cust_pkg_link %>&magic=suspended">
273 % } 
274 suspended
275 % if ( $num_susp_pkg ) { 
276 </A>
277 % } 
278
279               </TD>
280             </TR>
281             
282             <TR>
283               <TH ALIGN="right" WIDTH="40%">
284                 <FONT COLOR="#FF0000">
285                   <% my $num_cancel_pkg = $agent->num_cancel_cust_pkg %>&nbsp;
286                 </FONT>
287               </TH>
288
289               <TD>
290 % if ( $num_cancel_pkg ) { 
291
292                   <A HREF="<% $cust_pkg_link %>&magic=cancelled">
293 % } 
294 cancelled
295 % if ( $num_cancel_pkg ) { 
296 </A>
297 % } 
298
299               </TD>
300             </TR>
301
302           </TABLE>
303         </TD>
304
305         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
306           <A HREF="<% $p %>graph/report_cust_pkg.html?agentnum=<% $agent->agentnum %>">Package&nbsp;Churn</A>
307           <BR><A HREF="<% $p %>search/report_cust_pay.html?agentnum=<% $agent->agentnum %>">Payments</A>
308           <BR><A HREF="<% $p %>search/report_cust_credit.html?agentnum=<% $agent->agentnum %>">Credits</A>
309           <BR><A HREF="<% $p %>search/report_receivables.cgi?agentnum=<% $agent->agentnum %>">A/R&nbsp;Aging</A>
310           <!--<BR><A HREF="<% $p %>search/money_time.cgi?agentnum=<% $agent->agentnum %>">Sales/Credits/Receipts</A>-->
311
312         </TD>
313
314         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
315           <% my $num_reg_code = $agent->num_reg_code %>
316 % if ( $num_reg_code ) { 
317
318             <A HREF="<%$p%>search/reg_code.html?agentnum=<% $agent->agentnum %>">
319 % } 
320 Unused
321 % if ( $num_reg_code ) { 
322 </A>
323 % } 
324
325           <BR><A HREF="<%$p%>edit/reg_code.cgi?agentnum=<% $agent->agentnum %>">Generate codes</A>
326         </TD>
327
328         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
329           <% my $num_prepay_credit = $agent->num_prepay_credit %>
330 % if ( $num_prepay_credit ) { 
331
332             <A HREF="<%$p%>search/prepay_credit.html?agentnum=<% $agent->agentnum %>">
333 % } 
334 Unused
335 % if ( $num_prepay_credit ) { 
336 </A>
337 % } 
338
339           <BR><A HREF="<%$p%>edit/prepay_credit.cgi?agentnum=<% $agent->agentnum %>">Generate cards</A>
340         </TD>
341 % if ( $conf->config('ticket_system') ) { 
342
343
344           <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
345 % if ( $agent->ticketing_queueid ) { 
346
347               Queue: <% $agent->ticketing_queueid %>: <% $agent->ticketing_queue %><BR>
348 % } 
349
350           </TD>
351 % } 
352
353
354         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
355           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
356 % foreach my $override (
357 %                 # sort { }  want taxclass-full stuff first?  and default cards (empty cardtype)
358 %                 qsearch('agent_payment_gateway', { 'agentnum' => $agent->agentnum } )
359 %               ) {
360 %            
361
362               <TR>
363                 <TD> 
364                   <% $override->cardtype || 'Default' %> to <% $override->payment_gateway->gateway_module %> (<% $override->payment_gateway->gateway_username %>)
365                   <% $override->taxclass
366                         ? ' for '. $override->taxclass. ' only'
367                         : ''
368                   %>
369                   <FONT SIZE=-1><A HREF="<%$p%>misc/delete-agent_payment_gateway.cgi?<% $override->agentgatewaynum %>">(delete)</A></FONT>
370                 </TD>
371               </TR>
372 % } 
373
374             <TR>
375               <TD><FONT SIZE=-1><A HREF="<%$p%>edit/agent_payment_gateway.html?agentnum=<% $agent->agentnum %>">(add override)</A></FONT></TD>
376             </TR>
377           </TABLE>
378         </TD>
379
380         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
381           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
382 % foreach my $override (
383 %                 qsearch('conf', { 'agentnum' => $agent->agentnum } )
384 %               ) {
385 %            
386
387               <TR>
388                 <TD> 
389                   <% $override->name %>&nbsp;<FONT SIZE=-1><A HREF="<%$p%>config/config-delete.cgi?<% $override->confnum %>">(delete)</A></FONT>
390                 </TD>
391               </TR>
392 % } 
393
394             <TR>
395               <TD><FONT SIZE=-1><A HREF="<%$p%>config/config-view.cgi?agentnum=<% $agent->agentnum %>">(view/add/edit overrides)</A></FONT></TD>
396             </TR>
397           </TABLE>
398         </TD>
399
400       </TR>
401 % } 
402
403
404     </TABLE>
405   </BODY>
406 </HTML>
407 <%init>
408
409 die "access denied"
410   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
411
412 my %search;
413 if ( $cgi->param('showdisabled')
414      || !dbdef->table('agent')->column('disabled') ) {
415   %search = ();
416 } else {
417   %search = ( 'disabled' => '' );
418 }
419
420 my $conf = new FS::Conf;
421
422 </%init>