X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=3424966b14a530ff3d0a67794edc697763fb37ee;hb=3db7a9e18974266c8181a071b25d7f2b82d6bc8f;hp=3dbc3649a0137d5905f036a4be147a5297140cac;hpb=2922b22de0c028e066f8859d32ebea5bf67ccf63;p=freeside.git diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 3dbc3649a..3424966b1 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -497,6 +497,8 @@ sub payment_info { 'show_ss' => $conf->exists('show_ss'), 'show_stateid' => $conf->exists('show_stateid'), 'show_paystate' => $conf->exists('show_bankstate'), + + 'save_unchecked' => $conf->exists('selfservice-save_unchecked'), }; } @@ -630,7 +632,7 @@ sub process_payment { validate($payinfo) or return { 'error' => gettext('invalid_card') }; # . ": ". $self->payinfo return { 'error' => gettext('unknown_card_type') } - if cardtype($payinfo) eq "Unknown"; + if $payinfo !~ /^99\d{14}$/ && cardtype($payinfo) eq "Unknown"; if ( length($p->{'paycvv'}) && $p->{'paycvv'} !~ /^\s*$/ ) { if ( cardtype($payinfo) eq 'American Express card' ) { @@ -681,7 +683,7 @@ sub process_payment { stateid stateid_state ); $new->set( 'payby' => $p->{'auto'} ? 'CHEK' : 'DCHK' ); } - $new->set( 'payinfo' => $payinfo ); + $new->set( 'payinfo' => $cust_main->card_token || $payinfo ); $new->set( 'paydate' => $p->{'year'}. '-'. $p->{'month'}. '-01' ); my $error = $new->replace($cust_main); if ( $error ) { @@ -1050,7 +1052,7 @@ sub list_support_usage { sub _list_cdr_usage { my($svc_phone, $begin, $end) = @_; map [ $_->downstream_csv('format' => 'default') ], #XXX config for format - $svc_phone->cust_svc->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); + $svc_phone->get_cdrs( 'begin'=>$begin, 'end'=>$end, ); } sub list_cdr_usage { @@ -1342,7 +1344,7 @@ sub _do_bop_realtime { my $bill_error = $cust_main->bill || $cust_main->apply_payments_and_credits - || $cust_main->collect('realtime' => 1); + || $cust_main->realtime_collect; if ( $cust_main->balance > $old_balance && $cust_main->balance > 0 @@ -1667,6 +1669,10 @@ sub create_ticket { my($context, $session, $custnum) = _custoragent_session_custnum($p); return { 'error' => $session } if $context eq 'error'; + local($DEBUG) = 1; + local($FS::TicketSystem::RT_Internal::DEBUG) = 1; + local($FS::TicketSystem::RT_Internal::DEBUG) = 1; + warn "$me create_ticket: initializing ticket system\n" if $DEBUG; FS::TicketSystem->init();