Removed redundant indexes on supp_trans and cust_branch tables.
[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         $update_no = -1;
20
21     if (is_service($mb_flag))
22     {
23         //display_db_error("Cannot do cost update for Service item : $stock_id", "");   
24                 
25                 //Chaitanya
26                 $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)."
27                 WHERE stock_id=".db_escape($stock_id);
28                 
29                 db_query($sql,"The cost details for the inventory item could not be updated");
30                 
31                 return $update_no;
32                 
33     }           
34         
35         begin_transaction();
36         
37         $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost).", 
38                 labour_cost=".db_escape($labour_cost).", 
39                 overhead_cost=".db_escape($overhead_cost).", 
40                 last_cost=".db_escape($last_cost)." 
41                 WHERE stock_id=".db_escape($stock_id);
42         db_query($sql,"The cost details for the inventory item could not be updated");
43
44         $qoh = get_qoh_on_date($stock_id);
45         
46         $date_ = Today();
47         if (!is_date_in_fiscalyear($date_))
48                 $date_ = end_fiscalyear();
49
50         if ($qoh > 0)
51         {
52                 $new_cost = $material_cost + $labour_cost + $overhead_cost;
53
54                 $value_of_change = $qoh * ($new_cost - $last_cost);
55
56                 $memo_ = "Cost was " . $last_cost . " changed to " . $new_cost . " x quantity on hand of $qoh";
57                 add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["adjustment_account"], 
58                         $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change));     
59
60                 $value_of_change = round2($qoh * ($new_cost - $last_cost), user_price_dec());
61
62                 if ($value_of_change != 0)
63                 {
64                         $stock_gl_code = get_stock_gl_code($stock_id);
65                         $update_no = get_next_trans_no(ST_COSTUPDATE);
66                         $memo_ = sprintf(_("Cost was %s changed to %s x quantity on hand for item '%s'"),
67                                 number_format2($last_cost, 2), number_format2($new_cost, 2), $stock_id);
68                         add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["adjustment_account"], 
69                                 $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change));     
70
71                         add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["inventory_account"], 0, 0, $memo_, 
72                                 $value_of_change);
73                 }
74         }
75
76         if ($update_no != -1)
77                 add_audit_trail(ST_COSTUPDATE, $update_no, $date_);
78         commit_transaction();
79
80         return $update_no;
81 }
82
83 //-------------------------------------------------------------------------------------------------------------
84
85 ?>