<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Ej 03</title>        
        <link rel="stylesheet" href="../webroot/css/ejercicio03PDO.css">            
    </head>
    <body>
        <main>
            <header>
                <h1>Ejercicio 3</h1>
            </header>
            <?php
                
/**
                 * @author Alex Asensio Sanchez
                 * @version Fecha de última modificación 06/11/2024
                 */
                 
                 //Importamos el fichero de variables con las constantes que pertenecen a nuestra conexion
                
try{  
                    
define('MAX_CADENA'3);
                    
define('MIN_CADENA'1);
                    
define('MIN_VOLUMEN'0);
                    
define('MIN_FLOAT'0);
                    
define('OBLIGATORIO'1);
                    
                    require_once(
'../config/confDBPDO.php');

                    
//Establecemos la conexion
                    
$miDB=new PDO(CONEXIONUSUARIOCONTRASEÑA);   
                    
//importamos la libreria de vaidaciones
                    
require_once('../core/231018libreriaValidacion.php');
                    
$entradaOK=true//Booleano que confirma que todo va bien               

                    
$aErrores=[  //Array de errores
                        
'codigo' => '',                    
                        
'descripcion'=>'',
                        
'volumen'=>''                    
                    
]; 
                    
$aRespuestas=[  //Array de respuestas
                        
'codigo' => '',                    
                        
'descripcion'=>'',
                        
'volumen'=>'' 
                    
];

                    

                    if(isset(
$_REQUEST['enviar'])){
                        
                            
$aErrores=[                            
                                
'codigo' => validacionFormularios::comprobarAlfabetico($_REQUEST['codigo'], MAX_CADENAMIN_CADENAOBLIGATORIO),                                                       
                                
'descripcion'=> validacionFormularios::comprobarAlfabetico($_REQUEST['descripcion'], 1000MIN_CADENAOBLIGATORIO),                                
                                
'volumen'=> validacionFormularios::comprobarFloat($_REQUEST['volumen'], PHP_FLOAT_MAXMIN_FLOATOBLIGATORIO),                                   
                            ];   
                        
                        
//Recorremos el array de errores 
                        
foreach ($aErrores as $clave => $valor) {
                            if (
$valor == !null) {
                                
$entradaOK false;
                                
//Limpiamos el campo si hay un error
                                
$_REQUEST[$clave] = ''
                            }
                        }
                    }
                    else{
                        
$entradaOK=false;
                    }

                    if(
$entradaOK){                                                
                        
                        
$aRespuestas['codigo']=$_REQUEST['codigo'];                    
                        
$aRespuestas['descripcion']=$_REQUEST['descripcion'];
                        
$aRespuestas['volumen']=$_REQUEST['volumen'];                                                
                        
                        
$insercion$miDB->prepare('insert into T02_Departamento values("'.$aRespuestas['codigo'].'","'.$aRespuestas['descripcion'].'", now(),"'.$aRespuestas['volumen'].'", null)');                                                

                        
$insercion->execute();
                        
                        unset(
$_REQUEST);                        
                    }                    

                        
?>
                            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" novalidate>                                                                  
                                <div id="divCodigo">
                                    <label for="codigo">Codigo departamento: </label>
                                    <input type="text" name="codigo" id="codigo" style="background-color: #ffffb3" value="<?php echo (isset($_REQUEST['codigo']) ? $_REQUEST['codigo'] : ''); ?>">
                                    <?php if (!empty($aErrores["codigo"])) { ?>
                                        <!--Si hay algun error almacenado en el array, el mensaje del mismo se mostrara, esto para cada caso-->
                                        <p style="color: red"><?php echo $aErrores["codigo"]; ?></p>
                                    <?php ?>
                                </div>
                                <div id="divDescripcion">
                                    <label for="descripcion">Descripcion: </label>
                                    <textarea name="descripcion" id="descripcion" rows="2" cols="50" style="resize: none; background-color: #ffffb3"></textarea>
                                    <?php if (!empty($aErrores["descripcion"])) { ?>
                                        <!--Si hay algun error almacenado en el array, el mensaje del mismo se mostrara, esto para cada caso-->
                                        <p style="color: red"><?php echo $aErrores["descripcion"]; ?></p>
                                    <?php ?>
                                </div>
                                <div id="divVolumen">
                                    <label for="volumen">Volumen negocio: </label>
                                    <input type="text" name="volumen" id="volumen" style="background-color: #ffffb3" value="<?php echo (isset($_REQUEST['volumen']) ? $_REQUEST['volumen'] : ''); ?>">
                                    <?php if (!empty($aErrores["volumen"])) { ?>
                                        <!--Si hay algun error almacenado en el array, el mensaje del mismo se mostrara, esto para cada caso-->
                                        <p style="color: red"><?php echo $aErrores["volumen"]; ?></p>
                                    <?php ?>
                                </div>
                                <div id="divEnviar">
                                   <input type="submit" name="enviar" id="enviar" value="Enviar">
                                </div>                                
                            </form>
                        <?php


                    
//Lanzamos un query de consulta y lo guardamos en una variable
                    
$resultadoConsulta$miDB->query('select * from T02_Departamento');                                               

                    
?>
                    <table>
                        <thead>
                            <tr>
                                <th>Codigo</th>
                                <th>Descripcion</th>
                                <th>Alta departamento</th>
                                <th>Volumen negocio</th>
                                <th>Baja departamento</th>
                            </tr>
                        </thead>
                    <?php

                    
//Asignamos a la variable oResultado el 1er objeto de las respuestas recibidas del query, mientras el objeto contenga valores, se ejecutara el bucle                
                    
while ($oDepartamento=$resultadoConsulta->fetchObject()){
                        
?>
                        <tr>
                            <?php
                            $oFechaBaja
=$oDepartamento->T02_FechaBajaDepartamento;
                            
$sVolumen=strval($oDepartamento->T02_VolumenDeNegocio);
                            
                            echo 
"<td>".$oDepartamento->T02_CodDepartamento."</td>";
                            echo 
"<td>".$oDepartamento->T02_DescDepartamento."</td>";
                            echo 
"<td>".date_format(new DateTime($oDepartamento->T02_FechaCreacionDepartamento), "d/m/Y")."</td>";
                            echo 
"<td>".str_replace("."","$sVolumen)."€</td>";
                            echo 
is_null($oFechaBaja) ? '<td></td>' "<td>".date_format(new DateTime($oFechaBaja), "d/m/Y")."</td>";                            
                            
?>
                        </tr>
                        <?php                                        
                    
}
                    
?>
                    </table> 
                <?php
                
}catch (PDOException $ex) {
                    
//Si se produce algun error, este se capturara aqui y se mostrara su codigo y mensaje
                    
echo("<b>Mensaje de error:</b> ".$ex->getMessage()."<br>");
                    echo(
"<b>Codigo de error:</b> ".$ex->getCode());
                }
                finally{
                    unset(
$miDB);
                }
            
?>
        </main>
        <footer>
            <p><a href="../../index.html">Alex Asensio Sanchez</a></p>
            <p><a href="../indexProyectoTema4.php">Tema 4</a></p>
            <p><a target="blank" href="https://github.com/AlexAnacardo/204DWESProyectoTema4/tree/developer">GitHub del repositorio</a></p>
        </footer>
    </body>
</html>