Fixed double calculation of tax free price for an item.
[fa-stable.git] / purchasing / includes / db / grn_db.inc
index 09d68ff33a98d77ce26ef0da59203bfc1e9b3895..a31bc2ec83665bc9ebe9ff0a3dcfa47c7f96889f 100644 (file)
@@ -13,8 +13,9 @@
 function update_average_material_cost($supplier, $stock_id, $price, $qty, $date, $adj_only=false)
 {
        //Handle if inventory will become negative
-       if (is_inventory_item($stock_id))
-               handle_negative_inventory($stock_id, $qty, $price, $date);
+    //8-OCT-2011 : Skip negative inventory adjustment for case of adjust_only\r
+    if (is_inventory_item($stock_id) && !$adj_only) \r
+        handle_negative_inventory($stock_id, $qty, $price, $date);     
 
        // probably this function should be optimized
        // passing transaction cart as argument. This would
@@ -30,9 +31,6 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date,
                $price = get_tax_free_price_for_item($stock_id, $price, $supp['tax_group_id'],
                        $supp['tax_included']);
 
-       //$dec = user_price_dec();
-       //price_decimal_format($price, $dec);
-       //$price = round2($price, $dec);
        if ($currency != null)
        {
                $ex_rate = get_exchange_rate_to_home_currency($currency, $date);
@@ -48,23 +46,19 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date,
        $myrow = db_fetch($result);
        $material_cost = $myrow['material_cost'];
        
-       //Chaitanya : For Manufactured Items 
-       //IF inventory adjustment is made for manufactured item, the material cost averages and labour, overhead remains as is, but in inventory valuation total standard_cost matters resulting in invalid  valuation. 
-       if (!$adj_only && $myrow['mb_flag'] == 'M') //For manufactured items price is adjusted
+       //Price adjustment for manufactured item\r
+       if (!$adj_only && $myrow['mb_flag'] == 'M') \r
        {
                $standard_cost = get_standard_cost($stock_id);
                //reduce overhead_cost and labour_cost from price as those will remain as is
                $price_in_home_currency = $price_in_home_currency - $myrow['labour_cost'] - $myrow['overhead_cost'];
        }
        
-       //if ($price > -0.0001 && $price < 0.0001) commented out by Chaitanya
-       //      return $material_cost;
        if ($adj_only)
                $exclude = ST_CUSTDELIVERY;
        else
                $exclude = 0;
        $cost_adjust = false;
-       //$qoh = get_qoh_on_date($stock_id, null, $date, $exclude);
        $qoh = get_qoh_on_date($stock_id);
 
        if ($adj_only)
@@ -84,7 +78,6 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date,
                        $material_cost 
 = ($qoh * $material_cost + $qty * $price_in_home_currency) /   ($qoh + $qty);
        }       
-       //$material_cost = round2($material_cost, $dec);
        
        if ($cost_adjust) // new 2010-02-10 //Chaitanya : Material_cost replaced with price
                adjust_deliveries($stock_id, $price_in_home_currency_, $date);
@@ -124,8 +117,8 @@ function add_grn(&$po)
                                if ($clearing_act)
                                        $total += add_gl_trans_supplier(ST_SUPPRECEIVE, $grn, $date_, $stock_gl_code["inventory_account"],
                                                $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'],
-                                               $order_line->receive_qty * $order_line->taxfree_charge_price($po), $po->supplier_id);
-                               update_average_material_cost($po->supplier_id, $order_line->stock_id, $order_line->taxfree_charge_price($po),
+                                               $order_line->receive_qty * $order_line->taxfree_charge_price($po), $po->supplier_id, '', 0, $order_line->stock_id);\r
+                               update_average_material_cost($po->supplier_id, $order_line->stock_id, $order_line->price,\r
                                        $order_line->receive_qty, $date_);
                        }               
                        //----------------------------------------------------------------------------------------------------------------
@@ -150,7 +143,7 @@ function add_grn(&$po)
                        /* Update location stock records - NB  a po cannot be entered for a service/kit parts done automatically */
                        add_stock_move(ST_SUPPRECEIVE, $order_line->stock_id, $grn, $po->Location, $date_, "",
                                $order_line->receive_qty, $order_line->standard_cost,
-                       $po->supplier_id, 1, $order_line->price);
+                       $po->supplier_id, 1, $order_line->taxfree_charge_price($po));\r
 
                } /*quantity received is != 0 */
        } /*end of order_line loop */