X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=493cc3587ff963b36c6a805bf12fe41ec6d5a725;hb=e67b7f4bc312c27c09ffcc235aa93b2b78af89a6;hp=73d27b5442f30419a9294299316d562028bcb9a8;hpb=dbb986792ad5d9f4d7e409234b7a78719179dfa2;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 73d27b544..493cc3587 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -222,10 +222,9 @@ sub access_info { ]; return { %$info, - 'custnum' => $custnum, - 'pkgnum' => $session->{'pkgnum'}, - 'svcnum' => $session->{'svcnum'}, - 'nonprimary' => $session->{'nonprimary'}, + 'custnum' => $custnum, + 'access_pkgnum' => $session->{'pkgnum'}, + 'svcnum' => $session->{'svcnum'}, }; } @@ -368,7 +367,8 @@ sub edit_info { $new->set( 'payby' => $p->{'auto'} ? 'CARD' : 'DCRD' ); - }elsif ( $payby =~ /^(CHEK|DCHK)$/ ) { + } elsif ( $payby =~ /^(CHEK|DCHK)$/ ) { + my $payinfo; $p->{'payinfo1'} =~ /^([\dx]+)$/ or return { 'error' => "illegal account number ". $p->{'payinfo1'} }; @@ -378,15 +378,15 @@ sub edit_info { my $payinfo2 = $1; $payinfo = $payinfo1. '@'. $payinfo2; - if ( $payinfo eq $cust_main->paymask ) { - $new->payinfo($cust_main->payinfo); - } else { - $new->payinfo($payinfo); - } + $new->payinfo( ($payinfo eq $cust_main->paymask) + ? $cust_main->payinfo + : $payinfo + ); $new->set( 'payby' => $p->{'auto'} ? 'CHEK' : 'DCHK' ); - }elsif ( $payby =~ /^(BILL)$/ ) { + } elsif ( $payby =~ /^(BILL)$/ ) { + #no-op } elsif ( $payby ) { #notyet ready return { 'error' => "unknown payby $payby" }; } @@ -569,6 +569,8 @@ sub process_payment { $payinfo = $p->{'payinfo'}; + #more intelligent mathing will be needed here if you change + #card_masking_method and don't remove existing paymasks $payinfo = $cust_main->payinfo if $cust_main->paymask eq $payinfo; @@ -622,16 +624,16 @@ sub process_payment { my $new = new FS::cust_main { $cust_main->hash }; if ($payby eq 'CARD' || $payby eq 'DCRD') { $new->set( $_ => $p->{$_} ) - foreach qw( payinfo payname paystart_month paystart_year payissue payip + foreach qw( payname paystart_month paystart_year payissue payip address1 address2 city state zip country ); $new->set( 'payby' => $p->{'auto'} ? 'CARD' : 'DCRD' ); } elsif ($payby eq 'CHEK' || $payby eq 'DCHK') { $new->set( $_ => $p->{$_} ) foreach qw( payname payip paytype paystate stateid stateid_state ); - $new->set( 'payinfo' => $payinfo ); $new->set( 'payby' => $p->{'auto'} ? 'CHEK' : 'DCHK' ); } + $new->set( 'payinfo' => $payinfo ); $new->set( 'paydate' => $p->{'year'}. '-'. $p->{'month'}. '-01' ); my $error = $new->replace($cust_main); return { 'error' => $error } if $error;