summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-11-05 17:44:50 -0500
committerChristopher Burger <burgerc@freeside.biz>2018-11-05 17:44:50 -0500
commit94b60bb13c044e436800239be3e3c5a029bdff8e (patch)
tree9491c9a0f78210df8631df281a485ec003ca84cc /httemplate/elements
parent1144312a89d0a9d9598f7279bb7c7b8f65e5b0b9 (diff)
RT# 76093 - Added ability to charge a processing fee when taking a payment on the back end
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/tr-amount_fee.html26
-rw-r--r--httemplate/elements/tr-select-payment_options.html40
2 files changed, 62 insertions, 4 deletions
diff --git a/httemplate/elements/tr-amount_fee.html b/httemplate/elements/tr-amount_fee.html
index a84fef6..94795de 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 || $surcharge_percentage || $surcharge_flatfee ) {
+% if ( $fee || $surcharge_percentage || $surcharge_flatfee || $processing_fee) {
onChange = "amount_changed(this)"
onKeyDown = "amount_changed(this)"
onKeyUp = "amount_changed(this)"
@@ -38,7 +38,23 @@
</TD>
</TR>
-% if ($fee || $surcharge_percentage || $surcharge_flatfee ) {
+% 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">
@@ -58,6 +74,10 @@
% 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>';
% }
@@ -82,6 +102,7 @@ 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'}
@@ -115,6 +136,7 @@ if ( $amount ) {
$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;
diff --git a/httemplate/elements/tr-select-payment_options.html b/httemplate/elements/tr-select-payment_options.html
index f86f3ed..c5b84e7 100644
--- a/httemplate/elements/tr-select-payment_options.html
+++ b/httemplate/elements/tr-select-payment_options.html
@@ -22,6 +22,7 @@ Example:
? scalar($conf->config('credit-card-surcharge-flatfee', $cust_main->agentnum))
: 0
),
+ 'processing_fee' => scalar($conf->config('processing-fee', $cust_main->agentnum)),
)
</%doc>
@@ -59,6 +60,7 @@ Example:
$('#payment_option_row').<% $payment_option_row %>();
$('#payment_amount_row').<% $payment_amount_row %>();
+ $('#ajax_processingfee_cell').hide();
if($('#payment_amount_row').is(':visible')) {
var surcharge;
@@ -76,11 +78,21 @@ Example:
function <% $opt{prefix} %>payment_option_changed(what) {
var surcharge;
+ var processingFee = 0;
+ var pfElement = document.getElementById('processing_fee');
+
if (document.getElementById('surcharge_percentage') || document.getElementById('surcharge_flatfee')) {
surcharge = (+what.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value;
}
else { surcharge = 0; }
- var amount = +what.value + +surcharge;
+
+ if (pfElement != null) {
+ if (pfElement.checked == true) {
+ processingFee = +pfElement.value;
+ }
+ }
+
+ var amount = +what.value + +surcharge + +processingFee;
document.getElementById('amount').disabled = true;
if ( what.value == 'select' ) {
@@ -131,12 +143,21 @@ Example:
function <% $opt{prefix} %>invoice_select_changed(what) {
var surcharge;
+ var processingFee = 0;
+ var pfElement = document.getElementById('processing_fee');
var invdue = document.getElementById("<% $opt{prefix} %>inv" + what.value);
if (document.getElementById('surcharge_percentage') || document.getElementById('surcharge_flatfee')) {
surcharge = (+invdue.value * +document.getElementById('surcharge_percentage').value) + +document.getElementById('surcharge_flatfee').value;
}
else { surcharge = 0; }
- var amount = +invdue.value + +surcharge;
+
+ if (pfElement != null) {
+ if (pfElement.checked == true) {
+ processingFee = +pfElement.value;
+ }
+ }
+
+ var amount = +invdue.value + +surcharge + +processingFee;
if ( what.value == 'select' ) {
$('#payment_amount_row').hide();
@@ -154,6 +175,21 @@ Example:
}
+ 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));
+ $('#ajax_processingfee_cell').show();
+ }
+ else {
+ var amount = +document.getElementById('amount').value - +document.getElementById('processing_fee').value;
+ $('#amount').val(amount.toFixed(2));
+ $('#ajax_processingfee_cell').hide();
+ }
+
+ }
+
</SCRIPT>
<%init>