RT# 82942 Replace DBI->connect() with FS::DBI->connect()
[freeside.git] / FS / FS / Upgrade.pm
index aebfc29..8850d36 100644 (file)
@@ -11,6 +11,7 @@ use FS::Record qw(qsearchs qsearch str2time_sql);
 use FS::queue;
 use FS::upgrade_journal;
 use FS::Setup qw( enable_banned_pay_pad );
+use FS::DBI;
 
 use FS::svc_domain;
 $FS::svc_domain::whois_hack = 1;
@@ -153,7 +154,7 @@ If you need to continue using the old Form 477 report, turn on the
 
   # boolean+text previous_balance-exclude_from_total is now two separate options
   my $total_new_charges = $conf->config('previous_balance-exclude_from_total');
-  if (length($total_new_charges) > 0) {
+  if ( defined $total_new_charges && length($total_new_charges) > 0 ) {
     $conf->set('previous_balance-text-total_new_charges', $total_new_charges);
     $conf->set('previous_balance-exclude_from_total', '');
   }
@@ -174,8 +175,8 @@ If you need to continue using the old Form 477 report, turn on the
     $conf->delete('unsuspendauto');
   }
 
-  if ($conf->config('cust-fields') =~ / \| Payment Type/) {
-    my $cust_fields = $conf->config('cust-fields');
+  my $cust_fields = $conf->config('cust-fields');
+  if ( defined $cust_fields && $cust_fields =~ / \| Payment Type/ ) {
     # so we can potentially use 'Payment Types' or somesuch in the future
     $cust_fields =~ s/ \| Payment Type( \|)/$1/;
     $cust_fields =~ s/ \| Payment Type$//;
@@ -192,6 +193,19 @@ If you need to continue using the old Form 477 report, turn on the
       $lh->maketext($_) if length($_);
     }
   }
+
+  unless ( FS::upgrade_journal->is_done('deprecate_unmask_ss') ) {
+    if ( $conf->config_bool( 'unmask_ss' )) {
+      warn "'unmask_ssn' deprecated from global configuration\n";
+      for my $access_group ( qsearch( access_group => {} )) {
+        $access_group->grant_access_right( 'Unmask customer SSN' );
+        warn " - 'Unmask customer SSN' access right granted to '" .
+             $access_group->groupname . "' employee group\n";
+      }
+    }
+    FS::upgrade_journal->set_done('deprecate_unmask_ss');
+  }
+
 }
 
 sub upgrade_overlimit_groups {
@@ -360,7 +374,7 @@ sub upgrade_data {
   tie my %hash, 'Tie::IxHash', 
 
     #remap log levels
-       'log' => [],
+    'log' => [],
 
     #fix whitespace - before cust_main
     'cust_location' => [],
@@ -369,6 +383,9 @@ sub upgrade_data {
     # blocks tokenization upgrade if deprecated features still in use
     'agent_payment_gateway' => [],
 
+    #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' => [],
@@ -438,7 +455,7 @@ sub upgrade_data {
     'cust_pkg' => [],
     #'cust_pkg_reason' => [],
     'cust_pkg_discount' => [],
-    'cust_refund' => [],
+    #'cust_refund' => [],
     'banned_pay' => [],
 
     #paycardtype
@@ -620,11 +637,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;
     };