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