Ajax additions
[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
83         display_footer_exit();
84 }
85
86 //-------------------------------------------------------------------------------------
87
88 function can_process()
89 {
90         global $selected_id;
91
92         if ($selected_id == -1) 
93         {
94
95         if (!references::is_valid($_POST['ref'])) 
96         {
97                 display_error( _("The dimension reference must be entered."));
98                         set_focus('ref');
99                 return false;
100         }
101
102         if (!is_new_reference($_POST['ref'], systypes::dimension())) 
103         {
104                 display_error(_("The entered reference is already in use."));
105                         set_focus('ref');
106                 return false;
107         }
108         }
109
110         if (strlen($_POST['name']) == 0) 
111         {
112                 display_error( _("The dimension name must be entered."));
113                 set_focus('name');
114                 return false;
115         }
116
117         if (!is_date($_POST['date_']))
118         {
119                 display_error( _("The date entered is in an invalid format."));
120                 set_focus('date_');
121                 return false;
122         }
123
124         if (!is_date($_POST['due_date']))
125         {
126                 display_error( _("The required by date entered is in an invalid format."));
127                 set_focus('due_date');
128                 return false;
129         }
130
131         return true;
132 }
133
134 //-------------------------------------------------------------------------------------
135
136 if (isset($_POST['ADD_ITEM']) || isset($_POST['UPDATE_ITEM'])) 
137 {
138
139         if (can_process()) 
140         {
141
142                 if ($selected_id == -1) 
143                 {
144
145                         $id = add_dimension($_POST['ref'], $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_']);
146
147                         meta_forward($_SERVER['PHP_SELF'], "AddedID=$id");
148                 } 
149                 else 
150                 {
151
152                         update_dimension($selected_id, $_POST['name'], $_POST['type_'], $_POST['date_'], $_POST['due_date'], $_POST['memo_']);
153
154                         meta_forward($_SERVER['PHP_SELF'], "UpdatedID=$selected_id");
155                 }
156         }
157 }
158
159 //--------------------------------------------------------------------------------------
160
161 if (isset($_POST['delete'])) 
162 {
163
164         $cancel_delete = false;
165
166         // can't delete it there are productions or issues
167         if (dimension_has_payments($selected_id) || dimension_has_deposits($selected_id))
168         {
169                 display_error(_("This dimension cannot be deleted because it has already been processed."));
170                 set_focus('ref');
171                 $cancel_delete = true;
172         }
173
174         if ($cancel_delete == false) 
175         { //ie not cancelled the delete as a result of above tests
176
177                 // delete
178                 delete_dimension($selected_id);
179                 meta_forward($_SERVER['PHP_SELF'], "DeletedID=$selected_id");
180         }
181 }
182
183 //-------------------------------------------------------------------------------------
184
185 if (isset($_POST['close'])) 
186 {
187
188         // update the closed flag
189         close_dimension($selected_id);
190         meta_forward($_SERVER['PHP_SELF'], "ClosedID=$selected_id");
191 }
192
193 //-------------------------------------------------------------------------------------
194
195 start_form();
196
197 start_table($table_style2);
198
199 if ($selected_id != -1)
200 {
201         $myrow = get_dimension($selected_id);
202
203         if (strlen($myrow[0]) == 0) 
204         {
205                 display_error(_("The dimension sent is not valid."));
206                 display_footer_exit();
207         }
208
209         // if it's a closed dimension can't edit it
210         if ($myrow["closed"] == 1) 
211         {
212                 display_error(_("This dimension is closed and cannot be edited."));
213                 display_footer_exit();
214         }
215
216         $_POST['ref'] = $myrow["reference"];
217         $_POST['closed'] = $myrow["closed"];
218         $_POST['name'] = $myrow["name"];
219         $_POST['type_'] = $myrow["type_"];
220         $_POST['date_'] = sql2date($myrow["date_"]);
221         $_POST['due_date'] = sql2date($myrow["due_date"]);
222         $_POST['memo_'] = get_comments_string(systypes::dimension(), $selected_id);
223
224         hidden('ref', $_POST['ref']);
225
226         label_row(_("Dimension Reference:"), $_POST['ref']);
227
228         hidden('selected_id', $selected_id);
229
230 else 
231 {
232         ref_row(_("Dimension Reference:"), 'ref', '', references::get_next(systypes::dimension()));
233 }
234
235 text_row_ex(_("Name") . ":", 'name', 50, 75);
236
237 $dim = get_company_pref('use_dimension');
238
239 number_list_row(_("Type"), 'type_', null, 1, $dim);
240
241 date_row(_("Start Date") . ":", 'date_');
242
243 date_row(_("Date Required By") . ":", 'due_date', '', null, sys_prefs::default_dimension_required_by());
244
245 textarea_row(_("Memo:"), 'memo_', null, 40, 5);
246
247 end_table(1);
248
249 submit_add_or_update_center($selected_id == -1, '', true);
250
251 if ($selected_id != -1) 
252 {
253         echo "<br>";
254
255         submit_center_first('close', _("Close This Dimension"), _('Mark this dimension as closed'), true);
256         submit_center_last('delete', _("Delete This Dimension"), _('Delete unused dimension'), true);
257 }
258
259 end_form();
260
261 //--------------------------------------------------------------------------------------------
262
263 end_page();
264
265 ?>