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