From 8b9ef01a3662bf62f52817357b121c917a62fdc3 Mon Sep 17 00:00:00 2001 From: Alejandro Rosales Date: Tue, 28 Nov 2023 15:52:22 +0000 Subject: [PATCH] Fix session handling and update UI layout --- asignacion_crear.php | 826 +++++++++++++++++++++++++++++++++++++++++++ profesores.php | 11 +- puestos.php | 4 +- 3 files changed, 834 insertions(+), 7 deletions(-) create mode 100644 asignacion_crear.php diff --git a/asignacion_crear.php b/asignacion_crear.php new file mode 100644 index 0000000..e922dcb --- /dev/null +++ b/asignacion_crear.php @@ -0,0 +1,826 @@ +access(); +/*print_r($user); +print_r($user->user["id"]); +echo "****|"; +print_r($user->acceso);//null sin permisos, w o r +echo "|****|"; +print_r($user->profesor); +echo "|****|"; +print_r($user->facultad["facultad_id"]); +exit();*/ +//profesor, admin, rol, facultad +if ($user->acceso === null && !$user->admin){ + die(header('Location: index.php')); + exit(); +} + +//if (!$user->admin && in_array($user->acceso, ['n'])) + //die(header('Location: main.php?error=1')); +//$user->print_to_log('Reposiciones'); + +//$write = $user->admin || in_array($user->acceso, ['w']); +$write = true; // + +$en_fecha = $db->querySingle("SELECT ESTA_EN_PERIODO(NOW()::DATE, :periodo_id)", [':periodo_id' => $user->periodo_id])['esta_en_periodo']; + +//if($user->jefe_carrera){ + + //$prof_rs = $db->query('SELECT DISTINCT * FROM fs_profesores(null, null, :fac) ORDER BY PROFESOR_NOMBRE', [':fac' => $user->facultad["facultad_id"]]); + $prof_rs = $db->query('SELECT DISTINCT PROFESOR.* FROM PROFESOR + JOIN HORARIO_VIEW USING (PROFESOR_ID_ID) + WHERE FACULTAD_ID = :fac', [':fac' => $user->facultad["facultad_id"]]); +//} + +//Duraciones +$duracion_rs = $db->query("select * from duracion order by duracion_interval"); + +if(!is_null($user->periodo_id)){ + //Periodo + $periodo_rs = $db->querySingle('SELECT periodo_fecha_inicio, periodo_fecha_fin FROM periodo WHERE periodo_id = :periodo_id', [':periodo_id' => $user->periodo_id]); + $periodo_fin = $periodo_rs["periodo_fecha_fin"]; + if(strtotime($periodo_rs["periodo_fecha_inicio"])>strtotime(date("Y-m-d")) ) + $fecha_man = date("d/m/Y", strtotime($periodo_rs["periodo_fecha_inicio"])); + else{ + $dias = 3; + if( intval(date("w")) >=3 && intval(date("w"))<=5 )//Mie a Vie + $dias+=3; + else if( intval(date("w")) ==6 )//Sab + $dias+=2; + else if( intval(date("w")) ==0 )//Do + $dias+=1; + + $fecha_man = date("d/m/Y", strtotime("+".$dias." day")); + } + /* + // Materias + $id_prof = $user->profesor; + //$facultad_id = 28; + $materias_rs = $db->query('SELECT * FROM fs_materiasprofesor(:id)', [':id' => $id_prof]); + */ + if(isset($_POST["fecha_inicial"])) + $fecha_ini = $_POST["fecha_inicial"]; + else + $fecha_ini = date("d/m/Y", strtotime($periodo_rs["periodo_fecha_inicio"])); + + if(isset($_POST["fecha_final"])) + $fecha_fin = $_POST["fecha_final"]; + else + $fecha_fin = date("d/m/Y", strtotime($periodo_rs["periodo_fecha_fin"])); + + $date = DateTime::createFromFormat('d/m/Y', $fecha_ini); + $fecha_ini_db = $date->format('Y-m-d'); + + $date = DateTime::createFromFormat('d/m/Y', $fecha_fin); + $fecha_fin_db = $date->format('Y-m-d'); +} + +?> + + + + + + + Reposiciones crear | + <?= $user->facultad['facultad'] ?? "Administrador"; ?> + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ +
+
+ +
+ + periodo_id)) { ?> +
+
+ + +
+ +
+ +
No es una fecha válida.
+
+
+
+ +
+ +
El rango de fechas no es válido.
+
+
+
+
+ + +
+
+ + query('SELECT * FROM fs_reposiciones_solicitud(:f_ini, :f_fin, :usr ,NULL, NULL)', [':f_ini' => $fecha_ini_db, ':f_fin' => $fecha_fin_db, ':usr' => $user->user["id"]]); + } + ?> + +
+ 0){ ?> +

Reposiciones creadas

+
+ + + + + + + + + + + + + + + " id="id"> + + + + + + + + + + + + + +
EstadoResponsableFecha faltaFecha reposiciónDuraciónSalónAcciones
" title=""> + +
d-flex mx-auto"> +
+
+
+ +
+ +
+ +
+ +
+ +
".substr($reposicion["horario_hora"],0,-3)." a ".substr($reposicion["horario_hora_fin"],0,-3)." hrs.";; + ?> + ".substr($reposicion["hora_nueva"],0,-3)." a ".substr($reposicion["hora_nueva_fin"],0,-3)." hrs."; + ?> + + + + + + + +
+
+ periodo_id)){ ?> +
+

Selecciona un periodo

+
+ +
+

No tienes solicitudes disponibles que cumplan con los filtros

+
+ +
+ + + + + +
+ + + + + + + + + \ No newline at end of file diff --git a/profesores.php b/profesores.php index f38d8ea..050f2a2 100644 --- a/profesores.php +++ b/profesores.php @@ -2,8 +2,11 @@ require_once 'class/c_login.php'; require_once 'include/bd_pdo.php'; -$user = Login::get_user(); - +if (!isset($_SESSION['user'])) { + header('Location: index.php'); + exit; +} else + $user = unserialize($_SESSION['user']); $user->access(); if ($user->acceso == null) { header('Location: main.php?error=1'); @@ -68,9 +71,7 @@ if ($user->admin) { //si es admin su facultad es null (todas las facultades) "SELECT DISTINCT PROFESOR.*, FACULTAD.* FROM profesor JOIN horario_profesor USING (profesor_id) JOIN horario USING (horario_id) - JOIN materia USING (materia_id) - JOIN carrera USING (carrera_id) - JOIN facultad ON carrera.facultad_id = facultad.facultad_id + JOIN facultad ON horario.facultad_id = facultad.facultad_id WHERE profesor_nombre ILIKE COALESCE(:nombre, profesor_nombre) AND profesor_clave ILIKE COALESCE(:clave, profesor_clave) AND facultad.facultad_id = COALESCE(:facultad, facultad.facultad_id) diff --git a/puestos.php b/puestos.php index 8819634..62e0f9e 100644 --- a/puestos.php +++ b/puestos.php @@ -35,7 +35,7 @@
-