9a16d7b3822aa7426a1e2d0b42ceaa88c82a994e
[fa-stable.git] / inventory / includes / db / items_trans_db.inc
1 <?php
2 /**********************************************************************
3     Copyright (C) FrontAccounting, LLC.
4         Released under the terms of the GNU General Public License, GPL, 
5         as published by the Free Software Foundation, either version 3 
6         of the License, or (at your option) any later version.
7     This program is distributed in the hope that it will be useful,
8     but WITHOUT ANY WARRANTY; without even the implied warranty of
9     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
10     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 //-------------------------------------------------------------------------------------------------------------
13
14 function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_cost,
15         $last_cost)
16 {
17         $mb_flag = get_mb_flag($stock_id);
18     
19     if (is_service($mb_flag))
20     {
21         display_db_error("Cannot do cost update for Service item : $stock_id", "");     
22     }           
23         
24         $update_no = -1;
25         
26         begin_transaction();
27         
28         $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=$material_cost, 
29                 labour_cost=$labour_cost, 
30                 overhead_cost=$overhead_cost, 
31                 last_cost=$last_cost 
32                 WHERE stock_id='$stock_id'";
33         db_query($sql,"The cost details for the inventory item could not be updated");
34
35         $qoh = get_qoh_on_date($_POST['stock_id']);
36         
37         if ($qoh > 0)
38         {
39     
40                 $update_no = get_next_trans_no(systypes::cost_update());
41                 $date_ = Today();
42                 if (!is_date_in_fiscalyear($date_))
43                         $date_ = end_fiscalyear();
44            
45                 $stock_gl_code = get_stock_gl_code($stock_id);
46          
47                 $new_cost = $material_cost + $labour_cost + $overhead_cost;
48           
49                 $value_of_change = $qoh * ($new_cost - $last_cost);
50            
51                 $memo_ = "Cost was " . $last_cost . " changed to " . $new_cost . " x quantity on hand of $qoh";
52                 add_gl_trans_std_cost(systypes::cost_update(), $update_no, $date_, $stock_gl_code["adjustment_account"], 
53                         $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change));     
54
55                 add_gl_trans_std_cost(systypes::cost_update(), $update_no, $date_, $stock_gl_code["inventory_account"], 0, 0, $memo_, 
56                         $value_of_change);         
57         }                               
58
59         commit_transaction();
60         
61         return $update_no;              
62 }
63
64 //-------------------------------------------------------------------------------------------------------------
65
66 ?>