X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fcust_payby.pm;h=fd75567e6bc90c06a12c53524c79e9e7cb897bef;hb=af3030ce8b5be0c280f39eb7ffb8bebcb7953f56;hp=50d9ee0f87a1886f33ec160b9763e9ea9aa79499;hpb=7d8aea452e6d4090d6c97acce0b6bde0f1dccac1;p=freeside.git diff --git a/FS/FS/cust_payby.pm b/FS/FS/cust_payby.pm index 50d9ee0f8..fd75567e6 100644 --- a/FS/FS/cust_payby.pm +++ b/FS/FS/cust_payby.pm @@ -196,10 +196,6 @@ sub replace { ? shift : $self->replace_old; - if ( length($old->paycvv) && $self->paycvv =~ /^\s*[\*x]*\s*$/ ) { - $self->paycvv($old->paycvv); - } - if ( $self->payby =~ /^(CARD|DCRD)$/ && ( $self->payinfo =~ /xx/ || $self->payinfo =~ /^\s*N\/A\s+\(tokenized\)\s*$/ @@ -221,6 +217,17 @@ sub replace { $self->payinfo($new_account.'@'.$new_aba); } + # don't preserve paycvv if it was passed blank and payinfo changed + unless ( $self->payby =~ /^(CARD|DCRD)$/ + && $old->payinfo ne $self->payinfo + && $old->paymask ne $self->paymask + && $self->paycvv =~ /^\s*$/ ) + { + if ( length($old->paycvv) && $self->paycvv =~ /^\s*[\*x]*\s*$/ ) { + $self->paycvv($old->paycvv); + } + } + local($ignore_expired_card) = 1 if $old->payby =~ /^(CARD|DCRD)$/ && $self->payby =~ /^(CARD|DCRD)$/ @@ -831,6 +838,9 @@ sub search_sql { ' LEFT JOIN cust_location AS '.$pre.'location '. 'ON (cust_main.'.$pre.'locationnum = '.$pre.'location.locationnum) '; } + # always make referral available in results + # (maybe we should be using FS::UI::Web::join_cust_main instead?) + $addl_from .= ' LEFT JOIN (select refnum, referral from part_referral) AS part_referral_x ON (cust_main.refnum = part_referral_x.refnum) '; my $count_query = "SELECT COUNT(*) FROM cust_payby $addl_from $extra_sql";