- <TR ID="payment_amount_row" <% $opt{'row_style'} %>>
+ <TR ID="payment_amount_row">
<TH ALIGN="right"><% mt('Payment amount') |h %></TH>
- <TD COLSPAN=7>
+ <TD>
<TABLE><TR><TD BGCOLOR="#ffffff">
<% $money_char %><INPUT NAME = "amount"
ID = "amount"
VALUE = "<% $amount %>"
SIZE = 8
STYLE = "text-align:right;"
-% if ( $fee || $surcharge ) {
+% if ( $fee || $surcharge_percentage || $surcharge_flatfee || $processing_fee) {
onChange = "amount_changed(this)"
onKeyDown = "amount_changed(this)"
onKeyUp = "amount_changed(this)"
<FONT SIZE="+1"><% length($amount) ? $money_char. sprintf('%.2f', ($fee_display eq 'add') ? $amount + $fee : $amount - $fee ) : '' %> <% $fee_display eq 'add' ? 'TOTAL' : 'AVAILABLE' %></FONT>
% }
-% if ( $surcharge ) {
+% if ( $surcharge_percentage || $surcharge_flatfee ) {
<INPUT TYPE="hidden" NAME="surcharge_percentage" ID="surcharge_percentage" VALUE="<% $surcharge_percentage %>">
<INPUT TYPE="hidden" NAME="surcharge_flatfee" ID="surcharge_flatfee" VALUE="<% $surcharge_flatfee %>">
</TD><TD ID="ajax_surcharge_cell" BGCOLOR="#dddddd" STYLE="border:1px solid blue">
</TD>
</TR>
-% if ($fee || $surcharge) {
+% if ( $processing_fee ) {
+ <TR>
+ <TH ALIGN="right"><% mt('Apply processing fee') |h %></TH>
+ <TD>
+ <TABLE><TR>
+ <TD BGCOLOR="#ffffff">
+ <INPUT TYPE="checkbox" NAME="processing_fee" ID="processing_fee" VALUE="<% $processing_fee %>" onclick="<% $opt{prefix} %>process_fee_changed()">
+ </TD>
+ <TD ID="ajax_processingfee_cell" BGCOLOR="#dddddd" STYLE="border:1px solid blue">
+ <FONT SIZE="+1">A processing fee of <% $processing_fee %> is being applied to this transaction.</FONT>
+ </TD>
+ </TR></TABLE>
+ </TD>
+ </TR>
+% }
+
+% if ($fee || $surcharge_percentage || $surcharge_flatfee || $processing_fee) {
<SCRIPT TYPE="text/javascript">
total_cell.innerHTML = '<FONT SIZE="+1">' + total + ' <% $fee_display eq 'add' ? 'TOTAL' : 'AVAILABLE' %></FONT>';
% }
-% if ( $surcharge ) {
+% if ( $surcharge_percentage || $surcharge_flatfee ) {
var surcharge_cell = document.getElementById('ajax_surcharge_cell');
+ var amount = what.value;
+ if (document.getElementById('processing_fee').checked == true) {
+ amount = (what.value - <% $processing_fee %>);
+ }
var surcharge = ((what.value - <% $surcharge_flatfee %>) * <% $surcharge_percentage %>) + <% $surcharge_flatfee %>;
surcharge_cell.innerHTML = '<FONT SIZE="+1">A credit card surcharge of ' + surcharge.toFixed(2) + ' is included in this payment</FONT>';
% }
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'}
}
my $amount = $opt{'amount'};
-if ( $amount > 0 ) {
+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';
$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;
+ $surcharge += $surcharge_flatfee if ( $surcharge_flatfee > 0 && $amount > 0 );
+ $processing_fee = $opt{'processing_fee'} if $opt{'processing_fee'} > 0;
$amount += $surcharge;