Rerun. Update material cost when quantity on hand is zero. @notrinos.
[fa-stable.git] / manufacturing / includes / db / work_order_costing_db.inc
index e44de122f7185eb1fd221ac6764dc15b2ead9c15..7a0bd413790ee03521969bc01d5b2472564d8894 100644 (file)
@@ -103,8 +103,12 @@ function update_material_cost($stock_id, $qty, $unit_cost, $date)
                write_journal_entries($cart);
        }
 
-       if ($qty > 0 && ($qoh != -$qty))
-               $avg_cost = ($avg_cost*($qoh+$qty_delayed)+$unit_cost*$qty_new)/($qoh+$qty);
+       if ($qty > 0 && ($qoh != -$qty)) {
+               if ($qoh == 0 && $avg_cost != 0)
+                       $avg_cost = ($avg_cost + ($unit_cost*$qty_new)/$qty)/2;
+               else
+                       $avg_cost = ($avg_cost*($qoh+$qty_delayed)+$unit_cost*$qty_new)/($qoh+$qty);
+       }
 
        $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($avg_cost)."
                    WHERE stock_id=".db_escape($stock_id);