1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
7 <!-- per RT, to prevent IE compatibility mode -->
8 <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9 <!-- The X-UA-Compatible <meta> tag above must be very early in <head> -->
10 <META HTTP-Equiv="Cache-Control" Content="no-cache">
11 <META HTTP-Equiv="Pragma" Content="no-cache">
12 <META HTTP-Equiv="Expires" Content="0">
13 <SCRIPT SRC="http://localhost/freeside/elements/jquery.js"></SCRIPT>
16 <BODY onload="addRow()" BGCOLOR="#f8f8f8">
17 <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
19 <CENTER>One-time charge</CENTER>
24 <LINK REL="stylesheet" TYPE="text/css" HREF="http://localhost/freeside/elements/calendar-win2k-2.css" TITLE="win2k-2">
25 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar_stripped.js"></SCRIPT>
26 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar-en.js"></SCRIPT>
27 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar-setup.js"></SCRIPT>
31 <SCRIPT TYPE="text/javascript">
33 function enable_quick_charge (e) {
35 if ( document.QuickChargeForm.amount.value
36 && document.QuickChargeForm.pkg.value ) {
37 document.QuickChargeForm.submit.disabled = false;
39 document.QuickChargeForm.submit.disabled = true;
46 function validate_quick_charge () {
47 var pkg = document.QuickChargeForm.pkg.value;
48 var pkg_regex = /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=\[\]]*)$/ ;
49 var amount = document.QuickChargeForm.amount.value;
50 var amount_regex = /^\s*\$?\s*(\d*(\.?\d{1,2}))\s*$/ ;
53 if ( ! amount_regex.test(amount) ) {
54 alert('Illegal amount - enter an amount to charge, for example, "5" or "43" or "21.46".');
57 if ( String(pkg).length < 1 ) {
60 if ( ! pkg_regex.test(pkg) ) {
64 for (i=0; i < rownum; i++) {
65 if (! eval('pkg_regex.test(document.QuickChargeForm.description' + i + '.value)')){
75 alert('Enter a description for the one-time charge');
79 alert('Illegal description - spaces, letters, numbers, and the following punctuation characters are allowed: . , ! ? @ # $ % & ( ) - + ; : ' + "'" + ' " = [ ]' );
83 function bill_now_changed (what) {
86 form.start_date_text.disabled = true;
87 form.start_date.style.backgroundColor = '#dddddd';
88 form.start_date_button.style.display = 'none';
89 form.start_date_button_disabled.style.display = '';
90 form.invoice_terms.disabled = false;
92 form.start_date_text.disabled = false;
93 form.start_date.style.backgroundColor = '#ffffff';
94 form.start_date_button.style.display = '';
95 form.start_date_button_disabled.style.display = 'none';
96 form.invoice_terms.disabled = true;
102 <FORM ACTION = "process/quick-charge.cgi"
103 NAME = "QuickChargeForm"
104 ID = "QuickChargeForm"
106 onSubmit = "document.QuickChargeForm.submit.disabled=true; return validate_quick_charge();"
109 <INPUT TYPE="hidden" NAME="custnum" VALUE="2">
110 <INPUT TYPE="hidden" NAME="prospectnum" VALUE="">
111 <INPUT TYPE="hidden" NAME="quotationnum" VALUE="">
113 <TABLE ID="QuickChargeTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 STYLE="background-color: #cccccc">
117 <TD ALIGN="right">Amount to charge </TD>
119 $<INPUT TYPE = "text"
123 onChange = "return enable_quick_charge(event)"
124 onKeyPress = "return enable_quick_charge(event)"
133 STYLE = "padding-top: 3px"
139 <TD ID="_input0">$<INPUT TYPE = "text"
157 <TD ALIGN="right">Quantity </TD>
163 onKeyPress = "return enable_quick_charge(event)">
169 <TD ALIGN="right">Package class</TD>
181 <OPTION VALUE="">(none)
201 <TD ALIGN="right">Invoice now</TD>
203 <INPUT TYPE = "checkbox"
207 onClick = "bill_now_changed(this);"
208 onChange = "bill_now_changed(this);"
211 <SELECT NAME = "invoice_terms"
215 # #false laziness w/select-table.html
217 <OPTION VALUE="">Default (Payable upon receipt)
218 <OPTION VALUE="Payable upon receipt" >Payable upon receipt
219 <OPTION VALUE="Net 0" >Net 0
220 <OPTION VALUE="Net 3" >Net 3
221 <OPTION VALUE="Net 5" >Net 5
222 <OPTION VALUE="Net 9" >Net 9
223 <OPTION VALUE="Net 10" >Net 10
224 <OPTION VALUE="Net 14" >Net 14
225 <OPTION VALUE="Net 15" >Net 15
226 <OPTION VALUE="Net 18" >Net 18
227 <OPTION VALUE="Net 20" >Net 20
228 <OPTION VALUE="Net 21" >Net 21
229 <OPTION VALUE="Net 25" >Net 25
230 <OPTION VALUE="Net 30" >Net 30
231 <OPTION VALUE="Net 45" >Net 45
232 <OPTION VALUE="Net 60" >Net 60
233 <OPTION VALUE="Net 90" >Net 90
240 <TD ALIGN="right">Charge date </TD>
245 ID = "start_date_text"
246 VALUE = "04/01/2016 00:00:00 -0700 (PDT)"
247 onKeyPress="return enable_quick_charge(event)"
250 <IMG SRC = "http://localhost/freeside/images/calendar.png"
251 ID = "start_date_button"
252 TITLE = "Select date"
253 STYLE = "cursor:pointer"
255 <IMG SRC = "http://localhost/freeside/images/calendar-disabled.png"
256 ID = "start_date_button_disabled"
259 <FONT SIZE=-1>(leave blank to charge immediately)</FONT>
263 <SCRIPT TYPE="text/javascript">
265 inputField: "start_date_text",
266 ifFormat: "%m/%d/%Y",
267 button: "start_date_button",
276 STYLE = "padding-top: 3px"
278 >Invoice this charge separately</TD>
283 <INPUT TYPE = "checkbox"
284 NAME = "separate_bill"
301 <TD ALIGN="right">Tax exempt </TD>
302 <TD><INPUT TYPE="checkbox" NAME="setuptax" VALUE="Y" ></TD>
306 <INPUT TYPE="hidden" NAME="taxclass" VALUE="">
310 <INPUT TYPE="hidden" NAME="taxproductnum" VALUE="">
314 <INPUT TYPE="hidden" NAME="tax_override" VALUE="">
320 <TD ALIGN="right">Description </TD>
327 onChange = "return enable_quick_charge(event)"
328 onKeyPress = "return enable_quick_charge(event)"
335 <TD><FONT SIZE="-1">Optional additional description (also printed on invoice): </FONT></TD>
343 <INPUT TYPE="submit" ID="submit" NAME="submit" VALUE="Add one-time charge" DISABLED>
348 <SCRIPT TYPE="text/javascript">
352 function possiblyAddRow(e) {
354 if ( ( rownum - this.getAttribute('rownum') ) == 1 ) {
364 var table = document.getElementById('QuickChargeTable');
365 var tablebody = table.getElementsByTagName('tbody').item(0);
367 var row = document.createElement('TR');
369 var empty_cell = document.createElement('TD');
370 row.appendChild(empty_cell);
372 var description_cell = document.createElement('TD');
374 //var description_input = document.createElement('INPUT');
375 var di = document.createElement('INPUT');
376 di.setAttribute('name', 'description'+rownum);
377 di.setAttribute('id', 'description'+rownum);
378 di.setAttribute('size', 60);
379 di.setAttribute('maxLength', 65);
380 di.setAttribute('rownum', rownum);
381 di.onkeyup = possiblyAddRow;
382 di.onkeypress = enable_quick_charge;
383 description_cell.appendChild(di);
385 row.appendChild(description_cell);
387 tablebody.appendChild(row);