[0000137] Material Cost Averaging Problem when voiding Supp Inv and qoh reaches 0.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 20 Jun 2009 07:28:11 +0000 (07:28 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 20 Jun 2009 07:28:11 +0000 (07:28 +0000)
CHANGELOG.txt
purchasing/includes/db/grn_db.inc

index b4644fd54089c3bf86b9236add1b832095c6dc17..b5f8bd349c493e250e5db7f800da2c9cf580e57f 100644 (file)
@@ -19,6 +19,10 @@ Legend:
 ! -> Note
 $ -> Affected files
 
+20-Jun-2009 Joe Hunt/Tu Nguyen
+# [0000137] Material Cost Averaging Problem when voiding Supp Inv and qoh reaches 0.
+$ /purchasing/includes/db/grn_db.inc
+
 18-Jun-2009 Joe Hunt
 ! Better support for conversion_factor in Purchasing Pricing. Instruction on Sticky Inventory Forum.
 $ /inventory/purchasing_data.php
index 9b56b0f747608a7bd1391ac670b1067756862d33..23ca2e223c7fb64f2eccfa395002bd755be461dd 100644 (file)
@@ -31,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");