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">
15 <BODY onload="addRow()" BGCOLOR="#f8f8f8">
16 <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
18 <CENTER>One-time charge</CENTER>
23 <LINK REL="stylesheet" TYPE="text/css" HREF="http://localhost/freeside/elements/calendar-win2k-2.css" TITLE="win2k-2">
24 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar_stripped.js"></SCRIPT>
25 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar-en.js"></SCRIPT>
26 <SCRIPT TYPE="text/javascript" SRC="http://localhost/freeside/elements/calendar-setup.js"></SCRIPT>
30 <SCRIPT TYPE="text/javascript">
32 function enable_quick_charge (e) {
34 if ( document.QuickChargeForm.amount.value
35 && document.QuickChargeForm.pkg.value ) {
36 document.QuickChargeForm.submit.disabled = false;
38 document.QuickChargeForm.submit.disabled = true;
45 function validate_quick_charge () {
46 var pkg = document.QuickChargeForm.pkg.value;
47 var pkg_regex = /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=\[\]]*)$/ ;
48 var amount = document.QuickChargeForm.amount.value;
49 var amount_regex = /^\s*\$?\s*(\d*(\.?\d{1,2}))\s*$/ ;
52 if ( ! amount_regex.test(amount) ) {
53 alert('Illegal amount - enter an amount to charge, for example, "5" or "43" or "21.46".');
56 if ( String(pkg).length < 1 ) {
59 if ( ! pkg_regex.test(pkg) ) {
63 for (i=0; i < rownum; i++) {
64 if (! eval('pkg_regex.test(document.QuickChargeForm.description' + i + '.value)')){
74 alert('Enter a description for the one-time charge');
78 alert('Illegal description - spaces, letters, numbers, and the following punctuation characters are allowed: . , ! ? @ # $ % & ( ) - + ; : ' + "'" + ' " = [ ]' );
82 function bill_now_changed (what) {
85 form.start_date_text.disabled = true;
86 form.start_date.style.backgroundColor = '#dddddd';
87 form.start_date_button.style.display = 'none';
88 form.start_date_button_disabled.style.display = '';
89 form.invoice_terms.disabled = false;
91 form.start_date_text.disabled = false;
92 form.start_date.style.backgroundColor = '#ffffff';
93 form.start_date_button.style.display = '';
94 form.start_date_button_disabled.style.display = 'none';
95 form.invoice_terms.disabled = true;
101 <FORM ACTION = "process/quick-charge.cgi"
102 NAME = "QuickChargeForm"
103 ID = "QuickChargeForm"
105 onSubmit = "document.QuickChargeForm.submit.disabled=true; return validate_quick_charge();"
108 <INPUT TYPE="hidden" NAME="custnum" VALUE="2">
109 <INPUT TYPE="hidden" NAME="prospectnum" VALUE="">
110 <INPUT TYPE="hidden" NAME="quotationnum" VALUE="">
112 <TABLE ID="QuickChargeTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 STYLE="background-color: #cccccc">
116 <TD ALIGN="right">Amount to charge </TD>
118 $<INPUT TYPE = "text"
122 onChange = "return enable_quick_charge(event)"
123 onKeyPress = "return enable_quick_charge(event)"
132 STYLE = "padding-top: 3px"
138 <TD ID="_input0">$<INPUT TYPE = "text"
156 <TD ALIGN="right">Quantity </TD>
162 onKeyPress = "return enable_quick_charge(event)">
168 <TD ALIGN="right">Package class</TD>
180 <OPTION VALUE="">(none)
200 <TD ALIGN="right">Invoice now</TD>
202 <INPUT TYPE = "checkbox"
206 onClick = "bill_now_changed(this);"
207 onChange = "bill_now_changed(this);"
210 <SELECT NAME = "invoice_terms"
214 # #false laziness w/select-table.html
216 <OPTION VALUE="">Default (Payable upon receipt)
217 <OPTION VALUE="Payable upon receipt" >Payable upon receipt
218 <OPTION VALUE="Net 0" >Net 0
219 <OPTION VALUE="Net 3" >Net 3
220 <OPTION VALUE="Net 5" >Net 5
221 <OPTION VALUE="Net 9" >Net 9
222 <OPTION VALUE="Net 10" >Net 10
223 <OPTION VALUE="Net 14" >Net 14
224 <OPTION VALUE="Net 15" >Net 15
225 <OPTION VALUE="Net 18" >Net 18
226 <OPTION VALUE="Net 20" >Net 20
227 <OPTION VALUE="Net 21" >Net 21
228 <OPTION VALUE="Net 25" >Net 25
229 <OPTION VALUE="Net 30" >Net 30
230 <OPTION VALUE="Net 45" >Net 45
231 <OPTION VALUE="Net 60" >Net 60
232 <OPTION VALUE="Net 90" >Net 90
239 <TD ALIGN="right">Charge date </TD>
244 ID = "start_date_text"
245 VALUE = "04/01/2016 00:00:00 -0700 (PDT)"
246 onKeyPress="return enable_quick_charge(event)"
249 <IMG SRC = "http://localhost/freeside/images/calendar.png"
250 ID = "start_date_button"
251 TITLE = "Select date"
252 STYLE = "cursor:pointer"
254 <IMG SRC = "http://localhost/freeside/images/calendar-disabled.png"
255 ID = "start_date_button_disabled"
258 <FONT SIZE=-1>(leave blank to charge immediately)</FONT>
262 <SCRIPT TYPE="text/javascript">
264 inputField: "start_date_text",
265 ifFormat: "%m/%d/%Y",
266 button: "start_date_button",
275 STYLE = "padding-top: 3px"
277 >Invoice this charge separately</TD>
282 <INPUT TYPE = "checkbox"
283 NAME = "separate_bill"
299 <TD ALIGN="right">Disable automatic electronic check charge </TD>
300 <TD COLSPAN=6><INPUT TYPE="checkbox" NAME="no_auto" VALUE="Y"></TD>
304 <TD ALIGN="right">Tax exempt </TD>
305 <TD><INPUT TYPE="checkbox" NAME="setuptax" VALUE="Y" ></TD>
309 <INPUT TYPE="hidden" NAME="taxclass" VALUE="">
313 <INPUT TYPE="hidden" NAME="taxproductnum" VALUE="">
317 <INPUT TYPE="hidden" NAME="tax_override" VALUE="">
323 <TD ALIGN="right">Description </TD>
330 onChange = "return enable_quick_charge(event)"
331 onKeyPress = "return enable_quick_charge(event)"
338 <TD><FONT SIZE="-1">Optional additional description (also printed on invoice): </FONT></TD>
346 <INPUT TYPE="submit" ID="submit" NAME="submit" VALUE="Add one-time charge" DISABLED>
351 <SCRIPT TYPE="text/javascript">
355 function possiblyAddRow(e) {
357 if ( ( rownum - this.getAttribute('rownum') ) == 1 ) {
367 var table = document.getElementById('QuickChargeTable');
368 var tablebody = table.getElementsByTagName('tbody').item(0);
370 var row = document.createElement('TR');
372 var empty_cell = document.createElement('TD');
373 row.appendChild(empty_cell);
375 var description_cell = document.createElement('TD');
377 //var description_input = document.createElement('INPUT');
378 var di = document.createElement('INPUT');
379 di.setAttribute('name', 'description'+rownum);
380 di.setAttribute('id', 'description'+rownum);
381 di.setAttribute('size', 60);
382 di.setAttribute('maxLength', 65);
383 di.setAttribute('rownum', rownum);
384 di.onkeyup = possiblyAddRow;
385 di.onkeypress = enable_quick_charge;
386 description_cell.appendChild(di);
388 row.appendChild(description_cell);
390 tablebody.appendChild(row);