X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=manufacturing%2Fwork_order_entry.php;h=4aea96fb15d8f5d3b8378e08d0e706ad44ddb1d2;hb=630e99edecc3eabe708a9e7bda94eaa60bf16db7;hp=a8253edcb0b2b6e2e050abacdd8820a61862738c;hpb=720ad204a82f09737dcf8a990f1e96ce92d03bdd;p=fa-stable.git
diff --git a/manufacturing/work_order_entry.php b/manufacturing/work_order_entry.php
index a8253edc..4aea96fb 100644
--- a/manufacturing/work_order_entry.php
+++ b/manufacturing/work_order_entry.php
@@ -1,21 +1,31 @@
.
+***********************************************************************/
+$page_security = 'SA_WORKORDERENTRY';
+$path_to_root = "..";
include_once($path_to_root . "/includes/session.inc");
include_once($path_to_root . "/includes/date_functions.inc");
-include_once($path_to_root . "/includes/manufacturing.inc");
include_once($path_to_root . "/includes/data_checks.inc");
include_once($path_to_root . "/manufacturing/includes/manufacturing_db.inc");
include_once($path_to_root . "/manufacturing/includes/manufacturing_ui.inc");
$js = "";
-if ($use_date_picker)
+if ($SysPrefs->use_popup_windows)
+ $js .= get_js_open_window(900, 500);
+if (user_use_date_picker())
$js .= get_js_date_picker();
-page(_("Work Order Entry"), false, false, "", $js);
+page(_($help_context = "Work Order Entry"), false, false, "", $js);
check_db_has_manufacturable_items(_("There are no manufacturable items defined in the system."));
@@ -27,7 +37,7 @@ check_db_has_locations(("There are no inventory locations defined in the system.
if (isset($_GET['trans_no']))
{
$selected_id = $_GET['trans_no'];
-}
+}
elseif(isset($_POST['selected_id']))
{
$selected_id = $_POST['selected_id'];
@@ -35,18 +45,34 @@ elseif(isset($_POST['selected_id']))
//---------------------------------------------------------------------------------------
-if (isset($_GET['AddedID']))
+if (isset($_GET['AddedID']))
{
$id = $_GET['AddedID'];
+ $stype = ST_WORKORDER;
display_notification_centered(_("The work order been added."));
+ display_note(get_trans_view_str($stype, $id, _("View this Work Order")), 0, 1);
+
+ if ($_GET['type'] != WO_ADVANCED)
+ {
+ include_once($path_to_root . "/reporting/includes/reporting.inc");
+
+ submenu_print(_("&Print This Work Order"), ST_WORKORDER, $id, 'prtopt');
+ submenu_print(_("&Email This Work Order"), ST_WORKORDER, $id, null, 1);
+ display_note(get_gl_view_str($stype, $id, _("View the GL Journal Entries for this Work Order")), 1);
+ $ar = array('PARAM_0' => $_GET['date'], 'PARAM_1' => $_GET['date'], 'PARAM_2' => $stype, 'PARAM_3' => '',
+ 'PARAM_4' => (user_def_print_orientation() == 1 ? 1 : 0));
+ display_note(print_link(_("Print the GL Journal Entries for this Work Order"), 702, $ar), 1);
+ hyperlink_params("$path_to_root/admin/attachments.php", _("Add an Attachment"), "filterType=$stype&trans_no=$id");
+ }
+
safe_exit();
}
//---------------------------------------------------------------------------------------
-if (isset($_GET['UpdatedID']))
+if (isset($_GET['UpdatedID']))
{
$id = $_GET['UpdatedID'];
@@ -56,7 +82,7 @@ if (isset($_GET['UpdatedID']))
//---------------------------------------------------------------------------------------
-if (isset($_GET['DeletedID']))
+if (isset($_GET['DeletedID']))
{
$id = $_GET['DeletedID'];
@@ -66,7 +92,7 @@ if (isset($_GET['DeletedID']))
//---------------------------------------------------------------------------------------
-if (isset($_GET['ClosedID']))
+if (isset($_GET['ClosedID']))
{
$id = $_GET['ClosedID'];
@@ -82,139 +108,126 @@ function safe_exit()
hyperlink_no_params("", _("Enter a new work order"));
hyperlink_no_params("search_work_orders.php", _("Select an existing work order"));
- echo "
";
- end_form();
- end_page();
- exit;
+
+ display_footer_exit();
}
//-------------------------------------------------------------------------------------
if (!isset($_POST['date_']))
{
- $_POST['date_'] = Today();
+ $_POST['date_'] = new_doc_date();
if (!is_date_in_fiscalyear($_POST['date_']))
$_POST['date_'] = end_fiscalyear();
-}
+}
function can_process()
{
- global $selected_id;
+ global $selected_id, $SysPrefs;
- if (!isset($selected_id))
+ if (!isset($selected_id))
{
- if (!references::is_valid($_POST['wo_ref']))
+ if (!check_reference($_POST['wo_ref'], ST_WORKORDER))
{
- display_error(_("You must enter a reference."));
+ set_focus('wo_ref');
return false;
}
-
- if (!is_new_reference($_POST['wo_ref'], systypes::work_order()))
- {
- display_error(_("The entered reference is already in use."));
- return false;
- }
- }
-
- if (!is_numeric($_POST['quantity']))
- {
- display_error( _("The quantity entered must be numeric."));
- return false;
}
- if ($_POST['quantity'] <= 0)
+ if (!check_num('quantity', 1))
{
- display_error( _("The quantity entered must be a positive number greater than zero."));
+ display_error( _("The quantity entered is invalid or less than zero."));
+ set_focus('quantity');
return false;
}
if (!is_date($_POST['date_']))
{
display_error( _("The date entered is in an invalid format."));
+ set_focus('date_');
return false;
- }
- elseif (!is_date_in_fiscalyear($_POST['date_']))
+ }
+ elseif (!is_date_in_fiscalyear($_POST['date_']))
{
- display_error(_("The entered date is not in fiscal year."));
+ display_error(_("The entered date is out of fiscal year or is closed for further data entry."));
+ set_focus('date_');
return false;
}
// only check bom and quantites if quick assembly
- if (!($_POST['type'] == wo_types::advanced()))
+ if (!($_POST['type'] == WO_ADVANCED))
{
- if (!has_bom($_POST['stock_id']))
+ if (!has_bom($_POST['stock_id']))
{
display_error(_("The selected item to manufacture does not have a bom."));
+ set_focus('stock_id');
return false;
}
- if ($_POST['Costs'] == "")
- $_POST['Costs'] = 0;
- if (!is_numeric($_POST['Costs']))
+ if ($_POST['Labour'] == "")
+ $_POST['Labour'] = price_format(0);
+ if (!check_num('Labour', 0))
{
- display_error( _("The cost entered must be numeric."));
+ display_error( _("The labour cost entered is invalid or less than zero."));
+ set_focus('Labour');
return false;
}
-
- if ($_POST['Costs'] < 0)
+ if ($_POST['Costs'] == "")
+ $_POST['Costs'] = price_format(0);
+ if (!check_num('Costs', 0))
{
- display_error( _("The cost entered cannot be negative."));
+ display_error( _("The cost entered is invalid or less than zero."));
+ set_focus('Costs');
return false;
}
- if (!sys_prefs::allow_negative_stock())
+ if (!$SysPrefs->allow_negative_stock())
{
- if ($_POST['type'] == wo_types::assemble())
+ if ($_POST['type'] == WO_ASSEMBLY)
{
// check bom if assembling
$result = get_bom($_POST['stock_id']);
- while ($bom_item = db_fetch($result))
+ while ($bom_item = db_fetch($result))
{
- if (has_stock_holding($bom_item["ResourceType"]))
+ if (has_stock_holding($bom_item["ResourceType"]))
{
- $quantity = $bom_item["quantity"] * $_POST['quantity'];
+ $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)
+ if (check_negative_stock($bom_item["component"], -$quantity, $bom_item["loc_code"], $_POST['date_']))
{
display_error(_("The work order cannot be processed because there is an insufficient quantity for component:") .
" " . $bom_item["component"] . " - " . $bom_item["description"] . ". " . _("Location:") . " " . $bom_item["location_name"]);
+ set_focus('quantity');
return false;
}
}
}
- }
- elseif ($_POST['type'] == wo_types::unassemble())
+ }
+ elseif ($_POST['type'] == WO_UNASSEMBLY)
{
// if unassembling, check item to unassemble
- $qoh = get_qoh_on_date($_POST['stock_id'], $_POST['StockLocation'], $_POST['date_']);
- if (-$_POST['quantity'] + $qoh < 0)
+ if (check_negative_stock($_POST['stock_id'], -input_num('quantity'), $_POST['StockLocation'], $_POST['date_']))
{
display_error(_("The selected item cannot be unassembled because there is insufficient stock."));
return false;
}
}
}
- }
- else
+ }
+ else
{
if (!is_date($_POST['RequDate']))
{
+ set_focus('RequDate');
display_error( _("The date entered is in an invalid format."));
return false;
- }
- //elseif (!is_date_in_fiscalyear($_POST['RequDate']))
- //{
- // display_error(_("The entered date is not in fiscal year."));
- // return false;
- //}
- if (isset($selected_id))
+ }
+ if (isset($selected_id))
{
- $myrow = get_work_order($selected_id, true);
-
- if ($_POST['units_issued'] > $_POST['quantity'])
+ if ($_POST['units_issued'] > input_num('quantity'))
{
+ set_focus('quantity');
display_error(_("The quantity cannot be changed to be less than the quantity already manufactured for this order."));
return false;
}
@@ -226,56 +239,60 @@ function can_process()
//-------------------------------------------------------------------------------------
-if (isset($_POST['ADD_ITEM']) && can_process())
+if (isset($_POST['ADD_ITEM']) && can_process())
{
-
- $id = add_work_order($_POST['wo_ref'], $_POST['StockLocation'], $_POST['quantity'],
+ if (!isset($_POST['cr_acc']))
+ $_POST['cr_acc'] = "";
+ if (!isset($_POST['cr_lab_acc']))
+ $_POST['cr_lab_acc'] = "";
+ $id = add_work_order($_POST['wo_ref'], $_POST['StockLocation'], input_num('quantity'),
$_POST['stock_id'], $_POST['type'], $_POST['date_'],
- $_POST['RequDate'], $_POST['Costs'], $_POST['memo_']);
+ $_POST['RequDate'], $_POST['memo_'], input_num('Costs'), $_POST['cr_acc'], input_num('Labour'), $_POST['cr_lab_acc']);
- meta_forward($_SERVER['PHP_SELF'], "AddedID=$id");
+ new_doc_date($_POST['date_']);
+ meta_forward($_SERVER['PHP_SELF'], "AddedID=$id&type=".$_POST['type']."&date=".$_POST['date_']);
}
//-------------------------------------------------------------------------------------
-if (isset($_POST['UPDATE_ITEM']) && can_process())
+if (isset($_POST['UPDATE_ITEM']) && can_process())
{
- update_work_order($selected_id, $_POST['StockLocation'], $_POST['quantity'],
+ update_work_order($selected_id, $_POST['StockLocation'], input_num('quantity'),
$_POST['stock_id'], $_POST['date_'], $_POST['RequDate'], $_POST['memo_']);
-
+ new_doc_date($_POST['date_']);
meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$selected_id");
}
//--------------------------------------------------------------------------------------
-if (isset($_POST['delete']))
+if (isset($_POST['delete']))
{
//the link to delete a selected record was clicked instead of the submit button
$cancel_delete = false;
// can't delete it there are productions or issues
- if (work_order_has_productions($selected_id) ||
- work_order_has_issues($selected_id) ||
+ if (work_order_has_productions($selected_id) ||
+ work_order_has_issues($selected_id) ||
work_order_has_payments($selected_id))
{
display_error(_("This work order cannot be deleted because it has already been processed."));
$cancel_delete = true;
}
- if ($cancel_delete == false)
+ if ($cancel_delete == false)
{ //ie not cancelled the delete as a result of above tests
// delete the actual work order
- delete_work_order($selected_id);
+ delete_work_order($selected_id, $_POST['stock_id'], $_POST['quantity'], $_POST['date_']);
meta_forward($_SERVER['PHP_SELF'], "DeletedID=$selected_id");
}
}
//-------------------------------------------------------------------------------------
-if (isset($_POST['close']))
+if (isset($_POST['close']))
{
// update the closed flag in the work order
@@ -283,26 +300,32 @@ if (isset($_POST['close']))
meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id");
}
+//-------------------------------------------------------------------------------------
+if (get_post('_type_update'))
+{
+ $Ajax->activate('_page_body');
+}
//-------------------------------------------------------------------------------------
start_form();
-start_table($table_style2);
+start_table(TABLESTYLE2);
$existing_comments = "";
+$dec = 0;
if (isset($selected_id))
{
- $myrow = get_work_order($selected_id);
+ $myrow = get_work_order($selected_id, true);
- if (strlen($myrow[0]) == 0)
+ if ($myrow === false)
{
echo _("The order number sent is not valid.");
safe_exit();
}
// if it's a closed work order can't edit it
- if ($myrow["closed"] == 1)
+ if ($myrow["closed"] == 1)
{
echo "