Bug 5083: manufacturing creates bank transactions but void does not delete them....
[fa-stable.git] / manufacturing / includes / db / work_order_costing_db.inc
index 7671e7ba35ca910244d6d1403dc5f89c28f10b85..cff4b6e30dc8be0c319202f5cc944b612bb35537 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,12 +103,8 @@ function update_material_cost($stock_id, $qty, $unit_cost, $date)
                write_journal_entries($cart);
        }
 
-       if ($qty > 0 && ($qoh != -$qty)) {
-               if ($qoh == 0 && $avg_cost != 0)
-               $avg_cost = ($avg_cost + ($unit_cost*$qty_new)/($qoh+$qty))/2;
-       else
-               $avg_cost = ($avg_cost*($qoh+$qty_delayed)+$unit_cost*$qty_new)/($qoh+$qty);
-       }
+       if ($qty > 0 && ($qoh != -$qty))
+        $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);
@@ -233,6 +229,10 @@ function void_wo_costing($wo_id)
 
        while($row = db_fetch($res))
        {
+               $is_bank_to = is_bank_account($row['account']);
+               if ($is_bank_to)
+                       void_bank_trans($row['trans_type'], $row['trans_no']);
+
                // void any related gl trans
                $date = Today();
                $type = $row['trans_type'];