projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
RT#38363: use cust_payby when saving cards during payments [editing from cust_main]
[freeside.git]
/
FS
/
FS
/
cust_payby.pm
diff --git
a/FS/FS/cust_payby.pm
b/FS/FS/cust_payby.pm
index
9feaf14
..
83b951e
100644
(file)
--- a/
FS/FS/cust_payby.pm
+++ b/
FS/FS/cust_payby.pm
@@
-2,6
+2,7
@@
package FS::cust_payby;
use base qw( FS::payinfo_Mixin FS::cust_main_Mixin FS::Record );
use strict;
use base qw( FS::payinfo_Mixin FS::cust_main_Mixin FS::Record );
use strict;
+use Scalar::Util qw( blessed );
use Digest::SHA qw( sha512_base64 );
use Business::CreditCard qw( validate cardtype );
use FS::UID qw( dbh );
use Digest::SHA qw( sha512_base64 );
use Business::CreditCard qw( validate cardtype );
use FS::UID qw( dbh );
@@
-202,8
+203,7
@@
sub replace {
)
)
{
)
)
{
-warn $self->payinfo;
-warn $old->payinfo;
+
$self->payinfo($old->payinfo);
} elsif ( $self->payby =~ /^(CHEK|DCHK)$/ && $self->payinfo =~ /xx/ ) {
$self->payinfo($old->payinfo);
} elsif ( $self->payby =~ /^(CHEK|DCHK)$/ && $self->payinfo =~ /xx/ ) {
@@
-577,15
+577,20
@@
sub cgi_cust_payby_fields {
payinfo1 payinfo2 payinfo3 paytype paystate payname_CHEK )];
}
payinfo1 payinfo2 payinfo3 paytype paystate payname_CHEK )];
}
-=item cgi_hash_callback HASHREF
+=item cgi_hash_callback HASHREF
OLD
Subroutine (not a class or object method). Processes a hash reference
of web interface contet (transfers the data from pseudo-fields to real fields).
Subroutine (not a class or object method). Processes a hash reference
of web interface contet (transfers the data from pseudo-fields to real fields).
+If OLD object is passed, also preserves locationnum, paystart_month, paystart_year,
+payissue and payip. If the new field is blank but the old is not, the old field
+will be preserved.
+
=cut
sub cgi_hash_callback {
my $hashref = shift;
=cut
sub cgi_hash_callback {
my $hashref = shift;
+ my $old = shift;
my %noauto = (
'CARD' => 'DCRD',
my %noauto = (
'CARD' => 'DCRD',
@@
-619,6
+624,14
@@
sub cgi_hash_callback {
$hashref->{paydate}= $hashref->{paydate_month}. '-'. $hashref->{paydate_year};
$hashref->{paydate}= $hashref->{paydate_month}. '-'. $hashref->{paydate_year};
+ if ($old) {
+ foreach my $field ( qw(locationnum paystart_month paystart_year payissue payip) ) {
+ next if $hashref->{$field};
+ next unless $old->get($field);
+ $hashref->{$field} = $old->get($field);
+ }
+ }
+
}
=item search_sql
}
=item search_sql