Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180...
[fa-stable.git] / manufacturing / search_work_orders.php
index cff20c0500862255abac865f001055fd85a4e12b..4762881ff7f2dbc1e818a23bb2c3703870f5549d 100644 (file)
@@ -1,25 +1,36 @@
 <?php
-
-$page_security = 2;
-$path_to_root="..";
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+$page_security = 'SA_MANUFTRANSVIEW';
+$path_to_root = "..";
 include($path_to_root . "/includes/db_pager.inc");
 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");
+include_once($path_to_root . "/reporting/includes/reporting.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))
 {
 // curently outstanding simply means not closed
        $outstanding_only = 1;
-       page(_("Search Outstanding Work Orders"), false, false, "", $js);
+       page(_($help_context = "Search Outstanding Work Orders"), false, false, "", $js);
 }
 else
 {
        $outstanding_only = 0;
-       page(_("Search Work Orders"), false, false, "", $js);
+       page(_($help_context = "Search Work Orders"), false, false, "", $js);
 }
 //-----------------------------------------------------------------------------------
 // Ajax updates
@@ -51,14 +62,20 @@ if (isset($_GET["stock_id"]))
 
 //--------------------------------------------------------------------------------------
 
-start_form(false, false, $_SERVER['PHP_SELF'] ."?outstanding_only=" . $outstanding_only .SID);
+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)
@@ -66,22 +83,20 @@ if ($outstanding_only==0)
 
 stock_manufactured_items_list_cells(_("for item:"), 'SelectedStockItem', null, true);
 
-submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true);
+submit_cells('SearchOrders', _("Search"),'',_('Select documents'),  'default');
 end_row();
 end_table();
 
-end_form();
-
 //-----------------------------------------------------------------------------
 function check_overdue($row)
 {
        return (!$row["closed"] 
-               && date_diff(Today(), sql2date($row["required_by"]), "d") > 0);
+               && date_diff2(Today(), sql2date($row["required_by"]), "d") > 0);
 }
 
 function view_link($dummy, $order_no)
 {
-       return get_trans_view_str(systypes::work_order(), $order_no);
+       return get_trans_view_str(ST_WORKORDER, $order_no);
 }
 
 function view_stock($row)
@@ -91,14 +106,15 @@ function view_stock($row)
 
 function wo_type_name($dummy, $type)
 {
-       return wo_types::name($type);
+       global $wo_types_array;
+       
+       return $wo_types_array[$type];
 }
 
 function edit_link($row)
 {
        return  $row['closed'] ? '<i>'._('Closed').'</i>' :
-               pager_link(_("Edit"),
-                       "/manufacturing/work_order_entry.php?trans_no=" . $row["id"]);
+               trans_editor_link(ST_WORKORDER, $row["id"]);
 }
 
 function release_link($row)
@@ -123,92 +139,51 @@ function costs_link($row)
 {
        return $row["closed"] || !$row["released"] ? '' :
                pager_link(_('Costs'),
-                       "/gl/gl_bank.php?NewPayment=1&PayType=" 
-                       .payment_person_types::WorkOrder(). "&PayPerson=" .$row["id"]);
-}
-
-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";
+                       "/manufacturing/work_order_costs.php?trans_no=" .$row["id"]);
 }
 
-if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items)
+function view_gl_link($row)
 {
-       $sql .= " AND workorder.loc_code='" . $_POST['StockLocation'] . "' ";
+       return get_gl_view_str(ST_WORKORDER, $row['id']);
 }
 
-if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
+function prt_link($row)
 {
-       $sql .= " AND workorder.wo_ref LIKE '%". $_POST['OrderNumber'] . "%'";
+       return print_document_link($row['id'], _("Print"), true, ST_WORKORDER, ICON_PRINT);
 }
 
-if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items)
+function dec_amount($row, $amount)
 {
-       $sql .= " AND workorder.stock_id='". $_POST['SelectedStockItem'] . "'";
+       return number_format2($amount, $row['decimals']);
 }
 
-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'=> 'view_gl_link'),
        array('insert'=>true, 'fun'=> 'edit_link'),
        array('insert'=>true, 'fun'=> 'release_link'),
+       array('insert'=>true, 'fun'=> 'costs_link'),
        array('insert'=>true, 'fun'=> 'produce_link'),
-       array('insert'=>true, 'fun'=> 'costs_link')
+       array('insert'=>true, 'fun'=> 'prt_link')
 );
 
 $table =& new_db_pager('orders_tbl', $sql, $cols);
 $table->set_marker('check_overdue', _("Marked orders are overdue."));
 
-if (get_post('SearchOrders')) {
-       $table->set_sql($sql);
-       $table->set_columns($cols);
-}
-start_form();
+$table->width = "90%";
 
 display_db_pager($table);
 
 end_form();
 end_page();
-?>