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}) ];
}
-
%>