X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Fpayment.cgi;h=1ae15b930143da6e79829cdba299e67beddbb7c7;hb=26004f55ce70242d07fc8de51e24439e783e9e49;hp=ec50c03f166797be96aca56a68b2fa0e8c23679e;hpb=2c757d7db4cb6a7b9655de13206fcc84fb7ce61f;p=freeside.git diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index ec50c03f1..1ae15b930 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -1,199 +1,287 @@ -<% - my %type = ( 'CARD' => 'credit card', - 'CHEK' => 'electronic check (ACH)', - ); +<& /elements/header.html, mt("Process [_1] payment",$type{$payby}) &> +<& /elements/small_custview.html, $cust_main, '', '', popurl(2) . "view/cust_main.cgi" &> +
-<%= include('/elements/footer.html') %> +<& /elements/footer.html &> +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Process payment'); + +my %type = ( 'CARD' => 'credit card', + 'CHEK' => 'electronic check (ACH)', + ); + +$cgi->param('payby') =~ /^(CARD|CHEK)$/ + or die "unknown payby ". $cgi->param('payby'); +my $payby = $1; + +$cgi->param('custnum') =~ /^(\d+)$/ + or die "illegal custnum ". $cgi->param('custnum'); +my $custnum = $1; + +my $cust_main = qsearchs( 'cust_main', { 'custnum'=>$custnum } ); +die "unknown custnum $custnum" unless $cust_main; + +my $balance = $cust_main->balance; + +my $payinfo = ''; + +my $conf = new FS::Conf; + +#false laziness w/selfservice make_payment.html shortcut for one-country +my %states = map { $_->state => 1 } + qsearch('cust_main_county', { + 'country' => $conf->config('countrydefault') || 'US' + } ); +my @states = sort { $a cmp $b } keys %states; + +my $amount = ''; +if ( $balance > 0 ) { + $amount = $balance; +} + +my $post_fee_callback = sub { + my( $amountref ) = @_; + + return unless $$amountref > 0; + + my $conf = new FS::Conf; + + my $cc_surcharge_pct = $conf->config('credit-card-surcharge-percentage'); + $$amountref += $$amountref * $cc_surcharge_pct/100 if $cc_surcharge_pct > 0; + + $$amountref = sprintf("%.2f", $$amountref); +}; + +my $payunique = "webui-payment-". time. "-$$-". rand() * 2**32; + +%init>