<% 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_percentage || $surcharge_flatfee ) { A credit card surcharge of <% $money_char. sprintf('%.2f', $surcharge) %> is included in this payment % }
% if ( $processing_fee ) { <% mt('Apply processing fee') |h %>
A processing fee of <% $processing_fee %> is being applied to this transaction.
% } % if ($fee || $surcharge_percentage || $surcharge_flatfee || $processing_fee) { % } <%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; my $processing_fee = 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 ) { # probably should not happen, but will prevent surcharge being applied to negative due amounts unless ($amount > 0) { $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 > 0 ); $processing_fee = $opt{'processing_fee'} if $opt{'processing_fee'} > 0; $amount += $surcharge; $amount += $processing_fee; ## needed if processing fee is checked on default. $amount = sprintf("%.2f", $amount); }