0); } //-------------------------------------------------------------------------------------- function work_order_has_issues($woid) { $sql = "SELECT COUNT(*) FROM ".TB_PREF."wo_issues WHERE workorder_id=$woid"; $result = db_query($sql, "query work order for issues"); $myrow = db_fetch_row($result); return ($myrow[0] > 0); } //-------------------------------------------------------------------------------------- function work_order_has_payments($woid) { $result = get_bank_trans(null, null, payment_person_types::WorkOrder(), $woid); return (db_num_rows($result) != 0); } //-------------------------------------------------------------------------------------- function release_work_order($woid, $releaseDate, $memo_) { begin_transaction(); $myrow = get_work_order($woid); $stock_id = $myrow["stock_id"]; $date = date2sql($releaseDate); $sql = "UPDATE ".TB_PREF."workorders SET released_date='$date', released=1 WHERE id = $woid"; db_query($sql, "could not release work order"); // create Work Order Requirements based on the bom create_wo_requirements($woid, $stock_id); add_comments(systypes::work_order(), $woid, $releaseDate, $memo_); commit_transaction(); } //-------------------------------------------------------------------------------------- function close_work_order($woid) { $sql = "UPDATE ".TB_PREF."workorders SET closed=1 WHERE id = $woid"; db_query($sql, "could not close work order"); } //-------------------------------------------------------------------------------------- function work_order_is_closed($woid) { $sql = "SELECT closed FROM ".TB_PREF."workorders WHERE id = $woid"; $result = db_query($sql, "could not query work order"); $row = db_fetch_row($result); return ($row[0] > 0); } //-------------------------------------------------------------------------------------- function work_order_update_finished_quantity($woid, $quantity, $force_close=0) { $sql = "UPDATE ".TB_PREF."workorders SET units_issued = units_issued + $quantity, closed = ((units_issued >= units_reqd) OR $force_close) WHERE id = $woid"; db_query($sql, "The work order issued quantity couldn't be updated"); } //-------------------------------------------------------------------------------------- function void_work_order($woid) { $work_order = get_work_order($woid); if (!($work_order["type"] == wo_types::advanced())) { begin_transaction(); $sql = "UPDATE ".TB_PREF."workorders SET closed=1,units_issued=0 WHERE id = $woid"; db_query($sql, "The work order couldn't be voided"); // void all related stock moves void_stock_move(systypes::work_order(), $woid); // void any related gl trans void_gl_trans(systypes::work_order(), $woid, true); // clear the requirements units received void_wo_requirements($woid); commit_transaction(); } else { // void everything inside the work order : issues, productions, payments } } //-------------------------------------------------------------------------------------- ?>