X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Fsvc_domain.cgi;h=85ae94a80a87cb04c43f7161605042dec2ebebeb;hp=c0acf1143e3191b0893294297f10e8c301701b32;hb=3ce7691203a7737406bf2d4442f7fd84b81f847e;hpb=c0567c688084e89fcd11bf82348b6c418f1254ac diff --git a/httemplate/search/svc_domain.cgi b/httemplate/search/svc_domain.cgi index c0acf1143..85ae94a80 100755 --- a/httemplate/search/svc_domain.cgi +++ b/httemplate/search/svc_domain.cgi @@ -1,154 +1,100 @@ -<% - -my $conf = new FS::Conf; - -my($query)=$cgi->keywords; -$query ||= ''; #to avoid use of unitialized value errors -my(@svc_domain,$sortby); -if ( $query eq 'svcnum' ) { - $sortby=\*svcnum_sort; - @svc_domain=qsearch('svc_domain',{}); -} elsif ( $query eq 'domain' ) { - $sortby=\*domain_sort; - @svc_domain=qsearch('svc_domain',{}); -} elsif ( $query eq 'UN_svcnum' ) { - $sortby=\*svcnum_sort; - @svc_domain = grep qsearchs('cust_svc',{ - 'svcnum' => $_->svcnum, - 'pkgnum' => '', - }), qsearch('svc_domain',{}); -} elsif ( $query eq 'UN_domain' ) { - $sortby=\*domain_sort; - @svc_domain = grep qsearchs('cust_svc',{ - 'svcnum' => $_->svcnum, - 'pkgnum' => '', - }), qsearch('svc_domain',{}); -} else { - $cgi->param('domain') =~ /^([\w\-\.]+)$/; - my($domain)=$1; - #push @svc_domain, qsearchs('svc_domain',{'domain'=>$domain}); - @svc_domain = qsearchs('svc_domain',{'domain'=>$domain}); -} - -if ( scalar(@svc_domain) == 1 ) { - print $cgi->redirect(popurl(2). "view/svc_domain.cgi?". $svc_domain[0]->svcnum); - #exit; -} elsif ( scalar(@svc_domain) == 0 ) { -%> - -<% - eidiot "No matching domains found!\n"; -} else { -%> - -<% - my($total)=scalar(@svc_domain); - print header("Domain Search Results",''), < - - Service # - Domain - - -END - -# my(%saw); # if we've multiple domains with the same - # svcnum, then we've a corrupt database - - foreach my $svc_domain ( -# sort $sortby grep(!$saw{$_->svcnum}++, @svc_domain) - sort $sortby (@svc_domain) - ) { - my($svcnum,$domain)=( - $svc_domain->svcnum, - $svc_domain->domain, - ); - - #don't display all accounts here - my $rowspan = 1; - - #my @svc_acct=qsearch('svc_acct',{'domsvc' => $svcnum}); - #my $rowspan = 0; - # - #my $n1 = ''; - #my($svc_acct, @rows); - #foreach $svc_acct ( - # sort {$b->getfield('username') cmp $a->getfield('username')} (@svc_acct) - #) { - # - # my (@forwards) = (); - # - # my($svcnum,$username)=( - # $svc_acct->svcnum, - # $svc_acct->username, - # ); - # - # my @svc_forward = qsearch( 'svc_forward', { 'srcsvc' => $svcnum } ); - # my $svc_forward; - # foreach $svc_forward (@svc_forward) { - # my($dstsvc,$dst) = ( - # $svc_forward->dstsvc, - # $svc_forward->dst, - # ); - # if ($dstsvc) { - # my $dst_svc_acct=qsearchs( 'svc_acct', { 'svcnum' => $dstsvc } ); - # my $destination=$dst_svc_acct->email; - # push @forwards, qq!$destination!, - # qq!! - # ; - # }else{ - # push @forwards, qq!$dst! - # ; - # } - # } - # - # push @rows, qq!$n1!, - # #print '', ( ($domuser eq '*') ? "(anything)" : $domuser ); - # ( ($username eq '*') ? "(anything)" : $username ), - # qq!\@$domain !, - # ; - # - # push @rows, @forwards; - # - # $rowspan += (scalar(@svc_forward) || 1); - # $n1 = ""; - #} - ##end of false laziness - # - # - - print < - $svcnum - $domain -END - - #print @rows; - print ""; - - } - - print < - - -END - -} - -sub svcnum_sort { - $a->getfield('svcnum') <=> $b->getfield('svcnum'); -} - -sub domain_sort { - $a->getfield('domain') cmp $b->getfield('domain'); -} - - +% +% +%my $conf = new FS::Conf; +% +%my($query)=$cgi->keywords; +%$query ||= ''; #to avoid use of unitialized value errors +% +%my $orderby = 'ORDER BY svcnum'; +%my %svc_domain = (); +%my @extra_sql = (); +%if ( $query eq 'svcnum' ) { +% #$orderby = 'ORDER BY svcnum'; +%} elsif ( $query eq 'domain' ) { +% $orderby = 'ORDER BY domain'; +%} elsif ( $query eq 'UN_svcnum' ) { #UN searches need to be acl'ed (and need to +% #fix $agentnums_sql +% #$orderby = 'ORDER BY svcnum'; +% push @extra_sql, 'pkgnum IS NULL'; +%} elsif ( $query eq 'UN_domain' ) { #UN searches need to be acl'ed (and need to +% #fix $agentnums_sql +% $orderby = 'ORDER BY domain'; +% push @extra_sql, 'pkgnum IS NULL'; +%} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) { +% #$orderby = 'ORDER BY svcnum'; +% push @extra_sql, "svcpart = $1"; +%} else { +% $cgi->param('domain') =~ /^([\w\-\.]+)$/; +% $svc_domain{'domain'} = $1; +%} +% +%my $addl_from = ' LEFT JOIN cust_svc USING ( svcnum ) '. +% ' LEFT JOIN part_svc USING ( svcpart ) '. +% ' LEFT JOIN cust_pkg USING ( pkgnum ) '. +% ' LEFT JOIN cust_main USING ( custnum ) '; +% +%#here is the agent virtualization +%push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql; +% +%my $extra_sql = ''; +%if ( @extra_sql ) { +% $extra_sql = ( keys(%svc_domain) ? ' AND ' : ' WHERE ' ). +% join(' AND ', @extra_sql ); +%} +% +%my $count_query = "SELECT COUNT(*) FROM svc_domain $addl_from "; +%if ( keys %svc_domain ) { +% $count_query .= ' WHERE '. +% join(' AND ', map "$_ = ". dbh->quote($svc_domain{$_}), +% keys %svc_domain +% ); +%} +%$count_query .= $extra_sql; +% +%my $sql_query = { +% 'table' => 'svc_domain', +% 'hashref' => \%svc_domain, +% 'select' => join(', ', +% 'svc_domain.*', +% 'part_svc.svc', +% 'cust_main.custnum', +% FS::UI::Web::cust_sql_fields(), +% ), +% 'extra_sql' => "$extra_sql $orderby", +% 'addl_from' => $addl_from, +%}; +% +%my $link = [ "${p}view/svc_domain.cgi?", 'svcnum' ]; +% +%#smaller false laziness w/svc_*.cgi here +%my $link_cust = sub { +% my $svc_x = shift; +% $svc_x->custnum ? [ "${p}view/cust_main.cgi?", 'custnum' ] : ''; +%}; +% +% +<% include( 'elements/search.html', + 'title' => "Domain Search Results", + 'name' => 'domains', + 'query' => $sql_query, + 'count_query' => $count_query, + 'redirect' => $link, + 'header' => [ '#', + 'Service', + 'Domain', + FS::UI::Web::cust_header(), + ], + 'fields' => [ 'svcnum', + 'svc', + 'domain', + \&FS::UI::Web::cust_fields, + ], + 'links' => [ $link, + $link, + $link, + ( map { $link_cust } + FS::UI::Web::cust_header() + ), + ], + ) %>