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
Publicar un comentario