From: Ivan Kohler Date: Wed, 1 Feb 2017 17:32:28 +0000 (-0800) Subject: Merge branch 'master' of git.freeside.biz:/home/git/freeside X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=edd6a339eb7ea156272264ffd164711fc8af792e;hp=-c Merge branch 'master' of git.freeside.biz:/home/git/freeside --- edd6a339eb7ea156272264ffd164711fc8af792e diff --combined FS/FS/cust_main.pm index 1bf9dd695,6eee50575..e0855d847 --- a/FS/FS/cust_main.pm +++ b/FS/FS/cust_main.pm @@@ -1325,7 -1325,7 +1325,7 @@@ set as the contact email address for a the customer. Currently available options are: I, I, - I, I. + I, I, and I. The I option can be set to an arrayref of tax names or a hashref of tax names and exemption numbers. FS::cust_main_exemption records will be @@@ -1339,6 -1339,9 +1339,9 @@@ and L for the fields thes I is a synonym for the INVOICING_LIST_ARYREF parameter, and should be used instead if possible. + If I is an arrayref, it will override the list of packages + to be moved to the new address (see L.) + =cut sub replace { @@@ -1533,7 -1536,7 +1536,7 @@@ $self->set('ship_location', ''); #flush cache if ( $old->ship_locationnum and # should only be null during upgrade... $old->ship_locationnum != $self->ship_locationnum ) { - $error = $old->ship_location->move_to($self->ship_location); + $error = $old->ship_location->move_to($self->ship_location, move_pkgs => $options{'move_pkgs'}); if ( $error ) { $dbh->rollback if $oldAutoCommit; return $error; @@@ -5386,11 -5389,10 +5389,11 @@@ sub queueable_upgrade FS::upgrade_journal->set_done('clear_payinfo_history'); } - # encrypt old records - if ( $conf->exists('encryption') - && ! FS::upgrade_journal->is_done('encryption_check') - ) { + # fix Tokenized paycardtype and encrypt old records + if ( ! FS::upgrade_journal->is_done('paycardtype_Tokenized') + || ! FS::upgrade_journal->is_done('encryption_check') + ) + { # allow replacement of closed cust_pay/cust_refund records local $FS::payinfo_Mixin::allow_closed_replace = 1; @@@ -5420,7 -5422,6 +5423,7 @@@ if (!$record->custnum && $table eq 'cust_pay_pending') { $record->set('custnum_pending',1); } + $record->paycardtype('') if $record->paycardtype eq 'Tokenized'; local($ignore_expired_card) = 1; local($ignore_banned_card) = 1; @@@ -5432,8 -5433,7 +5435,8 @@@ } } - FS::upgrade_journal->set_done('encryption_check'); + FS::upgrade_journal->set_done('paycardtype_Tokenized'); + FS::upgrade_journal->set_done('encryption_check') if $conf->exists('encryption'); } # now that everything's encrypted, tokenize... @@@ -5451,9 -5451,7 +5454,9 @@@ sub _upgrade_next_recnum my $sql = 'SELECT '.$tclass->primary_key. ' FROM '.$table. ' WHERE '.$tclass->primary_key.' > '.$$lastrecnum. - ' ORDER BY '.$tclass->primary_key.' LIMIT 500';; + " AND payby IN ( 'CARD', 'DCRD', 'CHEK', 'DCHK' ) ". + " AND ( length(payinfo) < 80 OR paycardtype = 'Tokenized' ) ". + ' ORDER BY '.$tclass->primary_key.' LIMIT 500'; my $sth = $dbh->prepare($sql) or die $dbh->errstr; $sth->execute() or die $sth->errstr; my @recnums;