From 522d56b651bee0d586fbb5daa3196042bc6a9d8e Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Fri, 15 Jul 2016 15:50:27 -0700 Subject: [PATCH] rename cardtype to paycardtype --- FS/FS/Schema.pm | 8 ++++---- FS/FS/Upgrade.pm | 2 +- FS/FS/cust_pay.pm | 4 ++-- FS/FS/cust_payby.pm | 24 ++++++++++++++---------- FS/FS/cust_refund.pm | 2 +- FS/FS/payinfo_Mixin.pm | 18 ++++++++++-------- 6 files changed, 32 insertions(+), 26 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 8307ee0f9..9074ae433 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -1693,7 +1693,7 @@ sub tables_hashref { 'weight', 'int', 'NULL', '', '', '', 'payby', 'char', '', 4, '', '', 'payinfo', 'varchar', 'NULL', 512, '', '', - 'cardtype', 'varchar', 'NULL', $char_d, '', '', + 'paycardtype', 'varchar', 'NULL', $char_d, '', '', 'paycvv', 'varchar', 'NULL', 512, '', '', 'paymask', 'varchar', 'NULL', $char_d, '', '', #'paydate', @date_type, '', '', @@ -2443,7 +2443,7 @@ sub tables_hashref { 'usernum', 'int', 'NULL', '', '', '', 'payby', 'char', '', 4, '', '', 'payinfo', 'varchar', 'NULL', 512, '', '', - 'cardtype', 'varchar', 'NULL', $char_d, '', '', + 'paycardtype', 'varchar', 'NULL', $char_d, '', '', 'paymask', 'varchar', 'NULL', $char_d, '', '', 'paydate', 'varchar', 'NULL', 10, '', '', 'paybatch', 'varchar', 'NULL', $char_d, '', '',#for auditing purposes @@ -2501,7 +2501,7 @@ sub tables_hashref { 'usernum', 'int', 'NULL', '', '', '', 'payby', 'char', '', 4, '', '', 'payinfo', 'varchar', 'NULL', 512, '', '', - 'cardtype', 'varchar', 'NULL', $char_d, '', '', + 'paycardtype', 'varchar', 'NULL', $char_d, '', '', 'paymask', 'varchar', 'NULL', $char_d, '', '', #'paydate' ? 'paybatch', 'varchar', 'NULL', $char_d, '', '', #for auditing purposes. @@ -3061,7 +3061,7 @@ sub tables_hashref { # be index into payby # table eventually 'payinfo', 'varchar', 'NULL', 512, '', '', #see cust_main above - 'cardtype', 'varchar', 'NULL', $char_d, '', '', + 'paycardtype', 'varchar', 'NULL', $char_d, '', '', 'paymask', 'varchar', 'NULL', $char_d, '', '', 'paybatch', 'varchar', 'NULL', $char_d, '', '', 'closed', 'char', 'NULL', 1, '', '', diff --git a/FS/FS/Upgrade.pm b/FS/FS/Upgrade.pm index 3aa3e5394..6f14cd202 100644 --- a/FS/FS/Upgrade.pm +++ b/FS/FS/Upgrade.pm @@ -422,7 +422,7 @@ sub upgrade_data { 'cust_refund' => [], 'banned_pay' => [], - #cardtype + #paycardtype 'cust_payby' => [], #default namespace diff --git a/FS/FS/cust_pay.pm b/FS/FS/cust_pay.pm index 8e87745ea..e0a7143c4 100644 --- a/FS/FS/cust_pay.pm +++ b/FS/FS/cust_pay.pm @@ -97,7 +97,7 @@ Payment Type (See L for valid values) Payment Information (See L for data format) -=item cardtype +=item paycardtype Credit card type, if appropriate; autodetected. @@ -1211,7 +1211,7 @@ sub _upgrade_data { #class method } ### - # set cardtype + # set paycardtype ### $class->upgrade_set_cardtype; diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm index 993bab55d..facb9c8d8 100644 --- a/FS/FS/cust_payby.pm +++ b/FS/FS/cust_payby.pm @@ -115,7 +115,7 @@ paytype payip -=item cardtype +=item paycardtype The credit card type (deduced from the card number). @@ -354,10 +354,11 @@ sub check { or return gettext('invalid_card'); # . ": ". $self->payinfo; my $cardtype = cardtype($payinfo); - $self->set('cardtype', $cardtype); - return gettext('unknown_card_type') - if $self->payinfo !~ /^99\d{14}$/ #token - && $cardtype eq "Unknown"; + $cardtype = 'Tokenized' if $self->payinfo !~ /^99\d{14}$/; #token + + return gettext('unknown_card_type') if $cardtype eq "Unknown"; + + $self->set('paycardtype', $cardtype); unless ( $ignore_banned_card ) { my $ban = FS::banned_pay->ban_search( %{ $self->_banned_pay_hashref } ); @@ -453,9 +454,9 @@ sub check { # either ignoring invalid cards, or we can't decrypt the payinfo, but # try to detect the card type anyway. this never returns failure, so # the contract of $ignore_invalid_cards is maintained. - $self->set('cardtype', cardtype($self->paymask)); + $self->set('paycardtype', cardtype($self->paymask)); } else { - $self->set('cardtype', ''); + $self->set('paycardtype', ''); } # } elsif ( $self->payby eq 'PREPAY' ) { @@ -539,11 +540,14 @@ sub check_payinfo_cardtype { my $payinfo = $self->payinfo; $payinfo =~ s/\D//g; - return '' if $payinfo =~ /^99\d{14}$/; #token + if ( $payinfo =~ /^99\d{14}$/ ) { + $self->set('paycardtype', 'Tokenized'); + return ''; + } my %bop_card_types = map { $_=>1 } values %{ card_types() }; my $cardtype = cardtype($payinfo); - $self->set('cardtype', $cardtype); + $self->set('paycardtype', $cardtype); return "$cardtype not accepted" unless $bop_card_types{$cardtype}; @@ -619,7 +623,7 @@ sub label { my $self = shift; my $name = $self->payby =~ /^(CARD|DCRD)$/ - && $self->cardtype || FS::payby->shortname($self->payby); + && $self->paycardtype || FS::payby->shortname($self->payby); ( $self->payby =~ /^(CARD|CHEK)$/ ? $weight{$self->weight}. ' automatic ' : 'Manual ' diff --git a/FS/FS/cust_refund.pm b/FS/FS/cust_refund.pm index ee144c11f..4d2baa514 100644 --- a/FS/FS/cust_refund.pm +++ b/FS/FS/cust_refund.pm @@ -82,7 +82,7 @@ Payment Type (See L for valid payby values) Payment Information (See L for data format) -=item cardtype +=item paycardtype Detected credit card type, if appropriate; autodetected. diff --git a/FS/FS/payinfo_Mixin.pm b/FS/FS/payinfo_Mixin.pm index b32f13b8d..a61125e54 100644 --- a/FS/FS/payinfo_Mixin.pm +++ b/FS/FS/payinfo_Mixin.pm @@ -194,9 +194,12 @@ sub payinfo_check { or return "Illegal payby: ". $self->payby; if ( $self->payby eq 'CARD' && ! $self->is_encrypted($self->payinfo) ) { + my $payinfo = $self->payinfo; my $cardtype = cardtype($payinfo); - $self->set('cardtype', $cardtype); + $cardtype = 'Tokenized' if $payinfo !~ /^99\d{14}$/; + $self->set('paycardtype', $cardtype); + if ( $ignore_masked_payinfo and $self->mask_payinfo eq $self->payinfo ) { # allow it } else { @@ -207,8 +210,7 @@ sub payinfo_check { or return "Illegal (mistyped?) credit card number (payinfo)"; $self->payinfo($1); validate($self->payinfo) or return "Illegal credit card number"; - return "Unknown card type" if $self->payinfo !~ /^99\d{14}$/ #token - && $cardtype eq "Unknown"; + return "Unknown card type" if $cardtype eq "Unknown"; } else { $self->payinfo('N/A'); #??? } @@ -216,9 +218,9 @@ sub payinfo_check { } else { if ( $self->payby eq 'CARD' and $self->paymask ) { # if we can't decrypt the card, at least detect the cardtype - $self->set('cardtype', cardtype($self->paymask)); + $self->set('paycardtype', cardtype($self->paymask)); } else { - $self->set('cardtype', ''); + $self->set('paycardtype', ''); } if ( $self->is_encrypted($self->payinfo) ) { #something better? all it would cause is a decryption error anyway? @@ -415,8 +417,8 @@ sub paydate_epoch_sql { =item upgrade_set_cardtype -Find all records with a credit card payment type and no cardtype, and -replace them in order to set their cardtype. +Find all records with a credit card payment type and no paycardtype, and +replace them in order to set their paycardtype. =cut @@ -427,7 +429,7 @@ sub upgrade_set_cardtype { local $ignore_masked_payinfo = 1; my $search = FS::Cursor->new({ table => $class->table, - extra_sql => q[ WHERE payby IN('CARD','DCRD') AND cardtype IS NULL ], + extra_sql => q[ WHERE payby IN('CARD','DCRD') AND paycardtype IS NULL ], }); while (my $record = $search->fetch) { my $error = $record->replace; -- 2.11.0