All
This commit is contained in:
@@ -68,6 +68,7 @@ try {
|
||||
comentario,
|
||||
registro_fecha_justificacion,
|
||||
profesor.profesor_id, profesor_nombre, profesor_clave, profesor_correo,
|
||||
horario_id,
|
||||
materia, carrera, horarios.facultad_id, facultad, nivel, horario_hora, horario_fin, horario_grupo, horarios.salon,
|
||||
fechas.registro_fecha_ideal,
|
||||
estado_supervisor.estado_supervisor_id as estado_supervisor_id,
|
||||
|
||||
@@ -7,7 +7,16 @@ $ruta = "../";
|
||||
require_once "../class/c_login.php";
|
||||
|
||||
// check if the session is started
|
||||
$user = Login::get_user();
|
||||
if (!isset($_SESSION['user']))
|
||||
die('No se ha iniciado sesión');
|
||||
|
||||
$user = unserialize($_SESSION['user']);
|
||||
//$user->access();
|
||||
|
||||
$duracion_id = filter_input(INPUT_POST, "duracion", FILTER_SANITIZE_NUMBER_INT);//1 Repo , 0 Cambio
|
||||
$bloque = filter_input(INPUT_POST, "bloque", FILTER_SANITIZE_NUMBER_INT);//1 Repo , 0 Cambio
|
||||
$ciclo = filter_input(INPUT_POST, "ciclo", FILTER_SANITIZE_NUMBER_INT);//1 Repo , 0 Cambio
|
||||
$fecha_falta = trim(htmlspecialchars($_POST["fecha_falta"], ENT_QUOTES, "UTF-8"));//limpia texto
|
||||
$fecha_falta = trim(htmlspecialchars($_POST["fecha_falta"], ENT_QUOTES, "UTF-8"));//limpia texto
|
||||
$fecha = trim(htmlspecialchars($_POST["fecha_inicial"], ENT_QUOTES, "UTF-8"));//limpia texto
|
||||
$fecha_cambio = trim(htmlspecialchars($_POST["fecha_cambio"], ENT_QUOTES, "UTF-8"));//limpia texto
|
||||
@@ -26,19 +35,21 @@ else
|
||||
//$salon = trim(filter_input(INPUT_POST, "salon", FILTER_SANITIZE_STRING,array('flags' => FILTER_FLAG_STRIP_LOW)));//limpia texto
|
||||
$comentario = trim(htmlspecialchars($_POST["comentario"], ENT_QUOTES, "UTF-8"));//limpia texto
|
||||
|
||||
|
||||
$duracion_rs = $db->querySingle("select * from duracion where duracion_id = :id", [":id"=>$duracion_id]);
|
||||
$duracion_tiempo = $duracion_rs["duracion_interval"];
|
||||
|
||||
//-- Obtiene datos de horario regular de clase
|
||||
$horario_rs = $db->querySingle('SELECT * from fs_horario_basic where id = :hor',
|
||||
$horario_rs = $db->querySingle('SELECT * from horario_view where horario_id = :hor',
|
||||
[':hor' => $hor]
|
||||
);
|
||||
|
||||
$materia = $horario_rs["materia_id"];
|
||||
$gpo = $horario_rs["grupo"];
|
||||
$duracion = $horario_rs["duracion_total"];
|
||||
$dia = $horario_rs["dia"];
|
||||
$dia = $horario_rs["horario_dia"];
|
||||
|
||||
$hora = $hora_ini.":".$min_ini.":00";
|
||||
$fecha_new = DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')." ".$hora;
|
||||
$fecha_fin_new = date("Y-m-d H:i:00", strtotime($fecha_new.' + '.$duracion.' minute'));
|
||||
$fecha_fin_new = date("Y-m-d", strtotime($fecha_new))." ".$duracion_tiempo;
|
||||
$dia_new = date('w', strtotime($fecha_new));
|
||||
|
||||
if($tipo == 1){//Reposición
|
||||
@@ -52,8 +63,10 @@ if($tipo == 1){//Reposición
|
||||
|
||||
//Valida que tenga clase en la fecha de falta
|
||||
if(intval($dia) != intval($dia_falta)){
|
||||
//header("Location:".$pag."?error=11");
|
||||
echo intval($dia)." != ".intval($dia_falta);
|
||||
header("Location:".$pag."?error=11");
|
||||
/*print_r($_POST);
|
||||
echo 'SELECT * from horario_view where horario_id = '.$hor;
|
||||
echo intval($dia)." != ".intval($dia_falta);*/
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -66,24 +79,28 @@ if($tipo == 1){//Reposición
|
||||
exit();
|
||||
}
|
||||
*/
|
||||
//Valida que profesor no este en 2 reposiciones al mismo tiempo
|
||||
//Valida que profesor no este en 2 reposiciones al mismo tiempo en la fecha nueva
|
||||
|
||||
$traslape = $db->querySingle('SELECT * from traslape_profesor_reposicion(:prof, :fecha, :hora, :dur)',
|
||||
[':prof' => $prof, ':fecha'=>$fecha_falta, ':hora'=>$hora, ':dur'=>$duracion]
|
||||
[':prof' => $prof, ':fecha'=>DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d'), ':hora'=>$hora, ':dur'=>$duracion_tiempo]
|
||||
)["traslape_profesor_reposicion"];
|
||||
if($traslape){
|
||||
//print_r($_POST);
|
||||
//echo "SELECT * from traslape_profesor_reposicion($prof,'".DateTime::createFromFormat('d/m/Y', $fecha)->format('Y-m-d')."' , '$hora', $duracion)";
|
||||
header("Location:".$pag."?error=9");
|
||||
exit();
|
||||
}
|
||||
|
||||
try{
|
||||
$db->query('SELECT * from fi_reposicion(:f_falta, :f_nueva, :hora_nueva, :hor, :prof, 1, :desc, :alumnos, true, :aula, :duracion)',
|
||||
$db->query('SELECT * from fi_reposicion_solicitud(:f_falta, :f_nueva, :hora_nueva, :hor, :prof, 1, :desc, :alumnos, true, :aula, :duracion, :usr, :bloque, :ciclo)',
|
||||
[':f_falta' => $fecha_falta, ':f_nueva' => $fecha_new, ':hora_nueva' => $hora, ':hor' => $hor,
|
||||
':prof' => $prof, ':desc' => $comentario, ':alumnos' => $alumnos, ':aula' => $aula, ':duracion' => $duracion
|
||||
':prof' => $prof, ':desc' => $comentario, ':alumnos' => $alumnos, ':aula' => $aula, ':duracion' => $duracion_id, ':usr'=>$user->user["id"],
|
||||
':bloque' => $bloque, ':ciclo' => $ciclo
|
||||
]
|
||||
);
|
||||
}catch(Exception $e){
|
||||
header("Location: ".$pag."?error=1");
|
||||
echo $e->getMessage();
|
||||
//header("Location: ".$pag."?error=1");
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -96,9 +113,10 @@ if($tipo == 1){//Reposición
|
||||
}else{//Cambio salón / hora
|
||||
|
||||
try{
|
||||
$db->query('SELECT * from fi_reposicion(:f_falta, :f_nueva, :hora_nueva, :hor, :prof, 1, :desc, :alumnos, true, :aula, :duracion)',
|
||||
$db->query('SELECT * from fi_reposicion_solicitud(:f_falta, :f_nueva, :hora_nueva, :hor, :prof, 1, :desc, :alumnos, true, :aula, :duracion, :usr, :bloque, :ciclo)',
|
||||
[':f_falta' => $fecha_falta, ':f_nueva' => $fecha_cambio, ':hora_nueva' => $hora, ':hor' => $hor,
|
||||
':prof' => $prof, ':desc' => $comentario, ':alumnos' => $alumnos, ':aula' => $aula, ':duracion' => $duracion
|
||||
':prof' => $prof, ':desc' => $comentario, ':alumnos' => $alumnos, ':aula' => $aula, ':duracion' => $duracion_id, ':usr'=>$user->user["id"],
|
||||
':bloque' => $bloque, ':ciclo' => $ciclo
|
||||
]
|
||||
);
|
||||
}catch(Exception $e){
|
||||
|
||||
@@ -33,7 +33,8 @@ $user = unserialize($_SESSION['user']);
|
||||
foreach($rs as $m){
|
||||
$mat_arr[] = array("horario_id"=>$m["horario_id"], "horario_dia"=>$m["horario_dia"],
|
||||
"horario_hora"=>substr($m["horario_hora"], 0, 2), "horario_min"=>substr($m["horario_hora"], 3, 2),
|
||||
"materia_nombre"=>$m["materia_nombre"].' - '.$m["horario_dia_nombre"]." ".substr($m["horario_hora"], 0, -3)
|
||||
"materia_nombre"=>$m["materia_nombre"].' - '.$m["horario_dia_nombre"]." ".substr($m["horario_hora"], 0, -3),
|
||||
"grupo"=>$m["horario_grupo"], "duracion" => $m["duracion"]
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -81,29 +81,42 @@ try {
|
||||
'horario_view',
|
||||
columns: $columns
|
||||
),
|
||||
'query' => $db->getLastQuery(),
|
||||
'reposiciones' => $db
|
||||
->join('periodo', 'periodo.periodo_id = horario_view.periodo_id')
|
||||
->join('registro', 'registro.horario_id = horario_view.horario_id')
|
||||
->join('reposicion', 'registro.reposicion_id = reposicion.reposicion_id')
|
||||
->join('bloque_horario', '(bloque_horario.hora_inicio, bloque_horario.hora_fin) OVERLAPS (reposicion_hora, reposicion_hora + horario_view.duracion)')
|
||||
->join('profesor', 'profesor.profesor_id = registro.profesor_id')
|
||||
->join('salon_view', 'salon_view.salon_id = reposicion.salon_id', 'LEFT')
|
||||
->join('salon as salon_reposicion', 'salon_reposicion.salon_id = horario_view.salon_id', 'LEFT')
|
||||
->where("CURRENT_DATE BETWEEN periodo.periodo_fecha_inicio AND periodo.periodo_fecha_fin")
|
||||
->where("reposicion_fecha = CURRENT_DATE")
|
||||
->where('bloque_horario.id', $_GET['bloque_horario_id'])
|
||||
->where('salon_view.id_espacio_padre', $ruta['id_espacio_sgu'])
|
||||
->get(
|
||||
'horario_view',
|
||||
columns: $columns
|
||||
// 'query' => $db->getLastQuery(),
|
||||
'reposiciones' => $db->query(
|
||||
'SELECT ' . implode(', ', $columns) . <<<SQL
|
||||
, reposicion_hora + horario_view.duracion as reposicion_fin
|
||||
FROM horario_view
|
||||
JOIN periodo USING (periodo_id)
|
||||
JOIN registro USING (horario_id)
|
||||
JOIN reposicion USING (reposicion_id)
|
||||
JOIN bloque_horario ON (bloque_horario.hora_inicio, bloque_horario.hora_fin) OVERLAPS (reposicion_hora, reposicion_hora + horario_view.duracion)
|
||||
JOIN profesor USING (profesor_id)
|
||||
JOIN salon_view as salon_reposicion ON (salon_reposicion.salon_id = reposicion.salon_id)
|
||||
WHERE
|
||||
CURRENT_DATE BETWEEN periodo.periodo_fecha_inicio
|
||||
AND periodo.periodo_fecha_fin
|
||||
AND reposicion_fecha = CURRENT_DATE
|
||||
AND bloque_horario.id = :bloque_horario_id
|
||||
AND salon_reposicion.id_espacio_padre = :id_espacio_sgu
|
||||
ORDER BY reposicion_hora
|
||||
SQL,
|
||||
[
|
||||
'bloque_horario_id' => $_GET['bloque_horario_id'],
|
||||
'id_espacio_sgu' => $ruta['id_espacio_sgu'],
|
||||
]
|
||||
),
|
||||
],
|
||||
$ruta,
|
||||
),
|
||||
$data
|
||||
);
|
||||
echo json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
|
||||
$data = array_filter(
|
||||
$data,
|
||||
fn($ruta) => count($ruta['horarios']) > 0 || count($ruta['reposiciones']) > 0
|
||||
);
|
||||
|
||||
echo json_encode(array_values($data), JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
|
||||
} else {
|
||||
http_response_code(405);
|
||||
echo json_encode(['error' => 'method not allowed']);
|
||||
|
||||
34
api/horario_profesor_log.php
Normal file
34
api/horario_profesor_log.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
require_once "{$_SERVER['DOCUMENT_ROOT']}/class/database.php";
|
||||
|
||||
$rawInput = file_get_contents('php://input');
|
||||
$input = json_decode($rawInput, true);
|
||||
|
||||
if (!$rawInput || !isset($input['profesor_id'], $input['log_id']) || $_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||
http_response_code(400);
|
||||
echo json_encode(['error' => 'Request error.']);
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
$periodos = array_map(fn($array) => $array['id_periodo_sgu'], $db
|
||||
->join('periodo', 'periodo.periodo_id = horario_view.periodo_id')
|
||||
->join('horario_profesor', 'horario_profesor.horario_id = horario_view.horario_id')
|
||||
->where('profesor_id', $input['profesor_id'])
|
||||
->groupBy('id_periodo_sgu')
|
||||
->orderBy('id_periodo_sgu', 'DESC')
|
||||
->get('horario_view', 5, 'id_periodo_sgu'));
|
||||
|
||||
$clave_profesor = $db->where('profesor_id', $input['profesor_id'])->getOne('profesor', 'profesor_clave')['profesor_clave'];
|
||||
|
||||
$horarios = [];
|
||||
$rest = new Horarios();
|
||||
|
||||
foreach ($periodos as $periodo) {
|
||||
$horarios = array_merge($horarios, $rest->get(data: ['idPeriodo' => $periodo, 'claveProfesor' => $clave_profesor, 'fecha' => date('Y-m-d')]));
|
||||
}
|
||||
|
||||
$db
|
||||
->where('log_id', $input['log_id'])
|
||||
->update("log_registro", ['horario_web' => json_encode($horarios)]);
|
||||
@@ -282,8 +282,7 @@
|
||||
<button type="button" class="ml-3 btn btn-sm btn-outline-primary"
|
||||
@click="store.current.clase_vista = registro" data-toggle="modal"
|
||||
data-target="#ver-detalle">
|
||||
<i class="ing-ojo"></i>
|
||||
Ver detalle
|
||||
<i class="ing-ojo"></i> detalle
|
||||
</button>
|
||||
</td>
|
||||
|
||||
@@ -606,7 +605,7 @@
|
||||
</div>
|
||||
<div class="row mt-3">
|
||||
<div class="col-12">
|
||||
<div class="form-check">
|
||||
<div class="form-check" v-if="!store.current.justificada.justificacion">
|
||||
<input class="form-check-input" type="checkbox" value="" id="observaciones"
|
||||
v-model="store.current.observaciones">
|
||||
<label class="form-check-label" for="observaciones">
|
||||
@@ -616,8 +615,8 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr v-if="store.current.observaciones">
|
||||
<div class="input-group" v-if="store.current.observaciones">
|
||||
<hr v-if="store.current.observaciones || store.current.justificada.justificacion">
|
||||
<div class="input-group" v-if="store.current.observaciones || store.current.justificada.justificacion">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text text-white bg-primary">Observaciones</span>
|
||||
</div>
|
||||
|
||||
147
class/c_abstract_data.php
Normal file
147
class/c_abstract_data.php
Normal file
@@ -0,0 +1,147 @@
|
||||
<?
|
||||
$ruta = '../';
|
||||
require "{$_SERVER['DOCUMENT_ROOT']}/class/c_login.php";
|
||||
|
||||
trait DatabaseModel
|
||||
{
|
||||
|
||||
public function __construct(protected string $tableName, protected array $columns = [])
|
||||
{
|
||||
}
|
||||
|
||||
public function get(array $params = [], string $what = '*')
|
||||
{
|
||||
global $db;
|
||||
|
||||
$conditions = [];
|
||||
foreach ($params as $key => $value) {
|
||||
$conditions[] = "$key = :$key";
|
||||
}
|
||||
|
||||
$sql = "SELECT $what FROM $this->tableName";
|
||||
if ($conditions) {
|
||||
$sql .= " WHERE " . implode(" AND ", $conditions);
|
||||
}
|
||||
|
||||
$result = $db->query($sql, $params);
|
||||
return $result;
|
||||
}
|
||||
|
||||
protected function insert__(array $params = [], ?string $where = null)
|
||||
{
|
||||
global $db;
|
||||
|
||||
if ($where === null) {
|
||||
$where = $this->tableName;
|
||||
}
|
||||
|
||||
$columns = [];
|
||||
foreach ($params as $key => $value) {
|
||||
$columns[] = "$key = :$key";
|
||||
}
|
||||
|
||||
$sql = "INSERT INTO $where SET " . implode(", ", $columns);
|
||||
$result = $db->query($sql, $params);
|
||||
return $result;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
abstract class WebServiceSGU
|
||||
{
|
||||
const BASE_URL = "https://portal.ulsa.edu.mx/servicios/AuditoriaAsistencialRest/AuditoriaAsistencialService.svc/auditoriaAsistencial";
|
||||
|
||||
private static array $keys = [
|
||||
'username' => 'SGU_APSA_AUD_ASIST',
|
||||
'password' => 'B4qa594JFPr2ufHrZdHS8A==',
|
||||
];
|
||||
|
||||
private static ?JsonSchema\Validator $validator = null;
|
||||
private string $baseUrl;
|
||||
|
||||
public function __construct(protected string $endpoint, protected ?string $schema = null)
|
||||
{
|
||||
$this->baseUrl = self::BASE_URL . $endpoint;
|
||||
}
|
||||
|
||||
private static function initCurl(array $options = [])
|
||||
{
|
||||
$ch = curl_init();
|
||||
curl_setopt_array($ch, $options);
|
||||
return $ch;
|
||||
}
|
||||
|
||||
private static function get_token(): string
|
||||
{
|
||||
$curl = self::initCurl([
|
||||
CURLOPT_URL => self::BASE_URL . "/inicioSesion/seleccionar",
|
||||
CURLOPT_RETURNTRANSFER => true,
|
||||
CURLOPT_CUSTOMREQUEST => "POST",
|
||||
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
|
||||
CURLOPT_POSTFIELDS => json_encode(self::$keys),
|
||||
]);
|
||||
|
||||
$response = curl_exec($curl);
|
||||
$err = curl_error($curl);
|
||||
curl_close($curl);
|
||||
|
||||
if ($err)
|
||||
throw new Exception("cURL Error: $err");
|
||||
|
||||
return trim($response, '"'); // remove quotes
|
||||
}
|
||||
|
||||
protected function validate_schema($data): bool
|
||||
{
|
||||
if ($this->schema === null)
|
||||
return true;
|
||||
|
||||
self::getValidator()->validate($data, (object) json_decode($this->schema));
|
||||
return self::getValidator()->isValid();
|
||||
}
|
||||
|
||||
public static function getValidator(): JsonSchema\Validator
|
||||
{
|
||||
return self::$validator ??= new JsonSchema\Validator();
|
||||
}
|
||||
|
||||
public function get_errors(): array
|
||||
{
|
||||
return self::getValidator()->getErrors();
|
||||
}
|
||||
|
||||
public function get(array $data = []): array
|
||||
{
|
||||
if (!$this->validate_schema($data)) {
|
||||
throw new Exception('Invalid schema');
|
||||
}
|
||||
|
||||
$ch = self::initCurl([
|
||||
CURLOPT_POST => 1,
|
||||
CURLOPT_POSTFIELDS => json_encode($data),
|
||||
CURLOPT_URL => $this->baseUrl,
|
||||
CURLOPT_HTTPHEADER => [
|
||||
'Content-Type: application/json',
|
||||
'Accept: application/json',
|
||||
'username: ' . self::$keys['username'],
|
||||
'token: ' . self::get_token(),
|
||||
],
|
||||
CURLOPT_RETURNTRANSFER => 1,
|
||||
]);
|
||||
|
||||
$response = curl_exec($ch);
|
||||
if (curl_errno($ch)) {
|
||||
throw new Exception('cURL Error: ' . curl_error($ch));
|
||||
}
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
$response = json_decode($response, true);
|
||||
|
||||
if ($response === null) {
|
||||
throw new Exception('Invalid response');
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
119
class/database.php
Normal file
119
class/database.php
Normal file
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
header('Content-Type: application/json charset=utf-8');
|
||||
require_once "{$_SERVER['DOCUMENT_ROOT']}/class/c_abstract_data.php";
|
||||
|
||||
final class Periodo_v1 extends WebServiceSGU
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct("/catalogos/periodos/v1/seleccionar");
|
||||
}
|
||||
}
|
||||
final class Periodo_v2 extends WebServiceSGU
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct("/catalogos/periodos/v2/seleccionar");
|
||||
}
|
||||
}
|
||||
final class Periodos extends WebServiceSGU
|
||||
{
|
||||
// use DatabaseModel;
|
||||
private readonly Periodo_v1 $periodo_v1;
|
||||
private readonly Periodo_v2 $periodo_v2;
|
||||
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct("/catalogos/periodos/seleccionar");
|
||||
$this->periodo_v1 = new Periodo_v1();
|
||||
$this->periodo_v2 = new Periodo_v2();
|
||||
}
|
||||
|
||||
public function get_v1(): array
|
||||
{
|
||||
return $this->periodo_v1->get();
|
||||
}
|
||||
|
||||
public function get_v2(): array
|
||||
{
|
||||
return $this->periodo_v2->get();
|
||||
}
|
||||
|
||||
public function get_merged(): array
|
||||
{
|
||||
$v2Data = $this->get_v2();
|
||||
|
||||
// Create an associative array with IdPeriodo as the key for faster lookup
|
||||
$v2Lookup = array_column($v2Data, null, 'IdPeriodo');
|
||||
|
||||
return array_map(function ($itemV1) use ($v2Lookup) {
|
||||
if (isset($v2Lookup[$itemV1['IdPeriodo']])) {
|
||||
$itemV2 = $v2Lookup[$itemV1['IdPeriodo']];
|
||||
$mergedItem = array_merge($itemV1, $itemV2);
|
||||
unset($mergedItem['NombreCarrera']); // Remove NombreCarrera as specified
|
||||
return $mergedItem;
|
||||
}
|
||||
return $itemV1; // If no matching IdPeriodo found in v2, return the original v1 item
|
||||
}, $this->get_v1());
|
||||
}
|
||||
}
|
||||
|
||||
final class Espacios extends WebServiceSGU
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct("/catalogos/espacios/seleccionar");
|
||||
}
|
||||
}
|
||||
|
||||
final class Carreras extends WebServiceSGU
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct("/catalogos/carreras/seleccionar");
|
||||
}
|
||||
}
|
||||
|
||||
final class Horarios extends WebServiceSGU
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct(
|
||||
"/seleccionar",
|
||||
<<<JSON
|
||||
{
|
||||
"\$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"type": "object",
|
||||
"required": ["idPeriodo"],
|
||||
"properties": {
|
||||
"idPeriodo": {
|
||||
"type": "integer",
|
||||
"description": "Identificador del periodo a consultar."
|
||||
},
|
||||
"claveFacultad": {
|
||||
"type": "string",
|
||||
"description": "Clave de la facultad a consultar.",
|
||||
"pattern": "^[a-zA-Z0-9]*$"
|
||||
},
|
||||
"claveCarrera": {
|
||||
"type": "string",
|
||||
"description": "Clave de la carrera a consultar.",
|
||||
"pattern": "^[a-zA-Z0-9]*$"
|
||||
},
|
||||
"claveProfesor": {
|
||||
"type": "string",
|
||||
"description": "Clave del empleado a consultar.",
|
||||
"pattern": "^[a-zA-Z0-9]*$"
|
||||
},
|
||||
"fecha": {
|
||||
"type": "string",
|
||||
"description": "Fecha de la clase.",
|
||||
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
|
||||
}
|
||||
}
|
||||
}
|
||||
JSON
|
||||
);
|
||||
}
|
||||
}
|
||||
38
class/schema/periodo_v1.json
Normal file
38
class/schema/periodo_v1.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"IdNivel",
|
||||
"IdPeriodo",
|
||||
"NombreNivel",
|
||||
"NombrePeriodo"
|
||||
],
|
||||
"properties": {
|
||||
"IdNivel": {
|
||||
"type": "integer"
|
||||
},
|
||||
"IdPeriodo": {
|
||||
"type": "integer"
|
||||
},
|
||||
"NombreNivel": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"LICENCIATURA",
|
||||
"ESPECIALIDAD",
|
||||
"MAESTRÍA",
|
||||
"DOCTORADO",
|
||||
"COORDINACIÓN DE EDUCACIÓN FÍSICA Y DEPORTES",
|
||||
"COORDINACIÓN DE IMPULSO Y VIDA ESTUDIANTIL",
|
||||
"COORDINACIÓN DE FORMACIÓN CULTURAL",
|
||||
"VICERRECTORÍA DE BIENESTAR Y FORMACIÓN",
|
||||
"CENTRO DE IDIOMAS"
|
||||
]
|
||||
},
|
||||
"NombrePeriodo": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
308
composer.lock
generated
308
composer.lock
generated
@@ -8,16 +8,16 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "econea/nusoap",
|
||||
"version": "v0.9.15",
|
||||
"version": "v0.9.16",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/f00b4r/nusoap.git",
|
||||
"reference": "a5fd9cbbb0b83c94a099dadc8936ec7c2e1acfe1"
|
||||
"reference": "9ead68ec7ad8d1e14943658ce1559435247d14bf"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/f00b4r/nusoap/zipball/a5fd9cbbb0b83c94a099dadc8936ec7c2e1acfe1",
|
||||
"reference": "a5fd9cbbb0b83c94a099dadc8936ec7c2e1acfe1",
|
||||
"url": "https://api.github.com/repos/f00b4r/nusoap/zipball/9ead68ec7ad8d1e14943658ce1559435247d14bf",
|
||||
"reference": "9ead68ec7ad8d1e14943658ce1559435247d14bf",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -33,8 +33,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.10.x-dev",
|
||||
"dev-develop": "1.0.x-dev"
|
||||
"dev-master": "0.10.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -44,7 +43,7 @@
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"LGPL-2.0-only"
|
||||
"LGPL-2.1-or-later"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
@@ -65,7 +64,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/f00b4r/nusoap/issues",
|
||||
"source": "https://github.com/f00b4r/nusoap/tree/v0.9.15"
|
||||
"source": "https://github.com/f00b4r/nusoap/tree/v0.9.16"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -73,7 +72,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-03-09T11:29:13+00:00"
|
||||
"time": "2023-07-19T12:40:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ezyang/htmlpurifier",
|
||||
@@ -138,24 +137,24 @@
|
||||
},
|
||||
{
|
||||
"name": "graham-campbell/result-type",
|
||||
"version": "v1.1.0",
|
||||
"version": "v1.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/GrahamCampbell/Result-Type.git",
|
||||
"reference": "a878d45c1914464426dc94da61c9e1d36ae262a8"
|
||||
"reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/a878d45c1914464426dc94da61c9e1d36ae262a8",
|
||||
"reference": "a878d45c1914464426dc94da61c9e1d36ae262a8",
|
||||
"url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
|
||||
"reference": "672eff8cf1d6fe1ef09ca0f89c4b287d6a3eb831",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0",
|
||||
"phpoption/phpoption": "^1.9"
|
||||
"phpoption/phpoption": "^1.9.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^8.5.28 || ^9.5.21"
|
||||
"phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -184,7 +183,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
|
||||
"source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.0"
|
||||
"source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -196,7 +195,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-07-30T15:56:11+00:00"
|
||||
"time": "2023-02-25T20:23:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "justinrainbow/json-schema",
|
||||
@@ -270,31 +269,35 @@
|
||||
},
|
||||
{
|
||||
"name": "maennchen/zipstream-php",
|
||||
"version": "2.2.1",
|
||||
"version": "3.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/maennchen/ZipStream-PHP.git",
|
||||
"reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729"
|
||||
"reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/211e9ba1530ea5260b45d90c9ea252f56ec52729",
|
||||
"reference": "211e9ba1530ea5260b45d90c9ea252f56ec52729",
|
||||
"url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1",
|
||||
"reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"myclabs/php-enum": "^1.5",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"psr/http-message": "^1.0",
|
||||
"symfony/polyfill-mbstring": "^1.0"
|
||||
"ext-mbstring": "*",
|
||||
"ext-zlib": "*",
|
||||
"php-64bit": "^8.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-zip": "*",
|
||||
"guzzlehttp/guzzle": "^6.5.3 || ^7.2.0",
|
||||
"friendsofphp/php-cs-fixer": "^3.16",
|
||||
"guzzlehttp/guzzle": "^7.5",
|
||||
"mikey179/vfsstream": "^1.6",
|
||||
"php-coveralls/php-coveralls": "^2.4",
|
||||
"phpunit/phpunit": "^8.5.8 || ^9.4.2",
|
||||
"vimeo/psalm": "^4.1"
|
||||
"php-coveralls/php-coveralls": "^2.5",
|
||||
"phpunit/phpunit": "^10.0",
|
||||
"vimeo/psalm": "^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"guzzlehttp/psr7": "^2.4",
|
||||
"psr/http-message": "^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -331,38 +334,42 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/maennchen/ZipStream-PHP/issues",
|
||||
"source": "https://github.com/maennchen/ZipStream-PHP/tree/2.2.1"
|
||||
"source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/maennchen",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://opencollective.com/zipstream",
|
||||
"type": "open_collective"
|
||||
}
|
||||
],
|
||||
"time": "2022-05-18T15:52:06+00:00"
|
||||
"time": "2023-06-21T14:59:35+00:00"
|
||||
},
|
||||
{
|
||||
"name": "markbaker/complex",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MarkBaker/PHPComplex.git",
|
||||
"reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22"
|
||||
"reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/ab8bc271e404909db09ff2d5ffa1e538085c0f22",
|
||||
"reference": "ab8bc271e404909db09ff2d5ffa1e538085c0f22",
|
||||
"url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
|
||||
"reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.3",
|
||||
"squizlabs/php_codesniffer": "^3.4"
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "dev-master",
|
||||
"phpcompatibility/php-compatibility": "^9.3",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
|
||||
"squizlabs/php_codesniffer": "^3.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -388,36 +395,36 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/MarkBaker/PHPComplex/issues",
|
||||
"source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.1"
|
||||
"source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2"
|
||||
},
|
||||
"time": "2021-06-29T15:32:53+00:00"
|
||||
"time": "2022-12-06T16:21:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "markbaker/matrix",
|
||||
"version": "3.0.0",
|
||||
"version": "3.0.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/MarkBaker/PHPMatrix.git",
|
||||
"reference": "c66aefcafb4f6c269510e9ac46b82619a904c576"
|
||||
"reference": "728434227fe21be27ff6d86621a1b13107a2562c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/c66aefcafb4f6c269510e9ac46b82619a904c576",
|
||||
"reference": "c66aefcafb4f6c269510e9ac46b82619a904c576",
|
||||
"url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c",
|
||||
"reference": "728434227fe21be27ff6d86621a1b13107a2562c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "dev-master",
|
||||
"phpcompatibility/php-compatibility": "^9.3",
|
||||
"phpdocumentor/phpdocumentor": "2.*",
|
||||
"phploc/phploc": "^4.0",
|
||||
"phpmd/phpmd": "2.*",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.3",
|
||||
"phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
|
||||
"sebastian/phpcpd": "^4.0",
|
||||
"squizlabs/php_codesniffer": "^3.4"
|
||||
"squizlabs/php_codesniffer": "^3.7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@@ -444,85 +451,22 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/MarkBaker/PHPMatrix/issues",
|
||||
"source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.0"
|
||||
"source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1"
|
||||
},
|
||||
"time": "2021-07-01T19:01:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "myclabs/php-enum",
|
||||
"version": "1.8.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/myclabs/php-enum.git",
|
||||
"reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
|
||||
"reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": "^7.3 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^9.5",
|
||||
"squizlabs/php_codesniffer": "1.*",
|
||||
"vimeo/psalm": "^4.6.2"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"MyCLabs\\Enum\\": "src/"
|
||||
},
|
||||
"classmap": [
|
||||
"stubs/Stringable.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP Enum contributors",
|
||||
"homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "PHP Enum implementation",
|
||||
"homepage": "http://github.com/myclabs/php-enum",
|
||||
"keywords": [
|
||||
"enum"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/myclabs/php-enum/issues",
|
||||
"source": "https://github.com/myclabs/php-enum/tree/1.8.4"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/mnapoli",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-08-04T09:53:51+00:00"
|
||||
"time": "2022-12-02T22:17:43+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoffice/phpspreadsheet",
|
||||
"version": "1.25.2",
|
||||
"version": "1.29.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
|
||||
"reference": "a317a09e7def49852400a4b3eca4a4b0790ceeb5"
|
||||
"reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a317a09e7def49852400a4b3eca4a4b0790ceeb5",
|
||||
"reference": "a317a09e7def49852400a4b3eca4a4b0790ceeb5",
|
||||
"url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/fde2ccf55eaef7e86021ff1acce26479160a0fa0",
|
||||
"reference": "fde2ccf55eaef7e86021ff1acce26479160a0fa0",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -540,26 +484,26 @@
|
||||
"ext-zip": "*",
|
||||
"ext-zlib": "*",
|
||||
"ezyang/htmlpurifier": "^4.15",
|
||||
"maennchen/zipstream-php": "^2.1",
|
||||
"maennchen/zipstream-php": "^2.1 || ^3.0",
|
||||
"markbaker/complex": "^3.0",
|
||||
"markbaker/matrix": "^3.0",
|
||||
"php": "^7.3 || ^8.0",
|
||||
"php": "^7.4 || ^8.0",
|
||||
"psr/http-client": "^1.0",
|
||||
"psr/http-factory": "^1.0",
|
||||
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "dev-master",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "dev-main",
|
||||
"dompdf/dompdf": "^1.0 || ^2.0",
|
||||
"friendsofphp/php-cs-fixer": "^3.2",
|
||||
"mitoteam/jpgraph": "10.2.4",
|
||||
"mpdf/mpdf": "8.1.1",
|
||||
"mitoteam/jpgraph": "^10.3",
|
||||
"mpdf/mpdf": "^8.1.1",
|
||||
"phpcompatibility/php-compatibility": "^9.3",
|
||||
"phpstan/phpstan": "^1.1",
|
||||
"phpstan/phpstan-phpunit": "^1.0",
|
||||
"phpunit/phpunit": "^8.5 || ^9.0",
|
||||
"phpunit/phpunit": "^8.5 || ^9.0 || ^10.0",
|
||||
"squizlabs/php_codesniffer": "^3.7",
|
||||
"tecnickcom/tcpdf": "6.5"
|
||||
"tecnickcom/tcpdf": "^6.5"
|
||||
},
|
||||
"suggest": {
|
||||
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
|
||||
@@ -612,30 +556,30 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
|
||||
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.25.2"
|
||||
"source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.0"
|
||||
},
|
||||
"time": "2022-09-25T17:21:01+00:00"
|
||||
"time": "2023-06-14T22:48:31+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoption/phpoption",
|
||||
"version": "1.9.0",
|
||||
"version": "1.9.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/schmittjoh/php-option.git",
|
||||
"reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab"
|
||||
"reference": "dd3a383e599f49777d8b628dadbb90cae435b87e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
|
||||
"reference": "dc5ff11e274a90cc1c743f66c9ad700ce50db9ab",
|
||||
"url": "https://api.github.com/repos/schmittjoh/php-option/zipball/dd3a383e599f49777d8b628dadbb90cae435b87e",
|
||||
"reference": "dd3a383e599f49777d8b628dadbb90cae435b87e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.2.5 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"bamarni/composer-bin-plugin": "^1.8",
|
||||
"phpunit/phpunit": "^8.5.28 || ^9.5.21"
|
||||
"bamarni/composer-bin-plugin": "^1.8.2",
|
||||
"phpunit/phpunit": "^8.5.32 || ^9.6.3 || ^10.0.12"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -677,7 +621,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/schmittjoh/php-option/issues",
|
||||
"source": "https://github.com/schmittjoh/php-option/tree/1.9.0"
|
||||
"source": "https://github.com/schmittjoh/php-option/tree/1.9.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -689,25 +633,25 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-07-30T15:51:26+00:00"
|
||||
"time": "2023-02-25T19:38:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-client",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-client.git",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
|
||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
|
||||
"url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
||||
"reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0 || ^8.0",
|
||||
"psr/http-message": "^1.0"
|
||||
"psr/http-message": "^1.0 || ^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -727,7 +671,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP clients",
|
||||
@@ -739,27 +683,27 @@
|
||||
"psr-18"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-client/tree/master"
|
||||
"source": "https://github.com/php-fig/http-client/tree/1.0.2"
|
||||
},
|
||||
"time": "2020-06-29T06:28:15+00:00"
|
||||
"time": "2023-04-10T20:12:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-factory",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-factory.git",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
|
||||
"reference": "e616d01114759c4c489f93b099585439f795fe35"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
|
||||
"url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
|
||||
"reference": "e616d01114759c4c489f93b099585439f795fe35",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"psr/http-message": "^1.0"
|
||||
"psr/http-message": "^1.0 || ^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -779,7 +723,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interfaces for PSR-7 HTTP message factories",
|
||||
@@ -794,31 +738,31 @@
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-factory/tree/master"
|
||||
"source": "https://github.com/php-fig/http-factory/tree/1.0.2"
|
||||
},
|
||||
"time": "2019-04-30T12:38:16+00:00"
|
||||
"time": "2023-04-10T20:10:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
"version": "1.0.1",
|
||||
"version": "2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/php-fig/http-message.git",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
|
||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
|
||||
"url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
||||
"reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
"php": "^7.2 || ^8.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
"dev-master": "2.0.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -833,7 +777,7 @@
|
||||
"authors": [
|
||||
{
|
||||
"name": "PHP-FIG",
|
||||
"homepage": "http://www.php-fig.org/"
|
||||
"homepage": "https://www.php-fig.org/"
|
||||
}
|
||||
],
|
||||
"description": "Common interface for HTTP messages",
|
||||
@@ -847,9 +791,9 @@
|
||||
"response"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/php-fig/http-message/tree/master"
|
||||
"source": "https://github.com/php-fig/http-message/tree/2.0"
|
||||
},
|
||||
"time": "2016-08-06T14:39:51+00:00"
|
||||
"time": "2023-04-04T09:54:51+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/simple-cache",
|
||||
@@ -951,16 +895,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-ctype.git",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a"
|
||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
||||
"reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -975,7 +919,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1013,7 +957,7 @@
|
||||
"portable"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1029,20 +973,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-01-26T09:26:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534"
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
|
||||
"reference": "42292d99c55abe617799667f454222c54c60e229",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1057,7 +1001,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1096,7 +1040,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1112,20 +1056,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-07-28T09:04:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.27.0",
|
||||
"version": "v1.28.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936"
|
||||
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
|
||||
"reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
|
||||
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -1134,7 +1078,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.27-dev"
|
||||
"dev-main": "1.28-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@@ -1179,7 +1123,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -1195,7 +1139,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-11-03T14:55:06+00:00"
|
||||
"time": "2023-01-26T09:26:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
@@ -1290,5 +1234,5 @@
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.2.0"
|
||||
"plugin-api-version": "2.3.0"
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<link rel="icon" type="image/png" href="imagenes/favicon.png" />
|
||||
<link rel="stylesheet" href="css/bootstrap-ulsa.min.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/indivisa.css" type="text/css">
|
||||
<link rel="stylesheet" href="css/sgi.css?rand=<?php echo rand(); ?>" type="text/css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<link rel="stylesheet" href="css/jquery-ui.css">
|
||||
<link rel="stylesheet" href="<?= $ruta ?? '' ?>css/bootstrap-ulsa.min.css" type="text/css">
|
||||
<link rel="stylesheet" href="<?= $ruta ?? '' ?>css/indivisa.css" type="text/css">
|
||||
<link rel="stylesheet" href="<?= $ruta ?? '' ?>css/sgi.css?rand=<?php echo rand(); ?>" type="text/css">
|
||||
<link rel="stylesheet" href="<?= $ruta ?? '' ?>css/style.css">
|
||||
<link rel="stylesheet" href="<?= $ruta ?? '' ?>css/jquery-ui.css">
|
||||
@@ -1,16 +1,15 @@
|
||||
<script defer src="js/sidebarmenu.js"></script>
|
||||
<script defer src="<?= $ruta ?? '' ?>js/sidebarmenu.js"></script>
|
||||
|
||||
|
||||
<?php
|
||||
require_once 'class/c_login.php';
|
||||
$ruta = "../";
|
||||
require_once 'include/bd_pdo.php';
|
||||
require_once ($ruta ?? '') . 'class/c_login.php';
|
||||
require_once ($ruta ?? '') . 'include/bd_pdo.php';
|
||||
|
||||
$user = Login::get_user();
|
||||
|
||||
$user->access();
|
||||
$pagina = substr(basename($_SERVER['PHP_SELF']), 0, -4);
|
||||
if ($pagina != "main" && !$user->acceso) {
|
||||
if (!in_array($pagina, ["main", "test"]) && !$user->acceso) {
|
||||
header('Location: main.php?error=1');
|
||||
exit;
|
||||
}
|
||||
@@ -19,11 +18,11 @@ $grupos = $user->admin ? queryAll("SELECT * FROM GRUPO ORDER BY grupo_nombre") :
|
||||
|
||||
function html_header($title, $header = null)
|
||||
{
|
||||
global $grupos, $user, $db;
|
||||
global $grupos, $user, $db, $ruta;
|
||||
?>
|
||||
<aside id="sidebar" class="bg-light defaultShadow d-flex flex-column p-4">
|
||||
<div class="d-flex align-items-center mb-5">
|
||||
<div class="logotipo"><a href="https://lasalle.mx/" target="_blank"><img src="imagenes/logo_lasalle.png"></a>
|
||||
<div class="logotipo"><a href="https://lasalle.mx/" target="_blank"><img src="<?= $ruta ?? '' ?>imagenes/logo_lasalle.png"></a>
|
||||
</div>
|
||||
<div class="flex-grow-1 d-flex justify-content-end">
|
||||
<nav class="navbar navbar-expand d-none d-flex">
|
||||
@@ -94,7 +93,7 @@ function html_header($title, $header = null)
|
||||
<div class="container marco menu d-flex align-items-center">
|
||||
<div class="logotipo">
|
||||
<a href="https://lasalle.mx/" target="_blank">
|
||||
<img src="imagenes/logo_lasalle.png">
|
||||
<img src="<?= $ruta ?? '' ?>imagenes/logo_lasalle.png">
|
||||
</a>
|
||||
</div>
|
||||
<div class="flex-grow-1 d-flex justify-content-end">
|
||||
|
||||
@@ -17,13 +17,16 @@ function html_header($title, $header = null, $links = [])
|
||||
?>
|
||||
<div class="marco">
|
||||
<div class="col-sm-12">
|
||||
<h2 class="text-muted"><?= $header; ?>
|
||||
<h2 class="text-muted">
|
||||
<?= $header; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="marco">
|
||||
<div class="col-sm-12 py-3">
|
||||
<h2 class="text-uppercase"><?= $title; ?></h2>
|
||||
<h2 class="text-uppercase">
|
||||
<?= $title; ?>
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
188
logs.php
Normal file
188
logs.php
Normal file
@@ -0,0 +1,188 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Consultar horario |
|
||||
<?= $user->facultad['facultad'] ?? 'General' ?>
|
||||
</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/plain; charset=UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<?php include_once "import/html_css_files.php"; ?>
|
||||
</head>
|
||||
<style>
|
||||
#jsonOutput {
|
||||
background-color: #f4f4f4;
|
||||
padding: 10px;
|
||||
border-radius: 4px;
|
||||
overflow-x: auto;
|
||||
}
|
||||
</style>
|
||||
<!-- -->
|
||||
|
||||
<body style="display: block;">
|
||||
<?php
|
||||
include('include/constantes.php');
|
||||
include("import/html_header.php");
|
||||
|
||||
html_header("Logs");
|
||||
?>
|
||||
<?= "<!-- $user -->" ?>
|
||||
<main class="container content content-margin" id="local-app">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover table-striped table-bordered table-sm">
|
||||
<thead class="thead-dark">
|
||||
<tr>
|
||||
<th scope="col" class="text-center align-middle px-2">Fecha</th>
|
||||
<th scope="col" class="text-center align-middle px-2" width="10%">Hora</th>
|
||||
<th scope="col" class="text-center align-middle px-2">Clave</th>
|
||||
<th scope="col" class="text-center align-middle px-2">Profesor</th>
|
||||
<th scope="col" class="text-center align-middle px-2" width="7%">Horario</th>
|
||||
<th scope="col" class="text-center align-middle px-2">IP</th>
|
||||
<th scope="col" class="text-center align-middle px-2">Navegador</th>
|
||||
<th scope="col" class="text-center align-middle px-2">Información</th>
|
||||
<th scope="col" class="text-center align-middle px-2">Detalle</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?
|
||||
global $db;
|
||||
$registros = $db
|
||||
->where('momento::DATE = CURRENT_DATE')
|
||||
->orderBy('momento', 'desc')
|
||||
->get('log_registro');
|
||||
|
||||
foreach ($registros as $log) {
|
||||
?>
|
||||
<tr class="<?= $log['success'] ? '' : 'table-danger' ?>" data-id="<?= $log['log_id'] ?>">
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= substr($log['momento'], 0, 10) ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= substr($log['momento'], 11, 8) ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['clave'] ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['profesor'] ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?
|
||||
if ($log['horarios'] == null) {
|
||||
echo "N/A";
|
||||
} else {
|
||||
?>
|
||||
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#horarioModal"
|
||||
data-horario='<?= json_encode($log['horarios'], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) ?>'>
|
||||
Horario
|
||||
</button>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</td>
|
||||
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['ip'] ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['navegador'] ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['informacion'] ?>
|
||||
</td>
|
||||
<td class="text-center align-middle px-2">
|
||||
<?= $log['detalle'] ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</main>
|
||||
<!-- Horario Modal -->
|
||||
<div class="modal fade" id="horarioModal" tabindex="-1" role="dialog" aria-labelledby="horarioModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="horarioModalLabel">Horario</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<pre id="jsonOutput"></pre>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?
|
||||
include "import/html_footer.php";
|
||||
?>
|
||||
</body>
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/bootstrap/bootstrap.min.js"></script>
|
||||
<script src="https://unpkg.com/petite-vue"></script>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('#horarioModal').on('show.bs.modal', function (event) {
|
||||
const button = $(event.relatedTarget);
|
||||
const horario = button.data('horario');
|
||||
const modal = $(this);
|
||||
|
||||
// Ensure horario is an object
|
||||
let parsedHorario;
|
||||
if (typeof horario === 'string') {
|
||||
parsedHorario = JSON.parse(JSON.parse(horario, (key, value) => {
|
||||
if (typeof value === 'string') {
|
||||
return value.replace(/\\n/g, '\n');
|
||||
}
|
||||
return value;
|
||||
}));
|
||||
} else {
|
||||
parsedHorario = horario;
|
||||
}
|
||||
|
||||
const formattedHorario = formatJson(parsedHorario);
|
||||
modal.find('#jsonOutput').html(formattedHorario);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function formatJson(jsonObject) {
|
||||
let formatted = '';
|
||||
|
||||
if (Array.isArray(jsonObject)) {
|
||||
formatted += '<ol>';
|
||||
for (let i = 0; i < jsonObject.length; i++) {
|
||||
formatted += '<li>';
|
||||
formatted += formatJson(jsonObject[i]);
|
||||
formatted += '</li>';
|
||||
}
|
||||
formatted += '</ol>';
|
||||
} else if (typeof jsonObject === 'object') {
|
||||
formatted += '<ol>';
|
||||
for (let key in jsonObject) {
|
||||
formatted += '<li><strong>' + key + ':</strong> ';
|
||||
formatted += formatJson(jsonObject[key]);
|
||||
formatted += '</li>';
|
||||
}
|
||||
formatted += '</ol>';
|
||||
} else {
|
||||
formatted += jsonObject;
|
||||
}
|
||||
|
||||
return formatted;
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</html>
|
||||
72
logs/postgres.php
Normal file
72
logs/postgres.php
Normal file
@@ -0,0 +1,72 @@
|
||||
<?
|
||||
ini_set('display_errors', 1);
|
||||
error_reporting(E_ALL);
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Archivos de log Postgres</title>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"
|
||||
integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer" />
|
||||
<?php
|
||||
$ruta = "../";
|
||||
include '../import/html_css_files.php';
|
||||
include '../import/html_header.php';
|
||||
|
||||
html_header(
|
||||
"Archivos de log Postgres",
|
||||
"Archivos de log Postgres",
|
||||
);
|
||||
?>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<main class="content marco">
|
||||
<form method="POST" class="mb-3">
|
||||
<label for="logDay">Select a day:</label>
|
||||
<select name="logDay" id="logDay" class="form-control">
|
||||
|
||||
<option value="Mon">Monday</option>
|
||||
<option value="Tue">Tuesday</option>
|
||||
<option value="Wed">Wednesday</option>
|
||||
<option value="Thu">Thursday</option>
|
||||
<option value="Fri">Friday</option>
|
||||
<option value="Sat">Saturday</option>
|
||||
<option value="Sun">Sunday</option>
|
||||
</select>
|
||||
<button type="submit" class="btn btn-primary mt-2">View Log</button>
|
||||
</form>
|
||||
|
||||
<?php
|
||||
$password = 'admin';
|
||||
echo "Output: <pre>" . shell_exec("sh ../pgsql-log/get-logs.sh 2>&1") . "</pre>";
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['logDay'])) {
|
||||
$fileName = "../pgsql-log/postgresql-{$_POST['logDay']}.log";
|
||||
echo "<h3>Log file for {$_POST['logDay']}:</h3>";
|
||||
echo "<p>File path: $fileName</p>";
|
||||
|
||||
// execute a command in the shell: sudo sh get-logs.sh
|
||||
|
||||
|
||||
if (file_exists($fileName)) {
|
||||
$fileContents = file_get_contents($fileName);
|
||||
echo "<pre>" . htmlspecialchars($fileContents) . "</pre>";
|
||||
} else {
|
||||
echo "Log file for " . $_POST['logDay'] . " does not exist.";
|
||||
}
|
||||
}
|
||||
?>
|
||||
</main>
|
||||
<?php
|
||||
include "../import/html_footer.php";
|
||||
?>
|
||||
<script src="<?= $ruta ?? '' ?>js/jquery.min.js"></script>
|
||||
<script src="<?= $ruta ?? '' ?>js/bootstrap/bootstrap.min.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
23
pgsql-log/get-logs.sh
Normal file
23
pgsql-log/get-logs.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Source and destination directories
|
||||
SRC_DIR="/var/lib/pgsql/15/data/log/"
|
||||
DEST_DIR="/usr/share/nginx/html/paad/pgsql-log/"
|
||||
|
||||
# Days of the week
|
||||
DAYS=("Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun")
|
||||
|
||||
echo "Done"
|
||||
# Iterate over each day and copy the file if it exists
|
||||
for day in "${DAYS[@]}"; do
|
||||
src_file="${SRC_DIR}postgresql-${day}.log"
|
||||
dest_file="${DEST_DIR}postgresql-${day}.log"
|
||||
|
||||
if [[ -f "$src_file" ]]; then
|
||||
sudo cp "$src_file" "$dest_file"
|
||||
echo "Copied ${src_file} to ${dest_file}"
|
||||
else
|
||||
echo "File ${src_file} not found"
|
||||
fi
|
||||
|
||||
done
|
||||
0
pgsql-log/postgresql-Fri.log
Normal file
0
pgsql-log/postgresql-Fri.log
Normal file
0
pgsql-log/postgresql-Mon.log
Normal file
0
pgsql-log/postgresql-Mon.log
Normal file
0
pgsql-log/postgresql-Sat.log
Normal file
0
pgsql-log/postgresql-Sat.log
Normal file
0
pgsql-log/postgresql-Sun.log
Normal file
0
pgsql-log/postgresql-Sun.log
Normal file
5
pgsql-log/postgresql-Thu.log
Normal file
5
pgsql-log/postgresql-Thu.log
Normal file
@@ -0,0 +1,5 @@
|
||||
2023-09-14 00:04:57.032 UTC [1335198] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-14 00:05:29.800 UTC [1335199] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-14 00:15:52.392 UTC [1335630] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-14 00:15:52.392 UTC [1335631] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-14 00:15:52.392 UTC [1335632] LOG: could not receive data from client: Connection timed out
|
||||
159
pgsql-log/postgresql-Tue.log
Normal file
159
pgsql-log/postgresql-Tue.log
Normal file
@@ -0,0 +1,159 @@
|
||||
2023-09-12 00:12:17.352 UTC [1093788] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 00:12:17.352 UTC [1093789] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 00:12:17.355 UTC [1093796] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 16:04:38.145 UTC [1278220] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:38.211 UTC [1278221] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:38.587 UTC [1278222] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:39.607 UTC [1278223] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:43.386 UTC [1278224] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:51.218 UTC [1278225] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:53.150 UTC [1278227] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:53.161 UTC [1278228] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:53.654 UTC [1278229] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:55.210 UTC [1278230] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:04:55.569 UTC [1278231] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:07.666 UTC [1278240] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:08.015 UTC [1278241] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:08.173 UTC [1278242] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:08.548 UTC [1278243] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:08.590 UTC [1278244] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:08.807 UTC [1278245] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:09.198 UTC [1278246] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:09.964 UTC [1278247] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:10.657 UTC [1278248] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:14.658 UTC [1278252] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:15.371 UTC [1278253] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:16.303 UTC [1278255] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:16.462 UTC [1278256] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:16.834 UTC [1278257] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:17.022 UTC [1278258] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:17.222 UTC [1278259] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:17.392 UTC [1278260] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:17.574 UTC [1278261] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:17.952 UTC [1278262] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:18.880 UTC [1278263] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:20.321 UTC [1278265] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:20.681 UTC [1278266] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:29.281 UTC [1278280] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:35.416 UTC [1278284] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:41.918 UTC [1278285] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:44.962 UTC [1278286] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:45.403 UTC [1278287] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:45.567 UTC [1278288] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:45.745 UTC [1278289] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:45.946 UTC [1278290] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:45.947 UTC [1278291] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:46.204 UTC [1278292] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:46.316 UTC [1278293] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:46.741 UTC [1278294] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:47.078 UTC [1278295] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:47.334 UTC [1278296] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:47.696 UTC [1278297] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.307 UTC [1278299] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.310 UTC [1278300] FATAL: expected SASL response, got message type 88
|
||||
2023-09-12 16:05:48.318 UTC [1278301] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.326 UTC [1278302] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.336 UTC [1278303] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.344 UTC [1278304] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.441 UTC [1278305] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.452 UTC [1278306] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.461 UTC [1278307] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.469 UTC [1278308] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.477 UTC [1278309] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.486 UTC [1278310] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.539 UTC [1278311] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.656 UTC [1278312] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:48.740 UTC [1278313] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:49.097 UTC [1278314] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:49.308 UTC [1278315] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:49.441 UTC [1278316] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:49.592 UTC [1278317] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:49.839 UTC [1278318] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:50.213 UTC [1278319] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:50.244 UTC [1278320] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:50.584 UTC [1278321] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:50.661 UTC [1278322] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:51.031 UTC [1278323] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:53.822 UTC [1278325] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:54.197 UTC [1278326] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:55.686 UTC [1278327] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:55.686 UTC [1278328] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:55.692 UTC [1278329] LOG: invalid length of startup packet
|
||||
2023-09-12 16:05:55.739 UTC [1278330] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:55.830 UTC [1278331] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:55.923 UTC [1278332] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.048 UTC [1278333] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.140 UTC [1278334] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.168 UTC [1278335] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.224 UTC [1278336] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.316 UTC [1278337] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:56.684 UTC [1278338] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:57.391 UTC [1278339] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:57.392 UTC [1278340] FATAL: expected SASL response, got message type 88
|
||||
2023-09-12 16:05:57.763 UTC [1278341] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:58.118 UTC [1278342] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:58.280 UTC [1278343] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:58.514 UTC [1278344] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:58.849 UTC [1278350] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:59.251 UTC [1278351] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:59.313 UTC [1278352] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:59.438 UTC [1278353] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:05:59.794 UTC [1278354] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:00.072 UTC [1278355] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:00.193 UTC [1278356] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:00.193 UTC [1278357] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:00.196 UTC [1278358] FATAL: expected SASL response, got message type 88
|
||||
2023-09-12 16:06:00.422 UTC [1278359] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:00.424 UTC [1278360] FATAL: expected SASL response, got message type 88
|
||||
2023-09-12 16:06:00.793 UTC [1278361] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.106 UTC [1278362] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.124 UTC [1278363] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.411 UTC [1278364] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.414 UTC [1278365] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.495 UTC [1278366] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.555 UTC [1278367] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.590 UTC [1278368] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.628 UTC [1278369] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.739 UTC [1278370] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:01.739 UTC [1278371] FATAL: expected SASL response, got message type 88
|
||||
2023-09-12 16:06:02.120 UTC [1278373] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:02.140 UTC [1278372] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:02.330 UTC [1278374] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:02.453 UTC [1278376] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:02.454 UTC [1278375] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:02.814 UTC [1278377] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:03.165 UTC [1278378] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:03.203 UTC [1278379] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:03.558 UTC [1278380] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:03.915 UTC [1278381] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:04.214 UTC [1278382] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:04.390 UTC [1278383] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:04.509 UTC [1278384] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:04.879 UTC [1278385] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:05.266 UTC [1278386] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:05.632 UTC [1278387] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:05.981 UTC [1278388] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:08.768 UTC [1278390] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:08.976 UTC [1278392] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:09.347 UTC [1278394] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:09.953 UTC [1278395] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:10.157 UTC [1278396] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:10.383 UTC [1278397] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:10.731 UTC [1278398] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:10.828 UTC [1278399] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:11.182 UTC [1278400] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:11.463 UTC [1278401] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:16.727 UTC [1278403] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:17.169 UTC [1278404] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:06:20.081 UTC [1278405] FATAL: database "paad" does not exist
|
||||
2023-09-12 16:36:39.375 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-12 16:36:40.120 UTC [1202] LOG: checkpoint complete: wrote 8 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.705 s, sync=0.014 s, total=0.746 s; sync files=6, longest=0.009 s, average=0.003 s; distance=31 kB, estimate=390 kB
|
||||
2023-09-12 17:27:45.480 UTC [1273693] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 17:27:45.480 UTC [1273692] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 17:27:45.483 UTC [1273700] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:11:26.920 UTC [1277694] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:11:26.920 UTC [1277695] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:11:26.923 UTC [1277697] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:50:46.216 UTC [1282892] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:50:46.217 UTC [1282894] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-12 18:50:46.219 UTC [1282893] LOG: could not receive data from client: Connection timed out
|
||||
187
pgsql-log/postgresql-Wed.log
Normal file
187
pgsql-log/postgresql-Wed.log
Normal file
@@ -0,0 +1,187 @@
|
||||
2023-09-13 15:10:48.250 UTC [1314581] ERROR: syntax error at or near "123" at character 1
|
||||
2023-09-13 15:10:48.250 UTC [1314581] STATEMENT: 123
|
||||
2023-09-13 15:16:54.253 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:16:58.601 UTC [1202] LOG: checkpoint complete: wrote 44 buffers (0.3%); 0 WAL file(s) added, 0 removed, 0 recycled; write=4.317 s, sync=0.017 s, total=4.349 s; sync files=32, longest=0.007 s, average=0.001 s; distance=156 kB, estimate=367 kB
|
||||
2023-09-13 15:21:54.696 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:21:55.734 UTC [1202] LOG: checkpoint complete: wrote 11 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.004 s, sync=0.016 s, total=1.038 s; sync files=11, longest=0.008 s, average=0.002 s; distance=49 kB, estimate=335 kB
|
||||
2023-09-13 15:26:54.749 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:26:55.073 UTC [1202] LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.302 s, sync=0.007 s, total=0.324 s; sync files=4, longest=0.005 s, average=0.002 s; distance=19 kB, estimate=304 kB
|
||||
2023-09-13 15:31:54.105 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:31:55.137 UTC [1202] LOG: checkpoint complete: wrote 11 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.004 s, sync=0.012 s, total=1.033 s; sync files=11, longest=0.008 s, average=0.002 s; distance=51 kB, estimate=278 kB
|
||||
2023-09-13 15:36:52.177 UTC [1319833] ERROR: column "id" does not exist at character 111
|
||||
2023-09-13 15:36:52.177 UTC [1319833] HINT: Perhaps you meant to reference the column "log_registro.ip".
|
||||
2023-09-13 15:36:52.177 UTC [1319833] STATEMENT: INSERT INTO "log_registro" (clave, ip, navegador, informacion, detalle) VALUES ($1, $2, $3, $4, $5) RETURNING id
|
||||
2023-09-13 15:36:54.167 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:36:54.595 UTC [1202] LOG: checkpoint complete: wrote 5 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.402 s, sync=0.010 s, total=0.428 s; sync files=5, longest=0.008 s, average=0.002 s; distance=27 kB, estimate=253 kB
|
||||
2023-09-13 15:37:02.062 UTC [1319867] ERROR: column "id" does not exist at character 111
|
||||
2023-09-13 15:37:02.062 UTC [1319867] HINT: Perhaps you meant to reference the column "log_registro.ip".
|
||||
2023-09-13 15:37:02.062 UTC [1319867] STATEMENT: INSERT INTO "log_registro" (clave, ip, navegador, informacion, detalle) VALUES ($1, $2, $3, $4, $5) RETURNING id
|
||||
2023-09-13 15:37:12.285 UTC [1319905] ERROR: column "id" does not exist at character 111
|
||||
2023-09-13 15:37:12.285 UTC [1319905] HINT: Perhaps you meant to reference the column "log_registro.ip".
|
||||
2023-09-13 15:37:12.285 UTC [1319905] STATEMENT: INSERT INTO "log_registro" (clave, ip, navegador, informacion, detalle) VALUES ($1, $2, $3, $4, $5) RETURNING id
|
||||
2023-09-13 15:41:54.688 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:41:55.213 UTC [1202] LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.502 s, sync=0.009 s, total=0.525 s; sync files=5, longest=0.005 s, average=0.002 s; distance=1 kB, estimate=228 kB
|
||||
2023-09-13 15:42:52.137 UTC [1320925] LOG: could not receive data from client: Connection reset by peer
|
||||
2023-09-13 15:46:54.296 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 15:46:54.521 UTC [1202] LOG: checkpoint complete: wrote 3 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.201 s, sync=0.008 s, total=0.225 s; sync files=3, longest=0.005 s, average=0.003 s; distance=7 kB, estimate=206 kB
|
||||
2023-09-13 15:47:26.636 UTC [1321052] LOG: could not receive data from client: Connection reset by peer
|
||||
2023-09-13 15:47:26.638 UTC [1321044] LOG: could not receive data from client: Connection reset by peer
|
||||
2023-09-13 17:25:10.856 UTC [1315055] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 17:46:56.136 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 17:46:56.663 UTC [1202] LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.502 s, sync=0.009 s, total=0.528 s; sync files=6, longest=0.006 s, average=0.002 s; distance=23 kB, estimate=188 kB
|
||||
2023-09-13 17:47:01.576 UTC [1315057] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 18:43:58.748 UTC [1329584] ERROR: column "periodo.periodo_id" must appear in the GROUP BY clause or be used in an aggregate function at character 8
|
||||
2023-09-13 18:43:58.748 UTC [1329584] STATEMENT: SELECT periodo.* FROM horario_view
|
||||
JOIN horario_profesor USING (HORARIO_ID)
|
||||
JOIN periodo USING (PERIODO_ID)
|
||||
GROUP BY PERIODO_ID LIMIT 100 OFFSET 0
|
||||
2023-09-13 18:51:57.615 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 18:51:58.149 UTC [1202] LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.502 s, sync=0.010 s, total=0.535 s; sync files=6, longest=0.006 s, average=0.002 s; distance=2 kB, estimate=169 kB
|
||||
2023-09-13 18:56:57.193 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 18:56:57.721 UTC [1202] LOG: checkpoint complete: wrote 6 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.502 s, sync=0.011 s, total=0.529 s; sync files=6, longest=0.008 s, average=0.002 s; distance=27 kB, estimate=155 kB
|
||||
2023-09-13 19:01:57.806 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 19:01:58.135 UTC [1202] LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.302 s, sync=0.010 s, total=0.329 s; sync files=4, longest=0.007 s, average=0.003 s; distance=4 kB, estimate=140 kB
|
||||
2023-09-13 19:58:05.896 UTC [1325906] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 19:58:05.896 UTC [1325966] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 19:58:05.899 UTC [1325908] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 20:36:58.599 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 20:36:59.033 UTC [1202] LOG: checkpoint complete: wrote 5 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.402 s, sync=0.012 s, total=0.435 s; sync files=5, longest=0.008 s, average=0.003 s; distance=29 kB, estimate=129 kB
|
||||
2023-09-13 20:41:58.126 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 20:41:58.960 UTC [1202] LOG: checkpoint complete: wrote 9 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.803 s, sync=0.010 s, total=0.835 s; sync files=7, longest=0.006 s, average=0.002 s; distance=49 kB, estimate=121 kB
|
||||
2023-09-13 20:46:59.040 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 20:46:59.368 UTC [1202] LOG: checkpoint complete: wrote 4 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.302 s, sync=0.012 s, total=0.329 s; sync files=4, longest=0.009 s, average=0.003 s; distance=23 kB, estimate=111 kB
|
||||
2023-09-13 20:56:59.514 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 20:57:00.247 UTC [1202] LOG: checkpoint complete: wrote 8 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.703 s, sync=0.013 s, total=0.733 s; sync files=6, longest=0.008 s, average=0.003 s; distance=29 kB, estimate=103 kB
|
||||
2023-09-13 21:08:36.720 UTC [1334189] ERROR: column "reposicion_id" does not exist at character 392
|
||||
2023-09-13 21:08:36.720 UTC [1334189] QUERY: INSERT INTO reposicion_solicitud (fecha_clase, fecha_nueva, hora_nueva, estado_reposicion_id, profesor_id,
|
||||
descripcion, horario_id, alumnos, es_reposicion, tipoaula_id, duracion_id, usuario_id, bloque, ciclo)
|
||||
VALUES(p_fecha_falta, p_fecha_nueva, p_hora_nueva, p_edo, p_prof, p_desc, p_hor, p_alumnos, p_esrepo, p_aula, p_duracion, p_usr_creador, p_bloque, p_ciclo)
|
||||
RETURNING reposicion_id
|
||||
2023-09-13 21:08:36.720 UTC [1334189] CONTEXT: PL/pgSQL function fi_reposicion_solicitud(date,date,time without time zone,integer,integer,integer,text,integer,boolean,integer,integer,integer,integer,integer) line 6 at SQL statement
|
||||
2023-09-13 21:08:36.720 UTC [1334189] STATEMENT: SELECT * from fi_reposicion_solicitud($1, $2, $3, $4, $5, 1, $6, $7, true, $8, $9, $10, $11, $12)
|
||||
2023-09-13 21:09:36.512 UTC [1334212] ERROR: record "new" has no field "duracion_total"
|
||||
2023-09-13 21:09:36.512 UTC [1334212] CONTEXT: SQL expression "NEW.hora_nueva + (NEW.duracion_total || ' minutes')::interval > '22:00'"
|
||||
PL/pgSQL function validate_reposicion_duration() line 5 at IF
|
||||
SQL statement "INSERT INTO reposicion_solicitud (fecha_clase, fecha_nueva, hora_nueva, estado_reposicion_id, profesor_id,
|
||||
descripcion, horario_id, alumnos, es_reposicion, tipoaula_id, duracion_id, usuario_id, bloque, ciclo)
|
||||
VALUES(p_fecha_falta, p_fecha_nueva, p_hora_nueva, p_edo, p_prof, p_desc, p_hor, p_alumnos, p_esrepo, p_aula, p_duracion, p_usr_creador, p_bloque, p_ciclo)
|
||||
RETURNING reposicion_solicitud_id"
|
||||
PL/pgSQL function fi_reposicion_solicitud(date,date,time without time zone,integer,integer,integer,text,integer,boolean,integer,integer,integer,integer,integer) line 6 at SQL statement
|
||||
2023-09-13 21:09:36.512 UTC [1334212] STATEMENT: SELECT * from fi_reposicion_solicitud($1, $2, $3, $4, $5, 1, $6, $7, true, $8, $9, $10, $11, $12)
|
||||
2023-09-13 21:11:59.523 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:12:00.258 UTC [1202] LOG: checkpoint complete: wrote 8 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.703 s, sync=0.010 s, total=0.736 s; sync files=6, longest=0.005 s, average=0.002 s; distance=29 kB, estimate=95 kB
|
||||
2023-09-13 21:12:22.344 UTC [1330587] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 21:12:22.345 UTC [1330589] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 21:12:22.347 UTC [1330620] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 21:16:50.951 UTC [1334211] ERROR: syntax error at or near "," at character 811
|
||||
2023-09-13 21:16:50.951 UTC [1334211] STATEMENT: CREATE OR REPLACE FUNCTION public.fs_reposiciones_solicitud(p_fecha_ini date, p_fecha_fin date, p_usr integer DEFAULT NULL::integer, p_edo integer DEFAULT NULL::integer, p_esrepo boolean DEFAULT NULL::boolean)
|
||||
RETURNS TABLE(reposicion_id integer, horario_id integer, fecha_nueva date, hora_nueva time without time zone, descripcion character varying, profesor_id integer, profesor_clave character varying, profesor_nombre character varying, profesor_correo character varying, estado_reposicion_id integer, fecha_clase date, alumnos integer, tipoaula_id integer, tipoaula_nombre character varying, tipoaula_supervisor boolean, es_reposicion boolean, salon_id integer, duracion_total integer, materia_nombre character varying, horario_grupo character varying, horario_hora time without time zone,usuario_nombre, usuario_nombre character varying)
|
||||
LANGUAGE sql
|
||||
AS $function$
|
||||
/* Obtiene datos de reposición, se filtra por rango de fechas. Opcional: estado y si es reposicion/cambio */
|
||||
SELECT r.reposicion_solicitud_id, r.horario_id, r.fecha_nueva, r.hora_nueva, r.descripcion,
|
||||
r.profesor_id, p.profesor_clave, p.profesor_nombre, p.profesor_correo,
|
||||
r.estado_reposicion_id, r.fecha_clase, r.alumnos, r.tipoaula_id, ta.tipoaula_nombre, ta.tipoaula_supervisor, r.es_reposicion,
|
||||
r.salon_id, d.duracion_interval , m.materia_nombre, h.horario_grupo, h.horario_hora, u.usuario_nombre
|
||||
FROM reposicion_solicitud r
|
||||
INNER JOIN profesor p ON r.profesor_id = p.profesor_id
|
||||
INNER JOIN horario h ON h.horario_id = r.horario_id
|
||||
INNER JOIN materia m ON m.materia_id = h.materia_id
|
||||
INNER JOIN tipoaula ta ON ta.tipoaula_id = r.tipoaula_id
|
||||
inner join duracion d on d.duracion_id = r.duracion_id
|
||||
inner join usuario u on u.usuario_id = r.usuario_id
|
||||
WHERE r.fecha_nueva BETWEEN p_fecha_ini AND p_fecha_fin
|
||||
AND r.estado_reposicion_id = COALESCE(p_edo, r.estado_reposicion_id)
|
||||
AND r.es_reposicion = COALESCE(p_esrepo, r.es_reposicion)
|
||||
and r.usuario_id = coalesce(p_usr,r.usuario_id)
|
||||
ORDER BY fecha_nueva DESC, hora_nueva, profesor_nombre
|
||||
$function$
|
||||
|
||||
2023-09-13 21:16:59.336 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:17:01.074 UTC [1202] LOG: checkpoint complete: wrote 18 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.707 s, sync=0.014 s, total=1.738 s; sync files=13, longest=0.007 s, average=0.002 s; distance=61 kB, estimate=92 kB
|
||||
2023-09-13 21:17:10.919 UTC [1334211] ERROR: return type mismatch in function declared to return record
|
||||
2023-09-13 21:17:10.919 UTC [1334211] DETAIL: Final statement returns interval instead of integer at column 18.
|
||||
2023-09-13 21:17:10.919 UTC [1334211] CONTEXT: SQL function "fs_reposiciones_solicitud"
|
||||
2023-09-13 21:17:10.919 UTC [1334211] STATEMENT: CREATE OR REPLACE FUNCTION public.fs_reposiciones_solicitud(p_fecha_ini date, p_fecha_fin date, p_usr integer DEFAULT NULL::integer, p_edo integer DEFAULT NULL::integer, p_esrepo boolean DEFAULT NULL::boolean)
|
||||
RETURNS TABLE(reposicion_id integer, horario_id integer, fecha_nueva date, hora_nueva time without time zone, descripcion character varying, profesor_id integer, profesor_clave character varying, profesor_nombre character varying, profesor_correo character varying, estado_reposicion_id integer, fecha_clase date, alumnos integer, tipoaula_id integer, tipoaula_nombre character varying, tipoaula_supervisor boolean, es_reposicion boolean, salon_id integer, duracion_total integer, materia_nombre character varying, horario_grupo character varying, horario_hora time without time zone, usuario_nombre character varying)
|
||||
LANGUAGE sql
|
||||
AS $function$
|
||||
/* Obtiene datos de reposición, se filtra por rango de fechas. Opcional: estado y si es reposicion/cambio */
|
||||
SELECT r.reposicion_solicitud_id, r.horario_id, r.fecha_nueva, r.hora_nueva, r.descripcion,
|
||||
r.profesor_id, p.profesor_clave, p.profesor_nombre, p.profesor_correo,
|
||||
r.estado_reposicion_id, r.fecha_clase, r.alumnos, r.tipoaula_id, ta.tipoaula_nombre, ta.tipoaula_supervisor, r.es_reposicion,
|
||||
r.salon_id, d.duracion_interval , m.materia_nombre, h.horario_grupo, h.horario_hora, u.usuario_nombre
|
||||
FROM reposicion_solicitud r
|
||||
INNER JOIN profesor p ON r.profesor_id = p.profesor_id
|
||||
INNER JOIN horario h ON h.horario_id = r.horario_id
|
||||
INNER JOIN materia m ON m.materia_id = h.materia_id
|
||||
INNER JOIN tipoaula ta ON ta.tipoaula_id = r.tipoaula_id
|
||||
inner join duracion d on d.duracion_id = r.duracion_id
|
||||
inner join usuario u on u.usuario_id = r.usuario_id
|
||||
WHERE r.fecha_nueva BETWEEN p_fecha_ini AND p_fecha_fin
|
||||
AND r.estado_reposicion_id = COALESCE(p_edo, r.estado_reposicion_id)
|
||||
AND r.es_reposicion = COALESCE(p_esrepo, r.es_reposicion)
|
||||
and r.usuario_id = coalesce(p_usr,r.usuario_id)
|
||||
ORDER BY fecha_nueva DESC, hora_nueva, profesor_nombre
|
||||
$function$
|
||||
|
||||
|
||||
2023-09-13 21:21:59.104 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:21:59.839 UTC [1202] LOG: checkpoint complete: wrote 8 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.703 s, sync=0.014 s, total=0.735 s; sync files=8, longest=0.008 s, average=0.002 s; distance=38 kB, estimate=87 kB
|
||||
2023-09-13 21:36:46.968 UTC [1334883] ERROR: function fs_reposicionesprofesor(unknown, unknown, unknown, unknown, unknown) does not exist at character 15
|
||||
2023-09-13 21:36:46.968 UTC [1334883] HINT: No function matches the given name and argument types. You might need to add explicit type casts.
|
||||
2023-09-13 21:36:46.968 UTC [1334883] STATEMENT: SELECT * FROM fs_reposicionesprofesor($1, $2, $3 ,NULL, NULL)
|
||||
2023-09-13 21:47:00.190 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:47:01.318 UTC [1202] LOG: checkpoint complete: wrote 12 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.104 s, sync=0.011 s, total=1.129 s; sync files=7, longest=0.007 s, average=0.002 s; distance=46 kB, estimate=83 kB
|
||||
2023-09-13 21:50:56.561 UTC [1335273] ERROR: column r.profesor_id does not exist at character 574
|
||||
2023-09-13 21:50:56.561 UTC [1335273] HINT: Perhaps you meant to reference the column "p.profesor_id".
|
||||
2023-09-13 21:50:56.561 UTC [1335273] QUERY:
|
||||
/* Obtiene datos de reposición */
|
||||
SELECT r.reposicion_id, r.horario_id, r.fecha_nueva, r.hora_nueva, r.hora_nueva + (r.duracion_total * INTERVAL '1 minute') AS hora_nueva_fin,
|
||||
r.descripcion, r.profesor_id, p.profesor_clave, p.profesor_nombre, p.profesor_correo,
|
||||
r.estado_reposicion_id, r.fecha_clase, r.alumnos, r.tipoaula_id, ta.tipoaula_nombre, ta.tipoaula_supervisor, r.es_reposicion,
|
||||
r.salon_id, r.duracion_total, m.materia_id, m.materia_nombre, h.horario_grupo, h.horario_hora,
|
||||
er.estado_nombre, er.estado_color
|
||||
FROM reposicion r
|
||||
INNER JOIN profesor p ON r.profesor_id = p.profesor_id
|
||||
INNER JOIN horario h ON h.horario_id = r.horario_id
|
||||
INNER JOIN materia m ON m.materia_id = h.materia_id
|
||||
INNER JOIN estado_reposicion er ON er.estado_reposicion_id = r.estado_reposicion_id
|
||||
INNER JOIN tipoaula ta ON ta.tipoaula_id = r.tipoaula_id
|
||||
WHERE r.reposicion_id = COALESCE(p_rep, r.reposicion_id)
|
||||
AND r.profesor_id = COALESCE(p_prof, r.profesor_id)
|
||||
AND r.fecha_nueva BETWEEN COALESCE(p_fecha_ini, r.fecha_nueva) AND COALESCE(p_fecha_fin,r.fecha_nueva)
|
||||
AND r.estado_reposicion_id = COALESCE(p_edo, r.estado_reposicion_id)
|
||||
AND (
|
||||
(p_jefe_carrera IS NOT NULL AND m.carrera_id IN (SELECT carrera_id FROM fs_usuario_carrera(p_jefe_carrera, NULL))
|
||||
) OR
|
||||
p_jefe_carrera IS NULL
|
||||
)
|
||||
ORDER BY fecha_nueva DESC, hora_nueva, profesor_nombre
|
||||
LIMIT p_limit OFFSET COALESCE(p_offset, 0);
|
||||
|
||||
2023-09-13 21:50:56.561 UTC [1335273] CONTEXT: SQL function "fs_reposicion" during startup
|
||||
2023-09-13 21:50:56.561 UTC [1335273] STATEMENT: SELECT * from fs_reposicion($1, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
|
||||
2023-09-13 21:52:00.410 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:52:01.046 UTC [1202] LOG: checkpoint complete: wrote 7 buffers (0.0%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.603 s, sync=0.015 s, total=0.637 s; sync files=7, longest=0.010 s, average=0.003 s; distance=42 kB, estimate=79 kB
|
||||
2023-09-13 21:57:00.144 UTC [1202] LOG: checkpoint starting: time
|
||||
2023-09-13 21:57:01.074 UTC [1202] LOG: checkpoint complete: wrote 10 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=0.904 s, sync=0.010 s, total=0.931 s; sync files=7, longest=0.005 s, average=0.002 s; distance=54 kB, estimate=76 kB
|
||||
2023-09-13 22:31:00.936 UTC [1332732] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 22:31:00.936 UTC [1332733] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 22:31:00.939 UTC [1332734] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 22:44:07.368 UTC [1333316] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 22:44:07.370 UTC [1333318] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 22:48:29.512 UTC [1333475] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:01:35.944 UTC [1333668] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:01:35.944 UTC [1333669] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:01:35.945 UTC [1333670] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:10:20.232 UTC [1333848] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:10:20.232 UTC [1333849] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:10:20.234 UTC [1333850] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:25:54.120 UTC [1334210] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:26:02.312 UTC [1334209] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:29:59.880 UTC [1334211] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:49:39.528 UTC [1334892] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:49:39.528 UTC [1334893] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:49:39.530 UTC [1334894] LOG: could not receive data from client: Connection timed out
|
||||
2023-09-13 23:58:27.912 UTC [1335197] LOG: could not receive data from client: Connection timed out
|
||||
0
pgsql-log/tail
Normal file
0
pgsql-log/tail
Normal file
@@ -7,15 +7,17 @@ if (!isset($_SESSION['user'])){
|
||||
|
||||
//$user = unserialize($_SESSION['user']);
|
||||
$user = Login::get_user();
|
||||
print_r($user);
|
||||
|
||||
$user->access();
|
||||
/*print_r($user);
|
||||
print_r($user->user["id"]);
|
||||
echo "****|";
|
||||
$user->access();
|
||||
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'));
|
||||
@@ -25,7 +27,7 @@ print_r($user->facultad["facultad_id"]);
|
||||
|
||||
//if (!$user->admin && in_array($user->acceso, ['n']))
|
||||
//die(header('Location: main.php?error=1'));
|
||||
$user->print_to_log('Reposiciones');
|
||||
//$user->print_to_log('Reposiciones');
|
||||
|
||||
//$write = $user->admin || in_array($user->acceso, ['w']);
|
||||
$write = true; //
|
||||
@@ -37,6 +39,9 @@ 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"]]);
|
||||
}
|
||||
|
||||
//Duraciones
|
||||
$duracion_rs = $db->query("select * from duracion order by duracion_interval");
|
||||
|
||||
//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"];
|
||||
@@ -69,8 +74,12 @@ if(isset($_POST["fecha_final"]))
|
||||
else
|
||||
$fecha_fin = date("d/m/Y", strtotime($periodo_rs["periodo_fecha_fin"]));
|
||||
|
||||
$fecha_ini_db= date("Y-m-d", strtotime($fecha_ini));
|
||||
$fecha_fin_db= date("Y-m-d", strtotime($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');
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
@@ -150,7 +159,9 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
</form>
|
||||
|
||||
<?php
|
||||
$reposiciones_rs = $db->query('SELECT * FROM fs_reposicionesprofesor(:f_ini, :f_fin, NULL, NULL)', [':f_ini' => $fecha_ini_db, ':f_fin' => $fecha_fin_db]);
|
||||
|
||||
$reposiciones_rs = $db->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"]]);
|
||||
echo "SELECT * FROM fs_reposiciones_solicitud('$fecha_ini_db', '$fecha_fin_db', ".$user->user["id"]." ,NULL, NULL)".date("Y-m-d",strtotime($fecha_fin));
|
||||
?>
|
||||
|
||||
<div class="row">
|
||||
@@ -166,6 +177,7 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
<th>Tipo</th>
|
||||
<th style="width:160px">Fecha falta</th>
|
||||
<th style="width:160px">Fecha reposición</th>
|
||||
<th style="width:160px">Duración</th>
|
||||
<th>Salón</th>
|
||||
<?php if($write){ ?><th>Acciones</th><?php } ?>
|
||||
</tr>
|
||||
@@ -204,6 +216,10 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
echo date("d/m/Y", strtotime($reposicion["fecha_nueva"])) ."<br>".substr($reposicion["hora_nueva"],0,-3)." a ".substr($reposicion["hora_nueva_fin"],0,-3)." hrs.";
|
||||
?>
|
||||
</td>
|
||||
<td class="align-middle text-center"><?php
|
||||
echo $reposicion["duracion_total"];
|
||||
?>
|
||||
</td>
|
||||
<td class="align-middle text-center"><?php
|
||||
if($reposicion["salon_id"] != ""){
|
||||
echo $reposicion["salon_id"];
|
||||
@@ -249,6 +265,9 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
<form action="./action/reposicion_insert.php" method="post" id="formaModal" onsubmit="return submitForm()">
|
||||
<input type="hidden" name="id" id="id">
|
||||
<input type="hidden" name="estado" value="1">
|
||||
<input type="hidden" name="ciclo" id="ciclo" value="0">
|
||||
<input type="hidden" name="bloque" id="bloque" value="0">
|
||||
|
||||
<div class="form-box">
|
||||
|
||||
<div class="form-group row" id="profBlock">
|
||||
@@ -297,6 +316,17 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row materia-block">
|
||||
<label for="duracion" class="col-4 col-form-label">Duración</label>
|
||||
<div class="col-4">
|
||||
<select name="duracion" id="duracion" class="form-control" required="required">
|
||||
<?php foreach($duracion_rs as $dura){?>
|
||||
<option value="<?php echo $dura["duracion_id"];?>" data-duracion="<?php echo $dura["duracion_interval"];?>" ><?php echo $dura["duracion_nombre"];?></option>
|
||||
<?php } ?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group row cambio_block materia-block" style="display: none;">
|
||||
<label for="fecha_cambio" class="col-4 col-form-label">Fecha de cambio *</label>
|
||||
<div class="col-8">
|
||||
@@ -709,17 +739,15 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
$(".date-picker-future" ).datepicker( $.datepicker.regional[ "es" ] );
|
||||
|
||||
|
||||
function creaOpcion(id_horario, dia, hora, min, nombre){
|
||||
return '<li data-id="'+id_horario+'" data-dia="'+dia+'" data-hr="'+hora+'" data-min="'+min+'">'+nombre+'</li>';
|
||||
function creaOpcion(id_horario, dia, hora, min, nombre, gpo, duracion){
|
||||
return '<li data-id="'+id_horario+'" data-dia="'+dia+'" data-hr="'+hora+'" data-min="'+min+'" data-gpo="'+gpo+'" data-duracion="'+duracion+'">'+nombre+'</li>';
|
||||
}
|
||||
|
||||
$('#filtro_final').focus(function(){
|
||||
$("#filtro_final").removeClass("is-invalid");
|
||||
});
|
||||
|
||||
//****TODO NO SE ACTIVA AL HACER CLICK */
|
||||
$("#dlProfesor ul li").click(function(){//cambia datalist
|
||||
console.log("CLICK");
|
||||
var pid = $(this).data('id');
|
||||
//busca materias del profesor
|
||||
$.ajax({
|
||||
@@ -740,11 +768,14 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
result["materias"][i]["horario_dia"],
|
||||
result["materias"][i]["horario_hora"],
|
||||
result["materias"][i]["horario_min"],
|
||||
result["materias"][i]["materia_nombre"]
|
||||
result["materias"][i]["materia_nombre"],
|
||||
result["materias"][i]["grupo"],
|
||||
result["materias"][i]["duracion"]
|
||||
);
|
||||
$("#dlMateria ul").append(html);
|
||||
}
|
||||
setDatalistFirst("#horario");
|
||||
//setDatalistFirst("#horario");
|
||||
$("#dlMateria ul li:first").click();
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown ){
|
||||
@@ -756,8 +787,10 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
|
||||
|
||||
//Actualiza días elegibles de calendario
|
||||
$("#dlMateria ul li").click(function(){//cambia datalist
|
||||
$(document).on( "click", "#dlMateria ul li", function(event){//manda al frente de todos
|
||||
_dia_valido = $(this).data('dia');
|
||||
var grupo = $(this).data("gpo");
|
||||
var duracionMateria = $(this).data("duracion");
|
||||
|
||||
$.ajax({
|
||||
url: './action/asistenciasprofesor_select.php',
|
||||
@@ -770,6 +803,16 @@ $fecha_fin_db= date("Y-m-d", strtotime($fecha_fin));
|
||||
$('#modal').modal("hide");
|
||||
}else{
|
||||
_dias_asistencia = result["asistenciaArr"];
|
||||
//Cambiar ciclo [6] y bloque [8]
|
||||
$("#ciclo").val(parseInt(grupo[6]));
|
||||
$("#bloque").val(parseInt(grupo[8]));
|
||||
|
||||
$('#duracion option').each(function() {
|
||||
if ($(this).data("duracion") === duracionMateria) {
|
||||
// Selecciona la opción correspondiente en el select de "duracion"
|
||||
$(this).prop('selected', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -1,803 +0,0 @@
|
||||
[
|
||||
{
|
||||
"id": 0,
|
||||
"ruta": "Edificio 1 / Piso 0",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"salon": "A-11",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"salon": "A-12",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"salon": "A-13",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"salon": "A-14",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"salon": "A-15",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"salon": "A-16",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"salon": "A-17",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"salon": "A-18",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 18,
|
||||
"salon": "A-19",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"ruta": "Edificio 1 / Piso 1",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"ruta": "Edificio 1 / Piso 2",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"ruta": "Edificio 1 / Piso 3",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"salon": "A-11",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"salon": "A-12",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"salon": "A-13",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"ruta": "Edificio 1 / Piso 4",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"salon": "A-11",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"salon": "A-12",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"salon": "A-13",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"salon": "A-14",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"salon": "A-15",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 15,
|
||||
"salon": "A-16",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 16,
|
||||
"salon": "A-17",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 17,
|
||||
"salon": "A-18",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"ruta": "Edificio 1 / Piso 5",
|
||||
"horarios": [
|
||||
{
|
||||
"id": 0,
|
||||
"salon": "A-1",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 1,
|
||||
"salon": "A-2",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"salon": "A-3",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"salon": "A-4",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"salon": "A-5",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"salon": "A-6",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 2,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"salon": "A-7",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"salon": "A-8",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "11:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"salon": "A-9",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"salon": "A-10",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "10:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"salon": "A-11",
|
||||
"materia": "Sistemas",
|
||||
"hora_inicio": "9:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 3,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"salon": "A-12",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 1,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 12,
|
||||
"salon": "A-13",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "10:00",
|
||||
"estado": 4,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 13,
|
||||
"salon": "A-14",
|
||||
"materia": "Base de datos",
|
||||
"hora_inicio": "8:00",
|
||||
"hora_fin": "8:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
},
|
||||
{
|
||||
"id": 14,
|
||||
"salon": "A-15",
|
||||
"materia": "Matemáticas",
|
||||
"hora_inicio": "11:00",
|
||||
"hora_fin": "9:00",
|
||||
"estado": 0,
|
||||
"comentario": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -212,8 +212,9 @@
|
||||
<tr class="table-primary" v-if="reposiciones.length > 0">
|
||||
<th colspan="5" class="text-center align-middle">Reposiciones</th>
|
||||
</tr>
|
||||
<tr v-for="clase in reposiciones" :key="`reposicion-${clase.horario_id}-${clase.profesor_id}`">
|
||||
<td class="text-center align-middle">{{ clase.salon }}</td>
|
||||
<tr v-for="clase in reposiciones"
|
||||
:key="`reposicion-${clase.horario_id}-${clase.profesor_id}`">
|
||||
<td class="text-center align-middle">{{ clase.reposicion_salon }}</td>
|
||||
<td class="text-center align-middle">
|
||||
<div class="col-12">
|
||||
{{ clase.profesor_nombre }}
|
||||
@@ -226,7 +227,7 @@
|
||||
</button>
|
||||
</div>
|
||||
<td class="text-center align-middle">
|
||||
{{ clase.reposicion_hora?.slice(0, 5) }} - {{ clase.horario_fin?.slice(0, 5) }}
|
||||
{{ clase.reposicion_hora?.slice(0, 5) }} - {{ clase.reposicion_fin?.slice(0, 5) }}
|
||||
</td>
|
||||
<td class="text-center align-middle text-nowrap">
|
||||
<!-- data-toggle="button" -->
|
||||
|
||||
14
test.php
14
test.php
@@ -2,7 +2,9 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>Consultar horario | <?= $user->facultad['facultad'] ?? 'General' ?></title>
|
||||
<title>Consultar horario |
|
||||
<?= $user->facultad['facultad'] ?? 'General' ?>
|
||||
</title>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="content-type" content="text/plain; charset=UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
@@ -14,14 +16,16 @@
|
||||
<?php
|
||||
include('include/constantes.php');
|
||||
include("import/html_header.php");
|
||||
|
||||
html_header("test.php");
|
||||
?>
|
||||
<?= "<!-- $user -->" ?>
|
||||
<main class="container content content-margin" id="local-app">
|
||||
<?=
|
||||
# query all profesores from horario_id = 4250 (JOIN HORARIO_PROFESOR, PROFESOR)
|
||||
ord(" ")
|
||||
?>
|
||||
|
||||
</main>
|
||||
<?
|
||||
include "import/html_footer.php";
|
||||
?>
|
||||
</body>
|
||||
<script src="js/jquery.min.js"></script>
|
||||
<script src="js/bootstrap/bootstrap.min.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user