Changed API for input/lists functions, added empty hints when needed
[fa-stable.git] / dimensions / dimension_entry.php
1 <?php
2
3
4 $page_security = 10;
5 $path_to_root="..";
6 include_once($path_to_root . "/includes/session.inc");
7
8 include_once($path_to_root . "/includes/date_functions.inc");
9 include_once($path_to_root . "/includes/manufacturing.inc");
10 include_once($path_to_root . "/includes/data_checks.inc");
11
12 include_once($path_to_root . "/dimensions/includes/dimensions_db.inc");
13 include_once($path_to_root . "/dimensions/includes/dimensions_ui.inc");
14
15 $js = "";
16 if ($use_date_picker)
17         $js .= get_js_date_picker();
18 page(_("Dimension Entry"), false, false, "", $js);
19
20 //---------------------------------------------------------------------------------------
21
22 if (isset($_GET['trans_no']))
23 {
24         $selected_id = $_GET['trans_no'];
25
26 elseif(isset($_POST['selected_id']))
27 {
28         $selected_id = $_POST['selected_id'];
29 }
30 else
31         $selected_id = -1;
32 //---------------------------------------------------------------------------------------
33
34 if (isset($_GET['AddedID'])) 
35 {
36         $id = $_GET['AddedID'];
37
38         display_notification_centered(_("The dimension has been entered."));
39
40         safe_exit();
41 }
42
43 //---------------------------------------------------------------------------------------
44
45 if (isset($_GET['UpdatedID'])) 
46 {
47         $id = $_GET['UpdatedID'];
48
49         display_notification_centered(_("The dimension has been updated."));
50         safe_exit();
51 }
52
53 //---------------------------------------------------------------------------------------
54
55 if (isset($_GET['DeletedID'])) 
56 {
57         $id = $_GET['DeletedID'];
58
59         display_notification_centered(_("The dimension has been deleted."));
60         safe_exit();
61 }
62
63 //---------------------------------------------------------------------------------------
64
65 if (isset($_GET['ClosedID'])) 
66 {
67         $id = $_GET['ClosedID'];
68
69         display_notification_centered(_("The dimension has been closed. There can be no more changes to it.") . " #$id");
70         safe_exit();
71 }
72
73 //-------------------------------------------------------------------------------------------------
74
75 function safe_exit()
76 {
77         global $path_to_root;
78
79         hyperlink_no_params("", _("Enter a new dimension"));
80         echo "<br>";
81         hyperlink_no_params($path_to_root . "/dimensions/inquiry/search_dimensions.php", _("Select an existing dimension"));
82         echo "<br><br>";
83
84         end_page();
85
86         exit;
87 }
88
89 //-------------------------------------------------------------------------------------
90
91 function can_process()
92 {
93         global $selected_id;
94
95         if ($selected_id == -1) 
96         {
97
98         if (!references::is_valid($_POST['ref'])) 
99         {
100                 display_error( _("The dimension reference must be entered."));
101                 set_focus('ref');
102                 return false;
103         }
104
105         if (!is_new_reference($_POST['ref'], systypes::dimension())) 
106         {
107                 display_error(_("The entered reference is already in use."));
108                 set_focus('ref');
109                 return false;
110         }
111         }
112
113         if (strlen($_POST['name']) == 0) 
114         {
115                 display_error( _("The dimension name must be entered."));
116                 set_focus('name');
117                 return false;
118         }
119
120         if (!is_date($_POST['date_']))
121         {
122                 display_error( _("The date entered is in an invalid format."));
123                 set_focus('date_');
124                 return false;
125         }
126
127         if (!is_date($_POST['due_date']))
128         {
129                 display_error( _("The required by date entered is in an invalid format."));
130                 set_focus('due_date');
131                 return false;
132         }
133
134         return true;
135 }
136
137 //-------------------------------------------------------------------------------------
138
139 if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) 
140 {
141
142         if (can_process()) 
143         {
144
145                 if ($selected_id == -1) 
146                 {
147
148                         $id = add_dimension($_POST['ref'], $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_']);
149
150                         meta_forward($_SERVER['PHP_SELF'], "AddedID=$id");
151                 } 
152                 else 
153                 {
154
155                         update_dimension($selected_id, $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_']);
156
157                         meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$selected_id");
158                 }
159         }
160 }
161
162 //--------------------------------------------------------------------------------------
163
164 if (isset($_POST['delete'])) 
165 {
166
167         $cancel_delete = false;
168
169         // can't delete it there are productions or issues
170         if (dimension_has_payments($selected_id) || dimension_has_deposits($selected_id))
171         {
172                 display_error(_("This dimension cannot be deleted because it has already been processed."));
173                 set_focus('ref');
174                 $cancel_delete = true;
175         }
176
177         if ($cancel_delete == false) 
178         { //ie not cancelled the delete as a result of above tests
179
180                 // delete
181                 delete_dimension($selected_id);
182                 meta_forward($_SERVER['PHP_SELF'], "DeletedID=$selected_id");
183         }
184 }
185
186 //-------------------------------------------------------------------------------------
187
188 if (isset($_POST['close'])) 
189 {
190
191         // update the closed flag
192         close_dimension($selected_id);
193         meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id");
194 }
195
196 //-------------------------------------------------------------------------------------
197
198 start_form();
199
200 start_table($table_style2);
201
202 if ($selected_id != -1)
203 {
204         $myrow = get_dimension($selected_id);
205
206         if (strlen($myrow[0]) == 0) 
207         {
208                 display_error(_("The dimension sent is not valid."));
209                 exit;
210         }
211
212         // if it's a closed dimension can't edit it
213         if ($myrow["closed"] == 1) 
214         {
215                 display_error(_("This dimension is closed and cannot be edited."));
216                 exit;
217         }
218
219         $_POST['ref'] = $myrow["reference"];
220         $_POST['closed'] = $myrow["closed"];
221         $_POST['name'] = $myrow["name"];
222         $_POST['type_'] = $myrow["type_"];
223         $_POST['date_'] = sql2date($myrow["date_"]);
224         $_POST['due_date'] = sql2date($myrow["due_date"]);
225         $_POST['memo_'] = get_comments_string(systypes::dimension(), $selected_id);
226
227         hidden('ref', $_POST['ref']);
228
229         label_row(_("Dimension Reference:"), $_POST['ref']);
230
231         hidden('selected_id', $selected_id);
232
233 else 
234 {
235         ref_row(_("Dimension Reference:"), 'ref', '', references::get_next(systypes::dimension()));
236 }
237
238 text_row_ex(_("Name") . ":", 'name', 50, 75);
239
240 $dim = get_company_pref('use_dimension');
241
242 number_list_row(_("Type"), 'type_', null, 1, $dim);
243
244 date_row(_("Start Date") . ":", 'date_');
245
246 date_row(_("Date Required By") . ":", 'due_date', '', null, sys_prefs::default_dimension_required_by());
247
248 textarea_row(_("Memo:"), 'memo_', null, 40, 5);
249
250 end_table(1);
251
252 submit_add_or_update_center($selected_id == -1);
253
254 if ($selected_id != -1) 
255 {
256         echo "<br>";
257
258         submit_center_first('close', _("Close This Dimension"));
259         submit_center_last('delete', _("Delete This Dimension"));
260 }
261
262 end_form();
263
264 //--------------------------------------------------------------------------------------------
265
266 end_page();
267
268 ?>