diff options
| author | ivan <ivan> | 2009-03-15 19:42:40 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2009-03-15 19:42:40 +0000 | 
| commit | e5435ff8d58a350931f2e03d77fe5022830e5ee1 (patch) | |
| tree | 3e9fa744bcba67ec020a4cc480835f196ac4133a | |
| parent | d6c5c05b1aaff98b193838b8f4328a9c827cd669 (diff) | |
should give better performance if we search for what we want instead of using a string match
| -rw-r--r-- | FS/FS/cust_pkg_reason.pm | 42 | 
1 files changed, 21 insertions, 21 deletions
| diff --git a/FS/FS/cust_pkg_reason.pm b/FS/FS/cust_pkg_reason.pm index 43f83d44d..4b6be5d94 100644 --- a/FS/FS/cust_pkg_reason.pm +++ b/FS/FS/cust_pkg_reason.pm @@ -134,11 +134,17 @@ sub reasontext {  #  # Used by FS::Upgrade to migrate to a new database. +use FS::h_cust_pkg; +use FS::h_cust_pkg_reason; +use FS::Schema qw(dbdef); +  sub _upgrade_data { # class method    my ($class, %opts) = @_; -  my $test_cust_pkg_reason = new FS::cust_pkg_reason; -  return '' unless $test_cust_pkg_reason->dbdef_table->column('action'); +  return '' unless dbdef->table('cust_pkg_reason')->column('action'); + +  my $action_replace = +    " AND ( history_action = 'replace_old' OR history_action = 'replace_new' )";    my $count = 0;    my @unmigrated = qsearch('cust_pkg_reason', { 'action' => '' } );  @@ -153,27 +159,24 @@ sub _upgrade_data { # class method      next unless scalar(@history_cust_pkg_reason) == 1; -    my %action_value = ( op    => 'LIKE', -                         value => 'replace_%', -                       );      my $hashref = { pkgnum => $_->pkgnum,                      history_date   => $history_cust_pkg_reason[0]->history_date, -                    history_action => { %action_value },                    }; -    my @history = qsearch({ table    => 'h_cust_pkg', -                            hashref  => $hashref, -                            order_by => 'ORDER BY history_action', +    my @history = qsearch({ table     => 'h_cust_pkg', +                            hashref   => $hashref, +                            extra_sql => $action_replace, +                            order_by  => 'ORDER BY history_action',                           });      my $fuzz = 0;      while (scalar(@history) < 2 && $fuzz < 3) {        $hashref->{history_date}++; -      $hashref->{history_action} = { %action_value }; # qsearch distorts this!        $fuzz++; -      push @history, qsearch({ table    => 'h_cust_pkg', -                               hashref  => $hashref, -                               order_by => 'ORDER BY history_action', +      push @history, qsearch({ table     => 'h_cust_pkg', +                               hashref   => $hashref, +                               extra_sql => $action_replace, +                               order_by  => 'ORDER BY history_action',                              });      } @@ -231,26 +234,23 @@ sub _upgrade_data { # class method        @FS::h_cust_pkg::ISA = qw( FS::h_Common FS::cust_pkg );        sub FS::h_cust_pkg::table { 'h_cust_pkg' }; -      my %action_value = ( op    => 'LIKE', -                           value => 'replace_%', -                         );        my $hashref = { pkgnum => $_->pkgnum,                        history_date   => $_->date, -                      history_action => { %action_value },                      }; -      my @history = qsearch({ table    => 'h_cust_pkg', -                              hashref  => $hashref, -                              order_by => 'ORDER BY history_action', +      my @history = qsearch({ table     => 'h_cust_pkg', +                              hashref   => $hashref, +                              extra_sql => $action_replace, +                              order_by  => 'ORDER BY history_action',                             });        my $fuzz = 0;        while (scalar(@history) < 2 && $fuzz < 3) {          $hashref->{history_date}++; -        $hashref->{history_action} = { %action_value }; # qsearch distorts this!          $fuzz++;          push @history, qsearch({ table    => 'h_cust_pkg',                                   hashref  => $hashref, +                                 extra_sql => $action_replace,                                   order_by => 'ORDER BY history_action',                                });        } | 
