X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsvc_acct.cgi;h=e28e00e6127fab71e3598ca10748d5afb6ce8e4f;hb=1c773e927ea1bc90ec94873f801d9b3edb57acd7;hp=f86794517b27320f256ff0550b91f725421db547;hpb=d402957b601504e9f47fc2f4e6aebe80e015e3ef;p=freeside.git diff --git a/httemplate/search/svc_acct.cgi b/httemplate/search/svc_acct.cgi index f86794517..e28e00e61 100755 --- a/httemplate/search/svc_acct.cgi +++ b/httemplate/search/svc_acct.cgi @@ -1,50 +1,37 @@ <% -# -use strict; -use vars qw( $cgi @svc_acct $sortby $query $mydomain - $conf $maxrecords $limit $offset ); -use CGI; -use CGI::Carp qw(fatalsToBrowser); -use FS::UID qw(cgisuidsetup); -use FS::Record qw(qsearch qsearchs dbdef); -use FS::CGI qw(header idiot popurl table); -use FS::svc_acct; -use FS::cust_main; +my $mydomain = ''; -$mydomain = ''; - -$cgi = new CGI; -&cgisuidsetup($cgi); - -$conf = new FS::Conf; -$maxrecords = $conf->config('maxsearchrecordsperpage'); +my $conf = new FS::Conf; +my $maxrecords = $conf->config('maxsearchrecordsperpage'); my $orderby = ''; #removeme -$limit = ''; +my $limit = ''; $limit .= "LIMIT $maxrecords" if $maxrecords; -$offset = $cgi->param('offset') || 0; +my $offset = $cgi->param('offset') || 0; $limit .= " OFFSET $offset" if $offset; my $total; -($query)=$cgi->keywords; +my($query)=$cgi->keywords; $query ||= ''; #to avoid use of unitialized value errors my $unlinked = ''; if ( $query =~ /^UN_(.*)$/ ) { $query = $1; - $unlinked = ' + my $empty = driver_name =~ /^Pg$/i ? qq('') : qq(""); + $unlinked = " WHERE 0 < ( SELECT count(*) FROM cust_svc WHERE cust_svc.svcnum = svc_acct.svcnum - AND pkgnum IS NULL + AND ( pkgnum IS NULL OR pkgnum = 0 OR pkgnum = $empty ) ) - '; + "; } +my(@svc_acct, $sortby); if ( $query eq 'svcnum' ) { $sortby=\*svcnum_sort; $orderby = 'ORDER BY svcnum'; @@ -53,10 +40,10 @@ if ( $query eq 'svcnum' ) { $orderby = 'ORDER BY username'; } elsif ( $query eq 'uid' ) { $sortby=\*uid_sort; - $orderby = ( $unlinked ? 'AND' : 'WHERE' ). 'uid IS NOT NULL ORDER BY uid'; + $orderby = ( $unlinked ? 'AND' : 'WHERE' ). ' uid IS NOT NULL ORDER BY uid'; } else { $sortby=\*uid_sort; - &usernamesearch; + @svc_acct = @{&usernamesearch}; } if ( $query eq 'svcnum' || $query eq 'username' || $query eq 'uid' ) { @@ -77,8 +64,14 @@ if ( scalar(@svc_acct) == 1 ) { print $cgi->redirect(popurl(2). "view/svc_acct.cgi?$svcnum"); #redirect #exit; } elsif ( scalar(@svc_acct) == 0 ) { #error +%> + +<% idiot("Account not found"); } else { +%> + +<% $total ||= scalar(@svc_acct); #begin pager @@ -108,7 +101,7 @@ if ( scalar(@svc_acct) == 1 ) { } #end pager - print header("Account Search Results",''), + print header("Account Search Results",menubar('Main Menu'=>popurl(2))), "$total matching accounts found

$pager", &table(), < @@ -149,7 +142,7 @@ END my $conf = new FS::Conf; unless ( $mydomain = $conf->config('domain') ) { die "No legacy domain config file and no svc_domain.svcnum record ". - "for svc_acct.domsvc: ". $cust_svc->domsvc; + "for svc_acct.domsvc: ". $svc_acct->domsvc; } } $domain = "$mydomain*"; @@ -214,7 +207,7 @@ END } - print '$pager
'; + print "$pager
"; if ( $mydomain ) { print "
* The $mydomain domain ". @@ -242,12 +235,11 @@ sub uid_sort { sub usernamesearch { - $cgi->param('username') =~ /^([\w\d\-]+)$/; #untaint username_text + $cgi->param('username') =~ /^([\w\-\.\&]+)$/; #untaint username_text my($username)=$1; - @svc_acct=qsearch('svc_acct',{'username'=>$username}); + [ qsearch('svc_acct',{'username'=>$username}) ]; } - %>