Missing comma.
[freeside.git] / httemplate / search / svc_acct.cgi
index 0a4338b..e43f4f7 100755 (executable)
@@ -1,7 +1,5 @@
 <%
 
-my $mydomain = '';
-
 my $conf = new FS::Conf;
 my $maxrecords = $conf->config('maxsearchrecordsperpage');
 
@@ -32,7 +30,7 @@ if ( $query =~ /^UN_(.*)$/ ) {
       WHERE 0 <
         ( SELECT count(*) FROM cust_svc
             WHERE cust_svc.svcnum = svc_acct.svcnum
-              AND ( pkgnum IS NULL OR pkgnum = 0 OR pkgnum = $empty )
+              AND ( pkgnum IS NULL OR pkgnum = 0 )
         )
     ";
   }
@@ -147,14 +145,8 @@ END
       $domain = "<A HREF=\"${p}view/svc_domain.cgi?". $svc_domain->svcnum.
                 "\">". $svc_domain->domain. "</A>";
     } else {
-      unless ( $mydomain ) {
-        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: ". $svc_acct->domsvc;
-        }
-      }
-      $domain = "<i>$mydomain</i><FONT COLOR=\"#FF0000\">*</FONT>";
+      die "No svc_domain.svcnum record for svc_acct.domsvc: ".
+          $svc_acct->domsvc;
     }
     my($cust_pkg,$cust_main);
     if ( $cust_svc->pkgnum ) {
@@ -216,17 +208,8 @@ END
 
   }
  
-  print "</TABLE>$pager<BR>";
-
-  if ( $mydomain ) {
-    print "<BR><FONT COLOR=\"#FF0000\">*</FONT> The <I>$mydomain</I> domain ".
-          "is contained in your legacy <CODE>domain</CODE> ".
-          "<A HREF=\"${p}docs/config.html#domain\">configuration file</A>.  ".
-          "You should run the <CODE>bin/fs-migrate-svc_acct_sm</CODE> script ".
-          "to create a proper svc_domain record for this domain.";
-  }
-
-  print '</BODY></HTML>';
+  print "</TABLE>$pager<BR>".
+        '</BODY></HTML>';
 
 }
 
@@ -244,10 +227,50 @@ sub uid_sort {
 
 sub usernamesearch {
 
+  my @svc_acct;
+
+  my %username_type;
+  foreach ( $cgi->param('username_type') ) {
+    $username_type{$_}++;
+  }
+
   $cgi->param('username') =~ /^([\w\-\.\&]+)$/; #untaint username_text
-  my($username)=$1;
+  my $username = $1;
+
+  if ( $username_type{'Exact'} || $username_type{'Fuzzy'} ) {
+    push @svc_acct, qsearch( 'svc_acct',
+                             { 'username' => { 'op'    => 'ILIKE',
+                                               'value' => $username } } );
+  }
+
+  if ( $username_type{'Substring'} || $username_type{'All'} ) {
+    push @svc_acct, qsearch( 'svc_acct',
+                             { 'username' => { 'op'    => 'ILIKE',
+                                               'value' => "%$username%" } } );
+  }
+
+  if ( $username_type{'Fuzzy'} || $username_type{'All'} ) {
+    &FS::svc_acct::check_and_rebuild_fuzzyfiles;
+    my $all_username = &FS::svc_acct::all_username;
+
+    my %username;
+    if ( $username_type{'Fuzzy'} || $username_type{'All'} ) { 
+      foreach ( amatch($username, [ qw(i) ], @$all_username) ) {
+        $username{$_}++; 
+      }
+    }
+
+    #if ($username_type{'Sound-alike'}) {
+    #}
+
+    foreach ( keys %username ) {
+      push @svc_acct, qsearch('svc_acct',{'username'=>$_});
+    }
+
+  }
 
-  [ qsearch('svc_acct',{'username'=>$username}) ];
+  #[ qsearch('svc_acct',{'username'=>$username}) ];
+  \@svc_acct;
 
 }