X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Fagent.cgi;h=751e8b69ba22f50d503e91ff746e40f7db8f092c;hp=c74ef2b6385b581b562f6a7b645578ca8f4a8bc8;hb=ac8410cdb67639afeb84c84e975fffadf3e6cce1;hpb=f38abb144955686f880a528ed6fe4c9c5453517b diff --git a/httemplate/browse/agent.cgi b/httemplate/browse/agent.cgi index c74ef2b63..751e8b69b 100755 --- a/httemplate/browse/agent.cgi +++ b/httemplate/browse/agent.cgi @@ -1,67 +1,410 @@ - -<% - -#Begin silliness -# -#use FS::UI::CGI; -#use FS::UI::agent; -# -#$ui = new FS::UI::agent; -#$ui->browse; -#exit; -#__END__ -#End silliness - -print header('Agent Listing', menubar( - 'Main Menu' => $p, +<% include("/elements/header.html",'Agent Listing', menubar( 'Agent Types' => $p. 'browse/agent_type.cgi', # 'Add new agent' => '../edit/agent.cgi' -)), < Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type).

-END -print &table(), < - Agent - Type - Freq. (unimp.) - Prog. (unimp.) - -END -# Agent # -# Agent - -foreach my $agent ( sort { - #$a->getfield('agentnum') <=> $b->getfield('agentnum') - $a->getfield('agent') cmp $b->getfield('agent') -} qsearch('agent',{}) ) { - my($hashref)=$agent->hashref; - my($typenum)=$hashref->{typenum}; - my($agent_type)=qsearchs('agent_type',{'typenum'=>$typenum}); - my($atype)=$agent_type->getfield('atype'); - print < - - $hashref->{agentnum} - - $hashref->{agent} - $atype - $hashref->{freq} - $hashref->{prog} - -END +Add a new agent

+% if ( dbdef->table('agent')->column('disabled') ) { -} + <% $cgi->param('showdisabled') + ? do { $cgi->param('showdisabled', 0); + '( hide disabled agents )'; } + : do { $cgi->param('showdisabled', 1); + '( show disabled agents )'; } + %> +% } + + +<% include('/elements/table-grid.html') %> +% my $bgcolor1 = '#eeeeee'; +% my $bgcolor2 = '#ffffff'; +% my $bgcolor = ''; + + + param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent + Type + Master Customer + Commissions + Access Groups + Invoice
Template
+ Customers + Customer
packages
+ Reports + Registration
codes
+ Prepaid cards + +% if ( $conf->config('ticket_system') ) { + Ticketing +% } + +% if ( $conf->config('currencies') ) { + Currencies +% } + + Payment Gateway Override + Configuration Overrides + + +%# Agent # +%# Agent +%foreach my $agent ( sort { +% #$a->getfield('agentnum') <=> $b->getfield('agentnum') +% $a->getfield('agent') cmp $b->getfield('agent') +%} qsearch('agent', \%search ) ) { +% +% my $cust_main_link = $p. 'search/cust_main.cgi?agentnum_on=1&'. +% 'agentnum='. $agent->agentnum; +% +% my $cust_pkg_link = $p. 'search/cust_pkg.cgi?agentnum='. $agent->agentnum; +% +% if ( $bgcolor eq $bgcolor1 ) { +% $bgcolor = $bgcolor2; +% } else { +% $bgcolor = $bgcolor1; +% } -print < - Add a new agent - Add a new agent type + +% ## +% # agentnum +% ## + + <% $agent->agentnum %> + + +% ## +% # disabled +% ## +% if ( ! $cgi->param('showdisabled') ) { + + <% $agent->disabled ? 'DISABLED' + : 'Active' + %> + +% } + +% ## +% # agent +% ## + + <% $agent->agent %> + + +% ## +% # type +% ## + + <% $agent->agent_type->atype %> + + +% ## +% # master customer +% ## + +% if ( $agent->agent_custnum ) { + <& /elements/small_custview.html, + $agent->agent_custnum, + scalar($conf->config('countrydefault')), + 1, #show balance + $p.'view/cust_main.cgi', + &> +% } + + +% ## +% # commissions +% ## + + + + + +% #surprising amount of false laziness w/ edit/process/agent.cgi +% my @pkg_class = qsearch('pkg_class', { 'disabled'=>'' }); +% foreach my $pkg_class ( '', @pkg_class ) { +% my %agent_pkg_class = ( 'agentnum' => $agent->agentnum, +% 'classnum' => $pkg_class ? $pkg_class->classnum : '' +% ); +% my $agent_pkg_class = +% qsearchs( 'agent_pkg_class', \%agent_pkg_class ) +% || new FS::agent_pkg_class \%agent_pkg_class; +% my $param = 'classnum'. $agent_pkg_class{classnum}; + + + + + + +% } + +
<% $agent_pkg_class->commission_percent || 0 %>%<% $pkg_class ? $pkg_class->classname : mt('(no package class)') |h %> +
+ + + +% ## +% # access groups +% ## + +% foreach my $access_group ( +% map $_->access_group, +% qsearch('access_groupagent', { 'agentnum' => $agent->agentnum }) +% ) { + <% $access_group->groupname |h %>
+% } + + +% ## +% # invoice template +% ## + + <% $agent->invoice_template || '(Default)' %> + + +% ## +% # customers +% ## + + + + +% my @cust_status = +% qw( prospect inactive ordered active suspended cancelled ); +% my %method = ( 'suspended' => 'susp', +% 'cancelled' => 'cancel' +% ); +% my %PL = ( 'prospect' => 'prospects', ); +% my %link = ( 'cancelled' => 'showcancelledcustomers=1&cancelled' ); +% my $statuscolor = FS::cust_main->statuscolors; +% +% foreach my $status ( @cust_status ) { +% my $meth = exists($method{$status}) ? $method{$status} : $status; +% $meth = 'num_'. $meth. '_cust_main'; +% my $link = exists($link{$status}) ? $link{$status} : $status; + + +% my $num = 0; +% unless ( $disable_counts ) { + +% } + + +% } + +
+ + <% $num = $agent->$meth() %>  + + +% if ( $num || $disable_counts ) { +% + + "> +% } +<% exists($PL{$status}) ? $PL{$status} : $status %> +% if ($num || $disable_counts ) { + +% } + + +
+ + +% ## +% # customer packages +% ## + + + + +% #my @pkg_status = FS::cust_pkg->statuses; +% my @pkg_status = ( 'on hold', 'one-time charge', 'not yet billed', +% qw( active suspended cancelled ) ); +% my %method = ( 'one-time charge' => 'inactive', +% 'suspended' => 'susp', +% 'cancelled' => 'cancel', +% ); +% my $statuscolor = FS::cust_pkg->statuscolors; +% +% foreach my $status ( @pkg_status ) { +% my $magic = exists($method{$status}) ? $method{$status} : $status; +% $magic =~ s/ /_/g; +% my $meth = 'num_'. $magic. '_cust_pkg'; +% ( my $label = $status ) =~ s/ / /g; + + +% my $num = 0; +% unless ( $disable_counts ) { + +% } + + + + +% } + +
+ + <% $num = $agent->$meth() %>  + + +% if ( $num || $disable_counts ) { + + +% } +<% $label %> +% if ( $num || $disable_counts ) { + +% } + +
+ + +% ## +% # reports +% ## + +
Package Churn +
Payments +
Credits +
A/R Aging + + + +% ## +% # registration codes +% ## + + + <% my $num_reg_code = $agent->num_reg_code %> +% if ( $num_reg_code ) { + + +% } +Unused +% if ( $num_reg_code ) { + +% } + +
Generate codes + + +% ## +% # prepaid cards +% ## + + + <% my $num_prepay_credit = $agent->num_prepay_credit %> +% if ( $num_prepay_credit ) { + + +% } +Unused +% if ( $num_prepay_credit ) { + +% } + +
Generate cards + + +% ## +% # ticketing +% ## +% if ( $conf->config('ticket_system') ) { + +% if ( $agent->ticketing_queueid ) { + Queue: <% $agent->ticketing_queueid %>: + <% $agent->ticketing_queue %> +
+% } + +% } + +% ## +% # currencies +% ## +% if ( $conf->config('currencies') ) { + + <% join('
', sort keys %{ $agent->agent_currency_hashref } ) %> + +% } + +% ## +% # payment gateway override +% ## + + + +% my $gw_override = qsearchs('agent_payment_gateway', { 'agentnum' => $agent->agentnum } ); +% if ($gw_override) { + + + +% } else { + + + +% } +
+ <% $gw_override->payment_gateway->gateway_module %> (<% $gw_override->payment_gateway->gateway_username %>) + (delete) +
(add override)
+ + +% ## +% # configuration overrides +% ## + + + +% foreach my $override ( +% qsearch('conf', { 'agentnum' => $agent->agentnum } ) +% ) { +% + + + + +% } + + + + +
+ <% $override->name %> (delete) +
(view/add/edit overrides)
+ + +% } + + + + -END +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my %search; +if ( $cgi->param('showdisabled') + || !dbdef->table('agent')->column('disabled') ) { + %search = (); +} else { + %search = ( 'disabled' => '' ); +} + +my $conf = new FS::Conf; +my $disable_counts = $conf->exists('agent-disable_counts'); -%> +