update tests to keep in sync with v4
[freeside.git] / FS-Test / share / output / edit / quick-charge.html / custnum=2
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <HTML>
3   <HEAD>
4     <TITLE>
5       One-time charge
6     </TITLE>
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     
14   </HEAD>
15   <BODY onload="addRow()" BGCOLOR="#f8f8f8">
16     <link href="http://localhost/freeside/elements/freeside.css" type="text/css" rel="stylesheet">
17     <FONT SIZE=6>
18       <CENTER>One-time charge</CENTER>
19     </FONT>
20     <BR><!--<BR>-->
21
22
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>
27
28
29
30 <SCRIPT TYPE="text/javascript">
31
32 function enable_quick_charge (e) {
33
34   if (    document.QuickChargeForm.amount.value
35        && document.QuickChargeForm.pkg.value    ) {
36     document.QuickChargeForm.submit.disabled = false;
37   } else {
38     document.QuickChargeForm.submit.disabled = true;
39   }
40
41     return true;
42
43 }
44
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*$/ ;
50   var rval = true;
51
52   if ( ! amount_regex.test(amount) ) {
53     alert('Illegal amount - enter an amount to charge, for example, "5" or "43" or "21.46".');
54     return false;
55   }
56   if ( String(pkg).length < 1 ) {
57     rval = false;
58   }
59   if ( ! pkg_regex.test(pkg) ) {
60     rval = false;
61   }
62   var i=0;
63   for (i=0; i < rownum; i++) {
64     if (! eval('pkg_regex.test(document.QuickChargeForm.description' + i + '.value)')){
65       rval = false;
66       break;
67     }
68   }
69   if (rval == true) {
70     return true;
71   }
72
73   if ( ! pkg ) {
74     alert('Enter a description for the one-time charge');
75     return false;
76   }
77
78   alert('Illegal description - spaces, letters, numbers, and the following punctuation characters are allowed: . , ! ? @ # $ % & ( ) - + ; : ' + "'" + ' " = [ ]' );
79   return false;
80 }
81
82 function bill_now_changed (what) {
83   var form = what.form;
84   if ( what.checked ) {
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;
90   } else {
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;
96   }
97 }
98
99 </SCRIPT>
100
101 <FORM ACTION   = "process/quick-charge.cgi"
102       NAME     = "QuickChargeForm"
103       ID       = "QuickChargeForm"
104       METHOD   = "POST"
105       onSubmit = "document.QuickChargeForm.submit.disabled=true; return validate_quick_charge();"
106 >
107
108 <INPUT TYPE="hidden" NAME="custnum"     VALUE="2">
109 <INPUT TYPE="hidden" NAME="prospectnum" VALUE="">
110 <INPUT TYPE="hidden" NAME="quotationnum" VALUE="">
111
112 <TABLE ID="QuickChargeTable" BGCOLOR="#cccccc" BORDER=0 CELLSPACING=0 STYLE="background-color: #cccccc">
113
114
115     <TR>
116       <TD ALIGN="right">Amount to charge </TD>
117       <TD>
118         $<INPUT TYPE       = "text"
119                                 NAME       = "amount"
120                                 SIZE       = 8
121                                 VALUE      = ""
122                                 onChange   = "return enable_quick_charge(event)"
123                                 onKeyPress = "return enable_quick_charge(event)"
124                          >
125       </TD>
126     </TR>
127
128       <TR>
129
130   <TD ALIGN  = "right"
131       VALIGN = "top"
132       STYLE  = "padding-top: 3px"
133       ID     = "_label0"
134   >Cost</TD>
135
136
137
138   <TD   ID="_input0">$<INPUT TYPE  = "text"
139                            NAME  = "setup_cost"
140                            ID    = ""
141                            VALUE = ""
142                            SIZE="8"
143                            
144                            
145                            
146                            
147                            
148                     >
149 </TD>
150
151 </TR>
152
153  
154
155     <TR>
156       <TD ALIGN="right">Quantity </TD>
157       <TD>
158         <INPUT TYPE       = "text"
159                NAME       = "quantity"
160                SIZE       = 4
161                VALUE      = "1"
162                onKeyPress = "return enable_quick_charge(event)">
163       </TD>
164     </TR>
165
166
167   <TR>
168     <TD ALIGN="right">Package class</TD>
169     <TD>
170       
171 <SELECT 
172         NAME = "classnum"
173         ID   = "classnum"
174         
175         
176         
177 >
178
179
180     <OPTION VALUE="">(none)
181
182     <OPTION VALUE="1"
183             
184     >
185      Fees
186
187
188 </SELECT>
189
190
191
192     </TD>
193   </TR>
194
195
196
197
198
199     <TR>
200       <TD ALIGN="right">Invoice now</TD>
201       <TD>
202         <INPUT TYPE  = "checkbox"
203                NAME  = "bill_now"
204                VALUE = "1"
205                
206                onClick  = "bill_now_changed(this);"
207                onChange = "bill_now_changed(this);"
208         >
209         with terms 
210         <SELECT NAME = "invoice_terms"
211         ID   = "invoice_terms"
212         DISABLED
213 >
214 # #false laziness w/select-table.html
215
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
233 </SELECT>
234
235       </TD>
236     </TR>
237
238     <TR>
239       <TD ALIGN="right">Charge date </TD>
240       <TD>
241         <INPUT TYPE  = "text"
242                NAME  = "start_date"
243                SIZE  = 32
244                ID    = "start_date_text"
245                VALUE = "04/01/2016 00:00:00 -0700 (PDT)"
246                onKeyPress="return enable_quick_charge(event)"
247                
248         >
249         <IMG SRC   = "http://localhost/freeside/images/calendar.png"
250              ID    = "start_date_button"
251              TITLE = "Select date"
252              STYLE = "cursor:pointer"
253         >
254         <IMG SRC   = "http://localhost/freeside/images/calendar-disabled.png"
255              ID    = "start_date_button_disabled"
256              STYLE="display:none"
257         >
258         <FONT SIZE=-1>(leave blank to charge immediately)</FONT>
259       </TD>
260     </TR>
261
262     <SCRIPT TYPE="text/javascript">
263       Calendar.setup({
264         inputField: "start_date_text",
265         ifFormat:   "%m/%d/%Y",
266         button:     "start_date_button",
267         align:      "BR"
268       });
269     </SCRIPT>
270
271 <TR>
272
273   <TD ALIGN  = "right"
274       VALIGN = "top"
275       STYLE  = "padding-top: 3px"
276       ID     = "_label0"
277   >Invoice this charge separately</TD>
278
279
280
281   <TD >
282     <INPUT TYPE  = "checkbox"
283                            NAME  = "separate_bill"
284                            ID    = ""
285                            VALUE = "Y"
286                            
287                            
288                            
289                     >
290
291   </TD>
292
293 </TR>
294
295
296
297
298     <TR>
299       <TD ALIGN="right">Disable automatic electronic check charge </TD>
300       <TD COLSPAN=6><INPUT TYPE="checkbox" NAME="no_auto" VALUE="Y"></TD>
301     </TR>
302
303 <TR>
304   <TD ALIGN="right">Tax exempt </TD>
305   <TD><INPUT TYPE="checkbox" NAME="setuptax" VALUE="Y" ></TD>
306 </TR>
307
308
309   <INPUT TYPE="hidden" NAME="taxclass" VALUE="">
310
311
312
313   <INPUT TYPE="hidden" NAME="taxproductnum" VALUE="">
314
315
316
317   <INPUT TYPE="hidden" NAME="tax_override" VALUE="">
318
319
320
321
322 <TR>
323   <TD ALIGN="right">Description </TD>
324   <TD>
325     <INPUT TYPE       = "text"
326            NAME       = "pkg"
327            SIZE       = "50"
328            MAXLENGTH  = "50"
329            VALUE      = ""
330            onChange   = "return enable_quick_charge(event)"
331            onKeyPress = "return enable_quick_charge(event)"
332     >
333   </TD>
334 </TR>
335
336 <TR>
337   <TD></TD>
338   <TD><FONT SIZE="-1">Optional additional description (also printed on invoice): </FONT></TD>
339 </TR>
340
341
342
343 </TABLE>
344
345 <BR>
346 <INPUT TYPE="submit" ID="submit" NAME="submit" VALUE="Add one-time charge"  DISABLED>
347
348 </FORM>
349
350
351 <SCRIPT TYPE="text/javascript">
352
353   var rownum = 0;
354
355   function possiblyAddRow(e) {
356
357     if ( ( rownum - this.getAttribute('rownum') ) == 1 ) {
358       addRow();
359     }
360
361       return true;
362
363   }
364
365   function addRow() {
366
367     var table = document.getElementById('QuickChargeTable');
368     var tablebody = table.getElementsByTagName('tbody').item(0);
369
370     var row = document.createElement('TR');
371
372     var empty_cell = document.createElement('TD');
373     row.appendChild(empty_cell);
374
375     var description_cell = document.createElement('TD');
376
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);
387
388     row.appendChild(description_cell);
389
390     tablebody.appendChild(row);
391
392     rownum++;
393
394   }
395
396 </SCRIPT>
397
398 </BODY>
399 </HTML>