*** empty log message ***
[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         add_forms_for_sys_type(systypes::inventory_adjustment(), $adj_id, $increase, $location);        
24         
25         references::save_last($reference, systypes::inventory_adjustment());            
26         
27         commit_transaction();
28
29         return $adj_id; 
30 }
31
32 //-------------------------------------------------------------------------------------------------------------
33
34 function void_stock_adjustment($type_no)
35 {
36         void_gl_trans(systypes::inventory_adjustment(), $type_no);
37         void_stock_move(systypes::inventory_adjustment(), $type_no);
38 }
39
40 //-------------------------------------------------------------------------------------------------------------
41
42 function get_stock_adjustment_items($trans_no)
43 {
44         $result = get_stock_moves(systypes::inventory_adjustment(), $trans_no);
45         
46         if (db_num_rows($result) == 0) 
47         {
48                 return null; 
49         }
50         
51         return $result;
52 }
53
54 //--------------------------------------------------------------------------------------------------
55
56 function add_stock_adjustment_item($adj_id, $stock_id, $location, $date_, $type, $reference, 
57         $quantity, $standard_cost, $memo_)
58 {
59         $mb_flag = get_mb_flag($stock_id);
60     
61     if (is_service($mb_flag))
62     {
63         display_db_error("Cannot do inventory adjustment for Service item : $stock_id", "");    
64     }   
65         
66         add_stock_move(systypes::inventory_adjustment(), $stock_id, $adj_id, $location,
67         $date_, $reference, $quantity, $standard_cost, $type);          
68
69         if ($standard_cost > 0)
70         {
71                 
72                 $stock_gl_codes = get_stock_gl_code($stock_id);
73                 
74                 add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, 
75                         $stock_gl_codes['adjustment_account'], $stock_gl_codes['dimension_id'], $stock_gl_codes['dimension2_id'], $memo_, ($standard_cost * -($quantity)));
76                 
77                 add_gl_trans_std_cost(systypes::inventory_adjustment(), $adj_id, $date_, $stock_gl_codes['inventory_account'], 0, 0, $memo_, ($standard_cost * $quantity));             
78         }
79 }
80
81 //-------------------------------------------------------------------------------------------------------------
82
83 ?>