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