[0004734] Fixed bug in costing procedure for produced items.
[fa-stable.git] / manufacturing / includes / db / work_order_costing_db.inc
index a6d21a46340c1560ee75908210b6a99cba92d0a4..d3c96a5ffc625ecda474c816be4fd0a72a9d2cf6 100644 (file)
@@ -48,8 +48,8 @@ function update_material_cost($stock_id, $qty, $unit_cost, $date)
 {
        global $Refs;
 
-       $product = get_item($stock_id);
-       $avg_cost =  $product['material_cost'];
+       $item = get_item($stock_id);
+       $avg_cost =  $item['material_cost'];
 
        $qoh = get_qoh_on_date($stock_id, null, $date);
 
@@ -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);
@@ -163,6 +167,7 @@ function work_order_production_gl($woid, $stock_id, $quantity, $date_, $rcv_no)
 {
        global $SysPrefs, $path_to_root;
 
+       $memo = "";
        if ($SysPrefs->loc_notification() == 1)
        {
                include_once($path_to_root . "/sales/includes/cart_class.inc");