# see parallel checks in cust_payby::check & cust_payby::check_payinfo_cardtype
if ( $self->tokenized ) {
- $self->('is_tokenized', 'Y'); #so we don't try to do it again
+ $self->set('is_tokenized', 'Y'); #so we don't try to do it again
if ( $self->paymask =~ /^\d+x/ ) {
$self->set('paycardtype', cardtype($self->paymask));
} else {
my $class = shift;
my $table = $class->table or die "upgrade_set_cardtype needs a table";
- if ( ! FS::upgrade_journal->is_done("${table}__set_cardtype") ) {
+ if ( ! FS::upgrade_journal->is_done("${table}__set_cardtype2") ) {
my $job = FS::queue->new({ job => 'FS::payinfo_Mixin::process_set_cardtype' });
my $error = $job->insert($table);
die $error if $error;
- FS::upgrade_journal->set_done("${table}__set_cardtype");
+ FS::upgrade_journal->set_done("${table}__set_cardtype2");
}
}
local $ignore_masked_payinfo = 1;
my $search = FS::Cursor->new({
table => $table,
- extra_sql => q[ WHERE payby IN('CARD','DCRD') AND paycardtype IS NULL ],
+ extra_sql => q[ WHERE payby IN('CARD','DCRD') AND ( paycardtype IS NULL or paycardtype = 'Not a credit card' ) ],
});
while (my $record = $search->fetch) {
my $error = $record->replace;