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'";
7 $resultados = @mysql_query
($q, $link);
8 $num_rows = mysql_numrows($resultados);
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&usr='.$uinfo.'">'.$nombre[1].'</a>[<a href="./?accion=horarios&t='.$taller.'&d='.$dia.'&h='.$hora.'&o=e&u='.$uinfo.'">X</a>]<br />';
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>';
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&t='.$taller.'&d='.$dia.'&h='.$hora.'&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');
46 switch ($_SESSION['dpto'])
48 case 0: echo DE_0
; break;
49 case 1: echo DE_1
; break;
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;
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>";
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'];
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']) {
93 $_SESSION['taller'] = 'LSA';
95 $_SESSION['taller'] = 'LID';
97 $_SESSION['taller'] = 'LAI';
99 $_SESSION['taller'] = 'LIV';
103 $_SESSION['taller'] = 'TPP';
105 $_SESSION['taller'] = 'TIS';
107 $_SESSION['taller'] = 'TAS';
109 $_SESSION['taller'] = 'TEC';
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>';
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']."';";
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 :)
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.
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.');
151 <h3>Registro exitoso del Instructor</h3><br />
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>';
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);
176 <form action="./?accion=horarios" method="post">
178 <tr><td>Instructores disponibles para el filtro actual: </td><td>
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;
193 <input type="hidden" name="query" value="insertar">
194 <input type="submit" name="continuar" value="Continuar" />
198 echo '<h3>Error<h3><hr />';
199 echo 'No se encontró ningún instructor que cumpliera con su criterio<br />';
203 if ($session->isAdmin()) {
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 />";
216 $paso = $_POST['paso'];
218 0. Selección de departamento.
220 1. Selección de taller.
222 2. Filto ocupacion del instructor
225 echo '<h2>Visor de Horarios</h2></b><hr />';
230 <form action="./?accion=horarios" method="post">
232 <tr><td>Departamento a revisar: </td><td>
234 <option value="0">'.DE_0
.'
235 <option value="1">'.DE_1
.'
239 <input type="hidden" name="paso" value="1">
240 <input type="submit" name="continuar" value="Continuar" />
245 $_SESSION['dpto'] = $_POST['dpto'];
248 <form action="./?accion=horarios" method="post">
250 <tr><td>Taller a revisar: </td><td>
251 <select name="taller">
253 if ($_POST['dpto'] == 0) {
256 <option value="LSA">'."LSA".'
257 <option value="LID">'."LID".'
258 <option value="LAI">'."LAI".'
259 <option value="LIV">'."LIV".'
264 <option value="TPP">'."TPP".'
265 <option value="TIS">'."TIS".'
266 <option value="TAS">'."TAS".'
267 <option value="TEC">'."TEC".'
275 <input type="hidden" name="paso" value="2">
276 <input type="submit" name="continuar" value="Continuar" />
280 switch ($_SESSION['dpto'])
282 case 0: echo DE_0
; break;
283 case 1: echo DE_1
; break;
288 $_SESSION['taller'] = $_POST['taller'];
291 <form action="./?accion=horarios" method="post">
293 <tr><td>Tipo de instructor a revisar: </td><td>
295 <option value="0">'.TI_0
.'
296 <option value="1">'.TI_1
.'
297 <option value="2">'.TI_2
.'
298 <option value="3">'.TI_3
.'
302 <input type="hidden" name="paso" value="3">
303 <input type="submit" name="continuar" value="Continuar" />
307 switch ($_SESSION['dpto'])
309 case 0: echo DE_0
; break;
310 case 1: echo DE_1
; break;
312 echo "->".$_SESSION['taller'];
315 $_SESSION['tipo'] = $_POST['tipo'];