CarpetaDelitos

 <?php


class CarpetaDelitosModel extends Conexion

{

    // Obtener delitos según el id de carpeta

    static public function obtenerDelitosPorCarpeta($carpeta_id)

    {

        try {

            $query = Conexion::conectar()->prepare("SELECT * FROM carpeta_delitos WHERE carpeta_id = :carpeta_id");

            $query->execute(['carpeta_id' => $carpeta_id]);

            return $query->fetchAll();

        } catch (PDOException $e) {

            return false;

        }

    }


    // Insertar un nuevo delito en la carpeta

    static public function insertarDelito($datos)

    {

        try {

            $query = Conexion::conectar()->prepare("INSERT INTO carpeta_delitos(nombre, carpeta_id) VALUES(:nombre, :carpeta_id)");

            $query->execute([

                'nombre' => $datos['nombre'],

                'carpeta_id' => $datos['carpeta_id']

            ]);

            return true;

        } catch (PDOException $e) {

            return false;

        }

    }


    // Eliminar un delito por ID

    static public function eliminarDelito($delito_id)

    {

        try {

            $query = Conexion::conectar()->prepare("DELETE FROM carpeta_delitos WHERE id = :delito_id");

            $query->execute(['delito_id' => $delito_id]);

            return true;

        } catch (PDOException $e) {

            return false;

        }

    }

}

?>


<div class="container">

    <br>

    <button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#modalDelito">

        Agregar Delito

    </button>


    <!-- Modal para agregar un delito -->

    <div class="modal" id="modalDelito">

        <div class="modal-dialog">

            <div class="modal-content">

                <div class="modal-header">

                    <h4 class="modal-title">Agregar Delito</h4>

                    <button type="button" class="btn-close" data-bs-dismiss="modal"></button>

                </div>

                <form action="" method="POST">

                    <input type="hidden" name="AccionDelito" value="AgregarDelito">

                    <div class="modal-body">

                        <div class="mb-3">

                            <label for="nombreDelito" class="form-label">Nombre del Delito</label>

                            <input type="text" class="form-control" name="nombre" placeholder="Nombre del delito" required>

                        </div>

                    </div>

                    <div class="modal-footer">

                        <button type="button" class="btn btn-danger" data-bs-dismiss="modal">Cerrar</button>

                        <button type="submit" class="btn btn-primary">Guardar</button>

                    </div>

                </form>

            </div>

        </div>

    </div>


    <?php

    // Instancia del controlador y obtención de delitos según el id de la carpeta

    $controlador = new CarpetaDelitosControlador();

    if (isset($_POST['AccionDelito'])) {

        if ($_POST['AccionDelito'] === 'AgregarDelito') {

            $controlador->crearDelito();

        } elseif ($_POST['AccionDelito'] === 'EliminarDelito') {

            $controlador->eliminarDelito($_POST['delito_id']);

        }

    }


    $delitos = $controlador->obtenerDelitosPorCarpeta($_GET['id']);

    ?>


    <!-- Tabla de delitos -->

    <table class="table" style="width:100%">

        <thead class="thead-dark">

            <tr>

                <th>ID</th>

                <th>Nombre</th>

                <th>Acciones</th>

            </tr>

        </thead>

        <tbody>

            <?php if (!empty($delitos)) { ?>

                <?php foreach ($delitos as $delito) { ?>

                    <tr>

                        <td><?php echo $delito["id"]; ?></td>

                        <td><?php echo $delito["nombre"]; ?></td>

                        <td>

                            <!-- Botón para eliminar -->

                            <form action="" method="POST" style="display:inline;">

                                <input type="hidden" name="AccionDelito" value="EliminarDelito">

                                <input type="hidden" name="delito_id" value="<?php echo $delito["id"]; ?>">

                                <button type="submit" class="btn btn-danger btn-sm">Eliminar</button>

                            </form>

                        </td>

                    </tr>

                <?php } ?>

            <?php } else { ?>

                <tr>

                    <td colspan="3">No hay delitos registrados para esta carpeta.</td>

                </tr>

            <?php } ?>

        </tbody>

    </table>

</div>


<?php


class CarpetaDelitosControlador

{

    // Obtener delitos según el id de la carpeta

    public function obtenerDelitosPorCarpeta($carpeta_id)

    {

        return CarpetaDelitosModel::obtenerDelitosPorCarpeta($carpeta_id);

    }


    // Crear un nuevo delito en la carpeta

    public function crearDelito()

    {

        if (isset($_POST['nombre']) && isset($_GET['id'])) {

            $datos = [

                "nombre" => $_POST['nombre'],

                "carpeta_id" => $_GET['id']

            ];


            $respuesta = CarpetaDelitosModel::insertarDelito($datos);


            if ($respuesta) {

                echo '<script>

                    if (window.history.replaceState) {

                        window.history.replaceState(null, null, window.location.href);

                    }

                    window.location = "index.php?pagina=carpeta/carpeta-datos&id=' . $_GET['id'] . '";

                </script>';

            } else {

                echo "Error al guardar el delito.";

            }

        }

    }


    // Eliminar un delito

    public function eliminarDelito($delito_id)

    {

        $respuesta = CarpetaDelitosModel::eliminarDelito($delito_id);


        if ($respuesta) {

            echo '<script>

                if (window.history.replaceState) {

                    window.history.replaceState(null, null, window.location.href);

                }

                window.location.reload();

            </script>';

        } else {

            echo "Error al eliminar el delito.";

        }

    }

}

?>


Comentarios

Entradas populares de este blog

Normalizar valores

NORMALIZAR TABLA-audiencia_intervinientes

Listar audiencias