function can_process() { global $selected_id; if (!isset($selected_id)) { if (!references::is_valid($_POST['wo_ref'])) { display_error(tr("You must enter a reference.")); set_focus('wo_ref'); return false; } if (!is_new_reference($_POST['wo_ref'], systypes::work_order())) { display_error(tr("The entered reference is already in use.")); set_focus('wo_ref'); return false; } } if (!check_num('quantity', 0)) { display_error(tr("The quantity entered is invalid or less than zero.")); set_focus('quantity'); return false; } if (!is_date($_POST['date_'])) { display_error(tr("The date entered is in an invalid format.")); set_focus('date_'); return false; } elseif (!is_date_in_fiscalyear($_POST['date_'])) { display_error(tr("The entered date is not in fiscal year.")); set_focus('date_'); return false; } // only check bom and quantites if quick assembly if (!($_POST['type'] == wo_types::advanced())) { if (!has_bom($_POST['stock_id'])) { display_error(tr("The selected item to manufacture does not have a bom.")); set_focus('stock_id'); return false; } if ($_POST['Costs'] == "") { $_POST['Costs'] = price_format(0); } if (!check_num('Costs', 0)) { display_error(tr("The cost entered is invalid or less than zero.")); set_focus('Costs'); return false; } if (!sys_prefs::allow_negative_stock()) { if ($_POST['type'] == wo_types::assemble()) { // check bom if assembling $result = get_bom($_POST['stock_id']); while ($bom_item = db_fetch($result)) { if (has_stock_holding($bom_item["ResourceType"])) { $quantity = $bom_item["quantity"] * input_num('quantity'); $qoh = get_qoh_on_date($bom_item["component"], $bom_item["loc_code"], $_POST['date_']); if (-$quantity + $qoh < 0) { display_error(tr("The work order cannot be processed because there is an insufficient quantity for component:") . " " . $bom_item["component"] . " - " . $bom_item["description"] . ". " . tr("Location:") . " " . $bom_item["location_name"]); set_focus('quantity'); return false; } } } } elseif ($_POST['type'] == wo_types::unassemble()) { // if unassembling, check item to unassemble $qoh = get_qoh_on_date($_POST['stock_id'], $_POST['StockLocation'], $_POST['date_']); if (-input_num('quantity') + $qoh < 0) { display_error(tr("The selected item cannot be unassembled because there is insufficient stock.")); return false; } } } } else { if (!is_date($_POST['RequDate'])) { set_focus('RequDate'); display_error(tr("The date entered is in an invalid format.")); return false; } //elseif (!is_date_in_fiscalyear($_POST['RequDate'])) //{ // display_error(tr("The entered date is not in fiscal year.")); // return false; //} if (isset($selected_id)) { $myrow = get_work_order($selected_id, true); if ($_POST['units_issued'] > input_num('quantity')) { set_focus('quantity'); display_error(tr("The quantity cannot be changed to be less than the quantity already manufactured for this order.")); return false; } } } return true; }
$myrow = get_work_order($woid); if ($myrow["type"] == wo_types::advanced()) { display_wo_details($woid, true); } else { display_wo_details_quick($woid, true); } echo "<center>"; // display the WO requirements echo "<br>"; if ($myrow["released"] == false) { display_heading2(tr("BOM for item:") . " " . $myrow["StockItemName"]); display_bom($myrow["stock_id"]); } else { display_heading2(tr("Work Order Requirements")); display_wo_requirements($woid, $myrow["units_reqd"]); if ($myrow["type"] == wo_types::advanced()) { echo "<br><table cellspacing=7><tr valign=top><td>"; display_heading2(tr("Issues")); display_wo_issues($woid); echo "</td><td>"; display_heading2(tr("Productions")); display_wo_productions($woid); echo "</td><td>"; display_heading2(tr("Payments")); display_wo_payments($woid); echo "</td></tr></table>"; } } echo "<br>"; is_voided_display(systypes::work_order(), $woid, tr("This work order has been voided.")); end_page(true);
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 ? "<a href={$issue}>" . tr("Issue") . "</a></td>\n\t\t\t<td><a href={$add_finished}>" . tr("Produce") . "</a></td>\n\t\t\t<td><a href={$costs}>" . tr("Costs") . "</a>" : tr("Not Released"); } else { $issue_link = ""; } label_cell(get_trans_view_str(systypes::work_order(), $myrow["id"])); label_cell(get_trans_view_str(systypes::work_order(), $myrow["id"], $myrow["wo_ref"])); label_cell(wo_types::name($myrow["type"])); label_cell($myrow["location_name"]); view_stock_status_cell($myrow["stock_id"], $myrow["description"]); qty_cell($myrow["units_reqd"]); qty_cell($myrow["units_issued"]); label_cell(sql2date($myrow["date_"])); label_cell(sql2date($myrow["required_by"])); label_cell($myrow["closed"] ? tr("Yes") : tr("No")); if ($issue_link != "") { label_cell($issue_link); } if ($myrow["released"] == 0) { label_cell("<a href={$release_page}>" . tr("Release") . "</a>"); } if ($myrow["closed"] == 0) { label_cell("<a href={$modify_page}>" . tr("Edit") . "</a>");