Removed obsolete complete parameter.
[fa-stable.git] / purchasing / includes / po_class.inc
index eaa35f98714997ff8a095dc90d1a862d513c3fe2..3d340c7815ac2605a589128ce748db2b50c892a9 100644 (file)
@@ -1,23 +1,32 @@
 <?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>.
+***********************************************************************/
 /* Definition of the purch_order class to hold all the information for a purchase order and delivery
 */
 
 class purch_order 
 {
 
-       var $supplier_id;
-       
-       var $line_items; /*array of objects of class line_details using the product id as the pointer */
+       var $trans_type; // order/grn/invoice (direct)
+       var $line_items;
        var $curr_code;
-       var $requisition_no;
+       var $supp_ref;
        var $delivery_address;
        var $Comments;
        var $Location;
+       var $supplier_id;
        var $supplier_name;
        var $orig_order_date;
        var $order_no; /*Only used for modification of existing orders otherwise only established when order committed */
-       var $lines_on_order;
+       var $lines_on_order = 0;
        
        var $reference;
        
@@ -32,39 +41,32 @@ class purch_order
        {
                if ($qty != 0 && isset($qty))
                {
-                       $this->line_items[$line_no] = new line_details($line_no, $stock_id, $item_descr, $qty, $price, $uom, $req_del_date, $qty_inv, $qty_recd);
+                       $this->line_items[$line_no] = new line_details($line_no, $stock_id, $item_descr, $qty, $price, $uom, 
+                               $req_del_date, $qty_inv, $qty_recd);
                        $this->lines_on_order++;
-                       Return 1;
+                       return 1;
                }
-               Return 0;
+               return 0;
        }
 
-       function update_order_item($line_no, $qty, $price, $req_del_date)
+       function update_order_item($line_no, $qty, $price, $req_del_date, $description="")
        {
+               if ($description != "")
+                       $this->line_items[$line_no]->item_description = $description;
                $this->line_items[$line_no]->quantity = $qty;
                $this->line_items[$line_no]->price = $price;
                $this->line_items[$line_no]->req_del_date = $req_del_date;
-               $this->line_items[$line_no]->price = $price;
+               $this->line_items[$line_no]->item_description = $description;
        }
 
        function remove_from_order($line_no)
        {
-                $this->line_items[$line_no]->Deleted = true;
+               array_splice($this->line_items, $line_no, 1);
        }
        
        function order_has_items() 
        {
-               if (count($this->line_items) > 0)
-               {
-                       foreach ($this->line_items as $ordered_items) 
-                       {
-                               if ($ordered_items->Deleted == false)
-                               {
-                                       return true;
-                               }
-                       }
-               }
-               return false;           
+               return count($this->line_items) != 0;
        }
        
        function clear_items() 
@@ -111,36 +113,49 @@ class purch_order
 class line_details 
 {
 
-       Var $line_no;
-       Var $po_detail_rec;
-       Var $stock_id;
-       Var $item_description;
-       Var $quantity;
-       Var $price;
-       Var $units;
-       Var $req_del_date;
-       Var $qty_inv;
-       Var $qty_received;
-       Var $standard_cost;
-       Var $receive_qty;
-       Var $Deleted;   
-       
-       function line_details($line_no, $stock_item, $item_descr, $qty, $prc, $uom, $req_del_date, $qty_inv, $qty_recd)
+       var $line_no;
+       var $po_detail_rec;
+       var $grn_item_id;
+       var $stock_id;
+       var $item_description;
+       var $price;
+       var $units;
+       var $req_del_date;
+
+       var $quantity;          // current/entry quantity of PO line
+       var $qty_inv;   // quantity already invoiced against this line
+       var $receive_qty;       // current/entry GRN quantity
+       var $qty_received;      // quantity already received against this line
+
+       var $standard_cost;
+       var $descr_editable;
+
+       function line_details($line_no, $stock_item, $item_descr, $qty, $prc, $uom, $req_del_date, 
+               $qty_inv, $qty_recd, $grn_item_id=0)
        {
 
                /* Constructor function to add a new LineDetail object with passed params */
                $this->line_no = $line_no;
                $this->stock_id = $stock_item;
-               $this->item_description = $item_descr;
+               $item_row = get_item($stock_item);
+               if (!$item_row) 
+                       return;
+
+               $this->descr_editable = $item_row["editable"];
+               if ($item_descr == null || !$this->descr_editable)
+                       $this->item_description = $item_row["description"];
+               else
+                       $this->item_description = $item_descr;
                $this->quantity = $qty;
                $this->req_del_date = $req_del_date;
                $this->price = $prc;
-               $this->units = $uom;
+//             $this->units = $uom;
+               $this->units = $item_row["units"];
                $this->qty_received = $qty_recd;
                $this->qty_inv = $qty_inv;
                $this->receive_qty = 0; /*initialise these last two only */
                $this->standard_cost =0;
-               $this->Deleted = false;
+               $this->grn_item_id = $grn_item_id;
        }
 }