Option to ignore old CDRs, RT#81480
[freeside.git] / httemplate / elements / order_pkg.js
index a145cbb..d8ee790 100644 (file)
@@ -1,17 +1,19 @@
 function pkg_changed () {
   var form = document.OrderPkgForm;
   var discountnum = form.discountnum;
+  var opt = form.pkgpart.options[form.pkgpart.selectedIndex];
 
-  if ( form.pkgpart.selectedIndex > 0 ) {
+  usageprice_pkg_changed( opt.value );
+
+  var date_button = document.getElementById('start_date_button');
+  var date_button_disabled = document.getElementById('start_date_disabled');
+  var date_text = document.getElementById('start_date_text');
 
-    var opt = form.pkgpart.options[form.pkgpart.selectedIndex];
-    var date_button = document.getElementById('start_date_button');
-    var date_button_disabled = document.getElementById('start_date_disabled');
-    var date_text = document.getElementById('start_date_text');
+  var radio_now = document.getElementById('start_now');
+  var radio_on_hold = document.getElementById('start_on_hold');
+  var radio_on_date = document.getElementById('start_on_date');
 
-    var radio_now = document.getElementById('start_now');
-    //var radio_on_hold = document.getElementById('start_on_hold');
-    var radio_on_date = document.getElementById('start_on_date');
+  if ( form.pkgpart.selectedIndex > 0 ) {
 
     form.submitButton.disabled = false;
     if ( discountnum ) {
@@ -36,98 +38,56 @@ function pkg_changed () {
       date_button.style.display = '';
       date_button_disabled.style.display = 'none';
       if ( radio_on_date ) {
+        // un-disable all the buttons that might get disabled
+        radio_now.disabled = false;
+        radio_on_hold.disabled = false;
         radio_on_date.disabled = false;
-        if ( form.start_date_text.value.length > 0 && radio_now.checked ) {
+        // if a start date has been entered, assume the user wants it
+        if ( form.start_date_text.value.length > 0 ) {
           radio_now.checked = false;
           radio_on_date.checked = true;
+        } else {
+          // if not, default to now
+          radio_now.checked = true;
         }
       }
-    } else {
+    } else { // the package is either fixed start date or start-on-hold
       date_text.style.backgroundColor = '#dddddd';
       date_text.disabled = true;
       date_button.style.display = 'none';
       date_button_disabled.style.display = '';
       if ( radio_on_date ) {
-        if ( radio_on_date.checked ) {
-          radio_on_date.checked = false;
+        if ( opt.getAttribute('data-start_on_hold') == 1 ) {
+          // disallow all options but "On hold"
+          radio_on_hold.checked = true;
+          radio_now.checked = false;
+          radio_now.disabled = true;
+        } else {
+          // disallow all options but "On date"
+          radio_on_hold.checked = false;
           radio_now.checked = true;
+          radio_now.disabled = false;
         }
-        radio_on_date.disabled = true;
       }
     }
 
-    get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice );
-
   } else {
     form.submitButton.disabled = true;
-    if ( discountnum ) { form.discountnum.disabled = true; }
-    discountnum_changed(form.discountnum);
-  }
-}
-
-function update_part_pkg_usageprice(part_pkg_usageprice) {
-
-  var table = document.getElementById('cust_pkg_usageprice_table');
-
-  // black the current usage price rows
-  for ( var r = table.rows.length - 1; r >= 0; r-- ) {
-    table.deleteRow(r);
-  }
-
-  // add the new usage price rows
-  var rownum = 0;
-  var usagepriceArray = eval('(' + part_pkg_usageprice + ')' );
-  for ( var s = 0; s < usagepriceArray.length; s=s+2 ) {
-    //surely this should be some kind of JSON structure
-    var html       = usagepriceArray[s+0];
-    var javascript = usagepriceArray[s+1];
-
-    // a lot like ("inspiried by") edit/elements/edit.html function spawn_<%$field%>
 
-    // XXX evaluate the javascript
-    //if (window.ActiveXObject) {
-    //  window.execScript(newfunc);
-    //} else { /* (window.XMLHttpRequest) */
-    //  //window.eval(newfunc);
-    //  setTimeout(newfunc, 0);
-    //}
+    date_text.style.backgroundColor = '#dddddd';
+    date_text.disabled = true;
+    date_button.style.display = 'none';
+    date_button_disabled.style.display = '';
+    radio_now.disabled = true;
+    radio_on_date.disabled = true;
+    radio_on_hold.disabled = true;
 
-    var row = table.insertRow(rownum++);
-
-    //var label_cell = document.createElement('TD');
-
-    //label_cell.id = '<% $field %>_label' + <%$field%>_fieldnum;
-
-    //label_cell.style.textAlign = "right";
-    //label_cell.style.verticalAlign = "top";
-    //label_cell.style.borderTop = "1px solid black";
-    //label_cell.style.paddingTop = "5px";
-
-    //label_cell.innerHTML = '<% $label %>';
-
-    //row.appendChild(label_cell);
-          
-    var widget_cell = document.createElement('TD');
-
-    //widget_cell.style.borderTop = "1px solid black";
-    widget_cell.style.paddingTop = "3px";
-    widget_cell.colSpan = "2";
-
-    widget_cell.innerHTML = html;
-
-    row.appendChild(widget_cell);
-
-  }
-
-  if ( rownum > 0 ) {
-    document.getElementById('cust_pkg_usageprice_title').style.display = '';
-  } else {
-    document.getElementById('cust_pkg_usageprice_title').style.display = 'none';
+    if ( discountnum ) { form.discountnum.disabled = true; }
+    discountnum_changed(form.discountnum);
   }
 
 }
 
-
 function standardize_new_location() {
   var form = document.OrderPkgForm;
   var loc = form.locationnum;