2 % unless $FS::CurrentUser::CurrentUser->access_right('List services');
4 %my $conf = new FS::Conf;
6 %my @svc_broadband = ();
7 %my $sortby=\*svcnum_sort;
8 %#XXX agent-virtualization needs to be finished :/
9 %my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql(
10 % 'null_right' => 'View/link unlinked services'
13 %if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
15 % @svc_broadband = qsearch(
16 % 'table' => 'svc_broadband',
18 % #needs the join first 'extra_sql' => "WHERE $agentnums_sql",
21 % if ( $cgi->param('magic') eq 'unlinked' ) {
22 % @svc_broadband = grep { qsearchs('cust_svc', {
23 % 'svcnum' => $_->svcnum,
31 % if ( $cgi->param('sortby') =~ /^(\w+)$/ ) {
33 % if ( $sortby eq 'blocknum' ) {
34 % $sortby = \*blocknum_sort;
38 %} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
42 % 'table' => 'svc_broadband',
43 % 'addl_from' => 'LEFT JOIN cust_svc USING ( svcnum )',
44 % 'extra_sql' => "WHERE svcpart = $1",
48 %} elsif ( $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ ) {
50 % @svc_broadband = qsearchs('svc_broadband',{'ip_addr'=>$ip_addr});
53 %my %routerbyblock = ();
54 %foreach my $router (qsearch('router', {})) {
55 % foreach ($router->addr_block) {
56 % $routerbyblock{$_->blocknum} = $router;
60 %if ( scalar(@svc_broadband) == 1 ) {
61 % print $cgi->redirect(popurl(2). "view/svc_broadband.cgi?". $svc_broadband[0]->svcnum);
63 %} elsif ( scalar(@svc_broadband) == 0 ) {
68 % errorpage("No matching broadband services found!");
74 % my($total)=scalar(@svc_broadband);
75 % print header("Broadband Search Results",''), <<END;
77 % $total matching broadband services found
78 % <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
86 % foreach my $svc_broadband (
87 % sort $sortby (@svc_broadband)
89 % my($svcnum,$ip_addr,$routername,$routernum)=(
90 % $svc_broadband->svcnum,
91 % $svc_broadband->ip_addr,
92 % $routerbyblock{$svc_broadband->blocknum}->routername,
93 % $routerbyblock{$svc_broadband->blocknum}->routernum,
100 % <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$svcnum</A></TD>
101 % <TD ROWSPAN=$rowspan><A HREF="${p}view/router.cgi?$routernum">$routername</A></TD>
102 % <TD ROWSPAN=$rowspan><A HREF="${p}view/svc_broadband.cgi?$svcnum">$ip_addr</A></TD>
119 % $a->getfield('svcnum') <=> $b->getfield('svcnum');
123 % if ($a->getfield('blocknum') == $b->getfield('blocknum')) {
124 % $a->getfield('ip_addr') cmp $b->getfield('ip_addr');
126 % $a->getfield('blocknum') cmp $b->getfield('blocknum');