fix automatic creation of fuzzy files, RT#15484
authorivan <ivan>
Fri, 9 Dec 2011 03:20:54 +0000 (03:20 +0000)
committerivan <ivan>
Fri, 9 Dec 2011 03:20:54 +0000 (03:20 +0000)
FS/FS/cust_main.pm
FS/FS/cust_main/Search.pm

index 12dc9ef..a0a7e91 100644 (file)
@@ -14,7 +14,7 @@ use vars qw( $DEBUG $me $conf
              @encrypted_fields
              $import
              $ignore_expired_card $ignore_illegal_zip $ignore_banned_card
-             $skip_fuzzyfiles @fuzzyfields
+             $skip_fuzzyfiles
              @paytypes
            );
 use Carp;
@@ -83,7 +83,6 @@ $ignore_illegal_zip = 0;
 $ignore_banned_card = 0;
 
 $skip_fuzzyfiles = 0;
-@fuzzyfields = ( 'first', 'last', 'company', 'address1' );
 
 @encrypted_fields = ('payinfo', 'paycvv');
 sub nohistory_fields { ('payinfo', 'paycvv'); }
@@ -1629,6 +1628,7 @@ Used by insert & replace to update the fuzzy search cache
 
 =cut
 
+use FS::cust_main::Search;
 sub queue_fuzzyfiles_update {
   my $self = shift;
 
@@ -1643,16 +1643,16 @@ sub queue_fuzzyfiles_update {
   local $FS::UID::AutoCommit = 0;
   my $dbh = dbh;
 
-  my $queue = new FS::queue { 'job' => 'FS::cust_main::append_fuzzyfiles' };
-  my $error = $queue->insert( map $self->getfield($_), @fuzzyfields );
+  my $queue = new FS::queue { 'job' => 'FS::cust_main::Search::append_fuzzyfiles' };
+  my $error = $queue->insert( map $self->getfield($_), @FS::cust_main::Search::fuzzyfields );
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return "queueing job (transaction rolled back): $error";
   }
 
   if ( $self->ship_last ) {
-    $queue = new FS::queue { 'job' => 'FS::cust_main::append_fuzzyfiles' };
-    $error = $queue->insert( map $self->getfield("ship_$_"), @fuzzyfields );
+    $queue = new FS::queue { 'job' => 'FS::cust_main::Search::append_fuzzyfiles' };
+    $error = $queue->insert( map $self->getfield("ship_$_"), @FS::cust_main::Search::fuzzyfields );
     if ( $error ) {
       $dbh->rollback if $oldAutoCommit;
       return "queueing job (transaction rolled back): $error";
@@ -4465,42 +4465,6 @@ sub search {
 
 =over 4
 
-=item append_fuzzyfiles FIRSTNAME LASTNAME COMPANY ADDRESS1
-
-=cut
-
-use FS::cust_main::Search;
-sub append_fuzzyfiles {
-  #my( $first, $last, $company ) = @_;
-
-  FS::cust_main::Search::check_and_rebuild_fuzzyfiles();
-
-  use Fcntl qw(:flock);
-
-  my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
-
-  foreach my $field (@fuzzyfields) {
-    my $value = shift;
-
-    if ( $value ) {
-
-      open(CACHE,">>$dir/cust_main.$field")
-        or die "can't open $dir/cust_main.$field: $!";
-      flock(CACHE,LOCK_EX)
-        or die "can't lock $dir/cust_main.$field: $!";
-
-      print CACHE "$value\n";
-
-      flock(CACHE,LOCK_UN)
-        or die "can't unlock $dir/cust_main.$field: $!";
-      close CACHE;
-    }
-
-  }
-
-  1;
-}
-
 =item batch_charge
 
 =cut
index e017400..db752ad 100644 (file)
@@ -18,7 +18,7 @@ use FS::svc_acct;
 $DEBUG = 0;
 $me = '[FS::cust_main::Search]';
 
-@fuzzyfields = @FS::cust_main::fuzzyfields;
+@fuzzyfields = ( 'first', 'last', 'company', 'address1' );
 
 install_callback FS::UID sub { 
   $conf = new FS::Conf;
@@ -859,7 +859,7 @@ sub fuzzy_search {
 
 sub check_and_rebuild_fuzzyfiles {
   my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
-  rebuild_fuzzyfiles() if grep { ! -e "$dir/cust_main.$_" } @fuzzyfields
+  rebuild_fuzzyfiles() if grep { ! -e "$dir/cust_main.$_" } @fuzzyfields;
 }
 
 =item rebuild_fuzzyfiles
@@ -902,6 +902,41 @@ sub rebuild_fuzzyfiles {
 
 }
 
+=item append_fuzzyfiles FIRSTNAME LASTNAME COMPANY ADDRESS1
+
+=cut
+
+sub append_fuzzyfiles {
+  #my( $first, $last, $company ) = @_;
+
+  check_and_rebuild_fuzzyfiles();
+
+  use Fcntl qw(:flock);
+
+  my $dir = $FS::UID::conf_dir. "/cache.". $FS::UID::datasrc;
+
+  foreach my $field (@fuzzyfields) {
+    my $value = shift;
+
+    if ( $value ) {
+
+      open(CACHE,">>$dir/cust_main.$field")
+        or die "can't open $dir/cust_main.$field: $!";
+      flock(CACHE,LOCK_EX)
+        or die "can't lock $dir/cust_main.$field: $!";
+
+      print CACHE "$value\n";
+
+      flock(CACHE,LOCK_UN)
+        or die "can't unlock $dir/cust_main.$field: $!";
+      close CACHE;
+    }
+
+  }
+
+  1;
+}
+
 =item all_X
 
 =cut