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;
# 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', '');
}
$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$//;
$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');
+ }
+
+ # Rename agent-disable_counts as config-disable_counts, flag now
+ # affects several configuration pages
+ for my $row ( qsearch( conf => { name => 'agent-disable_counts' } )) {
+ $row->name('config-disable_counts');
+ $row->replace;
+ }
+
}
sub upgrade_overlimit_groups {
});
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;
tie my %hash, 'Tie::IxHash',
#remap log levels
- 'log' => [],
+ 'log' => [],
#fix whitespace - before cust_main
'cust_location' => [],
# 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' => [],
'cust_pkg' => [],
#'cust_pkg_reason' => [],
'cust_pkg_discount' => [],
- 'cust_refund' => [],
+ #'cust_refund' => [],
'banned_pay' => [],
#paycardtype
#upgrade part_event_condition_option agentnum to a multiple hash value
'part_event_condition_option' =>[],
+
+ #fix ip format
+ 'svc_circuit' => [],
+
+ #fix ip format
+ 'svc_hardware' => [],
+
+ #fix ip format
+ 'svc_pbx' => [],
+
+ #fix ip format
+ 'tower_sector' => [],
+
+
;
\%hash;
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;
};
=cut
1;
-