summaryrefslogtreecommitdiff
path: root/httemplate/elements
diff options
context:
space:
mode:
authorChristopher Burger <burgerc@freeside.biz>2018-05-11 11:29:36 -0400
committerChristopher Burger <burgerc@freeside.biz>2018-05-24 09:16:10 -0400
commitc85d36a31cd15e8d06f9dfc7d2591f918d278d89 (patch)
tree3fada4c45f3bab3ffe6ad396a6804a66daba2893 /httemplate/elements
parenta8981b8fc11c032fd4fa1a3943c4785391a9ffb4 (diff)
RT# 79737 - Added ability to us a cc surcharge of a flat fee.
Conflicts: FS/FS/cust_main/Billing_Realtime.pm httemplate/elements/tr-select-payment_options.html
Diffstat (limited to 'httemplate/elements')
-rw-r--r--httemplate/elements/tr-amount_fee.html3
-rw-r--r--httemplate/elements/tr-select-payment_options.html99
2 files changed, 102 insertions, 0 deletions
diff --git a/httemplate/elements/tr-amount_fee.html b/httemplate/elements/tr-amount_fee.html
index 12488521a..e3b8d7800 100644
--- a/httemplate/elements/tr-amount_fee.html
+++ b/httemplate/elements/tr-amount_fee.html
@@ -94,6 +94,9 @@ if ( $amount > 0 ) {
$amount += $amount * $opt{'surcharge_percentage'}/100
if $opt{'surcharge_percentage'} > 0;
+ $amount += $opt{'surcharge_flatfee'}
+ if $opt{'surcharge_flatfee'} > 0;
+
$amount = sprintf("%.2f", $amount);
}
diff --git a/httemplate/elements/tr-select-payment_options.html b/httemplate/elements/tr-select-payment_options.html
new file mode 100644
index 000000000..8859b9b36
--- /dev/null
+++ b/httemplate/elements/tr-select-payment_options.html
@@ -0,0 +1,99 @@
+<%doc>
+
+Example:
+
+ include( '/elements/tr-select-payment_options.html',
+
+ #opt - most get used in /elements/tr-amount-fee
+ 'custnum' => 4, # customer number needed for selecting invoices
+ 'prefix' => 'pre', # prefix to fields and row ID's
+ 'amount' => 1, # payment amount
+ 'process-pkgpart' => scalar($conf->config('manual_process-pkgpart', $cust_main->agentnum)),
+ 'process-display' => scalar($conf->config('manual_process-display')),
+ 'process-skip_first' => $conf->exists('manual_process-skip_first'),
+ 'num_payments' => scalar($cust_main->cust_pay),
+ 'surcharge_percentage' =>
+ ( $payby eq 'CARD'
+ ? scalar($conf->config('credit-card-surcharge-percentage', $cust_main->agentnum))
+ : 0
+ ),
+ 'surcharge_flatfee' =>
+ ( $payby eq 'CARD'
+ ? scalar($conf->config('credit-card-surcharge-flatfee', $cust_main->agentnum))
+ : 0
+ ),
+ )
+
+</%doc>
+
+ <TR STYLE="display:block">
+ <TH ALIGN="right"><% mt('Payment options') |h %></TH>
+ <TD COLSPAN=7>
+ <SELECT
+ ID = "<% $opt{prefix} %>payment_option"
+ NAME = "<% $opt{prefix} %>payment_option"
+ onChange = "<% $opt{prefix} %>payment_option_changed(this)"
+ <% $opt{disabled} %>
+ >
+ <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>
+ </SELECT>
+ </TD>
+ </TR>
+
+ <& /elements/tr-select-invoice.html,
+ 'custnum' => $opt{custnum},
+ 'prefix' => $opt{prefix},
+ &>
+
+ <& /elements/tr-amount_fee.html,
+ 'row_style' => 'STYLE="display:none;"',
+ %opt
+ &>
+
+ <SCRIPT TYPE="text/javascript">
+
+ function <% $opt{prefix} %>payment_option_changed(what) {
+
+ if ( what.value == 'select' ) {
+ document.getElementById('payment_amount_row').style.display = 'none';
+ document.getElementById('invoice_row').style.display = 'none';
+ document.getElementById('<% $opt{prefix} %>invoice').value = 'select';
+ document.getElementById('amount').value = '';
+ }
+ else if ( what.value == 'invoice' ) {
+ document.getElementById('payment_amount_row').style.display = 'none';
+ document.getElementById('invoice_row').style.display = 'block';
+ document.getElementById('amount').value = '';
+ }
+ 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;
+ }
+
+ }
+
+ function <% $opt{prefix} %>invoice_select_changed(what) {
+
+ if ( what.value == '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;
+ }
+
+ }
+
+</SCRIPT>
+
+<%init>
+
+my %opt = @_;
+
+</%init> \ No newline at end of file