RT# 82942 Replace DBI->connect() with FS::DBI->connect()
[freeside.git] / FS / FS / Upgrade.pm
index 05881b9..86f51f8 100644 (file)
@@ -10,6 +10,7 @@ use FS::Conf;
 use FS::Record qw(qsearchs qsearch str2time_sql);
 use FS::queue;
 use FS::upgrade_journal;
+use FS::DBI;
 
 use FS::svc_domain;
 $FS::svc_domain::whois_hack = 1;
@@ -156,6 +157,19 @@ If you need to continue using the old Form 477 report, turn on the
     $conf->set('password-generated-characters', $pw_set);
   }
 
+  if ($conf->exists('unsuspendauto') && !$conf->config('unsuspend_balance')) {
+    $conf->set('unsuspend_balance','Zero');
+    $conf->delete('unsuspendauto');
+  }
+
+  # if translate-auto-insert is enabled for a locale, ensure that invoice
+  # terms are in the msgcat (is there a better place for this?)
+  if (my $auto_locale = $conf->config('translate-auto-insert')) {
+    my $lh = FS::L10N->get_handle($auto_locale);
+    foreach (@FS::Conf::invoice_terms) {
+      $lh->maketext($_) if length($_);
+    }
+  }
 }
 
 sub upgrade_overlimit_groups {
@@ -298,7 +312,10 @@ sub upgrade {
       });
       foreach my $object ( @objects ) {
           my $payinfo = $object->decrypt($object->payinfo);
-          die "error decrypting payinfo" if $payinfo eq $object->payinfo;
+          if ( $payinfo eq $object->payinfo ) {
+            warn "error decrypting payinfo for $table: $payinfo\n";
+            next;
+          }
           $object->payinfo($payinfo);
           my $error = $object->replace;
           die $error if $error;
@@ -316,7 +333,17 @@ sub upgrade_data {
 
   tie my %hash, 'Tie::IxHash', 
 
-    #cust_main (remove paycvv from history)
+    #remap log levels
+    'log' => [],
+
+    #fix whitespace - before cust_main
+    'cust_location' => [],
+
+    #remove bad source_paynum before cust_main
+    'cust_refund' => [],
+
+    #cust_main (tokenizes cards, remove paycvv from history, locations, cust_payby, etc)
+    # (handles payinfo encryption/tokenization across all relevant tables)
     'cust_main' => [],
 
     #msgcat
@@ -332,6 +359,9 @@ sub upgrade_data {
     #customer credits
     'cust_credit' => [],
 
+    # fix some tax allocation records
+    'cust_bill_pkg_void' => [],
+
     #duplicate history records
     'h_cust_svc'  => [],
 
@@ -375,7 +405,7 @@ sub upgrade_data {
     'cust_pkg' => [],
     #'cust_pkg_reason' => [],
     'cust_pkg_discount' => [],
-    'cust_refund' => [],
+    #'cust_refund' => [],
     'banned_pay' => [],
 
     #default namespace
@@ -428,8 +458,13 @@ sub upgrade_data {
     #set default locations on quoted packages
     'quotation_pkg' => [],
 
-    #mark certain taxes as system-maintained
+    #mark certain taxes as system-maintained,
+    # and fix whitespace
     'cust_main_county' => [],
+
+    #upgrade part_event_condition_option agentnum to a multiple hash value
+    'part_event_condition_option' =>[],
+
   ;
 
   \%hash;
@@ -492,7 +527,9 @@ sub upgrade_schema_data {
     'cust_bill_pkg_detail' => [],
     #add necessary columns to RT schema
     'TicketSystem' => [],
-
+    #remove possible dangling records
+    'password_history' => [],
+    'cust_pay_pending' => [],
   ;
 
   \%hash;
@@ -511,11 +548,11 @@ sub upgrade_sqlradius {
     my $errmsg = 'Error adding FreesideStatus to '.
                  $part_export->option('datasrc'). ': ';
 
-    my $dbh = DBI->connect(
+    my $dbh = FS::DBI->connect(
       ( map $part_export->option($_), qw ( datasrc username password ) ),
       { PrintError => 0, PrintWarn => 0 }
     ) or do {
-      warn $errmsg.$DBI::errstr;
+      warn $errmsg.$FS::DBI::errstr;
       next;
     };