cat-delitos.php

 <?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

Sistema de Juzgado con Asignación Equitativa de Turnos

CREATE TABLE `carpeta_hechos

libros de gobierno por un software.