Bug 4817: g/l account inquiry can timeout due to slow sql. @Braath Waate.
[fa-stable.git] / manufacturing / search_work_orders.php
index 3fdbf1df1db44d1c2c524625868a7ba69f890d5f..1c407b6487eb81087249a0dcd10bdcd2280db564 100644 (file)
@@ -17,7 +17,7 @@ include_once($path_to_root . "/includes/session.inc");
 include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc");
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(800, 500);
 if (isset($_GET['outstanding_only']) && ($_GET['outstanding_only'] == true))
 {
@@ -62,12 +62,18 @@ if (isset($_GET["stock_id"]))
 
 start_form(false, false, $_SERVER['PHP_SELF'] ."?outstanding_only=$outstanding_only");
 
-start_table("class='tablestyle_noborder'");
+start_table(TABLESTYLE_NOBORDER);
 start_row();
+ref_cells(_("#:"), 'OrderId', '',null, '', true);
 ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true);
 
 locations_list_cells(_("at Location:"), 'StockLocation', null, true);
 
+end_row();
+end_table();
+start_table(TABLESTYLE_NOBORDER);
+start_row();
+
 check_cells( _("Only Overdue:"), 'OverdueOnly', null);
 
 if ($outstanding_only==0)
@@ -106,8 +112,7 @@ function wo_type_name($dummy, $type)
 function edit_link($row)
 {
        return  $row['closed'] ? '<i>'._('Closed').'</i>' :
-               pager_link(_("Edit"),
-                       "/manufacturing/work_order_entry.php?trans_no=" . $row["id"], ICON_EDIT);
+               trans_editor_link(ST_WORKORDER, $row["id"]);
 }
 
 function release_link($row)
@@ -130,12 +135,6 @@ function produce_link($row)
 
 function costs_link($row)
 {
-/*
-       return $row["closed"] || !$row["released"] ? '' :
-               pager_link(_('Costs'),
-                       "/gl/gl_bank.php?NewPayment=1&PayType=" 
-                       .PT_WORKORDER. "&PayPerson=" .$row["id"]);
-*/                     
        return $row["closed"] || !$row["released"] ? '' :
                pager_link(_('Costs'),
                        "/manufacturing/work_order_costs.php?trans_no=" .$row["id"]);
@@ -143,8 +142,6 @@ function costs_link($row)
 
 function view_gl_link($row)
 {
-       if ($row['closed'] == 0)
-               return '';
        return get_gl_view_str(ST_WORKORDER, $row['id']);
 }
 
@@ -153,70 +150,23 @@ function dec_amount($row, $amount)
        return number_format2($amount, $row['decimals']);
 }
 
-$sql = "SELECT
-       workorder.id,
-       workorder.wo_ref,
-       workorder.type,
-       location.location_name,
-       item.description,
-       workorder.units_reqd,
-       workorder.units_issued,
-       workorder.date_,
-       workorder.required_by,
-       workorder.released_date,
-       workorder.closed,
-       workorder.released,
-       workorder.stock_id,
-       unit.decimals
-       FROM ".TB_PREF."workorders as workorder,"
-               .TB_PREF."stock_master as item,"
-               .TB_PREF."item_units as unit,"
-               .TB_PREF."locations as location
-       WHERE workorder.stock_id=item.stock_id 
-               AND workorder.loc_code=location.loc_code
-               AND item.units=unit.abbr";
-
-if (check_value('OpenOnly') || $outstanding_only != 0)
-{
-       $sql .= " AND workorder.closed=0";
-}
-
-if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items)
-{
-       $sql .= " AND workorder.loc_code=".db_escape($_POST['StockLocation']);
-}
-
-if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
-{
-       $sql .= " AND workorder.wo_ref LIKE ".db_escape('%'.$_POST['OrderNumber'].'%');
-}
-
-if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items)
-{
-       $sql .= " AND workorder.stock_id=".db_escape($_POST['SelectedStockItem']);
-}
-
-if (check_value('OverdueOnly'))
-{
-       $Today = date2sql(Today());
-
-       $sql .= " AND workorder.required_by < '$Today' ";
-}
+$sql = get_sql_for_work_orders($outstanding_only, get_post('SelectedStockItem'), get_post('StockLocation'),
+       get_post('OrderId'), get_post('OrderNumber'), check_value('OverdueOnly'));
 
 $cols = array(
-       _("#") => array('fun'=>'view_link'), 
+       _("#") => array('fun'=>'view_link', 'ord'=>''), 
        _("Reference"), // viewlink 2 ?
        _("Type") => array('fun'=>'wo_type_name'),
        _("Location"), 
-       _("Item") => array('fun'=>'view_stock'),
+       _("Item") => array('fun'=>'view_stock', 'ord'=>''),
        _("Required") => array('fun'=>'dec_amount', 'align'=>'right'),
        _("Manufactured") => array('fun'=>'dec_amount', 'align'=>'right'),
-       _("Date") => 'date'
+       _("Date") => array('name'=>'date_', 'type'=>'date', 'ord'=>'desc')
        _("Required By") => array('type'=>'date', 'ord'=>''),
        array('insert'=>true, 'fun'=> 'edit_link'),
        array('insert'=>true, 'fun'=> 'release_link'),
-       array('insert'=>true, 'fun'=> 'produce_link'),
        array('insert'=>true, 'fun'=> 'costs_link'),
+       array('insert'=>true, 'fun'=> 'produce_link'),
        array('insert'=>true, 'fun'=> 'view_gl_link')
 );
 
@@ -229,4 +179,3 @@ display_db_pager($table);
 
 end_form();
 end_page();
-?>