perform 3 character substring searches if you have 'List all customers', RT#75012...
authorIvan Kohler <ivan@freeside.biz>
Mon, 5 Jun 2017 21:21:05 +0000 (14:21 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 5 Jun 2017 21:21:05 +0000 (14:21 -0700)
FS/FS/cust_main/Search.pm

index 04d97bd..e69e5f2 100644 (file)
@@ -356,10 +356,14 @@ sub smart_search {
 
       #still some false laziness w/search (was search/cust_main.cgi)
 
+      my $min_len =
+        $FS::CurrentUser::CurrentUser->access_right('List all customers')
+        ? 3 : 4;
+
       #substring
 
       my @company_hashrefs = ();
-      if ( length($value) >= 4 ) {
+      if ( length($value) >= $min_len ) {
         @company_hashrefs = (
           { 'company'      => { op=>'ILIKE', value=>"%$value%" }, },
           { 'ship_company' => { op=>'ILIKE', value=>"%$value%" }, },
@@ -375,7 +379,7 @@ sub smart_search {
           },
         );
 
-      } elsif ( length($value) >= 4 ) {
+      } elsif ( length($value) >= $min_len ) {
 
         @hashrefs = (
           { 'first'        => { op=>'ILIKE', value=>"%$value%" }, },
@@ -396,7 +400,7 @@ sub smart_search {
 
       }
 
-      if ( $conf->exists('address1-search') && length($value) >= 4 ) {
+      if ( $conf->exists('address1-search') && length($value) >= $min_len ) {
 
         push @cust_main, qsearch( {
           table     => 'cust_main',