Improved layout.
[fa-stable.git] / manufacturing / work_order_entry.php
index 4da03e6e0095d2ec8475a36d76dd385466401d07..a0282ed2e46c75ec1ff21fccee36f79cc2cf99d6 100644 (file)
@@ -1,5 +1,14 @@
 <?php
-
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
 $page_security = 10;
 $path_to_root="..";
 
@@ -91,7 +100,7 @@ function safe_exit()
 //-------------------------------------------------------------------------------------
 if (!isset($_POST['date_']))
 {
-       $_POST['date_'] = Today();
+       $_POST['date_'] = new_doc_date();
        if (!is_date_in_fiscalyear($_POST['date_']))
                $_POST['date_'] = end_fiscalyear();
 }
@@ -105,12 +114,14 @@ function can_process()
        if (!references::is_valid($_POST['wo_ref']))
        {
                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."));
+               set_focus('wo_ref');
                return false;
        }
        }
@@ -118,17 +129,20 @@ function can_process()
        if (!check_num('quantity', 0))
        {
                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_']))
        {
                display_error(_("The entered date is not in fiscal year."));
+               set_focus('date_');
                return false;
        }
        // only check bom and quantites if quick assembly
@@ -137,6 +151,7 @@ function can_process()
         if (!has_bom($_POST['stock_id']))
         {
                display_error(_("The selected item to manufacture does not have a bom."));
+               set_focus('stock_id');
                return false;
         }
 
@@ -145,6 +160,7 @@ function can_process()
        if (!check_num('Costs', 0))
        {
                display_error( _("The cost entered is invalid or less than zero."));
+               set_focus('Costs');
                return false;
        }
 
@@ -168,6 +184,7 @@ function can_process()
                                {
                                        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;
                                }
                        }
@@ -189,6 +206,7 @@ function can_process()
      {
        if (!is_date($_POST['RequDate']))
        {
+               set_focus('RequDate');
                display_error( _("The date entered is in an invalid format."));
                return false;
                }
@@ -203,6 +221,7 @@ function can_process()
 
                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;
                }
@@ -220,7 +239,7 @@ if (isset($_POST['ADD_ITEM']) && can_process())
        $id = add_work_order($_POST['wo_ref'], $_POST['StockLocation'], input_num('quantity'),
                $_POST['stock_id'],  $_POST['type'], $_POST['date_'],
                $_POST['RequDate'], input_num('Costs'), $_POST['memo_']);
-
+       new_doc_date($_POST['date_']);
        meta_forward($_SERVER['PHP_SELF'], "AddedID=$id");
 }
 
@@ -231,7 +250,7 @@ if (isset($_POST['UPDATE_ITEM']) && can_process())
 
        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");
 }
 
@@ -271,6 +290,11 @@ if (isset($_POST['close']))
        meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id");
 }
 
+//-------------------------------------------------------------------------------------
+if (get_post('_type_update')) 
+{
+  $Ajax->activate('_page_body');
+}
 //-------------------------------------------------------------------------------------
 
 start_form();
@@ -279,6 +303,7 @@ start_table($table_style2);
 
 $existing_comments = "";
 
+$dec = 0;
 if (isset($selected_id))
 {
        $myrow = get_work_order($selected_id);
@@ -298,18 +323,18 @@ if (isset($selected_id))
        }
 
        $_POST['wo_ref'] = $myrow["wo_ref"];
-       $_POST['quantity'] = qty_format($myrow["units_reqd"]);
+       $_POST['stock_id'] = $myrow["stock_id"];
+       $_POST['quantity'] = qty_format($myrow["units_reqd"], $_POST['stock_id'], $dec);
        $_POST['StockLocation'] = $myrow["loc_code"];
        $_POST['released'] = $myrow["released"];
        $_POST['closed'] = $myrow["closed"];
-       $_POST['stock_id'] = $myrow["stock_id"];
        $_POST['type'] = $myrow["type"];
        $_POST['date_'] = sql2date($myrow["date_"]);
        $_POST['RequDate'] = sql2date($myrow["required_by"]);
        $_POST['released_date'] = sql2date($myrow["released_date"]);
        $_POST['memo_'] = "";
        $_POST['units_issued'] = $myrow["units_issued"];
-       $_POST['Costs'] = price_format($myrow["Costs"]);
+       $_POST['Costs'] = price_format($myrow["additional_costs"]);
 
        $_POST['memo_'] = get_comments_string(systypes::work_order(), $selected_id);
 
@@ -323,13 +348,14 @@ if (isset($selected_id))
 
        label_row(_("Reference:"), $_POST['wo_ref']);
        label_row(_("Type:"), wo_types::name($_POST['type']));
+       hidden('type', $myrow["type"]);
 }
 else
 {
        $_POST['units_issued'] = $_POST['released'] = 0;
-       ref_row(_("Reference:"), 'wo_ref', references::get_next(systypes::work_order()));
+       ref_row(_("Reference:"), 'wo_ref', '', references::get_next(systypes::work_order()));
 
-       wo_types_list_row(_("Type:"), 'type', $_POST['type']);
+       wo_types_list_row(_("Type:"), 'type', null);
 }
 
 if ($_POST['released'] == true)
@@ -349,20 +375,20 @@ else
 }
 
 if (!isset($_POST['quantity']))
-       $_POST['quantity'] = qty_format(1);
+       $_POST['quantity'] = qty_format(1, $_POST['stock_id'], $dec);
 
-if ($_POST['type'] == wo_types::advanced())
+if (get_post('type') == wo_types::advanced())
 {
-    amount_row(_("Quantity Required:"), 'quantity', 12);
+    qty_row(_("Quantity Required:"), 'quantity', null, null, null, $dec);
     if ($_POST['released'])
-       label_row(_("Quantity Manufactured:"), qty_format($_POST['units_issued']));
-    date_row(_("Date") . ":", 'date_');
-       date_row(_("Date Required By") . ":", 'RequDate', null, sys_prefs::default_wo_required_by());
+       label_row(_("Quantity Manufactured:"), number_format($_POST['units_issued'], get_qty_dec($_POST['stock_id'])));
+    date_row(_("Date") . ":", 'date_', '', true);
+       date_row(_("Date Required By") . ":", 'RequDate', '', null, sys_prefs::default_wo_required_by());
 }
 else
 {
-    amount_row(_("Quantity:"), 'quantity', 12);
-    date_row(_("Date") . ":", 'date_');
+    qty_row(_("Quantity:"), 'quantity', null, null, null, $dec);
+    date_row(_("Date") . ":", 'date_', '', true);
        hidden('RequDate', '');
 
        if (!isset($_POST['Costs']))
@@ -378,20 +404,23 @@ textarea_row(_("Memo:"), 'memo_', null, 40, 5);
 
 end_table(1);
 
-submit_add_or_update_center(!isset($selected_id));
-
 if (isset($selected_id))
 {
-       echo "<br><br><table align=center><tr>";
+       echo "<table align=center><tr>";
 
+       submit_cells('UPDATE_ITEM', _("Update"), '', _('Save changes to work order'), 'default');
        if (isset($_POST['released']))
        {
-               submit_cells('close', _("Close This Work Order"));
+               submit_cells('close', _("Close This Work Order"),'','',true);
        }
-       submit_cells('delete', _("Delete This Work Order"));
+       submit_cells('delete', _("Delete This Work Order"),'','',true);
 
        echo "</tr></table>";
 }
+else
+{
+       submit_center('ADD_ITEM', _("Add Workorder"), true, '', 'default');
+}
 
 end_form();
 end_page();