> <% mt('Payment amount') |h %>
<% $money_char %> % if ( $fee ) { <% $fee_op %> <% $money_char . $fee %> <% $fee_pkg->pkg |h %> = <% length($amount) ? $money_char. sprintf('%.2f', ($fee_display eq 'add') ? $amount + $fee : $amount - $fee ) : '' %> <% $fee_display eq 'add' ? 'TOTAL' : 'AVAILABLE' %> % } % if ( $surcharge ) { A credit card surcharge of <% $money_char. sprintf('%.2f', $surcharge) %> is included in this payment % }
% if ($fee || $surcharge) { % } <%init> my %opt = @_; my $conf = new FS::Conf; my $money_char = $conf->config('money_char') || '$'; my $fee = ''; my $fee_pkg = ''; my $fee_display = ''; my $fee_op = ''; my $surcharge = ''; my $surcharge_percentage = 0; my $surcharge_flatfee = 0; if ( $opt{'process-pkgpart'} and ! $opt{'process-skip_first'} || $opt{'num_payments'} ) { $fee_display = $opt{'process-display'} || 'add'; $fee_op = $fee_display eq 'add' ? '+' : '-'; $fee_pkg = qsearchs('part_pkg', { pkgpart=>$opt{'process-pkgpart'} } ); #well ->unit_setup or ->calc_setup both call for a $cust_pkg # (though ->unit_setup doesn't use it...) $fee = $fee_pkg->option('setup_fee') if $fee_pkg; #in case.. better than dying with a perl traceback } my $amount = $opt{'amount'}; if ( $amount > 0 ) { $amount += $fee if $fee && $fee_display eq 'subtract'; #&{ $opt{post_fee_callback} }( \$amount ) if $opt{post_fee_callback}; $surcharge_percentage = $opt{'surcharge_percentage'}/100 if $opt{'surcharge_percentage'} > 0; $surcharge_flatfee = $opt{'surcharge_flatfee'} if $opt{'surcharge_flatfee'} > 0; $surcharge = $amount * $surcharge_percentage if $surcharge_percentage > 0; $surcharge += $surcharge_flatfee if $surcharge_flatfee > 0; $amount += $surcharge; $amount = sprintf("%.2f", $amount); }