Commit inicial

This commit is contained in:
2024-08-02 12:02:25 -06:00
commit ff7d678844
267 changed files with 101936 additions and 0 deletions

420
main-old.php Normal file
View File

@@ -0,0 +1,420 @@
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once 'class/c_login.php';
if (!isset($_SESSION['user']))
die(header('Location: index.php'));
$user = unserialize($_SESSION['user']);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Asistencia Profesores |
<?= $user->facultad['facultad'] ?? "Administrador"; ?>
</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
include 'import/html_css_files.php';
?>
<style>
.checa-box {
border: 3px solid #001D68;
border-radius: 10px;
padding: 20px;
}
.juanita {
width: 20vw;
}
.tit1 {
font-size: 2.5rem;
line-height: 1;
}
.tit2 {
font-size: 2rem;
line-height: 1;
}
.tit3 {
font-size: 1.5rem;
line-height: 1;
}
.movie {
box-shadow: none;
}
.datos>hr:last-of-type {
display: none;
}
@media (max-width: 768px) {
.juanita {
width: 100%;
}
}
</style>
</head>
<body>
<?php
include "import/html_header.php";
html_header(
$user->user['nombre'],
$user->rol['rol'],
);
$nohorario = false;
$noduplicadas = false;
$juanita = 'imagenes/registrar.svg';
?>
<main class="content marco pt-5">
<section id="message">
</section>
<!-- Aquí iban los datos -->
<div id="registro" class="sub-bloque w-100">
<div class="d-flex flex-column flex-sm-row-reverse justify-content-between align-items-start">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
<form class="checa-box w-100" id="formaChecador" autocomplete="off">
<?= "{$_ENV['CHECADOR']}?cve=" . $user->user['clave'] ?>
<input type="hidden" id="cve" value="<?php echo $user->user["clave"]; ?>">
<div class="d-flex justify-content-center align-items-center flex-wrap">
<?php if ($user->profesor) { ?>
<?php
//$has_token = $db->querySingle("SELECT FALSE") or die($db->getLastError());
//if (!array_pop($has_token)) {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "{$_ENV['CHECADOR']}?cve=" . $user->user['clave'],
CURLOPT_RETURNTRANSFER => true,
//CURLOPT_POSTFIELDS => json_encode(["username" => "SGU_APSA_AUD_ASIST", "password" => "B4qa594JFPr2ufHrZdHS8A=="]),
CURLOPT_HTTPHEADER => array('Content-Type:application/json'),
]);
if(true){
echo curl_exec($curl);
curl_close($curl);
exit();
}
$datos_checado = json_decode(curl_exec($curl), true);
if (isset($datos_checado["horarios"])) {
$horarios = $datos_checado["horarios"];
} else {
$horarios = array();
}
if (isset($datos_checado["duplicadas"])) {
$duplicadas = $datos_checado["duplicadas"];
} else {
$duplicadas = array();
}
curl_close($curl);
echo "RESULTADO:".$datos_checado. '\n';
echo "{$_ENV['CHECADOR']}?cve=" . $user->user['clave'];
print_r($datos_checado);
if (count($horarios) != 0) {
?>
<div class="movie w-100">
<div class="text-center">
<a href="javascript:checado();"
class="text-decoration-none text-primary d-flex flex-column align-items-center">
<h5 class="text-info mb-3">Hora actual - <b>
<?php echo date("H:i d/m/Y"); ?>
</b></h5>
<div class="btn btn-primary rounded-pill mb-4">Checar Asistencia</div>
<div class="datos d-flex flex-column">
<?php
foreach ($horarios as $horarioFacultadPadre) {
foreach ($horarioFacultadPadre as $horarioProfesor) {
echo '<div class="indivisa-text-black tit2">' . $horarioProfesor["materia"] . '</div>';
echo '<div class="indivisa-text-bold tit3 my-2">Salón: ' . $horarioProfesor["salon"] . "</div>";
echo '<div>' . $horarioProfesor["dia"] . ' ' . $horarioProfesor["horario_hora"] . " - " . $horarioProfesor["horario_fin"] . "</div>";
echo '<div class="text-info indivisa-text-italic">' . $horarioProfesor["carrera"] . "</div>";
//print_r($horarioProfesor);
}
echo "<hr>";
}
?>
</div>
</a>
</div>
</div>
<?php
} else {
$nohorario = true;
}
if (count($duplicadas) != 0) {
$juanita = 'imagenes/asistencia.svg'; ?>
<div class="w-100">
<div class="text-center">
<h5 class="text-info mb-3">Hora actual - <b>
<?php echo date("H:i d/m/Y"); ?>
</b></h5>
<div class="text-success tit1 mb-3">Asistencia ya verificada</div>
<div class="datos mt-2">
<?php
foreach ($duplicadas as $horarioFacultadPadre) {
foreach ($horarioFacultadPadre as $horarioProfesor) {
echo '<div class="indivisa-text-black tit2">' . $horarioProfesor["materia"] . '</div>';
echo '<div class="indivisa-text-bold tit3 my-2">Salón: ' . $horarioProfesor["salon"] . "</div>";
echo '<div>' . $horarioProfesor["dia"] . ' ' . $horarioProfesor["horario_hora"] . " - " . $horarioProfesor["horario_fin"] . "</div>";
echo '<div class="text-info indivisa-text-italic">' . $horarioProfesor["carrera"] . "</div>";
echo "<div>Asistencia:</b> " . $horarioProfesor["registro_fecha"] . "</div>";
}
echo "<hr>";
}
?>
</div>
<button class="mt-3 btn btn-outline-primary rounded-pill mb-4"
onclick="window.location.reload()"><i class="fa-solid fa-rotate-right"></i>
Actualizar página</button>
</div>
</div>
<?php
} else {
$noduplicadas = true;
}
if ($nohorario && $noduplicadas) {
$juanita = 'imagenes/no_horario.svg'; ?>
<div class="w-100">
<div class="text-center">
<h5 class="text-info mb-3">Hora actual - <b>
<?php echo date("H:i d/m/Y"); ?>
</b></h5>
<div class="text-center tit2 indivisa-text-black text-primary mb-4">
<strong class="text-danger">No</strong> tienes clases en este horario
</div>
<div class="indivisa-text-italic">
<strong class="text-danger">Recuerda:</strong> Solo se puede registrar entre
<strong class="text-secondary">30</strong> minutos antes y
<strong class="text-secondary">20</strong> minutos después.
</div>
<button class="mt-3 btn btn-outline-primary rounded-pill mb-4"
onclick="window.location.reload()"><i class="fa-solid fa-rotate-right"></i>
Actualizar página</button>
</div>
</div>
<?php
}
//} else {
?>
<!--
<div class="card col-10 col-md-3 border-primary border-3 m-2 disabled bg-dark">
<div class="card-body text-center disabled">
<a href="#"
class="card-link text-decoration-none text-primary d-flex flex-column align-items-center disabled text-danger">
<i class="ing-cancelar" aria-hidden="true"></i>
<h5 class=" mt-2">Checador</h5>
</a>
</div>
</div> -->
<?php
//}
echo "<!--";
?>
<div class="movie w-100">
<div class="text-center">
<a href="#"
class="card-link text-decoration-none text-primary d-flex flex-column align-items-center">
<h5 class="mt-2">Mis horarios</h5>
</a>
</div>
</div>
<div class="movie w-100">
<div class="text-center">
<a href="#"
class="card-link text-decoration-none text-primary d-flex flex-column align-items-center">
<i class="fa fa-table" aria-hidden="true"></i>
<h5 class=" mt-2">Mis asistencias</h5>
</a>
</div>
</div>
<?php
echo "-->";
} else {
foreach ($paginas as $pagina) {
if (is_null($pagina['pagina_ruta']))
continue;
?>
<div class="movie w-100">
<div class="text-center">
<a href="<?= $pagina['pagina_ruta'] ?>.php"
class="card-link text-decoration-none text-primary d-flex flex-column align-items-center">
<i class="fa fa-table" aria-hidden="true"></i>
<div class="tit2 mt-2">
<?= $pagina['pagina_ruta']; ?>
</div>
</a>
</div>
</div>
<?php }
} ?>
</div>
</form>
</div>
<img src="<?php echo $juanita; ?>" alt="registrar"
class="align-self-end mr-0 mr-sm-4 juanita invisible">
</div>
</div>
<div id="result_ok" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-column-reverse flex-sm-row justify-content-between align-items-start">
<img src="imagenes/asistencia.svg" alt="registrar"
class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start w-100">
<div class="checa-box w-100">
<div id="asistencia" class="indivisa-text-black text-center tit1 mb-4">Asistencia</div>
<div class="indivisa-text-bold tit2 text-center text-uppercase d-none" id="nombre">Nombre</div>
<ul class="text-danger" id="list-result">
<div class="indivisa-text-bold mb-3 mt-4 text-info text-uppercase">Facultad</div>
<li class="">
<span
class="text-secondary tit3 font-weight-bold text-uppercase mat-desc">Materia</span><br>
<span class="text-secondary mat-fecha font-weight-bold">hh:mm</span>
<br>
<span class="text-secondary mat-salon ml-3 d-none">SALÓN: <span
class="salon">SAL</span></span>
<span class="text-secondary ml-3 d-none">GRUPO: <span class="mat-gpo">GPO</span></span>
</li>
</ul>
<button class="mt-3 btn btn-outline-primary rounded-pill mb-4"
onclick="window.location.reload()"><i class="fa-solid fa-rotate-right"></i> Actualizar
página</button>
</div>
</div>
</div>
</div>
<div id="result_no" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-column-reverse flex-sm-row justify-content-between align-items-start">
<img src="imagenes/no_horario.svg" alt="no_horario"
class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start w-100">
<div class="checa-box w-100">
<h5 class="text-info mb-3">Hora actual - <b>
<?php echo date("H:i d/m/Y"); ?>
</b></h5>
<div class="text-center tit2 indivisa-text-black text-primary my-4" id="nombre">
<strong class="text-danger">No</strong> tienes clases en este horario
</div>
<div class="text-center sin-servicio">No hay ninguna clase registrada en este horario para
<h3 id="nombre-profesor" class="indivisa-text-bold my-3"></h3>
<h6 class="indivisa-text-italic mt-5"><strong class="text-danger">Recuerda:</strong> Solo se
puede registrar entre <strong class="text-secondary">20</strong> minutos antes y <strong
class="text-secondary">30</strong> minutos después.</h6>
<button class="mt-3 btn btn-outline-primary rounded-pill mb-4"
onclick="window.location.reload()"><i class="fa-solid fa-rotate-right"></i> Actualizar
página</button>
</div>
</div>
</div>
</div>
</div>
<div id="internet" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-column-reverse flex-sm-row justify-content-between align-items-start">
<img src="imagenes/no_internet.svg" alt="no_internet"
class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start w-100">
<div class="checa-box w-100">
<div class="tit2 indivisa-text-black text-center">Se perdió la conexión a internet</div>
<div class="text-secondary tit3 text-center sin-servicio my-5">Por el momento la conexión a
internet
está fallando, por favor inténtelo más tarde.</div>
<!-- Código de error: <span class="clave font-weight-bold">000</span> -->
<div class="text-center">
<div class="spinner-grow text-warning" role="status"><span class="sr-only">Loading...</span>
</div>
<em class="text-info">Conectando</em>
</div>
</div>
</div>
</div>
</div>
<div id="error_bd" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-column-reverse flex-sm-row justify-content-between align-items-start">
<img src="imagenes/error.svg" alt="error" class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start w-100">
<div class="checa-box w-100">
<div class="tit2 text-center indivisa-text-black text-danger mb-5">Error en el sistema</div>
<div class="text-secondary text-center sin-servicio tit3">Se ha presentado un error en el
sistema, por
favor inténtelo más tarde y repórtelo al <strong>CAS</strong>.</div>
</div>
</div>
</div>
</div>
<div id="not_in_db" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
<img src="imagenes/no_clave.svg" alt="no_clave" class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
<div class="checa-box">
<div class="indivisa-text-black subtitle mb-5 text-center tit2">La clave <strong
class="text-danger" id="clave-no-encontrada"></strong> no está registrada</div>
<div class="text-center mb-4 tit3">Revisa que la clave sea la correcta</div>
<div class="text-center indivisa-text-italic text-info">No se pudo registrar asistencia</div>
</div>
</div>
</div>
</div>
<div id="avisos" class="sub-bloque d-none w-100">
<div id="estado" class="d-flex flex-row justify-content-between align-items-start h-100 pl-3 pr-5 pt-5">
<img src="imagenes/aviso.svg" alt="aviso" class="align-self-end mr-0 mr-sm-4 juanita invisible">
<div class="flex-grow-1 d-flex flex-row justify-content-center align-items-start">
<div class="checa-box">
<div class="indivisa-text-black subtitle mb-4 tit2">Avisos</div>
<div class="text-secondary" id="lista-avisos"></div>
<div class="text-center mt-4"><button type="button" class="btn btn-success"
id="btn-aceptar-avisos">Aceptar</button></div>
</div>
</div>
</div>
</div>
<p id="last-error" class="d-none">-</p>
</main>
<?php
include "import/html_footer.php";
?>
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap/bootstrap.min.js"></script>
<?php include_once 'js/messages.php';
//$user = unserialize($_SESSION['user']); ?>
<script>
$(document).ready(function () {
// constantly update the date and time
setInterval(function () {
$('.fecha_hora').html(new Date().toLocaleString());
}, 1000);
<?php if (isset($_GET['error'])) { ?>
var error = <?php echo $_GET['error'] ?? 0; ?>;
switch (error) {
case 1:
triggerMessage('No tienes permiso de acceso a esta página', 'Error de permisos', 'danger');
break;
default:
triggerMessage('Error desconocido', 'Error', 'danger');
break;
}
<?php } ?>
});
function checado() {
document.querySelector('#formaChecador').requestSubmit();
}
</script>
<script src="./js/bootstrap/popper.min.js"></script>
<script type="text/javascript" src="js/checador.js"></script>
</body>
</html>