1<?php 2/********************************************************************** 3 Copyright (C) FrontAccounting, LLC. 4 Released under the terms of the GNU General Public License, GPL, 5 as published by the Free Software Foundation, either version 3 6 of the License, or (at your option) any later version. 7 This program is distributed in the hope that it will be useful, 8 but WITHOUT ANY WARRANTY; without even the implied warranty of 9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>. 11***********************************************************************/ 12$page_security = 'SA_MANUFTRANSVIEW'; 13$path_to_root = ".."; 14include($path_to_root . "/includes/db_pager.inc"); 15include_once($path_to_root . "/includes/session.inc"); 16 17include_once($path_to_root . "/includes/date_functions.inc"); 18include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); 19$js = ""; 20if ($use_popup_windows) 21 $js .= get_js_open_window(800, 500); 22if (isset($_GET['outstanding_only']) && ($_GET['outstanding_only'] == true)) 23{ 24// curently outstanding simply means not closed 25 $outstanding_only = 1; 26 page(_($help_context = "Search Outstanding Work Orders"), false, false, "", $js); 27} 28else 29{ 30 $outstanding_only = 0; 31 page(_($help_context = "Search Work Orders"), false, false, "", $js); 32} 33//----------------------------------------------------------------------------------- 34// Ajax updates 35// 36if (get_post('SearchOrders')) 37{ 38 $Ajax->activate('orders_tbl'); 39} elseif (get_post('_OrderNumber_changed')) 40{ 41 $disable = get_post('OrderNumber') !== ''; 42 43 $Ajax->addDisable(true, 'StockLocation', $disable); 44 $Ajax->addDisable(true, 'OverdueOnly', $disable); 45 $Ajax->addDisable(true, 'OpenOnly', $disable); 46 $Ajax->addDisable(true, 'SelectedStockItem', $disable); 47 48 if ($disable) { 49 set_focus('OrderNumber'); 50 } else 51 set_focus('StockLocation'); 52 53 $Ajax->activate('orders_tbl'); 54} 55 56//-------------------------------------------------------------------------------------- 57 58if (isset($_GET["stock_id"])) 59 $_POST['SelectedStockItem'] = $_GET["stock_id"]; 60 61//-------------------------------------------------------------------------------------- 62 63start_form(false, false, $_SERVER['PHP_SELF'] ."?outstanding_only=$outstanding_only"); 64 65start_table(TABLESTYLE_NOBORDER); 66start_row(); 67ref_cells(_("#:"), 'OrderId', '',null, '', true); 68ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true); 69 70locations_list_cells(_("at Location:"), 'StockLocation', null, true); 71 72end_row(); 73end_table(); 74start_table(TABLESTYLE_NOBORDER); 75start_row(); 76 77check_cells( _("Only Overdue:"), 'OverdueOnly', null); 78 79if ($outstanding_only==0) 80 check_cells( _("Only Open:"), 'OpenOnly', null); 81 82stock_manufactured_items_list_cells(_("for item:"), 'SelectedStockItem', null, true); 83 84submit_cells('SearchOrders', _("Search"),'',_('Select documents'), 'default'); 85end_row(); 86end_table(); 87 88//----------------------------------------------------------------------------- 89function check_overdue($row) 90{ 91 return (!$row["closed"] 92 && date_diff2(Today(), sql2date($row["required_by"]), "d") > 0); 93} 94 95function view_link($dummy, $order_no) 96{ 97 return get_trans_view_str(ST_WORKORDER, $order_no); 98} 99 100function view_stock($row) 101{ 102 return view_stock_status($row["stock_id"], $row["description"], false); 103} 104 105function wo_type_name($dummy, $type) 106{ 107 global $wo_types_array; 108 109 return $wo_types_array[$type]; 110} 111 112function edit_link($row) 113{ 114 return $row['closed'] ? '<i>'._('Closed').'</i>' : 115 pager_link(_("Edit"), 116 "/manufacturing/work_order_entry.php?trans_no=" . $row["id"], ICON_EDIT); 117} 118 119function release_link($row) 120{ 121 return $row["closed"] ? '' : 122 ($row["released"]==0 ? 123 pager_link(_('Release'), 124 "/manufacturing/work_order_release.php?trans_no=" . $row["id"]) 125 : 126 pager_link(_('Issue'), 127 "/manufacturing/work_order_issue.php?trans_no=" .$row["id"])); 128} 129 130function produce_link($row) 131{ 132 return $row["closed"] || !$row["released"] ? '' : 133 pager_link(_('Produce'), 134 "/manufacturing/work_order_add_finished.php?trans_no=" .$row["id"]); 135} 136 137function costs_link($row) 138{ 139/* 140 return $row["closed"] || !$row["released"] ? '' : 141 pager_link(_('Costs'), 142 "/gl/gl_bank.php?NewPayment=1&PayType=" 143 .PT_WORKORDER. "&PayPerson=" .$row["id"]); 144*/ 145 return $row["closed"] || !$row["released"] ? '' : 146 pager_link(_('Costs'), 147 "/manufacturing/work_order_costs.php?trans_no=" .$row["id"]); 148} 149 150function view_gl_link($row) 151{ 152 //if ($row['closed'] == 0) 153 // return ''; 154 return get_gl_view_str(ST_WORKORDER, $row['id']); 155} 156 157function dec_amount($row, $amount) 158{ 159 return number_format2($amount, $row['decimals']); 160} 161 162$sql = get_sql_for_work_orders($outstanding_only, $all_items); 163 164$cols = array( 165 _("#") => array('fun'=>'view_link', 'ord'=>''), 166 _("Reference"), // viewlink 2 ? 167 _("Type") => array('fun'=>'wo_type_name'), 168 _("Location"), 169 _("Item") => array('fun'=>'view_stock', 'ord'=>''), 170 _("Required") => array('fun'=>'dec_amount', 'align'=>'right'), 171 _("Manufactured") => array('fun'=>'dec_amount', 'align'=>'right'), 172 _("Date") => array('name'=>'date_', 'type'=>'date', 'ord'=>'desc'), 173 _("Required By") => array('type'=>'date', 'ord'=>''), 174 array('insert'=>true, 'fun'=> 'edit_link'), 175 array('insert'=>true, 'fun'=> 'release_link'), 176 array('insert'=>true, 'fun'=> 'produce_link'), 177 array('insert'=>true, 'fun'=> 'costs_link'), 178 array('insert'=>true, 'fun'=> 'view_gl_link') 179); 180 181$table =& new_db_pager('orders_tbl', $sql, $cols); 182$table->set_marker('check_overdue', _("Marked orders are overdue.")); 183 184$table->width = "90%"; 185 186display_db_pager($table); 187 188end_form(); 189end_page(); 190?> 191