BulkUpdater work.
[order_line_extra.git] / order_lines_view.php
index 362b3f0112aa1b2716d4128508de09f3918f3109..077e3767793f54ef3761888fc94485b2b083b271 100644 (file)
@@ -17,6 +17,8 @@ include_once($path_to_root . "/sales/includes/sales_ui.inc");
 include_once($path_to_root . "/reporting/includes/reporting.inc");
 
 include_once("includes/order_lines.inc");
+include_once("includes/splitter.inc");
+include_once("includes/bulk_updater.inc");
 
 $page_security = 'SA_ORDERLINEX_EDIT';
 add_access_extensions();
@@ -24,8 +26,10 @@ add_access_extensions();
 $_SESSION['page_title'] = _($help_context = "Edit lines extra parameters");
 
 // Process POST
+filter_data($_POST);
 update_extra_order_details();
 split_order_details();
+bulk_update_order_details();
 
 
 $js = "";
@@ -56,6 +60,19 @@ else {
 }
 customer_list_cells(_("Select a customer: "), 'customer_id', $customer_id, true, true);
 
+if($customer_id != null) {
+       if(!isset($_POST['item_like'])) {
+               if(isset($_GET['item_like'])) {
+                       $item_like = $_GET['item_like'];
+                       $_POST['item_like'] = $item_like;
+               }
+               else $item_like = null;
+       }
+       else $item_like = $_POST['item_like'];
+       text_cells_ex('Filter Item', 'item_like', 50, null, $item_like,
+                       null, null, null, true );
+}
+
 
 
 
@@ -70,7 +87,7 @@ end_table(1);
 //     Orders inquiry table
 //
 if($customer_id) {
-       $sql = get_order_details_extra($customer_id, 'DEF');
+       $sql = get_order_details_extra($customer_id, 'DEF', $item_like);
        $cols = array(
                'detail_id' => 'skip'
                ,       _("Order #") => array('fun'=>'view_link', 'ord' => '')
@@ -78,11 +95,12 @@ if($customer_id) {
                ,_("Quantity") => array('type' => 'qty', 'dec' => 0)
                ,_("Available") => array('fun' => 'available_quantity', 'dec' => 0, 'ord' => '')
                ,_("Before") => 'skip'
-               ,_("Priority") => array('fun' => 'input_priority_date_details', 'ord' => '')
+               ,_("Priority") => array('type' => 'time', 'ord' => '')
                ,_("Hold Until") => array('fun' => 'input_hold_until_date_details', 'ord' => '')
                ,_("Require By") => array('fun' => 'input_required_date_details', 'ord' => '')
                ,_("Expiry Date") => array('fun' => 'input_expiry_date_details', 'ord' => '')
-       ,_("Comment") => array('fun' => 'input_comment_details', 'ord' => '')
+               ,_("Comment") => array('fun' => 'input_comment_details', 'ord' => '')
+               ,'<input id="checkAll" type="checkbox">' => array('fun' => 'input_check_details')
        );
 }
 else {
@@ -110,15 +128,36 @@ $table->width = "80%";
 display_db_pager($table);
 
 function display_split_area() {
-start_table(TABLESTYLE_NOBORDER);
-date_cells('Start', 'name', 'title');
-date_cells('End', 'name', 'title');
-qty_cells('Max', 'huu', 6);
+qty_cells('Before', 'start_offset', -5);
+date_cells('Start', 'start_date', null, null, 0, 0, 1001);
+date_cells('End', 'end_date', null, null, 0, 0, 1001);
+qty_cells('After', 'end_offset', 2);
+qty_cells('Max', 'max_quantity', 6);
 submit_cells('Split', 'Split');
-end_table();
 
 }
+
+function display_bulk_area()  {
+date_cells('Priority', 'bulk[priority_date]', null, null, 0, 0, 1001);
+qty_cells(null, 'bulk[priority_time]', '12:00:00');
+date_cells('Hold', 'bulk[hold_until_date]', null, null, 0, 0, 1001);
+date_cells('Required', 'bulk[required_date]', null, null, 0, 0, 1001);
+date_cells('Expiry', 'bulk[expiry_date]', null, null, 0, 0, 1001);
+text_cells('Comment', 'bulk[comment]');
+submit_cells('Bulk', 'Bulk');
+}
+
+
+if($customer_id !== null) {
+start_table(TABLESTYLE);
+start_table(TABLESTYLE_NOBORDER);
 display_split_area();
+end_table();
+start_table(TABLESTYLE_NOBORDER);
+display_bulk_area();
+end_table();
+end_table();
+}
 
 
 br(1);
@@ -150,3 +189,37 @@ span.before-tooltip {
 }
 
 </style>
+<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
+<script text="text/javascript">
+
+var inserts = {
+       '#checkAll': function (e) {
+               e.onchange = function()  {
+                       $('.check_detail').prop('checked', e.checked)
+                       $('.check_detail').trigger('change');
+               }
+       }
+       ,'tr': function(e) {
+                       // find if there is a check detail box on link all input to it
+                       var tr = $(e);
+                       var check = tr.find('.check_detail');
+                       if(check.length != 1) return;
+                       check = check[0];
+                       var jcheck = $(check);
+                       var inputs = tr.find('input');
+                       inputs.each(function(index, input) {
+                               if(input === check) return;
+                               $(input).prop('disabled', true)
+                       })
+
+                       check.onchange = function() {
+                               inputs.each(function(index, input) {
+                                       var on = jcheck.prop('checked')
+                                       if(input == check) return;
+                                       $(input).prop('disabled', !on);
+                               })
+                       };
+               }
+       }
+Behaviour.register(inserts);
+</script>