X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fprocess%2Frecharge_svc.html;h=b8969a6e5be5a6f125ca68189e40704f8eaa7ae2;hb=0813051e7926734289e81efb468b62940d542627;hp=8c4d13e63358d7634e094d0a36335c46da1a7009;hpb=a53dc991aa0c04c5b9a5d06256100af5e93943e1;p=freeside.git diff --git a/httemplate/misc/process/recharge_svc.html b/httemplate/misc/process/recharge_svc.html index 8c4d13e63..b8969a6e5 100755 --- a/httemplate/misc/process/recharge_svc.html +++ b/httemplate/misc/process/recharge_svc.html @@ -1,10 +1,10 @@ %if ($error) { % $cgi->param('error', $error); -<% cgi->redirect(popurl(2). "recharge_svc.html?". $cgi->query_string ) %> +<% $cgi->redirect(popurl(2). "recharge_svc.html?". $cgi->query_string ) %> %} else { -<% header("Package recharged") %> +<& /elements/header-popup.html, "Package recharged" &> %} @@ -22,6 +22,7 @@ $svcnum = $1; #untaint prepaid my $prepaid = $cgi->param('prepaid'); +$prepaid =~ s/\W//g; $prepaid =~ /^(\w*)$/; $prepaid = $1; @@ -47,7 +48,7 @@ unless ($error) { $error = $cust_main->recharge_prepay( $prepaid ); } elsif ( $payby =~ /^(CARD|DCRD|CHEK|DCHK|LECB|BILL|COMP)$/ ) { my $part_pkg = $svc_acct->cust_svc->cust_pkg->part_pkg; - $amount = $part_pkg->option('recharge_amount', 1); + my $amount = $part_pkg->option('recharge_amount', 1); my %rhash = map { $_ =~ /^recharge_(.*)$/; $1, $part_pkg->option($_) } grep { $part_pkg->option($_, 1) } qw ( recharge_seconds recharge_upbytes recharge_downbytes @@ -62,8 +63,9 @@ unless ($error) { $error = $cust_main->charge($amount, "Recharge " . $svc_acct->label, $description, $part_pkg->taxclass); + $error ||= "invalid $_" foreach grep { $rhash{$_} !~ /^\d*$/ } keys %rhash; if ($part_pkg->option('recharge_reset', 1)) { - $error ||= $svc_acct->set_usage(\%rhash); + $error ||= $svc_acct->set_usage(\%rhash, 'null' => 1); }else{ $error ||= $svc_acct->recharge(\%rhash); }