time/data/etc. unit pricing add-ons, RT#24392
[freeside.git] / httemplate / elements / order_pkg.js
index 4e41fd6..393b845 100644 (file)
@@ -21,8 +21,8 @@ function pkg_changed () {
       }
     }
 
-// if this form element exists, then the start date is a future
-// package change date; don't replace it
+    // if this form element exists, then the start date is a future
+    // package change date; don't replace it
     if ( form.delay ) {
       return;
     }
@@ -39,6 +39,8 @@ function pkg_changed () {
       date_button_disabled.style.display = '';
     }
 
+    get_part_pkg_usageprice( opt.value, update_part_pkg_usageprice );
+
   } else {
     form.submitButton.disabled = true;
     if ( discountnum ) { form.discountnum.disabled = true; }
@@ -46,6 +48,69 @@ function pkg_changed () {
   }
 }
 
+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);
+    //}
+
+    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';
+  }
+
+}
+
+
 function standardize_new_location() {
   var form = document.OrderPkgForm;
   var loc = form.locationnum;