Eliminated non-static method calls and other bulk fixes to fix php5 warnings
[fa-stable.git] / purchasing / includes / db / grn_db.inc
index 1e080be792fc4bc2d654677e702981c985e9158a..3a9e45955515ffca5dbc8f67e97b680160807871 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>.
+***********************************************************************/
 //------------------- update average material cost ------------------------------------------ Joe Hunt Mar-03-2008
 
 function update_average_material_cost($supplier, $stock_id, $price, $qty, $date, $adj_only=false)
@@ -22,20 +31,18 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date,
                $exclude = 0;
        $qoh = get_qoh_on_date($stock_id, null, $date, $exclude);
 
-       if ($qoh + $qty <= 0)
-               $material_cost = 0;
-       else
+       if ($adj_only)
        {
-               if ($adj_only)
-               {
-                       if ($qoh <= 0)
-                               $material_cost = 0;
-                       else
-                               $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) /     $qoh;
-               }
+               if ($qoh <= 0)
+                       $material_cost = 0;
                else
-                       $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) /     ($qoh + $qty);
+                       $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) /     $qoh;
        }
+       elseif ($qoh + $qty <= 0)
+               $material_cost = 0;
+       else
+               $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) /     ($qoh + $qty);
+
        $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)."
                WHERE stock_id='$stock_id'";
        db_query($sql,"The cost details for the inventory item could not be updated");
@@ -46,6 +53,8 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date,
 
 function add_grn(&$po, $date_, $reference, $location)
 {
+       global $Refs;
+
        begin_transaction();
 
        $grn = add_grn_batch($po->order_no, $po->supplier_id, $reference, $location, $date_);
@@ -68,7 +77,9 @@ function add_grn(&$po, $date_, $reference, $location)
                                /*Need to get the standard cost as it is now so we can process GL jorunals later*/
                                $order_line->standard_cost = get_standard_cost($order_line->stock_id);
                        }
-
+                       // added 2008-12-08 Joe Hunt. Update the purchase data table
+                       add_or_update_purchase_data($po->supplier_id, $order_line->stock_id, $order_line->price, 
+                               $order_line->item_description); 
 
                        /*Need to insert a grn item */
 
@@ -84,7 +95,9 @@ function add_grn(&$po, $date_, $reference, $location)
                } /*quantity received is != 0 */
        } /*end of order_line loop */
 
-       references::save_last($reference, 25);
+       $Refs->save(25, $grn, $reference);
+
+       add_audit_trail(25, $grn, $date_);
 
        commit_transaction();
 
@@ -158,6 +171,8 @@ function set_grn_item_credited(&$entered_grn, $supplier, $transno, $date)
 
        $sql = "UPDATE ".TB_PREF."purch_order_details
         SET quantity_received = quantity_received + $entered_grn->this_quantity_inv,
+        quantity_ordered = quantity_ordered + $entered_grn->this_quantity_inv,
+        qty_invoiced = qty_invoiced + $entered_grn->this_quantity_inv,
         std_cost_unit=$mcost,
         act_price=$entered_grn->chg_price
         WHERE po_detail_item = ".$myrow["po_detail_item"];
@@ -173,15 +188,25 @@ function set_grn_item_credited(&$entered_grn, $supplier, $transno, $date)
 }
 
 function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false,
-       $is_invoiced_only=false)
+       $is_invoiced_only=false, $invoice_no=0, $begin="", $end="")
 {
     $sql = "SELECT ".TB_PREF."grn_batch.*, ".TB_PREF."grn_items.*, ".TB_PREF."purch_order_details.unit_price,
                ".TB_PREF."purch_order_details.std_cost_unit, units
-       FROM ".TB_PREF."grn_batch, ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master
-       WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id
-               AND ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item
-       AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code ";
-
+       FROM ".TB_PREF."grn_batch, ".TB_PREF."grn_items, ".TB_PREF."purch_order_details, ".TB_PREF."stock_master";
+    if ($invoice_no != 0)
+       $sql .= ", ".TB_PREF."supp_invoice_items";
+    $sql .= " WHERE ".TB_PREF."grn_items.grn_batch_id=".TB_PREF."grn_batch.id
+               AND ".TB_PREF."grn_items.po_detail_item=".TB_PREF."purch_order_details.po_detail_item";
+       if ($invoice_no != 0)
+               $sql .= " AND ".TB_PREF."supp_invoice_items.supp_trans_type=20 AND 
+                       ".TB_PREF."supp_invoice_items.supp_trans_no=$invoice_no AND
+                       ".TB_PREF."grn_items.id=".TB_PREF."supp_invoice_items.grn_item_id";
+       $sql .= " AND ".TB_PREF."stock_master.stock_id=".TB_PREF."grn_items.item_code ";
+
+       if ($begin != "")
+               $sql .= " AND ".TB_PREF."grn_batch.delivery_date>='".date2sql($begin)."'";
+       if ($end != "")
+               $sql .= " AND ".TB_PREF."grn_batch.delivery_date<='".date2sql($end)."'";
        if ($grn_batch_id != 0)
                $sql .= " AND ".TB_PREF."grn_batch.id=$grn_batch_id AND ".TB_PREF."grn_items.grn_batch_id=$grn_batch_id ";