<!DOCTYPE html>
<!--
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
Click nbfs://nbhost/SystemFileSystem/Templates/Scripting/EmptyPHPWebPage.php to edit this template
-->
<html>
    <head>
        <meta charset="UTF-8">
        <title>Ejercicio 06 - Alejandro De la Huerga</title>
        <style>
            *{
                box-sizing: border-box;
                margin: 0;
            }
            
            header{
                width: 100%;
                height: 13vh;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                background: lightblue;
            }
            
            main{
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                height: 74vh;
            }
            
            table{
                border: 1px solid black;
                
            }
            
            tr{
                border: 1px solid black;
                
            }
            
            th{
                background: lightblue;
                padding: 4px;
            }
            
            td{
                border: 1px solid black;
                padding: 4px;
            }
            
            footer{
                display: flex;
                align-items: center;
                justify-content: center;
                width: 100%;
                height: 13vh;
                gap: 30px;
                background: lightblue;
            }
            
            footer img{
                width: 40px;
                height: auto;
            }
        </style>
    </head>
    <body>
        <header>
            <h1><a href="../indexProyectoTema4.php">Alejandro De la Huerga</a></h1>
            <h2>Ejercicio 06</h2>
        </header>
        <main>
        <?php
            /**
             * @author Alejandro De la Huerga Fernández
             * @version 1.0
             * @date 2025-11-12 
             * 
             *
             * 6. Pagina web que cargue registros en la tabla Departamento desde un array departamentosnuevos
                  utilizando una consulta preparada. Probar consultas preparadas sin bind,
                  pasando los parámetros en un array a execute.
             */
        
            //enlace a los datos de conexión
            require_once '../config/confDBPDO.php';
            
            //Array en el cual estan almacenados los departamentos a registrar (Array que almacena array con los datos de inserción en cada campo).
            $aDepartamentos = [
                ["T02_CodDepartamento" => "FOR",//codigo de departamento de formacion
                 "T02_DescDepartamento" => "Departamento de Formacion",//descripcion del departamento de Formacion
                 "T02_VolumenDeNegocio" => "1"],//volumen de negocio del departamento de Formacion
                ["T02_CodDepartamento" => "THR",//codigo de departamento de THR
                 "T02_DescDepartamento" => "Departamento de THR",//descripcion del departamento THR
                 "T02_VolumenDeNegocio" => "85"],//volumen de negocio del departamento THR
                ["T02_CodDepartamento" => "PPP",//codigo de departamento de PPP
                 "T02_DescDepartamento" => "Departamento de PPP",//descripcion del departamento  PPP
                 "T02_VolumenDeNegocio" => "1234.63"] //volumen de negocio del departamento PPP
            ];
            
            try{
                // Realizamos la conexion con la base de datos.
                $miDB = new PDO(DNS, USUARIODB, PSWD);
                $miDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                echo "<h3>Conexión establecida con éxito.</h3>";
                // Creamos la consulta con el insert
                
                // Inicia la transacción para garantizar la integridad de los datos
                $miDB->beginTransaction();
                
                $sql=<<< sql
                        INSERT INTO T02_Departamento (T02_CodDepartamento,T02_DescDepartamento,
                         T02_VolumenDeNegocio,T02_FechaCreacionDepartamento)
                        VALUES (:codigo,:descripcion,:volumen,NOW());
                    sql;
                
                $consultaPreparada=$miDB->prepare($sql);
                        
                foreach($aDepartamentos as $departamento){
                    $consultaPreparada->bindParam(':codigo', $departamento['T02_CodDepartamento']);
                    $consultaPreparada->bindParam(':descripcion', $departamento['T02_DescDepartamento']);
                    $consultaPreparada->bindParam(':volumen', $departamento['T02_VolumenDeNegocio']);

                    $consultaPreparada->execute();
                }
                
                
                $miDB->commit();
                echo "<h3 style='color:green; font-weight:bold;'>Todos los departamentos fueron insertados correctamente.</h3>";
                
                $resultadoDepartamentos=$miDB->query("SELECT * FROM T02_Departamento");
                
                print '<table>';
                print '<tr><th>Codigo Departamento</th><th>Descripcion Departamento</th><th>Fecha Alta</th><th>Volumen Negocio</th><th>Fecha Baja</th></tr>';
                $mostrarDepartamentos = $resultadoDepartamentos->fetchObject();
                while ($mostrarDepartamentos != null) {
                    print"<tr>";
                    while ($mostrarDepartamentos != null) {
                        print"<tr>";
                        echo "<td>$mostrarDepartamentos->T02_CodDepartamento</td>";
                        echo "<td>$mostrarDepartamentos->T02_DescDepartamento</td>";
                        echo "<td>$mostrarDepartamentos->T02_FechaCreacionDepartamento</td>";
                        echo "<td>$mostrarDepartamentos->T02_VolumenDeNegocio</td>";
                        echo "<td>$mostrarDepartamentos->T02_FechaBajaDepartamento</td>";
                        $mostrarDepartamentos = $resultadoDepartamentos->fetchObject();
                    }
                    print "</tr>";
                }
                print '</table>';
            } catch (PDOException $miExcepcionPDO) {
                //mostramos el mensaje de error
                echo $miExcepcionPDO->getMessage();
            } finally {
                //nos desconectamos de la base de datos
                unset($miDB);
            }
        ?>
        </main>
    </body>
    <footer>
        <a href="../indexProyectoTema3.php">Alejandro De la Huerga Fernández</a>
        <a href="https://github.com/alejandrohuerga/AHFDWESProyectoTema3.git">
            <img src="../doc/images/github-logo.png"> 
        </a>
    </footer> 
</html>