X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=cb6a938dacb84e03b8f990f1b2f5de2c17e84e33;hb=3872c1d3a2d975989e342be389b8260bfcc5ec41;hp=0bf594f2ea97908b291f7dbfbd2cf685e93aeb26;hpb=67947b080e459db6ffd60e413dc50f4083d1e893;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 0bf594f2e..cb6a938da 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -151,7 +151,6 @@ sub skin_info { personal.php Profile personal.php Personal Information - payment_accounts.php Payment Accounts password.php Change Password payment.php Payments @@ -335,6 +334,7 @@ sub login { return { 'error' => '', 'session_id' => $session_id, + %$session, }; } @@ -601,6 +601,8 @@ sub customer_info_short { for (@cust_main_editable_fields) { $return{$_} = $cust_main->get($_); } + $return{$_} = $cust_main->masked($_) for qw/ss stateid/; + #maybe a little more expensive, but it should be cached by now for (@location_editable_fields) { $return{$_} = $cust_main->bill_location->get($_); @@ -611,6 +613,7 @@ sub customer_info_short { $return{payinfo} = $cust_main->paymask; @return{'month', 'year'} = $cust_main->paydate_monthyear; } + else { delete $return{'payinfo'}; } my @invoicing_list = $cust_main->invoicing_list; $return{'invoicing_list'} = @@ -724,7 +727,7 @@ sub edit_info { or return { 'error' => "unknown custnum $custnum" }; my $conf = new FS::Conf; - if (($p->{payby} eq "CHEK" || $p->{payby} eq "DCHEK") && $conf->exists('selfservice-ACH_info_readonly')) { + if (($p->{payby} eq "CHEK" || $p->{payby} eq "DCHK") && $conf->exists('selfservice-ACH_info_readonly')) { return { 'error' => "You do not have authority to add a bank account" }; } @@ -936,6 +939,7 @@ sub payment_info { $return{paybatch} = $return{payunique}; #back compat $return{credit_card_surcharge_percentage} = $conf->config('credit-card-surcharge-percentage', $cust_main->agentnum); + $return{credit_card_surcharge_flatfee} = $conf->config('credit-card-surcharge-flatfee', $cust_main->agentnum); return { 'error' => '', %return, @@ -1013,17 +1017,11 @@ sub validate_payment { my $payinfo2 = $1; $payinfo = $payinfo1. '@'. $payinfo2; - $payinfo = $cust_main->payinfo - if $cust_main->paymask eq $payinfo; - my $achonfile = 0; - foreach my $cust_payby ($cust_main->cust_payby('CHEK','DCHK')) { - if ( $cust_payby->paymask eq $payinfo ) { - $payinfo = $cust_payby->payinfo; + if ( $cust_main->paymask eq $payinfo ) { + $payinfo = $cust_main->payinfo; $achonfile = 1; - last; } - } if ($conf->exists('selfservice-ACH_info_readonly') && !$achonfile) { return { 'error' => "You are not allowed to change your payment information." }; @@ -1655,128 +1653,6 @@ sub payment_receipt { }; } -sub list_payby { - my $p = shift; - - my($context, $session, $custnum) = _custoragent_session_custnum($p); - return { 'error' => $session } if $context eq 'error'; - - my $cust_main = qsearchs('cust_main', { 'custnum' => $custnum } ) - or return { 'error' => "unknown custnum $custnum" }; - - return { - 'payby' => [ map { - my $cust_payby = $_; - +{ - map { $_ => $cust_payby->$_ } - qw( custpaybynum weight payby paymask paydate - payname paystate paytype - ) - }; - } - $cust_main->cust_payby - ], - }; -} - -sub insert_payby { - my $p = shift; - - my($context, $session, $custnum) = _custoragent_session_custnum($p); - return { 'error' => $session } if $context eq 'error'; - - #XXX payinfo1 + payinfo2 for CHEK? - #or take the opportunity to use separate, more well- named fields? - # my $payinfo; - # $p->{'payinfo1'} =~ /^([\dx]+)$/ - # or return { 'error' => "illegal account number ". $p->{'payinfo1'} }; - # my $payinfo1 = $1; - # $p->{'payinfo2'} =~ /^([\dx\.]+)$/ # . turned on by echeck-country CA ? - # or return { 'error' => "illegal ABA/routing number ". $p->{'payinfo2'} }; - # my $payinfo2 = $1; - # $payinfo = $payinfo1. '@'. $payinfo2; - - my $cust_payby = new FS::cust_payby { - 'custnum' => $custnum, - map { $_ => $p->{$_} } qw( weight payby payinfo paycvv paydate payname - paystate paytype payip - ), - }; - - my $error = $cust_payby->insert; - if ( $error ) { - return { 'error' => $error }; - } else { - return { 'custpaybynum' => $cust_payby->custpaybynum }; - } - -} - -sub update_payby { - my $p = shift; - - my($context, $session, $custnum) = _custoragent_session_custnum($p); - return { 'error' => $session } if $context eq 'error'; - - my $cust_payby = qsearchs('cust_payby', { - 'custnum' => $custnum, - 'custpaybynum' => $p->{'custpaybynum'}, - }) - or return { 'error' => 'unknown custpaybynum '. $p->{'custpaybynum'} }; - - foreach my $field ( - qw( weight payby payinfo paycvv paydate payname paystate paytype payip ) - ) { - next unless exists($p->{$field}); - $cust_payby->set($field,$p->{$field}); - } - - my $error = $cust_payby->replace; - if ( $error ) { - return { 'error' => $error }; - } else { - return { 'custpaybynum' => $cust_payby->custpaybynum }; - } - -} - -sub verify_payby { - my $p = shift; - - my($context, $session, $custnum) = _custoragent_session_custnum($p); - return { 'error' => $session } if $context eq 'error'; - - my $cust_payby = qsearchs('cust_payby', { - 'custnum' => $custnum, - 'custpaybynum' => $p->{'custpaybynum'}, - }) - or return { 'error' => 'unknown custpaybynum '. $p->{'custpaybynum'} }; - - return { 'error' => $cust_payby->verify }; - -} - -sub delete_payby { - my $p = shift; - - my($context, $session, $custnum) = _custoragent_session_custnum($p); - return { 'error' => $session } if $context eq 'error'; - - my $cust_payby = qsearchs('cust_payby', { - 'custnum' => $custnum, - 'custpaybynum' => $p->{'custpaybynum'}, - }) - or return { 'error' => 'unknown custpaybynum '. $p->{'custpaybynum'} }; - - my $conf = new FS::Conf; - if (($cust_payby->payby eq "DCHK" || $cust_payby->payby eq "CHEK") && $conf->exists('selfservice-ACH_info_readonly')) { - return { 'error' => "Sorry you do not have permission to delete bank information." }; - } - else { - return { 'error' => $cust_payby->delete }; - } -} - sub cancel { my $p = shift; my $session = _cache->get($p->{'session_id'}) @@ -3883,4 +3759,3 @@ sub _custoragent_session_custnum { } 1; -