2 function byteConvert($bytes)
4 $s = array('B', 'Kb', 'MB', 'GB', 'TB', 'PB');
5 $e = floor(log($bytes)/log(1024));
7 return sprintf('%.2f '.$s[$e], ($bytes/pow(1024, floor($e))));
9 function Directorios($base, $tema) {
11 $s = "<h4>$tema</h4><blockquote cite=\"$tema\"><ol>";
12 while($filename=$dir->read()) {
13 if ( $filename != "." && $filename != ".." && $filename != "index.php" ) { $s = $s."<li>".CREAR_LINK("$base$filename", $filename, "Abrir $filename").' [<b>'.byteConvert(filesize($base.$filename)).'</b>]</li><br />'; }
16 $s = $s."</ol></blockquote>";
21 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
22 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
24 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
25 <title>Reporte de Instructores</title>
29 $HTML_FOOT = '</body></html>';
31 function HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO($dia, $hora) {
32 global $session, $link;
33 // 1. Tengo ocupada esa hora?
34 switch ( $_SESSION['tipo'] ) {
39 $q = "SELECT users.username, nombre, horarios.taller FROM users,horarios WHERE horarios.username = '".$_SESSION['user'] . "' AND users.username = '".$_SESSION['user']."' AND tipo = '".$_SESSION['tipo']."' AND dia='$dia' AND posicion='$hora'";
43 $resultados = @mysql_query
($q, $link);
44 $num_rows = mysql_numrows($resultados);
47 //Los encargados estan ocupados y punto.
48 if ( $_SESSION['tipo'] == 2 ) {
49 $msj = $msj.'<FONT COLOR="#800000">'."Ocupado"."</font><br />";
51 //Si, la tengo ocupada, ¿en que taller estoy?
52 //Hacemos for para mostrar si hay mas de un taller (error)!
53 for($i=0; $i<$num_rows; $i++
){
54 $msj = $msj.'<FONT COLOR="#800000">'.mysql_result($resultados,$i,"taller")."</font><br />";
60 return "<td>".$msj."</td>";
63 function MOSTRAR_HORARIOS_UNICO_ECHO() {
64 /* Muestra la tabla de horario en base a las opciones de filtro establecidas */
65 global $link, $base, $motor, $usuario, $clave;
66 $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>');
67 @mysql_select_db
($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
70 switch ($_SESSION['dpto'])
72 case 0: $s = $s . DE_0
; break;
73 case 1: $s = $s . DE_1
; break;
76 ' - Instructor: '.$_SESSION['nombre'].'</h3>
78 <table border="1" cellspacing="0" cellpadding="3">
79 <tr><th>Horario</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr>
81 for ($i=450; $i<=1170; $i+
=60){
82 $s = $s . "<tr><td><b>". date("h:ia", mktime(0,$i)) . "</b></td>". HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(1, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(2, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(3, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(4, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(5, $i).HORARIO__DESCRIBIR_ELEMENTO_EN_POS_UNICO_ECHO(6, $i)."</tr>";
89 function displayUsers_ECHO(){
90 global $database, $link, $base, $motor, $usuario, $clave;
91 $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>');
92 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
95 $q = "SELECT username,nombre,userlevel,email,timestamp FROM ".TBL_USERS
." $where ORDER BY userlevel DESC;";
96 $result = $database->query($q, $link);
97 /* Error occurred, return given name by default */
98 $num_rows = mysql_numrows($result);
99 if(!$result ||
($num_rows < 0)){
100 echo "<hr />Error en la consulta<hr />";
104 $s = "No hay instructores, imposible generar reporte.";
107 /* Display table contents */
109 $s = '<table border="1" cellspacing="0" cellpadding="3">';
110 $s = $s . "<tr><td><b>Código</b></td><td><b>Nombre</b></td><td><b>Nivel</b></td><td><b>Email</b></td><td><b>Última actividad</b></td></tr>";
111 for($i=0; $i<$num_rows; $i++
){
112 $uname = mysql_result($result,$i,"username");
113 $nombre = mysql_result($result,$i,"nombre");
114 $ulevel = mysql_result($result,$i,"userlevel");
115 $email = mysql_result($result,$i,"email");
116 $time = date("c", mysql_result($result,$i,"timestamp"));
117 //$horarios ='<a href="./?x=hr&forzar='.$uname.'">Ver</a>';
119 $s = $s . "<tr><td>$uname</td><td>$nombre</td><td>$ulevel</td><td>$email</td><td>$time</td></tr>";
121 $s = $s . "</table>";
125 function OBTENER_TIPO_R($taller,$dia, $hora) {
126 global $session, $link;
127 // ¿Hay alguien(es) en esa posición?
128 switch ($_SESSION['tipo']) {
132 $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' AND departamento = '" .$_SESSION['dpto']. "';";
135 $q = "SELECT users.username, nombre FROM users, horarios WHERE users.username = horarios.username AND tipo = '2' AND dia='$dia' AND posicion='$hora' AND departamento = '" . $_SESSION['dpto']. "';";
139 $resultados = @mysql_query
($q, $link);
140 $num_rows = mysql_numrows($resultados);
144 for($i=0; $i<$num_rows; $i++
){
145 $uname = mysql_result($resultados,$i,"nombre");
146 /* Por petición solo el primer nombre es mostrado */
148 ereg("([^ ]*)", $uname, $nombre);
149 $uinfo = mysql_result($resultados,$i,"username");
150 $msj = $msj.$nombre[0]."<br />";
152 return "<td bgcolor=\"#EEEEEE\">".$msj."</td>";
154 //$msj="Sin Asignar";
157 return "<td>".$msj."</td>";
160 function MOSTRAR_HORARIOS_ECHO() {
161 global $link, $base, $motor, $usuario, $clave;
162 $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>');
163 mysql_select_db($base, $link) or die('!->La base de datos seleccionada "'.$base.'" no existe');
167 <h3>Taller '.$_SESSION['taller'].' - ';
168 switch ($_SESSION['tipo'])
170 case 0: $salida = $salida .TI_0
; break;
171 case 1: $salida = $salida .TI_1
; break;
172 case 2: $salida = $salida .TI_2
; break;
173 case 3: $salida = $salida .TI_3
; break;
179 <table border="1" cellspacing="0" cellpadding="3">
180 <tr><th>Horario</th><th>Lunes</th><th>Martes</th><th>Miercoles</th><th>Jueves</th><th>Viernes</th><th>Sabado</th></tr>
182 for ($i=450; $i<=1170; $i+
=60){
183 $salida = $salida ."<tr><td>". date("h:ia", mktime(0,$i)) . "</td>". OBTENER_TIPO_R($_SESSION['taller'], 1, $i).OBTENER_TIPO_R($_SESSION['taller'], 2, $i).OBTENER_TIPO_R($_SESSION['taller'], 3, $i).OBTENER_TIPO_R($_SESSION['taller'], 4, $i).OBTENER_TIPO_R($_SESSION['taller'], 5, $i).OBTENER_TIPO_R($_SESSION['taller'], 6, $i)."</tr>";
185 $salida = $salida .'</table><br /><p style="page-break-after: always" />';
186 //mysql_close($link);
190 function ADMIN_reportes() {
191 global $HTML_HEAD, $HTML_FOOT, $database;;
192 echo "<h2>Generador de Reportes</h2>";
193 /***************************************************************************************************************************/
195 /***************************************************************************************************************************/
196 //Nos pasaron un nombre?, entonces quieren un reporte SOLO de ese usuario:
197 if ( isset($_GET['user']) ) {
198 $_SESSION['user'] = $_GET['user'];
199 $req_user_info = $database->getUserInfo($_SESSION['user']);
200 $_SESSION['tipo'] = $req_user_info['tipo'];
201 $_SESSION['nombre'] = $req_user_info['nombre'];
202 $_SESSION['dpto'] = $req_user_info['departamento'];
203 unset($_SESSION['taller']);
204 /***************************************************************************************************************************/
206 /***************************************************************************************************************************/
207 $s = $HTML_HEAD. MOSTRAR_HORARIOS_UNICO_ECHO() . $HTML_FOOT;
208 $archivo_HTML_INSTRUCTORES_IND = "reportes/+I/+HTML/instructores+".$_SESSION['user']."+".$tiempo_ord.".html";
209 $fh = @fopen
($archivo_HTML_INSTRUCTORES_IND, 'w') or die("'/reportes/+HTML/' bloqueado");
212 /***************************************************************************************************************************/
214 /***************************************************************************************************************************/
215 @set_time_limit
(300);
216 $dompdf = new DOMPDF();
217 $dompdf->load_html($s);
219 $PDF_INSTRUCTORES_IND = $dompdf->output();
220 $archivo_PDF_INSTRUCTORES_IND = "reportes/+I/+PDF/horarios+".$_SESSION['user']."+".$tiempo_ord.".pdf";
221 file_put_contents($archivo_PDF_INSTRUCTORES_IND, $PDF_INSTRUCTORES_IND);
223 unset($PDF_INSTRUCTORES);
228 echo '<a href="'.$archivo_HTML_INSTRUCTORES_IND.'" target="_blank">Descargar reportes de horario para '.$_SESSION['user'].'[HTML]</a><br />';
229 echo '<a href="'.$archivo_PDF_INSTRUCTORES_IND.'" target="_blank">Descargar reportes de horario para '.$_SESSION['user'].'[PDF]</a><br />';
231 echo '<blockquote>Por favor realice clic derecho sobre el enlace de descarga y posteriormente utilice la opción "Guardar como" de su navegador</blockquote>';
235 if ( isset($_POST['generar']) ) {
236 echo '<h3>Reporte(s) generado(s) en base a las opciones de configuración:<br />';
237 $tiempo_ord = date('y\-m\-d\+h.ia', time());
238 if ($_POST['generar_horarios'] == 1 ) {
239 /***************************************************************************************************************************/
240 /* HORARIOS - HTML */
241 /***************************************************************************************************************************/
243 if (isset($_POST['dpto0'])) {
244 if ($_POST['dpto0'] == 1) {
245 $_SESSION['dpto'] = 0;
246 $s = $s . "<h2>".DE_0
. "</h2>";
247 for ($i=0; $i < 4; $i++
) {
248 if (isset($_POST["tipo_instructor$i"])) {
249 if ( $_POST["tipo_instructor$i"] == 1 ) {
250 $_SESSION['tipo'] = $i;
252 if (isset($_POST['taller0'])) { if ( $_POST['taller0'] ) {$_SESSION['taller'] = 'LSA'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
253 if (isset($_POST['taller1'])) { if ( $_POST['taller1'] ) {$_SESSION['taller'] = 'LID'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
254 if (isset($_POST['taller2'])) { if ( $_POST['taller2'] ) {$_SESSION['taller'] = 'LAI'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
255 if (isset($_POST['taller3'])) { if ( $_POST['taller3'] ) {$_SESSION['taller'] = 'LIV'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
257 //Encargado de Taller, solo mostrar 1 horario.
258 $_SESSION['taller'] = 'GENERAL'; $s = $s . MOSTRAR_HORARIOS_ECHO();
265 if (isset($_POST['dpto1'])) {
266 if ($_POST['dpto1'] == 1) {
267 $_SESSION['dpto'] = 1;
268 $s = $s . "<h2>".DE_1
. "</h2>";
269 for ($i=0; $i < 4; $i++
) {
270 if (isset($_POST["tipo_instructor$i"])) {
271 if ( $_POST["tipo_instructor$i"] == 1 ) {
272 $_SESSION['tipo'] = $i;
274 if (isset($_POST['taller4'])) { if ( $_POST['taller4'] ) {$_SESSION['taller'] = 'TPP'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
275 if (isset($_POST['taller5'])) { if ( $_POST['taller5'] ) {$_SESSION['taller'] = 'TIS'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
276 if (isset($_POST['taller6'])) { if ( $_POST['taller6'] ) {$_SESSION['taller'] = 'TAS'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
277 if (isset($_POST['taller7'])) { if ( $_POST['taller7'] ) {$_SESSION['taller'] = 'TEC'; $s = $s . MOSTRAR_HORARIOS_ECHO(); }}
279 //Encargado de Taller, solo mostrar 1 horario.
280 $_SESSION['taller'] = 'GENERAL'; $s = $s . MOSTRAR_HORARIOS_ECHO();
287 $s = $s . $HTML_FOOT;
289 //Haremos HORARIOS_HTML?
290 if ( $_POST['tipo_reporte1'] == 1 ) {
291 $archivo_HTML_HORARIOS = "reportes/+H/+HTML/horarios+".$tiempo_ord.".html";
292 $fh = @fopen
($archivo_HTML_HORARIOS, 'w') or die("'/reportes/+HTML/' bloqueado");
297 /***************************************************************************************************************************/
299 /***************************************************************************************************************************/
301 if ( $_POST['tipo_reporte0'] == 1 ) {
302 @set_time_limit
(300);
303 $dompdf = new DOMPDF();
304 $dompdf->load_html($s);
306 $PDF_HORARIOS = $dompdf->output();
307 $archivo_PDF_HORARIOS = "reportes/+H/+PDF/horarios+".$tiempo_ord.".pdf";
308 file_put_contents($archivo_PDF_HORARIOS, $PDF_HORARIOS);
310 unset($PDF_HORARIOS);
315 /***************************************************************************************************************************/
316 /* INSTRUCTORES - HTML */
317 /***************************************************************************************************************************/
318 if ( $_POST['generar_instructores'] == 1 ) {
319 $s = $HTML_HEAD. displayUsers_ECHO() . $HTML_FOOT;
321 //Haremos Instructores_HTML?
322 if ( $_POST['tipo_reporte1'] == 1 ) {
323 $archivo_HTML_INSTRUCTORES = "reportes/+I/+HTML/instructores+".$tiempo_ord.".html";
324 $fh = @fopen
($archivo_HTML_INSTRUCTORES, 'w') or die("'/reportes/+HTML/' bloqueado");
329 /***************************************************************************************************************************/
330 /* INSTRUCTORES - PDF */
331 /***************************************************************************************************************************/
332 if ( $_POST['tipo_reporte0'] == 1 ) {
333 @set_time_limit
(300);
334 $dompdf = new DOMPDF();
335 $dompdf->load_html($s);
337 $PDF_INSTRUCTORES = $dompdf->output();
338 $archivo_PDF_INSTRUCTORES = "reportes/+I/+PDF/horarios+".$tiempo_ord.".pdf";
339 file_put_contents($archivo_PDF_INSTRUCTORES, $PDF_INSTRUCTORES);
341 unset($PDF_INSTRUCTORES);
346 /***************************************************************************************************************************/
347 /* GENERACIÓN DE REPORTES TERMINANDA, MOSTRAR LINKS */
348 /***************************************************************************************************************************/
350 if ( $_POST['tipo_reporte1'] == 1 && $_POST['generar_horarios'] == 1 ){ echo '<a href="'.$archivo_HTML_HORARIOS.'" target="_blank">Descargar reportes de Horarios[HTML]</a><br />'; }
351 if ( $_POST['tipo_reporte0'] == 1 && $_POST['generar_horarios'] == 1 ) {echo '<a href="'.$archivo_PDF_HORARIOS.'" target="_blank">Descargar reportes de Horarios[PDF]</a><br />'; }
352 if ( $_POST['tipo_reporte1'] == 1 && $_POST['generar_instructores'] == 1 ){ echo '<a href="'.$archivo_HTML_INSTRUCTORES.'" target="_blank">Descargar reportes de Instructores[HTML]</a><br />'; }
353 if ( $_POST['tipo_reporte0'] == 1 && $_POST['generar_instructores'] == 1 ){ echo '<a href="'.$archivo_PDF_INSTRUCTORES.'" target="_blank">Descargar reportes de Instructores[PDF]</a><br />'; }
355 echo '<blockquote>Por favor realice clic derecho sobre el enlace de descarga y posteriormente utilice la opción "Guardar como" de su navegador</blockquote>';
357 echo "<hr /><h3>Por favor seleccione el/los tipo(s) de reporte(s) a generar</h3>";
358 echo "<h4>Reporte de horarios</h4>";
360 <form action
="./?accion=reportes" method
="post">
361 <input type
="checkbox" name
="generar_horarios" value
="1" checked
="cheked">Generar reporte de horarios
364 <td
><input type
="checkbox" name
="dpto0" value
="1" checked
="cheked"><?
echo DE_0
;?
></td
>
365 <td
><input type
="checkbox" name
="dpto1" value
="1" checked
="cheked"><?
echo DE_1
;?
></td
>
370 <td
><input type
="checkbox" name
="taller0" value
="1" checked
="cheked">LSA
</td
>
371 <td
><input type
="checkbox" name
="taller4" value
="1" checked
="cheked">TPP
</td
>
374 <td
><input type
="checkbox" name
="taller1" value
="1" checked
="cheked">LID
</td
>
375 <td
><input type
="checkbox" name
="taller5" value
="1" checked
="cheked">TIS
</td
>
378 <td
><input type
="checkbox" name
="taller2" value
="1" checked
="cheked">LAI
</td
>
379 <td
><input type
="checkbox" name
="taller6" value
="1" checked
="cheked">TAS
</td
>
382 <td
><input type
="checkbox" name
="taller3" value
="1" checked
="cheked">LIV
</td
>
383 <td
><input type
="checkbox" name
="taller7" value
="1" checked
="cheked">TEC
</td
>
388 <td
><input type
="checkbox" name
="tipo_instructor0" value
="1" checked
="cheked"> <?
echo TI_0
;?
></td
>
389 <td
><input type
="checkbox" name
="tipo_instructor1" value
="1" checked
="cheked"> <?
echo TI_1
;?
></td
>
392 <td
><input type
="checkbox" name
="tipo_instructor2" value
="1" checked
="cheked"> <?
echo TI_2
;?
></td
>
393 <td
><input type
="checkbox" name
="tipo_instructor3" value
="1" checked
="cheked"> <?
echo TI_3
;?
></td
>
396 <?
echo "<h4>Reporte de Instructores (listas)</h4>"; ?
>
397 <input type
="checkbox" name
="generar_instructores" value
="1" checked
="cheked">Generar reporte de instructores
400 <td
><input type
="checkbox" name
="instructor_nivel0" value
="1" checked
="cheked"> Administradores
</td
>
401 <td
><input type
="checkbox" name
="instructor_nivel1" value
="1" checked
="cheked"> Instructores
</td
>
404 <?
echo "<hr /><h3>Por favor seleccione el/los tipo(s) de formato de salida a generar</h3>"; ?
>
407 <td
><input type
="checkbox" name
="tipo_reporte0" value
="1" checked
="cheked">PDF
</td
>
408 <td
><input type
="checkbox" name
="tipo_reporte1" value
="1" checked
="cheked">HTML
</td
>
411 <input type
="hidden" name
="generar" value
="1">
412 <input type
="submit" name
="bgenerar" value
="Generar" />
415 echo "<hr /><h3>Se han encontrado los siguientes reportes anteriormente generados</h3>";
416 echo Directorios("reportes/+H/+HTML/", "Horarios - HTML");
417 echo Directorios("reportes/+H/+PDF/", "Horarios - PDF");
418 echo Directorios("reportes/+I/+HTML/", "Instructores - HTML");
419 echo Directorios("reportes/+I/+PDF/", "Instructores - PDF");