'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'),
};
}
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' ) {
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);
- return { 'error' => $error } if $error;
- $cust_main = $new;
+ if ( $error ) {
+ #no, this causes customers to process their payments again
+ #return { 'error' => $error };
+ #XXX just warn verosely for now so i can figure out how these happen in
+ # the first place, eventually should redirect them to the "change
+ #address" page but indicate the payment did process??
+ delete($p->{'payinfo'}); #don't want to log this!
+ warn "WARNING: error changing customer info when processing payment (not returning to customer as a processing error): $error\n".
+ "NEW: ". Dumper($new)."\n".
+ "OLD: ". Dumper($cust_main)."\n".
+ "PACKET: ". Dumper($p)."\n";
+ #} else {
+ #not needed...
+ #$cust_main = $new;
+ }
}
return { 'error' => '' };
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 {
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