projects
/
freeside.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
300cbdd
)
don't change service address when selfservice changes billing address, #14613
author
Mark Wells
<mark@freeside.biz>
Fri, 27 Apr 2012 18:52:02 +0000
(11:52 -0700)
committer
Mark Wells
<mark@freeside.biz>
Fri, 27 Apr 2012 18:52:02 +0000
(11:52 -0700)
FS/FS/ClientAPI/MyAccount.pm
patch
|
blob
|
history
diff --git
a/FS/FS/ClientAPI/MyAccount.pm
b/FS/FS/ClientAPI/MyAccount.pm
index
e9394e4
..
08e3f7e
100644
(file)
--- a/
FS/FS/ClientAPI/MyAccount.pm
+++ b/
FS/FS/ClientAPI/MyAccount.pm
@@
-570,6
+570,12
@@
sub edit_info {
or return { 'error' => "unknown custnum $custnum" };
my $new = new FS::cust_main { $cust_main->hash };
or return { 'error' => "unknown custnum $custnum" };
my $new = new FS::cust_main { $cust_main->hash };
+ # Avoid accidentally changing the service address.
+ if ( !$new->has_ship_address ) {
+ $new->set( $_ => $new->get($_) )
+ foreach $new->addr_fields;
+ }
+
$new->set( $_ => $p->{$_} )
foreach grep { exists $p->{$_} } @cust_main_editable_fields;
$new->set( $_ => $p->{$_} )
foreach grep { exists $p->{$_} } @cust_main_editable_fields;
@@
-927,9
+933,17
@@
sub do_process_payment {
my $new = new FS::cust_main { $cust_main->hash };
if ($payby eq 'CARD' || $payby eq 'DCRD') {
$new->set( $_ => $validate->{$_} )
my $new = new FS::cust_main { $cust_main->hash };
if ($payby eq 'CARD' || $payby eq 'DCRD') {
$new->set( $_ => $validate->{$_} )
- foreach qw( payname paystart_month paystart_year payissue payip
- address1 address2 city state zip country );
+ foreach qw( payname paystart_month paystart_year payissue payip );
$new->set( 'payby' => $validate->{'auto'} ? 'CARD' : 'DCRD' );
$new->set( 'payby' => $validate->{'auto'} ? 'CARD' : 'DCRD' );
+
+ # Avoid accidentally changing the service address.
+ if ( !$new->has_ship_address ) {
+ $new->set( "ship_$_" => $new->get($_) )
+ foreach $new->addr_fields;
+ }
+ $new->set( $_ => $validate->{$_} )
+ foreach qw(address1 address2 city state country zip);
+
} elsif ($payby eq 'CHEK' || $payby eq 'DCHK') {
$new->set( $_ => $validate->{$_} )
foreach qw( payname payip paytype paystate
} elsif ($payby eq 'CHEK' || $payby eq 'DCHK') {
$new->set( $_ => $validate->{$_} )
foreach qw( payname payip paytype paystate