X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=httemplate%2Fmisc%2Fpayment.cgi;h=1ae15b930143da6e79829cdba299e67beddbb7c7;hb=26004f55ce70242d07fc8de51e24439e783e9e49;hp=2c889d73b964be37ad1ec416c4695f291e96b4b0;hpb=fca1ac5d298b3896c1c42c4ffc7bdd3bab9b8516;p=freeside.git diff --git a/httemplate/misc/payment.cgi b/httemplate/misc/payment.cgi index 2c889d73b..1ae15b930 100644 --- a/httemplate/misc/payment.cgi +++ b/httemplate/misc/payment.cgi @@ -1,221 +1,241 @@ -<% include( '/elements/header.html', "Process $type{$payby} payment" ) %> -<% include( '/elements/small_custview.html', $cust_main, '', '', popurl(2) . "view/cust_main.cgi" ) %> +<& /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)', ); @@ -235,16 +255,33 @@ my $balance = $cust_main->balance; my $payinfo = ''; -#false laziness w/selfservice make_payment.html shortcut for one-country 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 $payunique = "webui-payment-". time. "-$$-". rand() * 2**32; +my $amount = ''; +if ( $balance > 0 ) { + $amount = $balance; +} -%init> +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>