<!doctype html>
<html lang="es">
<head>
<title>Ejercicio 4</title>
<style>
*{
margin: 0 auto;
padding: 0 auto;
}
body{
width: 1920px;
height: 100vh;
margin: 0;
padding: 0;
font-family: Arial, sans-serif;
background: #f4f6f9;
align-items: center;
text-align: center;
transform-origin: top left;
transform: scale(1);
}
nav{
background-color: #456D96;
color: white;
width: 1920px;
}
.ejercicio{
padding: 20px;
margin-top: 10px;
margin-bottom: 10px;
width: 1200px;
border: 1px solid black;
border-radius: 10px;
p{
font-weight: bold;
}
a.boton{
text-decoration: none;
background-color: #EFEFEF;
font-size: 0.9rem;
color: black;
border: 1px solid #767676;
border-radius: 3px;
width: 200px;
height: 20px;
}
}
table{
border-collapse: collapse;
width: 720px;
tr.titulo{
background-color: lightcyan;
}
td{
border: 1px solid black
}
}
.obligatorio{
background-color: #FCF8CC;
}
.lectura{
background-color: whitesmoke;
}
footer{
margin: auto;
background-color: #456d96;
text-align: center;
align-content: center;
width: 1920px;
height: 50px;
;
color: white;
& a{
text-decoration: none;
}
}
</style>
</head>
<body>
<nav>
<h2>DWES - Tema 4</h2>
<h2>Ejercicio 4</h2>
</nav>
<main>
<div class="ejercicio">
<?php
/**
* @author Álvaro Allén
* @since 13-11-2025
* Formulario de búsqueda de departamentos por descripción.
*/
// Establecemos la configuración de fecha, hora y formato de España
setlocale(LC_TIME, 'es_ES.UTF-8', 'es_ES', 'spanish');
// Enlace para importar las librerías de validación de campos
require_once '../core/231018libreriaValidacion.php';
require_once '../core/miLibreriaValidacion.php';
require_once '../config/confDB.php';
//inicialización de variables
$aErrores = [
'T02_DescDepartamento' => '',
];
$aRespuestas = [
'T02_DescDepartamento' => '',
];
$entradaOK = true;
//Para cada campo del formulario se valida la entrada y se actua en consecuencia
if (isset($_REQUEST['enviar'])) {//se cumple si el boton es submit
//Validación de los datos de los campos del formulario
$aErrores['T02_DescDepartamento'] = validacionFormularios::comprobarAlfabetico($_REQUEST['T02_DescDepartamento'], 50, 1, 0);
//recorre el array de errores para detectar si hay alguno
foreach ($aErrores as $campo => $valorCampo) {
if ($valorCampo != null) {//Si encuentra algún error
$entradaOK = false; // la entrada no es correcta
}
}
} else {
//Si no se ha aceptado el formulario
$entradaOK = false;
}
//Tratamiento del formulario
if ($entradaOK) {
//REllenamos el array de respuesta con los valores que ha introducido el usuario
$aRespuestas['T02_DescDepartamento'] = $_REQUEST['T02_DescDepartamento'];
?>
<section>
<h2>Rellena el formulario.</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<label for="T02_DescDepartamento">Descripción del departamento: </label>
<a style='color:red'><?php echo $aErrores['T02_DescDepartamento'] ?></a><br>
<input name="T02_DescDepartamento" id="T02_DescDepartamento" type="text" value='<?php echo(empty($aErrores['T02_DescDepartamento'])) ? ($_REQUEST['T02_DescDepartamento'] ?? '') : ''; ?>'><br>
<br>
<button type="submit" name="enviar">Enviar</button>
<a class="boton" href="../indexProyectoTema4.php">Cancelar</a>
</form>
</section>
<?php
try {
// Iniciamos el objeto PDO con los valores de las constantes.
$miDB = new PDO(DSN, USERNAME, PASSWORD);
$desc = "%" . $aRespuestas['T02_DescDepartamento'] . "%";
$resultado = $miDB->query("SELECT * FROM T02_Departamento WHERE T02_DescDepartamento LIKE '$desc'");
if (!$resultado) {
$resultado = $miDB->query("SELECT * FROM T02_Departamento");
echo '<table>';
echo '<tr class="titulo">';
echo '<td>T02_CodDepartamento</td>';
echo '<td>T02_DescDepartamento</td>';
echo '<td>T02_FechaCreaciónDepartamento</td>';
echo '<td>T02_FechaBajaDeparamento</td>';
echo '<td>T02_VolumenDeNegocio</td>';
echo '</tr>';
while ($aFila = $resultado->fetch()) {
echo '<tr>';
echo '<td>' . $aFila['T02_CodDepartamento'] . '</td>';
echo '<td>' . $aFila['T02_DescDepartamento'] . '</td>';
echo '<td>' . (new DateTime($aFila['T02_FechaCreacionDepartamento']))->format("d-m-Y") . '</td>';
if (empty($aFila['T02_FechaBajaDepartamento'])) {
echo '<td>Activo</td>';
} else {
echo '<td>' . $aFila['T02_FechaBajaDepartamento'] . '</td>';
}
echo '<td>' . $aFila['T02_VolumenDeNegocio'] . '</td>';
echo '</tr>';
}
echo '</table>';
} else {
echo '<table>';
echo '<tr class="titulo">';
echo '<td>T02_CodDepartamento</td>';
echo '<td>T02_DescDepartamento</td>';
echo '<td>T02_FechaCreaciónDepartamento</td>';
echo '<td>T02_FechaBajaDeparamento</td>';
echo '<td>T02_VolumenDeNegocio</td>';
echo '</tr>';
while ($aFila = $resultado->fetch()) {
echo '<tr>';
echo '<td>' . $aFila['T02_CodDepartamento'] . '</td>';
echo '<td>' . $aFila['T02_DescDepartamento'] . '</td>';
echo '<td>' . (new DateTime($aFila['T02_FechaCreacionDepartamento']))->format("d-m-Y") . '</td>';
if (empty($aFila['T02_FechaBajaDepartamento'])) {
echo '<td>Activo</td>';
} else {
echo '<td>' . $aFila['T02_FechaBajaDepartamento'] . '</td>';
}
echo '<td>' . $aFila['T02_VolumenDeNegocio'] . '</td>';
echo '</tr>';
}
echo '</table>';
}
} catch (PDOException $ePDO) {
echo 'Error al conectarse: ' . $ePDO->getMessage();
echo 'Codigo de error: ' . $ePDO->getCode();
echo 'Linea de error: ' . $ePDO->getLine();
}
} else {
//si hay algún error se vuelve a mostrar el formulario
?>
<section>
<h2>Rellena el formulario.</h2>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<label for="T02_DescDepartamento">Descripción del departamento: </label>
<a style='color:red'><?php echo $aErrores['T02_DescDepartamento'] ?></a><br>
<input name="T02_DescDepartamento" id="T02_DescDepartamento" type="text" value='<?php echo(empty($aErrores['T02_DescDepartamento'])) ? ($_REQUEST['T02_DescDepartamento'] ?? '') : ''; ?>'><br>
<br>
<button type="submit" name="enviar">Enviar</button>
<a class="boton" href="../indexProyectoTema4.php">Cancelar</a>
</form>
</section>
<?php
try {
// Iniciamos el objeto PDO con los valores de las constantes.
$miDB = new PDO(DSN, USERNAME, PASSWORD);
$resultado = $miDB->query("SELECT * FROM T02_Departamento");
echo '<table>';
echo '<tr class="titulo">';
echo '<td>T02_CodDepartamento</td>';
echo '<td>T02_DescDepartamento</td>';
echo '<td>T02_FechaCreaciónDepartamento</td>';
echo '<td>T02_FechaBajaDeparamento</td>';
echo '<td>T02_VolumenDeNegocio</td>';
echo '</tr>';
while ($aFila = $resultado->fetch()) {
echo '<tr>';
echo '<td>' . $aFila['T02_CodDepartamento'] . '</td>';
echo '<td>' . $aFila['T02_DescDepartamento'] . '</td>';
echo '<td>' . (new DateTime($aFila['T02_FechaCreacionDepartamento']))->format("d-m-Y") . '</td>';
if (empty($aFila['T02_FechaBajaDepartamento'])) {
echo '<td>Activo</td>';
} else {
echo '<td>' . $aFila['T02_FechaBajaDepartamento'] . '</td>';
}
echo '<td>' . $aFila['T02_VolumenDeNegocio'] . '</td>';
echo '</tr>';
}
echo '</table>';
} catch (PDOException $ePDO) {
echo 'Error al conectarse: ' . $ePDO->getMessage();
echo 'Codigo de error: ' . $ePDO->getCode();
echo 'Linea de error: ' . $ePDO->getLine();
}
}
?>
</div>
</main>
<footer>
<div>
<a href="../indexProyectoTema4.php">
Álvaro Allén Perlines
</a>
<time datetime="2025-11-13">13-11-2025</time>
</div>
</footer>
</body>
</html>