[freeside-commits] branch master updated. 88371c24e0b727646f0b01288f01439a06967fe7

Christopher Burger burgerc at freeside.biz
Mon May 14 07:21:42 PDT 2018


The branch, master has been updated
       via  88371c24e0b727646f0b01288f01439a06967fe7 (commit)
      from  2eea268a59cf357853e31ff8d5db6033e4bdc8ea (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 88371c24e0b727646f0b01288f01439a06967fe7
Author: Christopher Burger <burgerc at freeside.biz>
Date:   Mon May 14 10:21:15 2018 -0400

    RT# 34134 - fixed error with credit surchage not attached to total

diff --git a/httemplate/elements/tr-amount_fee.html b/httemplate/elements/tr-amount_fee.html
index 9e6d9e96d..3ad2cdf06 100644
--- a/httemplate/elements/tr-amount_fee.html
+++ b/httemplate/elements/tr-amount_fee.html
@@ -8,7 +8,7 @@
                                 VALUE    = "<% $amount %>"
                                 SIZE     = 8
                                 STYLE    = "text-align:right;"
-%                               if ( $fee ) {
+%                               if ( $fee || $surcharge ) {
                                   onChange   = "amount_changed(this)"
                                   onKeyDown  = "amount_changed(this)"
                                   onKeyUp    = "amount_changed(this)"
@@ -28,17 +28,23 @@
            <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 ) {
+           <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">
+           <FONT SIZE="+1">A credit card surcharge of <% $money_char. sprintf('%.2f', ($amount * $surcharge_percentage) + $surcharge_flatfee) %> is included in this payment</FONT>
+%        }
       </TD></TR></TABLE>
     </TD>
   </TR>
 
-% if ( $fee ) {
+% if ($fee || $surcharge) {
 
     <SCRIPT TYPE="text/javascript">
 
       function amount_changed(what) {
 
-
+% if ( $fee ) {
         var total = '';
         if ( what.value.length ) {
           total = parseFloat(what.value) <% $fee_op %> <% $fee %>;
@@ -48,6 +54,13 @@
 
         var total_cell = document.getElementById('ajax_total_cell');
         total_cell.innerHTML = '<FONT SIZE="+1">' + total + ' <% $fee_display eq 'add' ? 'TOTAL' : 'AVAILABLE' %></FONT>';
+% }
+
+% if ( $surcharge ) {
+        var surcharge_cell = document.getElementById('ajax_surcharge_cell');
+        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>';
+% }
 
       }
 
@@ -66,6 +79,9 @@ 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'}
@@ -91,11 +107,13 @@ if ( $amount > 0 ) {
     if $fee && $fee_display eq 'subtract';
 
   #&{ $opt{post_fee_callback} }( \$amount ) if $opt{post_fee_callback};
-  $amount += $amount * $opt{'surcharge_percentage'}/100
-    if $opt{'surcharge_percentage'} > 0;
 
-  $amount += $opt{'surcharge_flatfee'}
-    if $opt{'surcharge_flatfee'} > 0;
+  $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);
 }
diff --git a/httemplate/elements/tr-select-payment_options.html b/httemplate/elements/tr-select-payment_options.html
index 8859b9b36..15f92775a 100644
--- a/httemplate/elements/tr-select-payment_options.html
+++ b/httemplate/elements/tr-select-payment_options.html
@@ -38,7 +38,7 @@ Example:
   		<OPTION VALUE="select">Select payment option</OPTION>
   		<OPTION VALUE="<% $opt{amount} %>">Pay full balance</OPTION>
   		<OPTION VALUE="invoice">Pay specific invoice</OPTION>
-  		<OPTION VALUE="">Pay specific amount</OPTION>
+      <OPTION VALUE="specific">Pay specific amount</OPTION>
 	</SELECT>	
     </TD>
   </TR>
@@ -57,6 +57,14 @@ Example:
 
       function <% $opt{prefix} %>payment_option_changed(what) {
 
+        var surcharge;
+        if (document.getElementById('surcharge_percentage') || document.getElementById('surcharge_percentage')) {
+          surcharge = (+what.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value;
+        }
+        else { surcharge = 0; }
+        var amount = +what.value + +surcharge;
+        document.getElementById('amount').disabled = true;
+
         if ( what.value == 'select' ) {
         	document.getElementById('payment_amount_row').style.display = 'none';
         	document.getElementById('invoice_row').style.display = 'none';
@@ -68,24 +76,48 @@ Example:
         	document.getElementById('invoice_row').style.display = 'block';
         	document.getElementById('amount').value = '';
         }
+        else if ( what.value == 'specific' ) {
+          document.getElementById('payment_amount_row').style.display = 'block';
+          document.getElementById('invoice_row').style.display = 'none';
+          document.getElementById('<% $opt{prefix} %>invoice').value = 'select';
+          document.getElementById('amount').value = '0.00';
+          document.getElementById('amount').disabled = false;
+          if (document.getElementById('ajax_surcharge_cell')) {
+            document.getElementById('ajax_surcharge_cell').innerHTML = '<FONT SIZE="+1">A credit card surcharge of <% $money_char %>0.00 is included in this payment</FONT>';
+          }
+        }
         else {
         	document.getElementById('payment_amount_row').style.display = 'block';
         	document.getElementById('invoice_row').style.display = 'none';
           document.getElementById('<% $opt{prefix} %>invoice').value = 'select';
-        	document.getElementById('amount').value = what.value;
+          document.getElementById('amount').value = amount.toFixed(2);
+          if (document.getElementById('ajax_surcharge_cell')) {
+            document.getElementById('ajax_surcharge_cell').innerHTML = '<FONT SIZE="+1">A credit card surcharge of <% $money_char %>' + surcharge.toFixed(2) + ' is included in this payment</FONT>';
+          }
         }
 
       }
 
       function <% $opt{prefix} %>invoice_select_changed(what) {
 
+        var surcharge;
+        if (document.getElementById('surcharge_percentage') || document.getElementById('surcharge_percentage')) {
+          surcharge = (+what.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value;
+        }
+        else { surcharge = 0; }
+        var amount = +what.value + +surcharge;
+
         if ( what.value == 'select' ) {
+          alert("we have select");
         	document.getElementById('payment_amount_row').style.display = 'none';
         	document.getElementById('amount').value = '';
         }
         else {
         	document.getElementById('payment_amount_row').style.display = 'block';
-        	document.getElementById('amount').value = what.value;
+          document.getElementById('amount').value = amount.toFixed(2);
+          if (document.getElementById('ajax_surcharge_cell')) {
+            document.getElementById('ajax_surcharge_cell').innerHTML = '<FONT SIZE="+1">A credit card surcharge of <% $money_char %>' + surcharge.toFixed(2) + ' is included in this payment</FONT>';
+          }
         }
 
       }
@@ -96,4 +128,7 @@ Example:
 
 my %opt = @_;
 
+my $conf = new FS::Conf;
+my $money_char = $conf->config('money_char') || '$';
+
 </%init>
\ No newline at end of file

-----------------------------------------------------------------------

Summary of changes:
 httemplate/elements/tr-amount_fee.html             | 32 +++++++++++++----
 httemplate/elements/tr-select-payment_options.html | 41 ++++++++++++++++++++--
 2 files changed, 63 insertions(+), 10 deletions(-)




More information about the freeside-commits mailing list