<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Ej 07</title>        
        <link rel="stylesheet" href="../webroot/css/ejercicio07PDO.css">            
    </head>
    <body>
        <main>
            <header>
                <h1>Importar datos</h1>
            </header>
            <?php
                
/**
                 * @author Alex Asensio Sanchez
                 * @version Fecha de última modificación 13/11/2024
                 */
            
                //Importamos el fichero de variables con las constantes que pertenecen a nuestra conexion            
                
require_once('../config/confDBPDO.php'); 
                
//Importamos la libreria de validacion
                
require_once('../core/231018libreriaValidacion.php');
                
$entradaOK=true//Booleano que confirma que todo va bien
                
                
$aErrores=[  //Array de errores
                    
'nombreArchivo' => '',                   
                ]; 
                
$aRespuestas=[  //Array de respuestas
                    
'nombreArchivos'=>" ",
                ];
                
                try{                    
                    
/*
                    $fechaActual=date_format(new DateTime("now"), "Y-m-d");
                    $json= file_get_contents("../tmp/{$fechaActual}departamentos.json"); 
                    
                    $arrayJson= json_decode($json);
                    */ 
                                        
                    
if(isset($_REQUEST['enviar'])){
                        
                            
$aErrores=[
                                
//'nombreArchivos'=> validacionFormularios::validarElementoEnLista($_REQUEST['enviar'], scandir("../tmp/"))
                            
];

                            foreach (
$aErrores as $clave => $valor) {
                            if (
$valor == !null) {
                                
$entradaOK false;
                                
//Limpiamos el campo si hay un error
                                
$_REQUEST[$clave] = ''
                                }
                            }
                        }
                        else{
                            
$entradaOK=false;
                        }                     
                     
                        
                        if(
$entradaOK){
                                                    
                            
$jsonfile_get_contents("../tmp/{$_REQUEST['nombreArchivo']}");

                            
$arrayJsonjson_decode($json);

                            
$miDB=new PDO(CONEXIONUSUARIOCONTRASEÑA);
                            
$miDB->beginTransaction();

                            
$totalInserciones=0;
                            foreach(
$arrayJson as $objJson){
                                
$insercion$miDB->prepare("insert into T02_Departamento values(:codigo, :descripcion, :fechaAlta, :volumen, :baja)");

                                
$insercion->bindParam(':codigo'$objJson->T02_CodDepartamento);
                                
$insercion->bindParam(':descripcion'$objJson->T02_DescDepartamento);
                                
$insercion->bindParam(':fechaAlta'$objJson->T02_FechaCreacionDepartamento);
                                
$insercion->bindParam(':volumen'$objJson->T02_VolumenDeNegocio);
                                
$insercion->bindParam(':baja'$objJson->T02_FechaBajaDepartamento);

                                
$insercion->execute();

                                
$totalInserciones++;
                            }

                            
$miDB->commit();    
                            
?>
                            <div>
                            <?php
                                
echo("<p>Insercion completada, se han insertado {$totalInserciones} registros</p>");
                            
?>
                            </div>
                            <?php
                        
}
                    
                    
                        
?>
                        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" novalidate>                       
                                <label for="nombreArchivo">Elija archivo</label>
                                <select name="nombreArchivo" id="nombreArchivo">
                                    <?php
                                        $arrayArchivos
scandir("../tmp/");
                                        foreach (
$arrayArchivos as $nombreArchivo){
                                            if(!
is_dir("../tmp/{$nombreArchivo}")){
                                                echo(
'<option value="'.$nombreArchivo.'" id="'.$nombreArchivo.'">'.$nombreArchivo.'</option>');                                    
                                            }
                                        }
                                    
?>
                                </select>                        
                            <input type="submit" name="enviar" id="enviar" value="Enviar">
                        </form>
                    <?php
                                        
                
}catch (PDOException $ex) {
                    
$miDB->rollBack();
                    
?>
                        <div>
                    <?php
                            
echo('<p style="color: red">No se han podido insertar los registros</p><br>');
                            
//Si se produce algun error, este se capturara aqui y se mostrara su codigo y mensaje
                            
echo("<p><b>Mensaje de error:</b> ".$ex->getMessage()."</p><br>");
                            echo(
"<p><b>Codigo de error:</b> ".$ex->getCode()."</p>");
                    
?>
                        </div>
                    <?php
                
}
                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>