RT# 76093 - Added ability to charge a processing fee when taking a payment on the...
[freeside.git] / httemplate / elements / tr-amount_fee.html
index e3b8d78..1cd59bb 100644 (file)
@@ -8,7 +8,7 @@
                                 VALUE    = "<% $amount %>"
                                 SIZE     = 8
                                 STYLE    = "text-align:right;"
-%                               if ( $fee ) {
+%                               if ( $fee || $processing_fee) {
                                   onChange   = "amount_changed(this)"
                                   onKeyDown  = "amount_changed(this)"
                                   onKeyUp    = "amount_changed(this)"
     </TD>
   </TR>
 
-% if ( $fee ) {
+%        if ( $processing_fee ) {
+      <TR>
+        <TH ALIGN="right"><% mt('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>
+             Apply a processing fee of <% $processing_fee %> .</FONT>
+            </TD>
+          </TR></TABLE>
+        </TD>
+      </TR>
+%        }
+
+% if ($fee) {
 
     <SCRIPT TYPE="text/javascript">
 
 
 % }
 
+% if ($processing_fee) {
+
+    <SCRIPT TYPE="text/javascript">
+
+      function <% $opt{prefix} %>process_fee_changed(what) {
+
+        if (document.getElementById('processing_fee').checked == true) {
+          var amount = +document.getElementById('amount').value + +document.getElementById('processing_fee').value;
+          $('#amount').val(amount.toFixed(2));
+        }
+        else {
+          var amount = +document.getElementById('amount').value - +document.getElementById('processing_fee').value;
+          $('#amount').val(amount.toFixed(2));
+        }
+
+      }
+
+    </SCRIPT>
+
+% }
+
 <%init>
 
 my %opt = @_;
@@ -66,6 +103,7 @@ my $fee = '';
 my $fee_pkg = '';
 my $fee_display = '';
 my $fee_op = '';
+my $processing_fee = 0;
 
 if ( $opt{'process-pkgpart'}
      and ! $opt{'process-skip_first'} || $opt{'num_payments'}
@@ -97,6 +135,8 @@ if ( $amount > 0 ) {
   $amount += $opt{'surcharge_flatfee'}
     if $opt{'surcharge_flatfee'} > 0;
 
+  $processing_fee = $opt{'processing_fee'} if $opt{'processing_fee'} > 0;
+
   $amount = sprintf("%.2f", $amount);
 }