ACLs
[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">Customers</TH>
30   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Customer<BR>packages</FONT></TH>
31   <TH CLASS="grid" BGCOLOR="#cccccc">Reports</TH>
32   <TH CLASS="grid" BGCOLOR="#cccccc">Registration codes</TH>
33   <TH CLASS="grid" BGCOLOR="#cccccc">Prepaid cards</TH>
34 % if ( $conf->config('ticket_system') ) { 
35
36     <TH CLASS="grid" BGCOLOR="#cccccc">Ticketing</TH>
37 % } 
38
39   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Payment Gateway Overrides</FONT></TH>
40   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Freq.</FONT></TH>
41   <TH CLASS="grid" BGCOLOR="#cccccc"><FONT SIZE=-1>Prog.</FONT></TH>
42 </TR>
43
44 %#        <TH><FONT SIZE=-1>Agent #</FONT></TH>
45 %#        <TH>Agent</TH>
46 %
47 %foreach my $agent ( sort { 
48 %  #$a->getfield('agentnum') <=> $b->getfield('agentnum')
49 %  $a->getfield('agent') cmp $b->getfield('agent')
50 %} qsearch('agent', \%search ) ) {
51 %
52 %  my $cust_main_link = $p. 'search/cust_main.cgi?agentnum_on=1&'.
53 %                       'agentnum='. $agent->agentnum;
54 %
55 %  my $cust_pkg_link = $p. 'search/cust_pkg.cgi?agentnum='. $agent->agentnum;
56 %  
57 %  if ( $bgcolor eq $bgcolor1 ) {
58 %    $bgcolor = $bgcolor2;
59 %  } else {
60 %    $bgcolor = $bgcolor1;
61 %  }
62 %
63 %
64
65
66       <TR>
67         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
68           <% $agent->agentnum %></A></TD>
69 % if ( dbdef->table('agent')->column('disabled')
70 %        && !$cgi->param('showdisabled')           ) { 
71
72         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $agent->disabled ? 'DISABLED' : '' %></TD>
73 % } 
74
75
76         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent.cgi?<% $agent->agentnum %>">
77           <% $agent->agent %></A></TD>
78         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><A HREF="<%$p%>edit/agent_type.cgi?<% $agent->typenum %>"><% $agent->agent_type->atype %></A></TD>
79
80         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
81           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
82
83             <TR>
84               <TH ALIGN="right" WIDTH="40%">
85                 <FONT COLOR="#7e0079">
86                   <% my $num_prospect = $agent->num_prospect_cust_main %>&nbsp;
87                 </FONT>
88               </TH>
89
90               <TD>
91 % if ( $num_prospect ) { 
92
93                   <A HREF="<% $cust_main_link %>&prospect=1">
94 % } 
95 prospects
96 % if ($num_prospect ) { 
97 </A>
98 % } 
99
100               <TD>
101             </TR>
102
103             <TR>
104               <TH ALIGN="right" WIDTH="40%">
105                 <FONT COLOR="#0000CC">
106                   <% my $num_inactive = $agent->num_inactive_cust_main %>&nbsp;
107                 </FONT>
108               </TH>
109
110               <TD>
111 % if ( $num_inactive ) { 
112
113                   <A HREF="<% $cust_main_link %>&inactive=1">
114 % } 
115 inactive
116 % if ( $num_inactive ) { 
117 </A>
118 % } 
119
120               </TD>
121             </TR>
122
123             <TR>
124               <TH ALIGN="right" WIDTH="40%">
125                 <FONT COLOR="#00CC00">
126                   <% my $num_active = $agent->num_active_cust_main %>&nbsp;
127                 </FONT>
128               </TH>
129
130               <TD>
131 % if ( $num_active ) { 
132
133                   <A HREF="<% $cust_main_link %>&active=1">
134 % } 
135 active
136 % if ( $num_active ) { 
137 </A>
138 % } 
139
140               </TD>
141             </TR>
142
143             <TR>
144               <TH ALIGN="right" WIDTH="40%">
145                 <FONT COLOR="#FF9900">
146                   <% my $num_susp = $agent->num_susp_cust_main %>&nbsp;
147                 </FONT>
148               </TH>
149
150               <TD>
151 % if ( $num_susp ) { 
152
153                   <A HREF="<% $cust_main_link %>&suspended=1">
154 % } 
155 suspended
156 % if ( $num_susp ) { 
157 </A>
158 % } 
159
160               </TD>
161             </TR>
162
163             <TR>
164               <TH ALIGN="right" WIDTH="40%">
165                 <FONT COLOR="#FF0000">
166                   <% my $num_cancel = $agent->num_cancel_cust_main %>&nbsp;
167                 </FONT>
168               </TH>
169
170               <TD>
171 % if ( $num_cancel ) { 
172
173                   <A HREF="<% $cust_main_link %>&showcancelledcustomers=1&cancelled=1">
174 % } 
175 cancelled
176 % if ( $num_cancel ) { 
177 </A>
178 % } 
179
180               </TD>
181             </TR>
182
183           </TABLE>
184         </TD>
185
186         <TD CLASS="inv" BGCOLOR="<% $bgcolor %>" VALIGN="bottom">
187           <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
188
189             <TR>
190               <TH ALIGN="right" WIDTH="40%">
191                 <FONT COLOR="#0000CC">
192                   <% my $num_inactive_pkg = $agent->num_inactive_cust_pkg %>&nbsp;
193                 </FONT>
194               </TH>
195
196               <TD>
197 % if ( $num_inactive_pkg ) { 
198
199                   <A HREF="<% $cust_pkg_link %>&magic=inactive">
200 % } 
201 inactive
202 % if ( $num_inactive_pkg ) { 
203 </A>
204 % } 
205
206               </TD>
207             </TR>
208
209             <TR>
210               <TH ALIGN="right" WIDTH="40%">
211                 <FONT COLOR="#00CC00">
212                   <% my $num_active_pkg = $agent->num_active_cust_pkg %>&nbsp;
213                 </FONT>
214               </TH>
215
216               <TD>
217 % if ( $num_active_pkg ) { 
218
219                   <A HREF="<% $cust_pkg_link %>&magic=active">
220 % } 
221 active
222 % if ( $num_active_pkg ) { 
223 </A>
224 % } 
225
226               </TD>
227             </TR>
228
229             <TR>
230               <TH ALIGN="right" WIDTH="40%">
231                 <FONT COLOR="#FF9900">
232                   <% my $num_susp_pkg = $agent->num_susp_cust_pkg %>&nbsp;
233                 </FONT>
234
235               </TH>
236               <TD>
237 % if ( $num_susp_pkg ) { 
238
239                   <A HREF="<% $cust_pkg_link %>&magic=suspended">
240 % } 
241 suspended
242 % if ( $num_susp_pkg ) { 
243 </A>
244 % } 
245
246               </TD>
247             </TR>
248             
249             <TR>
250               <TH ALIGN="right" WIDTH="40%">
251                 <FONT COLOR="#FF0000">
252                   <% my $num_cancel_pkg = $agent->num_cancel_cust_pkg %>&nbsp;
253                 </FONT>
254               </TH>
255
256               <TD>
257 % if ( $num_cancel_pkg ) { 
258
259                   <A HREF="<% $cust_pkg_link %>&magic=cancelled">
260 % } 
261 cancelled
262 % if ( $num_cancel_pkg ) { 
263 </A>
264 % } 
265
266               </TD>
267             </TR>
268
269           </TABLE>
270         </TD>
271
272         <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
273           <A HREF="<% $p %>graph/report_cust_pkg.html?agentnum=<% $agent->agentnum %>">Package&nbsp;Churn</A>
274           <BR><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&nbsp;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>