Formalismos.
[CLab.git] / contenido / usuario+horarios.php
blob5001d25adb9c987f3453392c9b476314d8c8133f
1 <?php
2 /*****************************************************************************************************************************************************/
3 //Se nos pide registrar un instructor?
4 function HORARIO_registrar_instructor($sUsername, $sTaller, $sDia, $sPosicion) {
5 global $session, $link, $base, $motor, $usuario, $clave;
6 if (!$session->isAdmin()) {die("Lo siento, Ud. esta intentando registrar un Instructor sin ser administrador");}
8 $_SESSION['nombre'] = $sUsername;
9 $_SESSION['taller'] = $sTaller;
10 $_SESSION['dia'] = $sDia;
11 $_SESSION['posicion'] = $sPosicion;
13 echo "<h2>Visor de Horarios - Procesando la asignación de horarios para ".$_SESSION['nombre']."<br /><hr />";
15 if(!$_SESSION['nombre']) {
16 echo '<h3>Registro fallido del Instructor</h3>';
17 return;
20 $link = @mysql_connect($motor, $usuario, $clave) or die('Por favor revise sus datos, puesto que se produjo el siguiente error:<br /><pre>' . mysql_error() . '</pre>');
21 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
22 //Verificamos que no tenga otro laboratorio al mismo tiempo.
23 $q = "SELECT * FROM horarios WHERE username='". $_SESSION['nombre'] ."' AND taller='". $_SESSION['taller'] ."' AND dia='".$_SESSION['dia']."' AND posicion='".$_SESSION['posicion']."';";
24 //echo $q."<br />";
25 $resultados = @mysql_query($q, $link) or die('!->Ocurrió un error mientras se revisaba la disponibilidad del instructor.');
26 $num_rows = mysql_numrows($resultados);
27 //$num_rows > 0 significa que el muchacho ya tiene asignado otro laboratorio a la misma hora :)
28 if ($num_rows > 0) {
29 echo
31 <h3>Registro de Intructor abortado</h3><hr />
32 Lo sentimos, pero este Instructor ya tiene otros laboratorios asignados el mismo día y hora.
34 echo CONTINUAR;
35 return;
38 //Insertamos al instructor en el horario.
39 $q = "INSERT INTO horarios VALUES ('".$_SESSION['nombre'] ." ', ' " . $_SESSION['taller'] . "','".$_SESSION['dia']."','".$_SESSION['posicion']."')";
40 @mysql_query($q, $link) or die('!->Ocurrió un error en la ultima etapa de la adición de usuarios.');
41 echo
43 <h3>Registro exitoso del Instructor</h3><br />
45 echo CONTINUAR;
46 return;
49 function HORARIO__DESCRIBIR_ELEMENTO_EN_POS($taller,$dia, $hora) {
50 global $session, $link;
51 // ¿Hay alguien(es) en esa posición?
52 $q = " SELECT users.username, nombre FROM users,horarios WHERE users.username = horarios.username AND taller LIKE '%$taller%' AND tipo = '".$_SESSION['tipo']."' AND dia='$dia' AND posicion='$hora'";
53 //echo $q;
54 $resultados = @mysql_query($q, $link);
55 $num_rows = mysql_numrows($resultados);
57 if($num_rows > 0){
58 $msj="";
59 for($i=0; $i<$num_rows; $i++){
60 $uname = mysql_result($resultados,$i,"nombre");
61 $uinfo = mysql_result($resultados,$i,"username");
62 /* Por petición solo el primer nombre es mostrado */
63 unset ($nombre);
64 ereg("([^ ]*)", $uname, $nombre);
65 if($session->isAdmin()){
66 $msj = $msj.'<a href="./?'._ACC_.'=usuario+info&amp;usr='.$uinfo.'">'.$nombre[1].'</a>[<a href="./?accion=horarios&amp;t='.$taller.'&amp;d='.$dia.'&amp;h='.$hora.'&amp;o=e&amp;u='.$uinfo.'">X</a>]<br />';
67 } else {
68 /* Si no es administrador entonces solo mostrarle SUS horarios y sin posibilidad de eliminar ni nada*/
69 if ($uinfo == $session->username){
70 $msj = '<FONT COLOR="#800000"><b>Asignado</b></font>';
71 } else {
72 $msj = "";
76 }else {
77 if (!$session->isAdmin()) {$msj="";}
79 if ($session->isAdmin()){
80 if( $num_rows == 0 || ($_SESSION['tipo'] == 0 && $num_rows < 9)){
81 if ( isset($_SESSION['nombre']) ) { $u = "&amp;nombre=".$_SESSION['nombre']."&amp;u=".$_SESSION['nombre']; } else { $u = ""; }
82 $msj=$msj .'<a href="./?accion=horarios&amp;t='.$taller.'&amp;d='.$dia.'&amp;h='.$hora.'&amp;o=a'.$u.'">Asignar</a>';
85 return "<td>".$msj."</td>";
89 function MOSTRAR_HORARIOS() {
90 /* Muestra la tabla de horario en base a las opciones de filtro establecidas */
91 global $link, $base, $motor, $usuario, $clave;
92 $link = @mysql_connect($motor, $usuario, $clave) or die('Por favor revise sus datos, puesto que se produjo el siguiente error:<br /><pre>' . mysql_error() . '</pre>');
93 @mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
94 echo "<h3>";
95 switch ($_SESSION['dpto'])
97 case 0: echo DE_0; break;
98 case 1: echo DE_1; break;
100 echo ' - Taller '.$_SESSION['taller'].' - ';
101 switch ($_SESSION['tipo'])
103 case 0: echo TI_0; break;
104 case 1: echo TI_1; break;
105 case 2: echo TI_2; break;
106 case 3: echo TI_3; break;
109 echo
110 ' </h3>
111 <hr />
112 <table border="1" cellspacing="0" cellpadding="3">
113 <tr><th>Horario</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr>
115 for ($i=450; $i<=1170; $i+=60){
116 echo "<tr><td><b>". date("h:ia", mktime(0,$i)) . "</b></td>". HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 1, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 2, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 3, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 4, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 5, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS($_SESSION['taller'], 6, $i)."</tr>";
118 echo "</table>";
119 mysql_close($link);
122 function CONTENIDO_horarios() {
123 /* Esta es la función principal que muta dependiendo de la acción requerida */
124 global $session, $database;
126 /*****************************************************************************************************************************************************/
127 /* Si es admin y quiere ver el horario de un solo Instructor */
128 if ( isset($_GET['nombre']) && $session->isAdmin() ) { $sUsuarioTemporal=$_GET['nombre']; $_SESSION['nombre'] = $_GET['nombre']; } else { $sUsuarioTemporal=$session->username; unset($_SESSION['nombre']); }
129 /*Si no es admin SOLO mostrarle sus horarios y ya.*/
131 if (
132 !$session->isAdmin()
134 ( isset($_GET['nombre']) && $session->isAdmin() )
136 !((isset($_GET['t']) && isset($_GET['d']) && isset($_GET['h'])&& isset($_GET['o'])) )
138 $req_user_info = $database->getUserInfo($sUsuarioTemporal);
139 $_SESSION['tipo'] = $req_user_info['tipo'];
140 $_SESSION['dpto'] = $req_user_info['departamento'];
141 switch ($req_user_info['departamento']) {
142 case 0:
143 $_SESSION['taller'] = 'LSA';
144 MOSTRAR_HORARIOS();
145 $_SESSION['taller'] = 'LID';
146 MOSTRAR_HORARIOS();
147 $_SESSION['taller'] = 'LAI';
148 MOSTRAR_HORARIOS();
149 $_SESSION['taller'] = 'LIV';
150 MOSTRAR_HORARIOS();
151 break;
152 case 1:
153 $_SESSION['taller'] = 'TPP';
154 MOSTRAR_HORARIOS();
155 $_SESSION['taller'] = 'TIS';
156 MOSTRAR_HORARIOS();
157 $_SESSION['taller'] = 'TAS';
158 MOSTRAR_HORARIOS();
159 $_SESSION['taller'] = 'TEC';
160 MOSTRAR_HORARIOS();
161 break;
163 return;
166 /*****************************************************************************************************************************************************/
167 // Teoricamente solo un Admin puede pasar de esta linea.
168 /*****************************************************************************************************************************************************/
170 /* Se nos pide ir a la pantalla de ingresar usuario */
171 if (
172 (isset($_GET['t']) && isset($_GET['d']) && isset($_GET['h'])&& isset($_GET['o']))
174 isset($_POST['HORARIO_registrar'])
177 if (!$session->isAdmin()) {die("Lo siento, Ud. esta intentando registrar un usuario sin ser administrador");}
178 //Agregar o eliminar usuario de horario
179 global $session, $link, $base, $motor, $usuario, $clave;
180 echo "Intentando registrar: " . $_POST['nombre'], $_SESSION['taller'], $_SESSION['dia'], $_SESSION['posicion'];
181 if (isset($_POST['HORARIO_registrar'])) { HORARIO_registrar_instructor($_POST['nombre'], $_SESSION['taller'], $_SESSION['dia'], $_SESSION['posicion'] ); return;}
182 $_SESSION['taller'] = $_GET['t'];
183 $_SESSION['dia'] = $_GET['d'];
184 $_SESSION['posicion'] = $_GET['h'];
185 $link = @mysql_connect($motor, $usuario, $clave) or die('Por favor revise sus datos, puesto que se produjo el siguiente error:<br /><pre>' . mysql_error() . '</pre>');
186 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
187 echo '<h2>Visor de Horarios - Filtro de instructores</h2><hr>';
188 //Agregar
189 if ($_GET['o'] == 'a') {
190 if ( isset($_SESSION['nombre']) ) { HORARIO_registrar_instructor($_SESSION['nombre'], $_SESSION['taller'], $_SESSION['dia'], $_SESSION['posicion'] ); return;}
191 // ¿Hay alguien(es) en ese departamente y con ese cargo?
192 $q = "SELECT username, nombre FROM users WHERE departamento='".$_SESSION['dpto'] ."' AND tipo='" . $_SESSION['tipo'] . "'";
193 $resultados = @mysql_query($q, $link);
194 $num_rows = mysql_numrows($resultados);
195 if($num_rows > 0){
196 echo
198 <form action="./?'._ACC_.'=horarios" method="post">
199 <table border=0>
200 <tr><td>Instructores disponibles para el filtro actual: </td><td>
201 <select name="nombre">
205 for($i=0; $i<$num_rows; $i++){
206 $uname = mysql_result($resultados,$i,"username");
207 $unombre = mysql_result($resultados,$i,"nombre");
208 echo '<option value="' . $uname . '">'.$unombre;
210 echo
212 </select>
213 </td></tr>
214 </table>
215 <input type="hidden" name="HORARIO_registrar" value="insertar">
216 <input type="submit" name="continuar" value="Continuar" />
217 </form>
219 } else {
220 echo '<h3>Error<h3><hr />';
221 echo 'No se encontró ningún instructor que cumpliera con su criterio<br />';
224 } else {
225 if ($session->isAdmin()) {
226 //eliminar
227 $q = "DELETE FROM horarios WHERE username LIKE '%".$_GET['u']."%' AND taller LIKE '%".$_GET['t']."%' AND dia = ".$_GET['d']." AND posicion = ".$_GET['h'].";";
228 //echo "<br>CONSULTA: '$q'";
229 $resultado = mysql_query($q, $link) or die('!->La operación de eliminación no pudo ser completada');
230 //echo "<br>RESULTADO: $resultado<br>My:".mysql_error($link)."<br>";
231 echo "<h3>Operación de eliminación completada</h3><hr />".$_GET['u']." ha sido removido del horario.<hr />";
232 echo CONTINUAR;
235 return;
238 /*****************************************************************************************************************************************************/
239 /* Acción por defecto de Administrador: Se nos pide filtrar los horarios.*/
240 $paso = $_POST['paso'];
242 0. Selección de departamento.
243 $_POST['dpto']
244 1. Selección de ocupacion del instructor
245 $_POST['tipo']
246 1.1 Salta paso 2 si $_POST['tipo'] = 2 -> Encargado de Taller
247 2. Selección de taller.
248 $_POST['taller']
250 //¿alguien tiene cuello y nos han pedido que lo asignemos de una vez sin pasar por licitación de Instructores XD?:
251 if (isset($_GET['nombre'])) { $_SESSION['nombre'] = $_GET['nombre']; } else { unset ($_SESSION['nombre']); }
252 echo '<h2>Visor de Horarios</h2></b><hr />';
253 switch ($paso) {
254 case 0:
255 if (!isset($_GET['dpto'])) {
256 echo
258 <form action="./?accion=horarios" method="post">
259 <table border=0>
260 <tr><td>Departamento a administrar: </td><td>
261 <select name="dpto">
262 <option value="0">'.DE_0.'
263 <option value="1">'.DE_1.'
264 </select>
265 </td></tr>
266 </table>
267 <input type="hidden" name="paso" value="1">
268 <input type="submit" name="continuar" value="Continuar" />
269 </form>
271 break;
272 } else {
273 $_SESSION['dpto'] = $_GET['dpto'];
275 case 1:
276 if (!isset($_GET['tipo'])) {
277 $_SESSION['dpto'] = $_POST['dpto'];
279 echo
281 <form action="./?accion=horarios" method="post">
282 <table border=0>
283 <tr><td>Tipo de instructor a revisar: </td><td>
284 <select name="tipo">
285 <option value="0">'.TI_0.'
286 <option value="1">'.TI_1.'
287 <option value="2">'.TI_2.'
288 <option value="3">'.TI_3.'
289 </select>
290 </td></tr>
291 </table>
292 <input type="hidden" name="paso" value="2">
293 <input type="submit" name="continuar" value="Continuar" />
294 </form>
296 echo '<hr />';
297 switch ($_SESSION['dpto'])
299 case 0: echo DE_0; break;
300 case 1: echo DE_1; break;
302 break;
303 } else {
304 $_SESSION['tipo'] = $_GET['tipo'];
306 case 2:
307 $_SESSION['tipo'] = $_POST['tipo'];
308 if ( isset($_GET['nombre'] ) ) { $ChinearGet = "&amp;nombre=".$_GET['nombre']; } else { $ChinearGet = ""; }
309 echo
311 <form action="./?accion=horarios'.$ChinearGet.'" method="post">
312 <table border=0>
313 <tr><td>Taller a revisar: </td><td>
314 <select name="taller">
316 if ($_POST['dpto'] == 0) {
317 echo
319 <option value="LSA">'."LSA".'
320 <option value="LID">'."LID".'
321 <option value="LAI">'."LAI".'
322 <option value="LIV">'."LIV".'
324 } else {
325 echo
327 <option value="TPP">'."TPP".'
328 <option value="TIS">'."TIS".'
329 <option value="TAS">'."TAS".'
330 <option value="TEC">'."TEC".'
333 echo
335 </select>
336 </td></tr>
337 </table>
338 <input type="hidden" name="paso" value="3">
339 <input type="submit" name="continuar" value="Continuar" />
340 </form>
342 echo '<hr />';
343 switch ($_SESSION['dpto'])
345 case 0: echo DE_0; break;
346 case 1: echo DE_1; break;
348 echo " -> ";
349 switch ($_SESSION['tipo'])
351 case 0: echo TI_0; break;
352 case 1: echo TI_1; break;
353 case 2: echo TI_2; break;
354 case 3: echo TI_3; break;
356 break;
358 case 3:
359 $_SESSION['taller'] = $_POST['taller'];
360 MOSTRAR_HORARIOS();
361 break;
362 default:
363 return;