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>';
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']."';";
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 :)
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.
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.');
43 <h3>Registro exitoso del Instructor</h3><br />
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'";
54 $resultados = @mysql_query
($q, $link);
55 $num_rows = mysql_numrows($resultados);
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 */
64 ereg("([^ ]*)", $uname, $nombre);
65 if($session->isAdmin()){
66 $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 />';
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>';
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 = "&nombre=".$_SESSION['nombre']."&u=".$_SESSION['nombre']; } else { $u = ""; }
82 $msj=$msj .'<a href="./?accion=horarios&t='.$taller.'&d='.$dia.'&h='.$hora.'&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');
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;
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>";
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.*/
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']) {
143 $_SESSION['taller'] = 'LSA';
145 $_SESSION['taller'] = 'LID';
147 $_SESSION['taller'] = 'LAI';
149 $_SESSION['taller'] = 'LIV';
153 $_SESSION['taller'] = 'TPP';
155 $_SESSION['taller'] = 'TIS';
157 $_SESSION['taller'] = 'TAS';
159 $_SESSION['taller'] = 'TEC';
166 /*****************************************************************************************************************************************************/
167 // Teoricamente solo un Admin puede pasar de esta linea.
168 /*****************************************************************************************************************************************************/
170 /* Se nos pide ir a la pantalla de ingresar usuario */
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>';
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);
198 <form action="./?'._ACC_
.'=horarios" method="post">
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;
215 <input type="hidden" name="HORARIO_registrar" value="insertar">
216 <input type="submit" name="continuar" value="Continuar" />
220 echo '<h3>Error<h3><hr />';
221 echo 'No se encontró ningún instructor que cumpliera con su criterio<br />';
225 if ($session->isAdmin()) {
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 />";
238 /*****************************************************************************************************************************************************/
239 /* Acción por defecto de Administrador: Se nos pide filtrar los horarios.*/
240 $paso = $_POST['paso'];
242 0. Selección de departamento.
244 1. Selección de ocupacion del instructor
246 1.1 Salta paso 2 si $_POST['tipo'] = 2 -> Encargado de Taller
247 2. Selección de 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 />';
255 if (!isset($_GET['dpto'])) {
258 <form action="./?accion=horarios" method="post">
260 <tr><td>Departamento a revisar: </td><td>
262 <option value="0">'.DE_0
.'
263 <option value="1">'.DE_1
.'
267 <input type="hidden" name="paso" value="1">
268 <input type="submit" name="continuar" value="Continuar" />
273 $_SESSION['dpto'] = $_GET['dpto'];
276 if (!isset($_GET['tipo'])) {
277 $_SESSION['dpto'] = $_POST['dpto'];
281 <form action="./?accion=horarios" method="post">
283 <tr><td>Tipo de instructor a revisar: </td><td>
285 <option value="0">'.TI_0
.'
286 <option value="1">'.TI_1
.'
287 <option value="2">'.TI_2
.'
288 <option value="3">'.TI_3
.'
292 <input type="hidden" name="paso" value="2">
293 <input type="submit" name="continuar" value="Continuar" />
297 switch ($_SESSION['dpto'])
299 case 0: echo DE_0
; break;
300 case 1: echo DE_1
; break;
304 $_SESSION['tipo'] = $_GET['tipo'];
307 $_SESSION['tipo'] = $_POST['tipo'];
308 if ( isset($_GET['nombre'] ) ) { $ChinearGet = "&nombre=".$_GET['nombre']; } else { $ChinearGet = ""; }
311 <form action="./?accion=horarios'.$ChinearGet.'" method="post">
313 <tr><td>Taller a revisar: </td><td>
314 <select name="taller">
316 if ($_POST['dpto'] == 0) {
319 <option value="LSA">'."LSA".'
320 <option value="LID">'."LID".'
321 <option value="LAI">'."LAI".'
322 <option value="LIV">'."LIV".'
327 <option value="TPP">'."TPP".'
328 <option value="TIS">'."TIS".'
329 <option value="TAS">'."TAS".'
330 <option value="TEC">'."TEC".'
338 <input type="hidden" name="paso" value="3">
339 <input type="submit" name="continuar" value="Continuar" />
343 switch ($_SESSION['dpto'])
345 case 0: echo DE_0
; break;
346 case 1: echo DE_1
; break;
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;
359 $_SESSION['taller'] = $_POST['taller'];