Added max parameter to textarea*() helpers, added constraints on all memo/comments...
[fa-stable.git] / manufacturing / includes / work_order_issue_ui.inc
index fcb194c785cb6f7c2772eb9fe49cdcc9c4c578df..969810cd11f2dc4d69e261198ec95f90ea001fea 100644 (file)
@@ -1,13 +1,13 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU Affero General Public License,
-       AGPL, as published by the Free Software Foundation, either version 
-       of the License, or (at your option) any later version.
+       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/agpl-3.0.html>.
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 include_once($path_to_root . "/includes/ui.inc");
 include_once($path_to_root . "/includes/ui/items_cart.inc");
@@ -25,11 +25,11 @@ function add_to_issue(&$order, $new_item, $new_item_qty, $standard_cost)
 
 function display_issue_items($title, &$order)
 {
-       global $table_style, $path_to_root;
+       global $path_to_root;
 
        display_heading($title);
     div_start('items_table');
-       start_table("$table_style width=80% colspan=7");
+       start_table(TABLESTYLE, "width='80%'");
        $th = array(_("Item Code"), _("Item Description"), _("Quantity"),
                _("Unit"), _("Unit Cost"), '');
        if ( count($order->line_items)) $th[] = '';
@@ -38,15 +38,18 @@ function display_issue_items($title, &$order)
 //     $total = 0;
        $k = 0;  //row colour counter
 
+       if (count($order->line_items))
+               $low_stock = $order->check_qoh($_POST['Location'], $_POST['date_'], !$_POST['IssueType']);
        $id = find_submit('Edit');
        foreach ($order->line_items as $line_no=>$stock_item)
        {
 
-//             $total += ($stock_item->standard_cost * $stock_item->quantity);
-
                if ($id != $line_no)
                {
-               alt_table_row_color($k);
+                       if (in_array($stock_item->stock_id, $low_stock))
+                               start_row("class='stockmankobg'");      // notice low stock status
+                       else 
+                               alt_table_row_color($k);
 
                        view_stock_status_cell($stock_item->stock_id);
                        label_cell($stock_item->item_description);
@@ -70,9 +73,9 @@ function display_issue_items($title, &$order)
        if ($id == -1)
                issue_edit_item_controls($order);
 
-//     label_row(_("Total"), number_format2($total,user_price_dec()), "colspan=5", "align=right");
-
     end_table();
+       if (@$low_stock)
+               display_note(_("Marked items have insufficient quantities in stock as on day of issue."), 0, 1, "class='stockmankofg'");
        div_end();
 }
 
@@ -89,7 +92,7 @@ function issue_edit_item_controls(&$order, $line_no=-1)
                $_POST['stock_id'] = $order->line_items[$id]->stock_id;
                $_POST['qty'] = qty_format($order->line_items[$id]->quantity, 
                        $order->line_items[$id]->stock_id, $dec);
-               $_POST['std_cost'] = price_format($order->line_items[$id]->standard_cost);
+               $std_cost = $order->line_items[$id]->standard_cost;
                $_POST['units'] = $order->line_items[$id]->units;
 
                hidden('stock_id', $_POST['stock_id']);
@@ -113,14 +116,16 @@ function issue_edit_item_controls(&$order, $line_no=-1)
 
                $dec = $item_info["decimals"];
                $_POST['qty'] = number_format2(0, $dec);
-               $_POST['std_cost'] = price_format($item_info["standard_cost"]);
+               $std_cost = $item_info["material_cost"];
                $_POST['units'] = $item_info["units"];
        }
 
        qty_cells(null, 'qty', $_POST['qty'], null, null, $dec);
        label_cell($_POST['units'], '', 'units');
 
-       amount_cells(null, 'std_cost', $_POST['std_cost']);
+       //amount_cells(null, 'std_cost', $_POST['std_cost']);
+       hidden('std_cost', $std_cost);
+       amount_cell($std_cost);
 
        if ($id != -1)
        {
@@ -145,9 +150,15 @@ function issue_edit_item_controls(&$order, $line_no=-1)
 
 function issue_options_controls()
 {
+       global $Refs;
+
        echo "<br>";
        start_table();
-    ref_row(_("Reference:"), 'ref', '', references::get_next(28));
+       date_row(_("Issue Date:"), 'date_');
+       locations_list_row(_("From Location:"), 'Location');
+       workcenter_list_row(_("To Work Centre:"), 'WorkCentre');
+
+    ref_row(_("Reference:"), 'ref', '', $Refs->get_next(ST_MANUISSUE, null, array('date'=> get_post('date_'), 'location' => get_post('Location'))));
  
        if (!isset($_POST['IssueType']))
                $_POST['IssueType'] = 0;
@@ -155,15 +166,9 @@ function issue_options_controls()
        yesno_list_row(_("Type:"), 'IssueType', $_POST['IssueType'],
                _("Return Items to Location"), _("Issue Items to Work order"));
  
-       locations_list_row(_("From Location:"), 'Location');
-       workcenter_list_row(_("To Work Centre:"), 'WorkCentre');
-       date_row(_("Issue Date:"), 'date_');
-
-       textarea_row(_("Memo"), 'memo_', null, 50, 3);
+       textarea_row(_("Memo"), 'memo_', null, 50, 3, 40); // stock move reference is 40 max
 
        end_table(1);
 }
 //---------------------------------------------------------------------------------
 
-?>
\ No newline at end of file