% % %my $conf = new FS::Conf; % %my($query)=$cgi->keywords; %$query ||= ''; #to avoid use of unitialized value errors %my(@svc_broadband,$sortby); %if ( $query eq 'svcnum' ) { % $sortby=\*svcnum_sort; % @svc_broadband=qsearch('svc_broadband',{}); %} elsif ( $query eq 'blocknum' ) { % $sortby=\*blocknum_sort; % @svc_broadband=qsearch('svc_broadband',{}); %} else { % $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/; % my($ip_addr)=$1; % @svc_broadband = qsearchs('svc_broadband',{'ip_addr'=>$ip_addr}); %} % %my %routerbyblock = (); %foreach my $router (qsearch('router', {})) { % foreach ($router->addr_block) { % $routerbyblock{$_->blocknum} = $router; % } %} % %if ( scalar(@svc_broadband) == 1 ) { % print $cgi->redirect(popurl(2). "view/svc_broadband.cgi?". $svc_broadband[0]->svcnum); % #exit; %} elsif ( scalar(@svc_broadband) == 0 ) { % % % eidiot "No matching ip address found!\n"; %} else { % % % my($total)=scalar(@svc_broadband); % print header("IP Address Search Results",''), < % % Service # % Router % IP Address % %END % % foreach my $svc_broadband ( % sort $sortby (@svc_broadband) % ) { % my($svcnum,$ip_addr,$routername,$routernum)=( % $svc_broadband->svcnum, % $svc_broadband->ip_addr, % $routerbyblock{$svc_broadband->blocknum}->routername, % $routerbyblock{$svc_broadband->blocknum}->routernum, % ); % % my $rowspan = 1; % % print < % $svcnum % $routername % $ip_addr %END % % #print @rows; % print ""; % % } % % print < % % %END % %} % %sub svcnum_sort { % $a->getfield('svcnum') <=> $b->getfield('svcnum'); %} % %sub blocknum_sort { % if ($a->getfield('blocknum') == $b->getfield('blocknum')) { % $a->getfield('ip_addr') cmp $b->getfield('ip_addr'); % } else { % $a->getfield('blocknum') cmp $b->getfield('blocknum'); % } %} % % %