diff options
Diffstat (limited to 'httemplate/browse')
-rwxr-xr-x | httemplate/browse/agent.cgi | 108 | ||||
-rwxr-xr-x | httemplate/browse/agent_type.cgi | 8 | ||||
-rwxr-xr-x | httemplate/browse/cust_main_county.cgi | 16 | ||||
-rwxr-xr-x | httemplate/browse/cust_pay_batch.cgi | 90 | ||||
-rwxr-xr-x | httemplate/browse/part_export.cgi | 2 | ||||
-rwxr-xr-x | httemplate/browse/part_pkg.cgi | 51 | ||||
-rwxr-xr-x | httemplate/browse/part_referral.cgi | 54 | ||||
-rwxr-xr-x | httemplate/browse/part_svc.cgi | 22 | ||||
-rw-r--r-- | httemplate/browse/router.cgi | 2 | ||||
-rwxr-xr-x | httemplate/browse/svc_acct_pop.cgi | 54 |
10 files changed, 289 insertions, 118 deletions
diff --git a/httemplate/browse/agent.cgi b/httemplate/browse/agent.cgi index cff111ca4..2eef5bb91 100755 --- a/httemplate/browse/agent.cgi +++ b/httemplate/browse/agent.cgi @@ -1,15 +1,38 @@ <!-- mason kludge --> + <% -#Begin silliness -# -#use FS::UI::CGI; -#use FS::UI::agent; -# -#$ui = new FS::UI::agent; -#$ui->browse; -#exit; -#__END__ -#End silliness + + my %search; + if ( $cgi->param('showdisabled') + || !dbdef->table('agent')->column('disabled') ) { + %search = (); + } else { + %search = ( 'disabled' => '' ); + } + + #bad false laziness with search/cust_main.cgi (also needs fixing up for + #old mysql) + my $ncancelled = " + 0 < ( SELECT COUNT(*) FROM cust_pkg + WHERE cust_pkg.custnum = cust_main.custnum + AND ( cust_pkg.cancel IS NULL + OR cust_pkg.cancel = 0 + ) + ) + OR 0 = ( SELECT COUNT(*) FROM cust_pkg + WHERE cust_pkg.custnum = cust_main.custnum + ) + "; + + my $ncancelled_sth = dbh->prepare("SELECT COUNT(*) FROM cust_main + WHERE agentnum = ? + AND ( $ncancelled ) ") + or die dbh->errstr; + + my $total_sth = dbh->prepare("SELECT COUNT(*) FROM cust_main + WHERE agentnum = ? ") + or die dbh->errstr; + %> <%= header('Agent Listing', menubar( @@ -21,10 +44,20 @@ Agents are resellers of your service. Agents may be limited to a subset of your full offerings (via their type).<BR><BR> <A HREF="<%= $p %>edit/agent.cgi"><I>Add a new agent</I></A><BR><BR> +<% if ( dbdef->table('agent')->column('disabled') ) { %> + <%= $cgi->param('showdisabled') + ? do { $cgi->param('showdisabled', 0); + '( <a href="'. $cgi->self_url. '">hide disabled agents</a> )'; } + : do { $cgi->param('showdisabled', 1); + '( <a href="'. $cgi->self_url. '">show disabled agents</a> )'; } + %> +<% } %> + <%= table() %> <TR> - <TH COLSPAN=2>Agent</TH> + <TH COLSPAN=<%= ( $cgi->param('showdisabled') || !dbdef->table('agent')->column('disabled') ) ? 2 : 3 %>>Agent</TH> <TH>Type</TH> + <TH>Customers</TH> <TH><FONT SIZE=-1>Freq.</FONT></TH> <TH><FONT SIZE=-1>Prog.</FONT></TH> </TR> @@ -35,29 +68,44 @@ full offerings (via their type).<BR><BR> 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 <<END; +} qsearch('agent', \%search ) ) { + + $ncancelled_sth->execute($agent->agentnum) or die $ncancelled_sth->errstr; + my $num_ncancelled = $ncancelled_sth->fetchrow_arrayref->[0]; + + $total_sth->execute($agent->agentnum) or die $total_sth->errstr; + my $num_total = $total_sth->fetchrow_arrayref->[0]; + + my $num_cancelled = $num_total - $num_ncancelled; + + my $cust_main_link = $p. 'search/cust_main.cgi?agentnum_on=1&'. + 'agentnum='. $agent->agentnum; + +%> + <TR> - <TD><A HREF="${p}edit/agent.cgi?$hashref->{agentnum}"> - $hashref->{agentnum}</A></TD> - <TD><A HREF="${p}edit/agent.cgi?$hashref->{agentnum}"> - $hashref->{agent}</A></TD> - <TD><A HREF="${p}edit/agent_type.cgi?$typenum">$atype</A></TD> - <TD>$hashref->{freq}</TD> - <TD>$hashref->{prog}</TD> + <TD><A HREF="<%=$p%>edit/agent.cgi?<%= $agent->agentnum %>"> + <%= $agent->agentnum %></A></TD> +<% if ( dbdef->table('agent')->column('disabled') + && !$cgi->param('showdisabled') ) { %> + <TD><%= $agent->disabled ? 'DISABLED' : '' %></TD> +<% } %> + + <TD><A HREF="<%=$p%>edit/agent.cgi?<%= $agent->agentnum %>"> + <%= $agent->agent %></A></TD> + <TD><A HREF="<%=$p%>edit/agent_type.cgi?<%= $agent->typenum %>"><%= $agent->agent_type->atype %></A></TD> + <TD> + <FONT COLOR="#00CC00"><B><%= $num_ncancelled %></B></FONT> + <A HREF="<%= $cust_main_link %>&showcancelledcustomers=0">active</A> + <BR><FONT COLOR="#FF0000"><B><%= $num_cancelled %></B></FONT> + <A HREF="<%= $cust_main_link %>&showcancelledcustomers=1&cancelled=1">cancelled</A> + </TD> + <TD><%= $agent->freq %></TD> + <TD><%= $agent->prog %></TD> </TR> -END -} +<% } %> -print <<END; </TABLE> </BODY> </HTML> -END - -%> diff --git a/httemplate/browse/agent_type.cgi b/httemplate/browse/agent_type.cgi index 5a8438589..5473804e8 100755 --- a/httemplate/browse/agent_type.cgi +++ b/httemplate/browse/agent_type.cgi @@ -17,9 +17,11 @@ agents.<BR><BR> foreach my $agent_type ( sort { $a->getfield('typenum') <=> $b->getfield('typenum') } qsearch('agent_type',{}) ) { - my($hashref)=$agent_type->hashref; - my(@type_pkgs)=qsearch('type_pkgs',{'typenum'=> $hashref->{typenum} }); - my($rowspan)=scalar(@type_pkgs); + my $hashref = $agent_type->hashref; + #more efficient to do this with SQL... + my @type_pkgs = grep { $_->part_pkg and ! $_->part_pkg->disabled } + qsearch('type_pkgs',{'typenum'=> $hashref->{typenum} }); + my $rowspan = scalar(@type_pkgs); $rowspan = int($rowspan/2+0.5) ; print <<END; <TR> diff --git a/httemplate/browse/cust_main_county.cgi b/httemplate/browse/cust_main_county.cgi index c2473c4c8..1e0e0880c 100755 --- a/httemplate/browse/cust_main_county.cgi +++ b/httemplate/browse/cust_main_county.cgi @@ -24,7 +24,7 @@ print '<BR><BR>'. &table(). <<END; <TH>Taxclass<BR><FONT SIZE=-1>(per-package classification)</FONT></TH> <TH>Tax name<BR><FONT SIZE=-1>(printed on invoices)</FONT></TH> <TH><FONT SIZE=-1>Tax</FONT></TH> - <TH><FONT SIZE=-1>Exempt<BR>per<BR>month</TH> + <TH><FONT SIZE=-1>Exemption</TH> </TR> END @@ -54,7 +54,9 @@ END last if $hashref->{country} ne $regions[$i+$j]->country || $hashref->{state} ne $regions[$i+$j]->state || $hashref->{tax} != $regions[$i+$j]->tax - || $hashref->{exempt_amount} != $regions[$i+$j]->exempt_amount; + || $hashref->{exempt_amount} != $regions[$i+$j]->exempt_amount + || $hashref->{setuptax} ne $regions[$i+$j]->setuptax + || $hashref->{recurtax} ne $regions[$i+$j]->recurtax; } my $newsup=0; @@ -121,9 +123,13 @@ END print "</TD>"; print "<TD BGCOLOR=\"#ffffff\">$hashref->{tax}%</TD>". - '<TD BGCOLOR="#ffffff">$'. - sprintf("%.2f", $hashref->{exempt_amount} || 0). '</TD>'. - '</TR>'; + '<TD BGCOLOR="#ffffff">'; + print '$'. sprintf("%.2f", $hashref->{exempt_amount} ). + ' per month<BR>' + if $hashref->{exempt_amount} > 0; + print 'Setup fee<BR>' if $hashref->{setuptax} =~ /^Y$/i; + print 'Recurring fee<BR>' if $hashref->{recurtax} =~ /^Y$/i; + print '</TD></TR>'; } diff --git a/httemplate/browse/cust_pay_batch.cgi b/httemplate/browse/cust_pay_batch.cgi index 608a58d0d..3420e97b6 100755 --- a/httemplate/browse/cust_pay_batch.cgi +++ b/httemplate/browse/cust_pay_batch.cgi @@ -1,10 +1,38 @@ <!-- mason kludge --> +<%= header("Pending credit card batch", menubar( 'Main Menu' => $p,)) %> + +<FORM ACTION="<%=$p%>misc/download-batch.cgi" METHOD="POST"> +Download batch in format <SELECT NAME="format"> +<OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV file for TD Canada Trust Merchant PC Batch</OPTION> +</SELECT><INPUT TYPE="submit" VALUE="Download"></FORM> +<BR><BR> + +<FORM ACTION="<%=$p%>misc/upload-batch.cgi" METHOD="POST" ENCTYPE="multipart/form-data"> +Upload results<BR> +Filename <INPUT TYPE="file" NAME="batch_results"><BR> +Format <SELECT NAME="format"> +<OPTION VALUE="csv-td_canada_trust-merchant_pc_batch">CSV results from TD Canada Trust Merchant PC Batch</OPTION> +</SELECT><BR> +<INPUT TYPE="submit" VALUE="Upload"></FORM> +<BR> + <% + my $statement = "SELECT SUM(amount) from cust_pay_batch"; + my $sth = dbh->prepare($statement) or die dbh->errstr. "doing $statement"; + $sth->execute or die "Error executing \"$statement\": ". $sth->errstr; + my $total = $sth->fetchrow_arrayref->[0]; -print header("Pending credit card batch", menubar( - 'Main Menu' => $p, -# 'Add new referral' => "../edit/part_referral.cgi", -)), &table(), <<END; + my $c_statement = "SELECT COUNT(*) from cust_pay_batch"; + my $c_sth = dbh->prepare($c_statement) + or die dbh->errstr. "doing $c_statement"; + $c_sth->execute or die "Error executing \"$c_statement\": ". $c_sth->errstr; + my $cards = $c_sth->fetchrow_arrayref->[0]; +%> +<%= $cards %> credit card payments batched<BR> +$<%= sprintf("%.2f", $total) %> total in pending batch<BR> + +<BR> +<%= &table() %> <TR> <TH>#</TH> <TH><font size=-1>inv#</font></TH> @@ -14,39 +42,35 @@ print header("Pending credit card batch", menubar( <TH>Exp</TH> <TH>Amount</TH> </TR> -END - -foreach my $cust_pay_batch ( sort { - $a->getfield('paybatchnum') <=> $b->getfield('paybatchnum') -} qsearch('cust_pay_batch',{}) ) { -# my $date = time2str( "%a %b %e %T %Y", $queue->_date ); -# my $status = $hashref->{status}; -# if ( $status eq 'failed' || $status eq 'locked' ) { -# $status .= -# qq! ( <A HREF="$p/edit/cust_pay_batch.cgi?jobnum=$jobnum&action=new">retry</A> |!. -# qq! <A HREF="$p/edit/cust_pay_batch.cgi?jobnum$jobnum&action=del">remove </A> )!; -# } - my $cardnum = $cust_pay_batch->{cardnum}; - $cardnum =~ s/.{4}$/xxxx/; - print <<END; + +<% +foreach my $cust_pay_batch ( sort { $a->paybatchnum <=> $b->paybatchnum } + qsearch('cust_pay_batch', {} ) +) { + my $cardnum = $cust_pay_batch->cardnum; + #$cardnum =~ s/.{4}$/xxxx/; + $cardnum = 'x'x(length($cardnum)-4). substr($cardnum,(length($cardnum)-4)); + + $cust_pay_batch->exp =~ /^\d{2}(\d{2})[\/\-](\d+)[\/\-]\d+$/; + my( $mon, $year ) = ( $2, $1 ); + $mon = "0$mon" if $mon < 10; + my $exp = "$mon/$year"; + +%> + <TR> - <TD>$cust_pay_batch->{paybatchnum}</TD> - <TD><A HREF="../view/cust_bill.cgi?$cust_pay_batch->{invnum}">$cust_pay_batch->{invnum}</TD> - <TD><A HREF="../view/cust_main.cgi?$cust_pay_batch->{custnum}">$cust_pay_batch->{custnum}</TD> - <TD>$cust_pay_batch->{last}, $cust_pay_batch->{last}</TD> - <TD>$cust_pay_batch->{payname}</TD> - <TD>$cardnum</TD> - <TD>$cust_pay_batch->{exp}</TD> - <TD align="right">\$$cust_pay_batch->{amount}</TD> + <TD><%= $cust_pay_batch->paybatchnum %></TD> + <TD><A HREF="../view/cust_bill.cgi?<%= $cust_pay_batch->invnum %>"><%= $cust_pay_batch->invnum %></TD> + <TD><A HREF="../view/cust_main.cgi?<%= $cust_pay_batch->custnum %>"><%= $cust_pay_batch->custnum %></TD> + <TD><%= $cust_pay_batch->get('last'). ', '. $cust_pay_batch->first %></TD> + <TD><%= $cust_pay_batch->payname %></TD> + <TD><%= $cardnum %></TD> + <TD><%= $exp %></TD> + <TD align="right">$<%= $cust_pay_batch->amount %></TD> </TR> -END -} +<% } %> -print <<END; </TABLE> </BODY> </HTML> -END - -%> diff --git a/httemplate/browse/part_export.cgi b/httemplate/browse/part_export.cgi index 76662e0c9..79c57aefc 100755 --- a/httemplate/browse/part_export.cgi +++ b/httemplate/browse/part_export.cgi @@ -26,7 +26,7 @@ function part_export_areyousure(href) { <%= itable() %> <% my %opt = $part_export->options; foreach my $opt ( keys %opt ) { %> - <TR><TD><%= $opt %></TD><TD><%= $opt{$opt} %></TD></TR> + <TR><TD><%= $opt %></TD><TD><%= encode_entities($opt{$opt}) %></TD></TR> <% } %> </TABLE> </TD> diff --git a/httemplate/browse/part_pkg.cgi b/httemplate/browse/part_pkg.cgi index 7b9436cee..180f18263 100755 --- a/httemplate/browse/part_pkg.cgi +++ b/httemplate/browse/part_pkg.cgi @@ -12,7 +12,8 @@ my @part_pkg = qsearch('part_pkg', \%search ); my $total = scalar(@part_pkg); my $sortby; -my %num_active_cust_pkg; +my %num_active_cust_pkg = (); +my( $suspended_sth, $canceled_sth ) = ( '', '' ); if ( $cgi->param('active') ) { my $active_sth = dbh->prepare( 'SELECT COUNT(*) FROM cust_pkg WHERE pkgpart = ?'. @@ -24,7 +25,21 @@ if ( $cgi->param('active') ) { $num_active_cust_pkg{$part_pkg->pkgpart} = $active_sth->fetchrow_arrayref->[0]; } - $sortby = \*active_cust_pkg_sort; + $sortby = sub { + $num_active_cust_pkg{$b->pkgpart} <=> $num_active_cust_pkg{$a->pkgpart}; + }; + + $suspended_sth = dbh->prepare( + 'SELECT COUNT(*) FROM cust_pkg WHERE pkgpart = ?'. + ' AND ( cancel IS NULL OR cancel = 0 )'. + ' AND susp IS NOT NULL AND susp != 0' + ) or die dbh->errstr; + + $canceled_sth = dbh->prepare( + 'SELECT COUNT(*) FROM cust_pkg WHERE pkgpart = ?'. + ' AND cancel IS NOT NULL AND cancel != 0' + ) or die dbh->errstr; + } else { $sortby = \*pkgpart_sort; } @@ -63,8 +78,10 @@ print <<END; <TH><FONT SIZE=-1>Data</FONT></TH> <TH>Service</TH> <TH><FONT SIZE=-1>Quan.</FONT></TH> - </TR> END +print '<TH><FONT SIZE=-1>Primary</FONT></TH>' + if dbdef->table('pkg_svc')->column('primary_svc'); +print '</TR>'; foreach my $part_pkg ( sort $sortby @part_pkg ) { my($hashref)=$part_pkg->hashref; @@ -100,8 +117,19 @@ END print " <TD ROWSPAN=$rowspan>"; print '<FONT COLOR="#00CC00"><B>'. $num_active_cust_pkg{$hashref->{'pkgpart'}}. - qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=active;pkgpart=$hashref->{pkgpart}">active</A>!; - # suspended/cancelled + qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=active;pkgpart=$hashref->{pkgpart}">active</A><BR>!; + + $suspended_sth->execute( $part_pkg->pkgpart ) or die $suspended_sth->errstr; + my $num_suspended = $suspended_sth->fetchrow_arrayref->[0]; + print '<FONT COLOR="#FF9900"><B>'. $num_suspended. + qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=suspended;pkgpart=$hashref->{pkgpart}">suspended</A><BR>!; + + $canceled_sth->execute( $part_pkg->pkgpart ) or die $canceled_sth->errstr; + my $num_canceled = $canceled_sth->fetchrow_arrayref->[0]; + print '<FONT COLOR="#FF0000"><B>'. $num_canceled. + qq!</B></FONT> <A HREF="${p}search/cust_pkg.cgi?magic=canceled;pkgpart=$hashref->{pkgpart}">canceled</A>!; + + print '</TD>'; } print <<END; @@ -117,7 +145,13 @@ END my($part_svc) = qsearchs('part_svc',{'svcpart'=> $svcpart }); print $n,qq!<TD><A HREF="${p}edit/part_svc.cgi?$svcpart">!, $part_svc->getfield('svc'),"</A></TD><TD>", - $pkg_svc->getfield('quantity'),"</TD></TR>\n"; + $pkg_svc->getfield('quantity'),"</TD>"; + if ( dbdef->table('pkg_svc')->column('primary_svc') ) { + print '<TD>'; + print 'PRIMARY' if $pkg_svc->primary_svc =~ /^Y/i; + print '</TD>'; + } + print "</TR>\n"; $n="<TR>"; } @@ -132,13 +166,8 @@ print <<END; </HTML> END - sub pkgpart_sort { $a->pkgpart <=> $b->pkgpart; } -sub active_cust_pkg_sort { - $num_active_cust_pkg{$b->pkgpart} <=> $num_active_cust_pkg{$a->pkgpart}; -} - %> diff --git a/httemplate/browse/part_referral.cgi b/httemplate/browse/part_referral.cgi index 084c21bd0..3f59abcf5 100755 --- a/httemplate/browse/part_referral.cgi +++ b/httemplate/browse/part_referral.cgi @@ -8,31 +8,57 @@ Where a customer heard about your service. Tracked for informational purposes. <A HREF="<%= $p %>edit/part_referral.cgi"><I>Add a new advertising source</I></A> <BR><BR> +<% + my $today = timelocal(0, 0, 0, (localtime(time))[3..5] ); + my %past; + tie %past, 'Tie::IxHash', + 'Today' => 0, + 'Past week' => 518400, # 60sec * 60min * 24hrs * 6days + 'Past 30 days' => 2505600, # 60sec * 60min * 24hrs * 29days + 'Past 60 days' => 5097600, # 60sec * 60min * 24hrs * 29days + 'Past 90 days' => 7689600, # 60sec * 60min * 24hrs * 29days + 'Past 6 months' => 15724800, # 60sec * 60min * 24hrs * 182days + 'Past year' => 31486000, # 60sec * 60min * 24hrs * 364days + 'Total' => $today, + ; + + my $sth = dbh->prepare("SELECT COUNT(*) FROM h_cust_main + WHERE history_action = 'insert' + AND refnum = ? + AND history_date > ? ") + or die dbh->errstr; +%> + <%= table() %> <TR> - <TH COLSPAN=2>Advertising source</TH> + <TH COLSPAN=2 ROWSPAN=2>Advertising source</TH> + <TH COLSPAN=<%= scalar(keys %past) %>>Customers</TH> +</TR> +<% for my $period ( keys %past ) { %> + <TH><FONT SIZE=-1><%= $period %></FONT></TH> +<% } %> </TR> <% foreach my $part_referral ( sort { $a->getfield('refnum') <=> $b->getfield('refnum') } qsearch('part_referral',{}) ) { - my($hashref)=$part_referral->hashref; - print <<END; +%> <TR> - <TD><A HREF="${p}edit/part_referral.cgi?$hashref->{refnum}"> - $hashref->{refnum}</A></TD> - <TD><A HREF="${p}edit/part_referral.cgi?$hashref->{refnum}"> - $hashref->{referral}</A></TD> + <TD><A HREF="<%= $p %>edit/part_referral.cgi?<%= $part_referral->refnum %>"> + <%= $part_referral->refnum %></A></TD> + <TD><A HREF="<%= $p %>edit/part_referral.cgi?<%= $part_referral->refnum %>"> + <%= $part_referral->referral %></A></TD> + <% for my $period ( values %past ) { + $sth->execute($part_referral->refnum, $today-$period) + or die $sth->errstr; + my $number = $sth->fetchrow_arrayref->[0]; + %> + <TD ALIGN="right"><%= $number %></TD> + <% } %> </TR> -END - -} +<% } %> -print <<END; </TABLE> </BODY> </HTML> -END - -%> diff --git a/httemplate/browse/part_svc.cgi b/httemplate/browse/part_svc.cgi index 3fece2925..ef0de13cc 100755 --- a/httemplate/browse/part_svc.cgi +++ b/httemplate/browse/part_svc.cgi @@ -13,6 +13,20 @@ my @part_svc = qsearch('part_svc', \%search ); my $total = scalar(@part_svc); +my %num_active_cust_svc = (); +if ( $cgi->param('active') ) { + my $active_sth = dbh->prepare( + 'SELECT COUNT(*) FROM cust_svc WHERE svcpart = ?' + ) or die dbh->errstr; + foreach my $part_svc ( @part_svc ) { + $active_sth->execute($part_svc->svcpart) or die $active_sth->errstr; + $num_active_cust_svc{$part_svc->svcpart} = + $active_sth->fetchrow_arrayref->[0]; + } + @part_svc = sort { $num_active_cust_svc{$b->svcpart} <=> + $num_active_cust_svc{$a->svcpart} } @part_svc; +} + %> <%= header('Service Definition Listing', menubar( 'Main Menu' => $p) ) %> @@ -45,6 +59,9 @@ function part_export_areyousure(href) { <TR> <TH COLSPAN=<%= $cgi->param('showdisabled') ? 2 : 3 %>>Service</TH> <TH>Table</TH> +<% if ( $cgi->param('active') ) { %> + <TH><FONT SIZE=-1>Customer<BR>Services</FONT></TH> +<% } %> <TH>Export</TH> <TH>Field</TH> <TH COLSPAN=2>Modifier</TH> @@ -75,6 +92,11 @@ function part_export_areyousure(href) { <%= $hashref->{svc} %></A></TD> <TD ROWSPAN=<%= $rowspan %>> <%= $hashref->{svcdb} %></TD> +<% if ( $cgi->param('active') ) { %> + <TD ROWSPAN=<%= $rowspan %>> + <FONT COLOR="#00CC00"><B><%= $num_active_cust_svc{$hashref->{svcpart}} %></B></FONT> <A HREF="<%=$p%>search/<%= $hashref->{svcdb} %>.cgi?svcpart=<%= $hashref->{svcpart} %>">active</A> + </TD> +<% } %> <TD ROWSPAN=<%= $rowspan %>><%= itable() %> <% # my @part_export = diff --git a/httemplate/browse/router.cgi b/httemplate/browse/router.cgi index a9ec6fd61..feee4ecaa 100644 --- a/httemplate/browse/router.cgi +++ b/httemplate/browse/router.cgi @@ -18,7 +18,7 @@ my $p2 = popurl(2); <TD><B>Router name</B></TD> <TD><B>Address block(s)</B></TD> </TR> -<% foreach $router (sort {$a->routernum <=> $b->routernum} @router) { +<% foreach my $router (sort {$a->routernum <=> $b->routernum} @router) { my @addr_block = $router->addr_block; %> <TR> diff --git a/httemplate/browse/svc_acct_pop.cgi b/httemplate/browse/svc_acct_pop.cgi index 8d35cb56a..44cda81ad 100755 --- a/httemplate/browse/svc_acct_pop.cgi +++ b/httemplate/browse/svc_acct_pop.cgi @@ -1,4 +1,9 @@ <!-- mason kludge --> +<% + my $accounts_sth = dbh->prepare("SELECT COUNT(*) FROM svc_acct + WHERE popnum = ? ") + or die dbh->errstr; +%> <%= header('Access Number Listing', menubar( 'Main Menu' => $p )) %> Points of Presence<BR><BR> <A HREF="<%= $p %>edit/svc_acct_pop.cgi"><I>Add new Access Number</I></A><BR><BR> @@ -10,6 +15,7 @@ Points of Presence<BR><BR> <TH>Area code</TH> <TH>Exchange</TH> <TH>Local</TH> + <TH>Accounts</TH> </TR> <% @@ -18,32 +24,40 @@ foreach my $svc_acct_pop ( sort { $a->state cmp $b->state || $a->city cmp $b->city || $a->ac <=> $b->ac || $a->exch <=> $b->exch || $a->loc <=> $b->loc } qsearch('svc_acct_pop',{}) ) { - my($hashref)=$svc_acct_pop->hashref; - print <<END; + + my $svc_acct_pop_link = $p . 'edit/svc_acct_pop.cgi?'. $svc_acct_pop->popnum; + + $accounts_sth->execute($svc_acct_pop->popnum) or die $accounts_sth->errstr; + my $num_accounts = $accounts_sth->fetchrow_arrayref->[0]; + + my $svc_acct_link = $p. 'search/svc_acct.cgi?popnum='. $svc_acct_pop->popnum; + +%> <TR> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{popnum}</A></TD> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{city}</A></TD> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{state}</A></TD> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{ac}</A></TD> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{exch}</A></TD> - <TD><A HREF="${p}edit/svc_acct_pop.cgi?$hashref->{popnum}"> - $hashref->{loc}</A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->popnum %></A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->city %></A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->state %></A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->ac %></A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->exch %></A></TD> + <TD><A HREF="<%= $svc_acct_pop_link %>"> + <%= $svc_acct_pop->loc %></A></TD> + <TD> + <FONT COLOR="#00CC00"><B><%= $num_accounts %></B></FONT> + <% if ( $num_accounts ) { %><A HREF="<%= $svc_acct_link %>"><% } %> + active + <% if ( $num_accounts ) { %></A><% } %> + </TD> </TR> -END +<% } %> -} - -print <<END; <TR> </TR> </TABLE> </BODY> </HTML> -END -%> |