149 lines
4.5 KiB
PHP
149 lines
4.5 KiB
PHP
<style>
|
|
details {
|
|
border: 1px solid #aaa;
|
|
border-radius: 4px;
|
|
padding: 0.5em 0.5em 0;
|
|
margin: 0.5em 0;
|
|
}
|
|
|
|
summary {
|
|
font-weight: bold;
|
|
margin: -0.5em -0.5em 0;
|
|
padding: 0.5em;
|
|
}
|
|
|
|
details[open] {
|
|
padding: 0.5em;
|
|
}
|
|
|
|
details[open] summary {
|
|
border-bottom: 1px solid #aaa;
|
|
margin-bottom: 0.5em;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 20px 0;
|
|
}
|
|
|
|
th,
|
|
td {
|
|
padding: 8px;
|
|
border: 1px solid #ccc;
|
|
text-align: left;
|
|
}
|
|
|
|
th {
|
|
background-color: #f2f2f2;
|
|
}
|
|
|
|
.json-container {
|
|
white-space: pre-wrap;
|
|
/* Since JSON is formatted with whitespace, this will keep formatting */
|
|
word-break: break-word;
|
|
/* To prevent horizontal scrolling */
|
|
max-height: 150px;
|
|
/* Set a max-height and add scroll to prevent very long JSON from cluttering the table */
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.empty {
|
|
/* rosa pastel */
|
|
background-color: #ffe8f4;
|
|
}
|
|
|
|
.no-igual {
|
|
/* púrpura pastel */
|
|
background-color: #f4e8ff;
|
|
}
|
|
</style>
|
|
<?php
|
|
/*
|
|
idPeriodo: identificador del periodo a consultar (obligatorio, número entero)
|
|
claveFacultad: clave de la facultad a consultar (opcional, cadena)
|
|
claveCarrera: clave de la carrera a consultar (opcional, cadena)
|
|
claveProfesor: clave del empleado a consultar (opcional, cadena)
|
|
fecha: fecha de la clase (opcional, cadena en formato yyyy-MM-dd)
|
|
*/
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
ini_set('post_max_size', 1);
|
|
ini_set('max_execution_time', 8 * 60);
|
|
error_reporting(E_ALL);
|
|
date_default_timezone_set('America/Mexico_City');
|
|
|
|
$ruta = "../";
|
|
$ruta_superior = dirname(__DIR__);
|
|
require_once $ruta_superior . "/include/bd_pdo.php";
|
|
require_once __DIR__ . "/token.php";
|
|
require_once __DIR__ . "/LogCambios.php";
|
|
|
|
$salon = array();
|
|
$curl = curl_init();
|
|
curl_setopt_array($curl, [
|
|
CURLOPT_URL =>
|
|
'https://portal.ulsa.edu.mx/servicios/AuditoriaAsistencialRest/AuditoriaAsistencialService.svc/auditoriaAsistencial/catalogos/espacios/seleccionar',
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_POSTFIELDS => json_encode([]),
|
|
CURLOPT_HTTPHEADER => [
|
|
"token: $token",
|
|
'username: SGU_APSA_AUD_ASIST',
|
|
'Content-Type: application/json',
|
|
],
|
|
]);
|
|
|
|
$response = curl_exec($curl);
|
|
$err = curl_error($curl);
|
|
|
|
curl_close($curl);
|
|
$json_flags = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT;
|
|
$salones = json_decode($response, true, 512, JSON_THROW_ON_ERROR | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
|
|
?>
|
|
<main>
|
|
<p>
|
|
<?= count($salones) ?> salones encontrados
|
|
</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Salones en SGU</th>
|
|
<th>SALONES en Postgres</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
foreach ($salones as $salon) {
|
|
$salon_db = $db->where("id_espacio_sgu", $salon["IdEspacio"])->get("salon");
|
|
// si de el salon es igual NombreEspacio == salon
|
|
$vacío = empty($salon_db);
|
|
$igual = $salon["NombreEspacio"] == ($salon["salon"] ?? "");
|
|
|
|
if ($vacío) {
|
|
$db->insert("salon", [
|
|
"id_espacio_sgu" => $salon["IdEspacio"],
|
|
"salon" => $salon["NombreEspacio"],
|
|
"id_espacio_padre" => $salon["IdEspacioPadre"] > 0 ? $salon["IdEspacioPadre"] : null,
|
|
]);
|
|
} else if (!$igual) {
|
|
$db->where("id_espacio_sgu", $salon["IdEspacio"])->update("salon", [
|
|
"salon" => $salon["NombreEspacio"],
|
|
// "id_espacio_padre" => $salon["IdEspacioPadre"] > 0 ? $salon["IdEspacioPadre"] : null,
|
|
]);
|
|
|
|
}
|
|
|
|
?>
|
|
<tr class="<?= $igual ? "empty" : "no-igual" ?>">
|
|
<td class="json-container">
|
|
<?= json_encode($salon, $json_flags) ?>
|
|
</td>
|
|
<td class="json-container">
|
|
<?= json_encode($salon_db, $json_flags) ?>
|
|
</td>
|
|
</tr>
|
|
<?php } ?>
|
|
</tbody>
|
|
</table>
|
|
|
|
</main>
|