From f582fc4fea46fbd04d4dda15ba3a47170080939f Mon Sep 17 00:00:00 2001 From: "alejandro.lara" Date: Thu, 21 Mar 2024 11:43:46 -0600 Subject: [PATCH] =?UTF-8?q?Autorizaci=C3=B3n=20de=20solicitudes=20generale?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- solicitudes_autorizar.php | 1024 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1024 insertions(+) create mode 100644 solicitudes_autorizar.php diff --git a/solicitudes_autorizar.php b/solicitudes_autorizar.php new file mode 100644 index 0000000..2ab559b --- /dev/null +++ b/solicitudes_autorizar.php @@ -0,0 +1,1024 @@ +access(); +//echo $user; +/*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(); +} + +$supervisor = false; +$coordinador = false; +if($user->rol["rol_id"]==7 || $user->rol["rol_id"]==8){ + $supervisor = true; +} +if($user->rol["rol_id"]==9 || $user->rol["rol_id"]==8){ + $coordinador = true; +} + +//$user->print_to_log('Reposiciones'); +//$write = $user->admin || in_array($user->acceso, ['w']); +$write = true; // + +function duracionMinutos($fechahora_i, $fechahora_f){ + return round((strtotime($fechahora_f) - strtotime($fechahora_i)) / 60,2); +} +if($user->periodo_id!= ""){ + $en_fecha = $db->querySingle("SELECT ESTA_EN_PERIODO(NOW()::DATE, :periodo_id)", [':periodo_id' => $user->periodo_id])['esta_en_periodo']; + + $profesores_rs = array(); + $tab_inicial = 1; + if(!$supervisor){ + $fac_id = $user->facultad["facultad_id"]; + $carrera_rs = $db->query('SELECT * FROM fs_profesor_facultad(:fac, :periodo)', [':fac'=>$fac_id, ':periodo' => $user->periodo_id]); + }else{ + $carrera_rs = $db->query('SELECT * FROM fs_profesor_facultad(NULL, :periodo)', [ ':periodo' => $user->periodo_id]); + } + + $salones_rs = $db->query('SELECT * from salon_view where es_salon is true'); + + //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")); + } + + // Fechas filtro + 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"])); + + //Reposiciones + $repEdo_rs = $db->query('SELECT * FROM fs_estado_reposicion' ); + + $repoParams = array(); + $asigParams = array(); + $query = ""; + + if($user->rol["rol_id"] == 9){//es coordinador + $query .= ":facultad, "; + $repoParams[":facultad"] = $user->facultad["facultad_id"]; + }else{//supervisor + $query .= "NULL, "; + } + if(isset($_POST["prof"]) ){ + $query .= ":prof,"; + $profesor = trim($_POST["prof"]);//limpia texto + $repoParams[":prof"] = $profesor; + }else{ + $query .= "NULL,"; + } + $query .= ":f_ini, :f_fin, "; + $queryAsig = ":f_ini, :f_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'); + $repoParams[":f_ini"] = $fecha_ini_db; + $repoParams[":f_fin"] = $fecha_fin_db; + $repoParams[":edo"] = 1;//se sobreescribe + + $asigParams[":f_ini"] = $fecha_ini_db; + $asigParams[":f_fin"] = $fecha_fin_db; +} +?> + + + + + Reposiciones autorizar | <?= $user->facultad['facultad'] ?? 'General' ?> + + + + + + + + + + + + + + + + + + + + + + + " ?> +
+ +
+ + + periodo_id!= ""){ ?> +
+
+ + +
+ +
+ +
No es una fecha válida.
+
+
+
+ +
+ +
El rango de fechas no es válido.
+
+
+
+ +
+ +
+
+
+
+ + +
+ + +
+ + + + +
+ +
+ rol["rol_id"] == 7){//es supervisor + $repoParams[":sup"] = $user->user["id"]; + $solicitudes_rs = $db->query('SELECT * FROM fs_solicitud(NULL, '.$query.':edo, NULL, :sup) ', $repoParams ); + }else{ + $solicitudes_rs = $db->query('SELECT * FROM fs_solicitud(NULL, '.$query.':edo, NULL, NULL) ', $repoParams ); + } + + + if(count($solicitudes_rs)==0){ + echo "

No hay reposiciones en este estado

"; + }else{ + ?> + +

>

+ + + + + + + + + + + + + + + + " data-edo="" id="id"> + + + + + + + + + + + + + +
EstadoTipoProfesor/MateriaFecha faltaFecha reposiciónSalónAcciones
+ +
d-flex mx-auto"> +
+
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ + + + +
".substr($reposicion["hora_original"],0, 5); + }else{ + echo " - "; + } + ?> + ".substr($reposicion["hora_nueva"],0, 5)." a ".substr($reposicion["hora_nueva_fin"],0, 5); + ?> + + + + jefe_carrera || $user->admin || !$coordinador) && $reposicion["estado_reposicion_id"] == 1){?> + " title="Aprobar"> + admin) && $reposicion["estado_reposicion_id"] == 2){?> + " title="Autorizar" > + + " title="Ver detalle"> + + + " title="Ver detalle"> + + + jefe_carrera || $user->admin || $coordinador) && $reposicion["estado_reposicion_id"] == 1)/* nueva */ + || (($user->admin || $coordinador || $supervisor) && $reposicion["estado_reposicion_id"] == 2)/* aprobado facultad */ + ){ + ?> + + +
+ +
+ +
+ + + + + + + +
+ + + + + + \ No newline at end of file