X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fsearch_work_orders.php;h=348d283f356245f40452a547cebceb6fcd1f6a30;hb=499e0e615d1a845c6c519754b3a213fdda0513ba;hp=3091a75c4f1afe4b807ff7fc738931c7b190f55e;hpb=da8311619dd73feae101d246a1957b972e00cbd2;p=fa-stable.git diff --git a/manufacturing/search_work_orders.php b/manufacturing/search_work_orders.php index 3091a75c..348d283f 100644 --- a/manufacturing/search_work_orders.php +++ b/manufacturing/search_work_orders.php @@ -1,7 +1,17 @@ . +***********************************************************************/ $page_security = 2; $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"); @@ -9,17 +19,39 @@ include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc"); $js = ""; if ($use_popup_windows) $js .= get_js_open_window(800, 500); -if (isset($_GET['outstanding_only'])) +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); -} -else +} +else { $outstanding_only = 0; page(_("Search Work Orders"), false, false, "", $js); } +//----------------------------------------------------------------------------------- +// Ajax updates +// +if (get_post('SearchOrders')) +{ + $Ajax->activate('orders_tbl'); +} elseif (get_post('_OrderNumber_changed')) +{ + $disable = get_post('OrderNumber') !== ''; + + $Ajax->addDisable(true, 'StockLocation', $disable); + $Ajax->addDisable(true, 'OverdueOnly', $disable); + $Ajax->addDisable(true, 'OpenOnly', $disable); + $Ajax->addDisable(true, 'SelectedStockItem', $disable); + if ($disable) { + set_focus('OrderNumber'); + } else + set_focus('StockLocation'); + + $Ajax->activate('orders_tbl'); +} //-------------------------------------------------------------------------------------- @@ -28,138 +60,165 @@ 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_row(); -ref_cells(_("Reference:"), 'OrderNumber', null); +ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true); locations_list_cells(_("at Location:"), 'StockLocation', null, true); check_cells( _("Only Overdue:"), 'OverdueOnly', null); -check_cells( _("Only Open:"), 'OpenOnly', null); +if ($outstanding_only==0) + check_cells( _("Only Open:"), 'OpenOnly', null); stock_manufactured_items_list_cells(_("for item:"), 'SelectedStockItem', null, true); -submit_cells('SearchOrders', _("Search")); +submit_cells('SearchOrders', _("Search"),'',_('Select documents'), true); end_row(); end_table(); end_form(); -$sql = "SELECT ".TB_PREF."workorders.*, ".TB_PREF."stock_master.description,".TB_PREF."locations.location_name - FROM ".TB_PREF."workorders,".TB_PREF."stock_master,".TB_PREF."locations - WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."workorders.stock_id AND - ".TB_PREF."locations.loc_code=".TB_PREF."workorders.loc_code "; +//----------------------------------------------------------------------------- +function check_overdue($row) +{ + return (!$row["closed"] + && date_diff(Today(), sql2date($row["required_by"]), "d") > 0); +} + +function view_link($dummy, $order_no) +{ + return get_trans_view_str(systypes::work_order(), $order_no); +} + +function view_stock($row) +{ + return view_stock_status($row["stock_id"], $row["description"], false); +} -if (check_value('OpenOnly')) +function wo_type_name($dummy, $type) { - $sql .= " AND ".TB_PREF."workorders.closed=0 "; + return wo_types::name($type); } -if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) +function edit_link($row) { - $sql .= "AND ".TB_PREF."workorders.loc_code='" . $_POST['StockLocation'] . "' "; + return $row['closed'] ? ''._('Closed').'' : + pager_link(_("Edit"), + "/manufacturing/work_order_entry.php?trans_no=" . $row["id"], ICON_EDIT); } -if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") +function release_link($row) { - $sql .= "AND ".TB_PREF."workorders.wo_ref LIKE '%". $_POST['OrderNumber'] . "%'"; + return $row["closed"] ? '' : + ($row["released"]==0 ? + pager_link(_('Release'), + "/manufacturing/work_order_release.php?trans_no=" . $row["id"]) + : + pager_link(_('Issue'), + "/manufacturing/work_order_issue.php?trans_no=" .$row["id"])); } -if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items) +function produce_link($row) { - $sql .= "AND ".TB_PREF."workorders.stock_id='". $_POST['SelectedStockItem'] . "'"; + return $row["closed"] || !$row["released"] ? '' : + pager_link(_('Produce'), + "/manufacturing/work_order_add_finished.php?trans_no=" .$row["id"]); } -if (check_value('OverdueOnly')) +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"; +} + +if (isset($_POST['StockLocation']) && $_POST['StockLocation'] != $all_items) +{ + $sql .= " AND workorder.loc_code='" . $_POST['StockLocation'] . "' "; +} + +if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "") +{ + $sql .= " AND workorder.wo_ref LIKE '%". $_POST['OrderNumber'] . "%'"; +} + +if (isset($_POST['SelectedStockItem']) && $_POST['SelectedStockItem'] != $all_items) +{ + $sql .= " AND workorder.stock_id='". $_POST['SelectedStockItem'] . "'"; +} + +if (check_value('OverdueOnly')) { $Today = date2sql(Today()); - $sql .= "AND ".TB_PREF."workorders.required_by < '$Today' "; -} -$sql .= " ORDER BY ".TB_PREF."workorders.required_by"; - -$result = db_query($sql,"No orders were returned"); - -start_table("$table_style width=80%"); - -$th = array(_("#"), _("Reference"), _("Type"), _("Location"), _("Item"), - _("Required"), _("Manufactured"), _("Date"), _("Required By"), _("Closed"), ""); -table_header($th); - -$j = 1; -$k = 0; - -while ($myrow = db_fetch($result)) -{ - - - // check if it's an overdue work order - if (!$myrow["closed"] && date_diff(Today(), sql2date($myrow["required_by"]), "d") > 0) - { - start_row("class='overduebg'"); - } - else - alt_table_row_color($k); - - $modify_page = $path_to_root . "/manufacturing/work_order_entry.php?" . SID . "trans_no=" . $myrow["id"]; - $release_page = $path_to_root . "/manufacturing/work_order_release.php?" . SID . "trans_no=" . $myrow["id"]; - if ($myrow["closed"] == 0) - { - $issue = $path_to_root . "/manufacturing/work_order_issue.php?" . SID . "trans_no=" .$myrow["id"]; - $add_finished = $path_to_root . "/manufacturing/work_order_add_finished.php?" . SID . "trans_no=" .$myrow["id"]; - $costs = $path_to_root . "/gl/gl_payment.php?NewPayment=1&PayType=" . payment_person_types::WorkOrder(). "&PayPerson=" .$myrow["id"]; - $can_issue = $myrow["released"]; - $issue_link = $can_issue?("" . _("Issue") . " -