<!doctype html>
<html lang="es">
<head>
<title>Ejercicio 3</title>
<style>
*{
margin: 0 auto;
padding: 0 auto;
}
body{
width: 1920px;
height: 1080px;
font-family: Arial, sans-serif;
background: #f4f6f9;
align-items: center;
text-align: center;
}
nav{
background-color: #456D96;
color: white;
}
.ejercicio{
margin-top: 10px;
margin-bottom: 10px;
width: 1500px;
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;
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;
height: 50px;;
color: white;
& a{
text-decoration: none;
}
}
</style>
</head>
<body>
<nav>
<h2>DWES - Tema 4</h2>
<h2>Ejercicio 3</h2>
</nav>
<main>
<div class="ejercicio">
<?php
/**
* @author Álvaro Allén
* @since 10-11-2025
*
*/
// 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_CodDepartamento' => '',
'T02_DescDepartamento' => '',
'T02_VolumenDeNegocio' => ''
];
$aRespuestas = [
'T02_CodDepartamento' => '',
'T02_DescDepartamento' => '',
'T02_VolumenDeNegocio' => ''
];
$fechaActual = date('Y-m-d');
$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_CodDepartamento'] = validacionFormularios::comprobarAlfabetico($_REQUEST['T02_CodDepartamento'], 80, 1, 1);
$aErrores['T02_DescDepartamento'] = validacionFormularios::comprobarAlfabetico($_REQUEST['T02_DescDepartamento'], 50, 1, 1);
$aErrores['T02_VolumenDeNegocio'] = validacionFormularios::comprobarFloat($_REQUEST['T02_VolumenDeNegocio']);
//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_CodDepartamento'] = $_REQUEST['T02_CodDepartamento'];
$aRespuestas['T02_DescDepartamento'] = $_REQUEST['T02_DescDepartamento'];
$aRespuestas['T02_VolumenDeNegocio'] = $_REQUEST['T02_VolumenDeNegocio'];
//Se recorre el array de las respuestas y se muestran
print("<br><h3>Respuestas del usuario</h3><br>");
foreach ($aRespuestas as $campo => $valorCampo) {
print("<p>El $campo del usuario: </p>" . $valorCampo . '<br>');
}
try{
// Iniciamos el objeto PDO con los valores de las constantes.
$miDB = new PDO(DSN, USERNAME, PASSWORD);
$consulta = $miDB->query("INSERT INTO T02_Departamento VALUES('{$aRespuestas['T02_CodDepartamento']}','$fechaActual',null,'{$aRespuestas['T02_DescDepartamento']}', '{$aRespuestas['T02_VolumenDeNegocio']}')");
$consulta = $miDB->query("select * from T02_Departamento");
// Formateamos la salida para que los valores dentro de la tabla salgan en forma de tabla en HTML.
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 = $consulta->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();
}
} 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_CodDepartamento">Código de departamento: </label>
<a style='color:red'><?php echo $aErrores['T02_CodDepartamento'] ?></a><br>
<input class="obligatorio" name="T02_CodDepartamento" id="T02_CodDepartamento" type="text" value=""><br>
<br>
<label for="T02_DescDepartamento">Descripción del departamento: </label>
<a style='color:red'><?php echo $aErrores['T02_DescDepartamento'] ?></a><br>
<input class="obligatorio" name="T02_DescDepartamento" id="T02_DescDepartamento" type="text" value='<?php echo(empty($aErrores['T02_DescDepartamento'])) ? ($_REQUEST['T02_DescDepartamento'] ?? '') : ''; ?>'><br>
<br>
<label for="T02_FechaCreacionDepartamento">Introduzca fecha de baja: </label>
<input class="lectura" type="date" name="T02_FechaCreacionDepartamento" id="T02_FechaCreacionDepartamento" value="<?php echo $fechaActual;?>" readonly><br>
<br>
<label for="T02_VolumenDeNegocio">Introduzca el volumen del negocio: </label>
<a style='color:red'><?php echo $aErrores['T02_VolumenDeNegocio'] ?></a><br>
<input type="text" name="T02_VolumenDeNegocio" id="T02_VolumenDeNegocio" value='<?php echo(empty($aErrores['T02_VolumenDeNegocio'])) ? ($_REQUEST['T02_VolumenDeNegocio'] ?? '0.0') : ''; ?>'><br>
<button type="submit" name="enviar">Enviar</button>
<a class="boton" href="../indexProyectoTema4.php">Cancelar</a>
</form>
<?php
}
?>
</div>
</main>
<footer>
<div>
<a href="../indexProyectoTema4.php">
Álvaro Allén Perlines
</a>
<time datetime="2025-11-10">10-11-2025</time>
</div>
</footer>
</body>
</html>