Cost Update - Second parameter in memo was not showing decimals. Fixed.
[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, $refline, $memo_)
16 {
17         $mb_flag = get_mb_flag($stock_id);
18
19         $update_no = -1;
20
21     if (is_service($mb_flag))
22     {
23                 $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)."
24                 WHERE stock_id=".db_escape($stock_id);
25
26                 db_query($sql,"The cost details for the inventory item could not be updated");
27
28                 return $update_no;
29     }
30
31         begin_transaction();
32
33         $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost).", 
34                 labour_cost=".db_escape($labour_cost).",
35                 overhead_cost=".db_escape($overhead_cost)."
36                 WHERE stock_id=".db_escape($stock_id);
37         db_query($sql,"The cost details for the inventory item could not be updated");
38
39         $qoh = get_qoh_on_date($stock_id);
40
41         $date_ = Today();
42         if (!is_date_in_fiscalyear($date_))
43                 $date_ = end_fiscalyear();
44
45         if ($qoh > 0)
46         {
47                 $new_cost = $material_cost + $labour_cost + $overhead_cost;
48
49                 $value_of_change = round2($qoh * ($new_cost - $last_cost), user_price_dec());
50
51                 if ($value_of_change != 0)
52                 {
53                         global $Refs;
54                         $stock_gl_code = get_stock_gl_code($stock_id);
55
56                         $cart = new items_cart(ST_COSTUPDATE);
57                         $cart->tran_date = $cart->doc_date = $cart->event_date = $date_;
58                         if (!is_date_in_fiscalyear($cart->tran_date))
59                                 $cart->tran_date = end_fiscalyear();
60                         $cart->reference = $Refs->get_next(ST_COSTUPDATE, $refline, $cart->tran_date, $date_);
61  
62                         if (empty($memo_))
63                                 $cart->memo_ = sprintf(_("Cost was %s changed to %s x quantity on hand of %s"),
64                                         number_format2($last_cost, user_price_dec()), number_format2($new_cost, user_price_dec()), $qoh);
65                         else
66                                 $cart->memo_ = $memo_;
67
68                         $cart->add_gl_item($stock_gl_code["adjustment_account"],
69                                 $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], -$value_of_change);
70                         $cart->add_gl_item($stock_gl_code["inventory_account"], $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $value_of_change);
71
72                         write_journal_entries($cart);
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 }