Database error when inserting work order issues. Fixed
[fa-stable.git] / manufacturing / includes / db / work_order_issues_db.inc
1 <?php
2
3 //--------------------------------------------------------------------------------------
4
5 function add_work_order_issue($woid, $ref, $to_work_order, $items, $location, $workcentre, 
6         $date_, $memo_)
7 {
8         begin_transaction();
9
10         $details = get_work_order($woid);
11     
12     if (strlen($details[0]) == 0) 
13     {
14         echo _("The order number sent is not valid.");
15         cancel_transaction();
16         exit;
17     }
18     
19         if (work_order_is_closed($woid)) 
20         {
21                 display_error("UNEXPECTED : Issuing items for a closed Work Order");
22                 cancel_transaction();
23                 exit;
24         }       
25     
26         // insert the actual issue
27         $sql = "INSERT INTO ".TB_PREF."wo_issues (workorder_id, reference, issue_date, loc_code, workcentre_id) 
28                 VALUES ($woid, '$ref', '" .
29                 date2sql($date_) . "', '$location', $workcentre)";
30         db_query($sql,"The work order issue could not be added");
31         
32         $number = db_insert_id();
33         
34         foreach ($items as $item) 
35         {
36                 
37                 if ($to_work_order)
38                         $item->quantity = -$item->quantity;
39
40                 // insert a -ve stock move for each item
41                 add_stock_move(28, $item->stock_id, $number, 
42                         $location, $date_, $memo_, -$item->quantity, 0);
43                                                                         
44                 $sql = "INSERT INTO ".TB_PREF."wo_issue_items (issue_id, stock_id, qty_issued) 
45                         VALUES ('$number', '$item->stock_id', $item->quantity)";
46                 db_query($sql,"A work order issue item could not be added");
47         }
48         
49         if ($memo_)
50                 add_comments(28, $number, $date_, $memo_);      
51         
52         add_forms_for_sys_type(28, $number, $to_work_order, $location);
53         
54         references::save_last($ref, 28);
55         
56         commit_transaction();
57 }
58
59 //--------------------------------------------------------------------------------------
60
61 function get_work_order_issues($woid)
62 {
63         $sql = "SELECT * FROM ".TB_PREF."wo_issues WHERE workorder_id=$woid ORDER BY issue_no";
64     return db_query($sql, "The work order issues could not be retrieved");
65 }
66
67 //--------------------------------------------------------------------------------------
68
69 function get_work_order_issue($issue_no)
70 {
71         $sql = "SELECT DISTINCT ".TB_PREF."wo_issues.*, ".TB_PREF."workorders.stock_id, 
72                 ".TB_PREF."stock_master.description, ".TB_PREF."locations.location_name, ".TB_PREF."workcentres.name AS WorkCentreName 
73                 FROM ".TB_PREF."wo_issues, ".TB_PREF."workorders, ".TB_PREF."stock_master, ".TB_PREF."locations, ".TB_PREF."workcentres
74                 WHERE issue_no='$issue_no'
75                 AND ".TB_PREF."workorders.id = ".TB_PREF."wo_issues.workorder_id
76                 AND ".TB_PREF."locations.loc_code = ".TB_PREF."wo_issues.loc_code
77                 AND ".TB_PREF."workcentres.id = ".TB_PREF."wo_issues.workcentre_id
78                 AND ".TB_PREF."stock_master.stock_id = ".TB_PREF."workorders.stock_id";
79     $result = db_query($sql, "A work order issue could not be retrieved");
80     
81     return db_fetch($result);
82 }
83
84 //--------------------------------------------------------------------------------------
85
86 function get_work_order_issue_details($issue_no)
87 {
88         $sql = "SELECT ".TB_PREF."wo_issue_items.*,".TB_PREF."stock_master.description, ".TB_PREF."stock_master.units 
89                 FROM ".TB_PREF."wo_issue_items, ".TB_PREF."stock_master
90                 WHERE issue_id=$issue_no
91                 AND ".TB_PREF."stock_master.stock_id=".TB_PREF."wo_issue_items.stock_id
92                 ORDER BY ".TB_PREF."wo_issue_items.id";
93     return db_query($sql, "The work order issue items could not be retrieved");
94 }
95
96 //--------------------------------------------------------------------------------------
97
98 function exists_work_order_issue($issue_no)
99 {
100         $sql = "SELECT issue_no FROM ".TB_PREF."wo_issues WHERE issue_no=$issue_no";
101         $result = db_query($sql, "Cannot retreive a wo issue"); 
102         
103     return (db_num_rows($result) > 0);                          
104 }               
105
106 //--------------------------------------------------------------------------------------
107
108 function void_work_order_issue($type_no)
109 {
110         begin_transaction();
111         
112         // void the actual issue items and their quantities
113         $sql = "UPDATE ".TB_PREF."wo_issue_items Set qty_issued = 0 WHERE issue_id=$type_no";
114         db_query($sql,"A work order issue item could not be voided");
115                 
116         // void all related stock moves
117         void_stock_move(28, $type_no);
118         
119         // void any related gl trans
120         void_gl_trans(28, $type_no, true);      
121         
122         commit_transaction();
123 }
124
125
126 //--------------------------------------------------------------------------------------
127
128 ?>