Bug. Dimensions in cost update should also be set on balance accounts. Fixed.
[fa-stable.git] / inventory / includes / db / items_trans_db.inc
index b54c1980748d8e7e06e4076c4789d3c416d9ad87..82084da252a773f7e3fceaf6884b1c3aabdb3f28 100644 (file)
 //-------------------------------------------------------------------------------------------------------------
 
 function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_cost,
-       $last_cost)
+       $last_cost, $refline, $memo_)
 {
        $mb_flag = get_mb_flag($stock_id);
-    
+
        $update_no = -1;
 
     if (is_service($mb_flag))
     {
-       //display_db_error("Cannot do cost update for Service item : $stock_id", "");   
-               
-               //Chaitanya
                $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)."
                WHERE stock_id=".db_escape($stock_id);
-               
+
                db_query($sql,"The cost details for the inventory item could not be updated");
-               
+
                return $update_no;
-               
-    }          
-       
+    }
+
        begin_transaction();
-       
+
        $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost).", 
-               labour_cost=".db_escape($labour_cost).", 
-               overhead_cost=".db_escape($overhead_cost).", 
-               last_cost=".db_escape($last_cost)." 
+               labour_cost=".db_escape($labour_cost).",
+               overhead_cost=".db_escape($overhead_cost)."
                WHERE stock_id=".db_escape($stock_id);
        db_query($sql,"The cost details for the inventory item could not be updated");
 
        $qoh = get_qoh_on_date($stock_id);
-       
+
        $date_ = Today();
        if (!is_date_in_fiscalyear($date_))
                $date_ = end_fiscalyear();
@@ -51,25 +46,30 @@ function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_co
        {
                $new_cost = $material_cost + $labour_cost + $overhead_cost;
 
-               $value_of_change = $qoh * ($new_cost - $last_cost);
-
-               $memo_ = "Cost was " . $last_cost . " changed to " . $new_cost . " x quantity on hand of $qoh";
-               add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["adjustment_account"], 
-                       $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change));     
-
                $value_of_change = round2($qoh * ($new_cost - $last_cost), user_price_dec());
 
                if ($value_of_change != 0)
                {
+                       global $Refs;
                        $stock_gl_code = get_stock_gl_code($stock_id);
-                       $update_no = get_next_trans_no(ST_COSTUPDATE);
-                       $memo_ = sprintf(_("Cost was %s changed to %s x quantity on hand for item '%s'"),
-                               number_format2($last_cost, 2), number_format2($new_cost, 2), $stock_id);
-                       add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["adjustment_account"], 
-                               $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change));     
-
-                       add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["inventory_account"], 0, 0, $memo_, 
-                               $value_of_change);
+
+                       $cart = new items_cart(ST_COSTUPDATE);
+                       $cart->tran_date = $cart->doc_date = $cart->event_date = $date_;
+                       if (!is_date_in_fiscalyear($cart->tran_date))
+                               $cart->tran_date = end_fiscalyear();
+                       $cart->reference = $Refs->get_next(ST_COSTUPDATE, $refline, $cart->tran_date, $date_);
+                       if (empty($memo_))
+                               $cart->memo_ = sprintf(_("Cost was %s changed to %s x quantity on hand of %s"),
+                                       number_format2($last_cost, 2), number_format2($new_cost), $qoh);
+                       else
+                               $cart->memo_ = $memo_;
+
+                       $cart->add_gl_item($stock_gl_code["adjustment_account"],
+                               $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], -$value_of_change);
+                       $cart->add_gl_item($stock_gl_code["inventory_account"], $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $value_of_change);
+
+                       write_journal_entries($cart);
                }
        }
 
@@ -79,7 +79,3 @@ function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_co
 
        return $update_no;
 }
-
-//-------------------------------------------------------------------------------------------------------------
-
-?>
\ No newline at end of file