Service Items - BOM & Cost Update allowed without side-effects
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 12 Mar 2011 00:26:25 +0000 (01:26 +0100)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 12 Mar 2011 00:26:25 +0000 (01:26 +0100)
inventory/cost_update.php
inventory/includes/db/items_trans_db.inc
reporting/rep301.php

index 03db733e309f9a1840015dfc4196fbb85e18b18f..0d872191016480bb95fcc10cc2dad52d6c55aa7a 100644 (file)
@@ -38,8 +38,8 @@ if (isset($_GET['stock_id']))
 if (isset($_POST['UpdateData']))
 {
 
-       $old_cost = $_POST['OldMaterialCost'] + $_POST['OldLabourCost']
-           + $_POST['OldOverheadCost'];
+       $old_cost = input_num('OldMaterialCost') + input_num('OldLabourCost')
+           + input_num('OldOverheadCost');
        $new_cost = input_num('material_cost') + input_num('labour_cost')
             + input_num('overhead_cost');
 
@@ -83,20 +83,14 @@ if (!isset($_POST['stock_id']))
        $_POST['stock_id'] = get_global_stock_item();
 
 echo "<center>" . _("Item:"). "&nbsp;";
-echo stock_costable_items_list('stock_id', $_POST['stock_id'], false, true);
+//echo stock_costable_items_list('stock_id', $_POST['stock_id'], false, true);\r
+echo stock_items_list('stock_id', $_POST['stock_id'], false, true);\r
 
 echo "</center><hr>";
 set_global_stock_item($_POST['stock_id']);
 
-$sql = "SELECT description, units, material_cost, labour_cost,
-       overhead_cost, mb_flag
-       FROM ".TB_PREF."stock_master
-       WHERE stock_id=".db_escape($_POST['stock_id']) . "
-       GROUP BY description, units, material_cost, labour_cost, overhead_cost, mb_flag";
-$result = db_query($sql);
-check_db_error("The cost details for the item could not be retrieved", $sql);
-
-$myrow = db_fetch($result);
+$myrow = get_item($_POST['stock_id']);
+\r
 div_start('cost_table');
 hidden("OldMaterialCost", $myrow["material_cost"]);
 hidden("OldLabourCost", $myrow["labour_cost"]);
index 7292814d35c38d95e0f52befcb6dbd8227d9ce05..3d364a446407afcf16c71afabbf2e2b41ef89455 100644 (file)
@@ -16,13 +16,22 @@ function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_co
 {
        $mb_flag = get_mb_flag($stock_id);
     
+       $update_no = -1;\r
+\r
     if (is_service($mb_flag))
     {
-       display_db_error("Cannot do cost update for Service item : $stock_id", "");     
+       //display_db_error("Cannot do cost update for Service item : $stock_id", "");   \r
+               \r
+               //Chaitanya\r
+               $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)."\r
+               WHERE stock_id=".db_escape($stock_id);\r
+               \r
+               db_query($sql,"The cost details for the inventory item could not be updated");\r
+               \r
+               return $update_no;\r
+               \r
     }          
        
-       $update_no = -1;
-       
        begin_transaction();
        
        $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost).", 
@@ -35,25 +44,26 @@ function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_co
        $qoh = get_qoh_on_date($_POST['stock_id']);
        
        $date_ = Today();
+       if (!is_date_in_fiscalyear($date_))\r
+               $date_ = end_fiscalyear();\r
+\r
        if ($qoh > 0)
        {
-    
-               $update_no = get_next_trans_no(ST_COSTUPDATE);
-               if (!is_date_in_fiscalyear($date_))
-                       $date_ = end_fiscalyear();
-          
-               $stock_gl_code = get_stock_gl_code($stock_id);
-
                $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());
+\r
+               if ($value_of_change != 0)
+               {\r
+                       $stock_gl_code = get_stock_gl_code($stock_id);\r
+                       $update_no = get_next_trans_no(ST_COSTUPDATE);\r
+                       $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));     
 
-               add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["inventory_account"], 0, 0, $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);
+               }               \r
        }
 
        add_audit_trail(ST_COSTUPDATE, $update_no, $date_);
index 56398b710b2c4302c2127c253936bfd073837458..bc8b1085de5b08e3f5d1ca99c4971b2aa951318c 100644 (file)
@@ -44,6 +44,7 @@ function getTransactions($category, $location)
                        ".TB_PREF."stock_moves
                WHERE ".TB_PREF."stock_master.stock_id=".TB_PREF."stock_moves.stock_id
                AND ".TB_PREF."stock_master.category_id=".TB_PREF."stock_category.category_id
+               AND ".TB_PREF."stock_master.mb_flag<>'D'
                GROUP BY ".TB_PREF."stock_master.category_id,
                        ".TB_PREF."stock_category.description, ";
                if ($location != 'all')