RT# 34134 - removed payment amount field from payment screen, added 3 payment options...
authorChristopher Burger <burgerc@freeside.biz>
Wed, 3 Jan 2018 00:47:44 +0000 (19:47 -0500)
committerChristopher Burger <burgerc@freeside.biz>
Wed, 3 Jan 2018 00:47:44 +0000 (19:47 -0500)
httemplate/elements/tr-amount_fee.html
httemplate/elements/tr-select-invoice.html [new file with mode: 0644]
httemplate/elements/tr-select-payment_options.html [new file with mode: 0644]
httemplate/misc/payment.cgi

index 1248852..426957a 100644 (file)
@@ -1,4 +1,4 @@
-  <TR>
+  <TR ID="payment_amount_row" STYLE="display:none;">
     <TH ALIGN="right"><% mt('Payment amount') |h %></TH>
     <TD COLSPAN=7>
       <TABLE><TR><TD BGCOLOR="#ffffff">
@@ -15,7 +15,7 @@
                                   onKeyPress = "amount_changed(this)"
 %                               }
                          >
-      </TD><TD BGCOLOR="#cccccc">
+      </TD><TD BGCOLOR="<% length($fee) ? '#cccccc' : '#ffffff' %>">
 %        if ( $fee ) {
            <INPUT TYPE="hidden" NAME="fee_pkgpart" VALUE="<% $fee_pkg->pkgpart %>">
            <INPUT TYPE="hidden" NAME="fee" VALUE="<% $fee_display eq 'add' ? $fee : '' %>">
diff --git a/httemplate/elements/tr-select-invoice.html b/httemplate/elements/tr-select-invoice.html
new file mode 100644 (file)
index 0000000..03625b6
--- /dev/null
@@ -0,0 +1,25 @@
+
+  <TR ID="invoice_row" STYLE="display:none;">
+    <TH ALIGN="right"><% mt('Open invoices') |h %></TH>
+    <TD COLSPAN=7>
+     <SELECT
+         ID       = "<% $opt{prefix} %>invoice"
+         NAME     = "<% $opt{prefix} %>invoice"
+         onChange = "<% $opt{prefix} %>invoice_select_changed(this)"
+         <% $opt{disabled} %>
+       >
+               <OPTION VALUE="select">Select an invoice to pay</OPTION>
+%         foreach my $record (@records) {
+%            my $read_date = time2str("%b %o, %Y", $record->_date);
+            <OPTION VALUE="<% $record->charged %>"><% $record->invnum %> (<% $read_date %>) - <% $record->charged %></OPTION>  
+%         }
+
+       </SELECT>       
+    </TD>
+  </TR>
+
+<%init>
+
+my %opt = @_;
+
+</%init>
diff --git a/httemplate/elements/tr-select-payment_options.html b/httemplate/elements/tr-select-payment_options.html
new file mode 100644 (file)
index 0000000..5197c37
--- /dev/null
@@ -0,0 +1,68 @@
+
+  <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,
+       %opt
+  &>
+
+  <& /elements/tr-amount_fee.html,
+       %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('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('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
index 35f57e8..7bf1713 100644 (file)
@@ -12,7 +12,8 @@
 
 <TABLE class="fsinnerbox">
 
-  <& /elements/tr-amount_fee.html,
+  <& /elements/tr-select-payment_options.html,
+       'custnum'            => $cust_main->custnum,
        'amount'             => $amount,
        'process-pkgpart'    => 
           scalar($conf->config('manual_process-pkgpart', $cust_main->agentnum)),