Moving 2.0 development version to main trunk.
[fa-stable.git] / inventory / includes / db / items_adjust_db.inc
1 <?php
2
3 //-------------------------------------------------------------------------------------------------------------
4
5 function add_stock_adjustment($items, $location, $date_, $type, $increase, $reference, $memo_)
6 {
7         begin_transaction();
8
9         $adj_id = get_next_trans_no(systypes::inventory_adjustment());
10
11         foreach ($items as $line_item)
12         {
13
14                 if (!$increase)
15                         $line_item->quantity = -$line_item->quantity;
16
17                 add_stock_adjustment_item($adj_id, $line_item->stock_id, $location, $date_, $type, $reference,
18                         $line_item->quantity, $line_item->standard_cost, $memo_);
19         }
20
21         add_comments(systypes::inventory_adjustment(), $adj_id, $date_, $memo_);
22
23         references::save_last($reference, systypes::inventory_adjustment());
24
25         commit_transaction();
26
27         return $adj_id;
28 }
29
30 //-------------------------------------------------------------------------------------------------------------
31
32 function void_stock_adjustment($type_no)
33 {
34         void_gl_trans(systypes::inventory_adjustment(), $type_no);
35         void_stock_move(systypes::inventory_adjustment(), $type_no);
36 }
37
38 //-------------------------------------------------------------------------------------------------------------
39
40 function get_stock_adjustment_items($trans_no)
41 {
42         $result = get_stock_moves(systypes::inventory_adjustment(), $trans_no);
43
44         if (db_num_rows($result) == 0)
45         {
46                 return null;
47         }
48
49         return $result;
50 }
51
52 //--------------------------------------------------------------------------------------------------
53
54 function add_stock_adjustment_item($adj_id, $stock_id, $location, $date_, $type, $reference,
55         $quantity, $standard_cost, $memo_)
56 {
57         $mb_flag = get_mb_flag($stock_id);
58
59     if (is_service($mb_flag))
60     {
61         display_db_error("Cannot do inventory adjustment for Service item : $stock_id", "");
62     }
63
64         add_stock_move(systypes::inventory_adjustment(), $stock_id, $adj_id, $location,
65         $date_, $reference, $quantity, $standard_cost, $type);
66
67         if ($standard_cost > 0)
68         {
69
70                 $stock_gl_codes = get_stock_gl_code($stock_id);
71
72                 add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_,
73                         $stock_gl_codes['adjustment_account'], $stock_gl_codes['dimension_id'], $stock_gl_codes['dimension2_id'], $memo_, ($standard_cost * -($quantity)));
74
75                 add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, $stock_gl_codes['inventory_account'], 0, 0, $memo_, ($standard_cost * $quantity));
76         }
77 }
78
79 //-------------------------------------------------------------------------------------------------------------
80
81 ?>