Mostrar de forma mas util los horarios por instructor.
[CLab.git] / contenido / usuario+horarios.php
blobc7032aab8f06200cfecc58b6ce830756f115da5d
1 <?php
2 function HORARIO__DESCRIBIR_ELEMENTO_EN_POS($taller,$dia, $hora) {
3 global $session, $link;
4 // ¿Hay alguien(es) en esa posición?
5 $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'";
6 //echo $q;
7 $resultados = @mysql_query($q, $link);
8 $num_rows = mysql_numrows($resultados);
10 if($num_rows > 0){
11 $msj="";
12 for($i=0; $i<$num_rows; $i++){
13 $uname = mysql_result($resultados,$i,"nombre");
14 $uinfo = mysql_result($resultados,$i,"username");
15 /* Por petición solo el primer nombre es mostrado */
16 ereg("(.*)\ ", $uname, $nombre);
17 if($session->isAdmin()){
18 $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 />';
19 } else {
20 /* Si no es administrador entonces solo mostrarle SUS horarios y sin posibilidad de eliminar ni nada*/
21 if ($uinfo == $session->username){
22 $msj = '<FONT COLOR="#800000"><b>Asignado</b></font>';
23 } else {
24 $msj = "";
28 }else {
29 if (!$session->isAdmin()) {$msj="";}
31 if ($session->isAdmin()){
32 if( $num_rows == 0 || ($_SESSION['tipo'] == 0 && $num_rows < 9)){
33 $msj=$msj .'<a href="./?accion=horarios&amp;t='.$taller.'&amp;d='.$dia.'&amp;h='.$hora.'&amp;o=a">Asignar</a>';
36 return "<td>".$msj."</td>";
40 function MOSTRAR_HORARIOS() {
41 /* Muestra la tabla de horario en base a las opciones de filtro establecidas */
42 global $link, $base, $motor, $usuario, $clave;
43 $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>');
44 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
45 echo "<h3>";
46 switch ($_SESSION['dpto'])
48 case 0: echo DE_0; break;
49 case 1: echo DE_1; break;
51 echo '</h3>
52 <hr />
53 <h3>Taller '.$_SESSION['taller'].' - ';
54 switch ($_SESSION['tipo'])
56 case 0: echo TI_0; break;
57 case 1: echo TI_1; break;
58 case 2: echo TI_2; break;
59 case 3: echo TI_3; break;
62 echo
63 ' </h3>
64 <hr />
65 <table border="1" cellspacing="0" cellpadding="3">
66 <tr><th>Horario</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr>
68 for ($i=450; $i<=1170; $i+=60){
69 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>";
71 echo "</table>";
72 mysql_close($link);
75 function CONTENIDO_horarios() {
76 /* Esta es la función principal que muta dependiendo de la acción requerida */
77 global $session, $database;
79 /*Si no es admin SOLO mostrarle sus horarios y ya.*/
80 if(!$session->isAdmin()||isset($_GET['forzar'])){
82 if (isset($_GET['forzar'])) {
83 $tmp_usuario = $_GET['forzar'];
84 } else {
85 $tmp_usuario = $session->username;
87 $req_user_info = $database->getUserInfo($tmp_usuario );
89 $_SESSION['tipo'] = $req_user_info['tipo'];
90 $_SESSION['dpto'] = $req_user_info['departamento'];
91 switch ($req_user_info['departamento']) {
92 case 0:
93 $_SESSION['taller'] = 'LSA';
94 MOSTRAR_HORARIOS();
95 $_SESSION['taller'] = 'LID';
96 MOSTRAR_HORARIOS();
97 $_SESSION['taller'] = 'LAI';
98 MOSTRAR_HORARIOS();
99 $_SESSION['taller'] = 'LIV';
100 MOSTRAR_HORARIOS();
101 break;
102 case 1:
103 $_SESSION['taller'] = 'TPP';
104 MOSTRAR_HORARIOS();
105 $_SESSION['taller'] = 'TIS';
106 MOSTRAR_HORARIOS();
107 $_SESSION['taller'] = 'TAS';
108 MOSTRAR_HORARIOS();
109 $_SESSION['taller'] = 'TEC';
110 MOSTRAR_HORARIOS();
111 break;
113 return;
116 //Registro del instructor seleccionado.
117 if (isset($_POST['query'])) {
119 global $session, $link;
120 global $link, $base, $motor, $usuario, $clave;
122 echo "<h2>Visor de Horarios - Procesando la asignación de horarios para ".$_POST['tipo']."<br /><hr />";
124 if(!$_POST['tipo']) {
125 echo '<h3>Registro fallido del Instructor</h3>';
126 return;
129 $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>');
130 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
131 //Verificamos que no tenga otro laboratorio al mismo tiempo.
132 $q = "SELECT * FROM horarios WHERE username='". $_POST['tipo'] ."' AND dia='".$_SESSION['dia']."' AND posicion='".$_SESSION['posicion']."';";
133 //echo $q."<br />";
134 $resultados = @mysql_query($q, $link) or die('!->Ocurrió un error mientras se revisaba la disponibilidad del instructor.');
135 $num_rows = mysql_numrows($resultados);
136 //$num_rows > 0 significa que el muchacho ya tiene asignado otro laboratorio a la misma hora :)
137 if ($num_rows > 0) {
138 echo
140 <h3>Registro de Intructor abortado</h3><hr />
141 Lo sentimos, pero este Instructor ya tiene otros laboratorios asignados el mismo día y hora.
143 echo CONTINUAR;
144 return;
146 //Insertamos al instructor en el horario.
147 $q = "INSERT INTO horarios VALUES ('".$_POST['tipo'] ." ', ' " . $_SESSION['taller'] . "','".$_SESSION['dia']."','".$_SESSION['posicion']."')";
148 @mysql_query($q, $link) or die('!->Ocurrió un error en la ultima etapa de la adición de usuarios.');
149 echo
151 <h3>Registro exitoso del Instructor</h3><br />
153 echo CONTINUAR;
154 return;
157 if (isset($_GET['t']) && isset($_GET['d']) && isset($_GET['h'])&& isset($_GET['o'])) {
158 //Agregar o eliminar usuario de horario
159 global $session, $link;
160 global $link, $base, $motor, $usuario, $clave;
161 $_SESSION['taller'] = $_GET['t'];
162 $_SESSION['dia'] = $_GET['d'];
163 $_SESSION['posicion'] = $_GET['h'];
164 $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>');
165 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
166 echo '<h2>Visor de Horarios - Filtro de instructores</h2><hr>';
167 //Agregar
168 if ($_GET['o'] == 'a') {
169 // ¿Hay alguien(es) en ese departamente y con ese cargo?
170 $q = "SELECT username, nombre FROM users WHERE departamento='".$_SESSION['dpto'] ."' AND tipo='" . $_SESSION['tipo'] . "'";
171 $resultados = @mysql_query($q, $link);
172 $num_rows = mysql_numrows($resultados);
173 if($num_rows > 0){
174 echo
176 <form action="./?accion=horarios" method="post">
177 <table border=0>
178 <tr><td>Instructores disponibles para el filtro actual: </td><td>
179 <select name="tipo">
183 for($i=0; $i<$num_rows; $i++){
184 $uname = mysql_result($resultados,$i,"username");
185 $unombre = mysql_result($resultados,$i,"nombre");
186 echo '<option value="' . $uname . '">'.$unombre;
188 echo
190 </select>
191 </td></tr>
192 </table>
193 <input type="hidden" name="query" value="insertar">
194 <input type="submit" name="continuar" value="Continuar" />
195 </form>
197 } else {
198 echo '<h3>Error<h3><hr />';
199 echo 'No se encontró ningún instructor que cumpliera con su criterio<br />';
202 } else {
203 if ($session->isAdmin()) {
204 //eliminar
205 $q = "DELETE FROM horarios WHERE username LIKE '%".$_GET['u']."%' AND taller LIKE '%".$_GET['t']."%' AND dia = ".$_GET['d']." AND posicion = ".$_GET['h'].";";
206 //echo "<br>CONSULTA: '$q'";
207 $resultado = mysql_query($q, $link) or die('!->La operación de eliminación no pudo ser completada');
208 //echo "<br>RESULTADO: $resultado<br>My:".mysql_error($link)."<br>";
209 echo "<h3>Operación de eliminación completada</h3><hr />".$_GET['u']." ha sido removido del horario.<hr />";
210 echo CONTINUAR;
213 return;
216 $paso = $_POST['paso'];
218 0. Selección de departamento.
219 $_POST['dpto']
220 1. Selección de taller.
221 $_POST['taller']
222 2. Filto ocupacion del instructor
223 $_POST['tipo']
225 echo '<h2>Visor de Horarios</h2></b><hr />';
226 switch ($paso) {
227 case 0:
228 echo
230 <form action="./?accion=horarios" method="post">
231 <table border=0>
232 <tr><td>Departamento a revisar: </td><td>
233 <select name="dpto">
234 <option value="0">'.DE_0.'
235 <option value="1">'.DE_1.'
236 </select>
237 </td></tr>
238 </table>
239 <input type="hidden" name="paso" value="1">
240 <input type="submit" name="continuar" value="Continuar" />
241 </form>
243 break;
244 case 1:
245 $_SESSION['dpto'] = $_POST['dpto'];
246 echo
248 <form action="./?accion=horarios" method="post">
249 <table border=0>
250 <tr><td>Taller a revisar: </td><td>
251 <select name="taller">
253 if ($_POST['dpto'] == 0) {
254 echo
256 <option value="LSA">'."LSA".'
257 <option value="LID">'."LID".'
258 <option value="LAI">'."LAI".'
259 <option value="LIV">'."LIV".'
261 } else {
262 echo
264 <option value="TPP">'."TPP".'
265 <option value="TIS">'."TIS".'
266 <option value="TAS">'."TAS".'
267 <option value="TEC">'."TEC".'
270 echo
272 </select>
273 </td></tr>
274 </table>
275 <input type="hidden" name="paso" value="2">
276 <input type="submit" name="continuar" value="Continuar" />
277 </form>
279 echo '<hr />';
280 switch ($_SESSION['dpto'])
282 case 0: echo DE_0; break;
283 case 1: echo DE_1; break;
285 break;
287 case 2:
288 $_SESSION['taller'] = $_POST['taller'];
289 echo
291 <form action="./?accion=horarios" method="post">
292 <table border=0>
293 <tr><td>Tipo de instructor a revisar: </td><td>
294 <select name="tipo">
295 <option value="0">'.TI_0.'
296 <option value="1">'.TI_1.'
297 <option value="2">'.TI_2.'
298 <option value="3">'.TI_3.'
299 </select>
300 </td></tr>
301 </table>
302 <input type="hidden" name="paso" value="3">
303 <input type="submit" name="continuar" value="Continuar" />
304 </form>
306 echo '<hr />';
307 switch ($_SESSION['dpto'])
309 case 0: echo DE_0; break;
310 case 1: echo DE_1; break;
312 echo "->".$_SESSION['taller'];
313 break;
314 case 3:
315 $_SESSION['tipo'] = $_POST['tipo'];
316 MOSTRAR_HORARIOS();
317 break;
318 default:
319 exit;