carpetas/cat-intervinientes.php
<?php
class CarpetaIntervinientesModel extends Conexion
{
static public function getIntervinientesByCarpetaId($carpeta_id)
{
try {
$query = Conexion::conectar()->prepare("SELECT * FROM carpeta_intervinientes WHERE carpeta_id = :carpeta_id");
$query->execute(['carpeta_id' => $carpeta_id]);
return $query->fetchAll();
} catch (PDOException $e) {
return false;
}
}
static public function insertInterviniente($datos)
{
$query = Conexion::conectar()->prepare('INSERT INTO carpeta_intervinientes(nombre, tipo, carpeta_id) VALUES(:nombre, :tipo, :carpeta_id)');
$query->execute([
'nombre' => $datos['nombre'],
'tipo' => $datos['tipo'],
'carpeta_id' => $datos['carpeta_id']
]);
return true;
}
static public function updateInterviniente($datos)
{
$query = Conexion::conectar()->prepare('UPDATE carpeta_intervinientes SET nombre = :nombre, tipo = :tipo WHERE id = :id');
$query->execute([
'nombre' => $datos['nombre'],
'tipo' => $datos['tipo'],
'id' => $datos['id']
]);
return true;
}
static public function deleteInterviniente($id)
{
$query = Conexion::conectar()->prepare('DELETE FROM carpeta_intervinientes WHERE id = :id');
$query->execute(['id' => $id]);
return true;
}
}
?>
<div class="container">
<br>
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#myModalInterviniente">
Agregar Interviniente
</button>
<!-- Modal para agregar/editar interviniente -->
<div class="modal" id="myModalInterviniente">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Agregar/Editar Interviniente</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<form action="" method="POST">
<input type="hidden" name="id" value="">
<input type="hidden" name="accion" value="guardar">
<input type="hidden" name="carpeta_id" value="<?php echo $carpeta_id; ?>">
<div class="modal-body">
<div class="mb-3">
<label for="nombre" class="form-label">Nombre</label>
<input type="text" class="form-control" name="nombre" placeholder="Nombre del interviniente" required>
</div>
<div class="mb-3">
<label for="tipo" class="form-label">Tipo</label>
<input type="text" class="form-control" name="tipo" placeholder="Tipo de interviniente" 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
$carpeta_id = isset($_GET['id']) ? intval($_GET['id']) : 0;
$controller = new CarpetaIntervinientesController($carpeta_id);
// Procesa la acción de acuerdo al valor de $_POST['accion']
if (isset($_POST['accion'])) {
if ($_POST['accion'] === 'guardar') {
$controller->createInterviniente();
} elseif ($_POST['accion'] === 'actualizar') {
$controller->updateInterviniente();
} elseif ($_POST['accion'] === 'eliminar') {
$controller->deleteInterviniente();
}
}
$intervinientes = $controller->getIntervinientes();
?>
<table class="table" style='width:100%'>
<thead class="thead-dark">
<tr>
<th>ID</th>
<th>Nombre</th>
<th>Tipo</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
<?php
// Obtener el id de la carpeta desde la URL
$intervinientes = $controller->getIntervinientes();
if (!empty($intervinientes)) {
foreach ($intervinientes as $interviniente) {
echo "<tr>
<td>{$interviniente['id']}</td>
<td>{$interviniente['nombre']}</td>
<td>{$interviniente['tipo']}</td>
<td>
<!-- Formulario para eliminar -->
<form action='' method='POST' style='display:inline;'>
<input type='hidden' name='accion' value='eliminar'>
<input type='hidden' name='id' value='{$interviniente['id']}'>
<button type='submit' class='btn btn-danger'>Eliminar</button>
</form>
</td>
</tr>";
}
} else {
echo "<tr><td colspan='4'>No hay intervinientes registrados.</td></tr>";
}
?>
</tbody>
</table>
<script>
function fillIntervinienteForm(id, nombre, tipo) {
document.querySelector('input[name="id"]').value = id;
document.querySelector('input[name="nombre"]').value = nombre;
document.querySelector('input[name="tipo"]').value = tipo;
}
</script>
</div>
<?php
class CarpetaIntervinientesController
{
private $carpeta_id;
public function __construct($carpeta_id)
{
$this->carpeta_id = $carpeta_id; // Guardamos el id de la carpeta
}
public function getIntervinientes()
{
return CarpetaIntervinientesModel::getIntervinientesByCarpetaId($this->carpeta_id);
}
public function createInterviniente()
{
if (isset($_POST['accion'])) {
$datos = [
"nombre" => $_POST['nombre'],
"tipo" => $_POST['tipo'],
"carpeta_id" => $this->carpeta_id // Usamos el id de la carpeta aquí
];
return CarpetaIntervinientesModel::insertInterviniente($datos);
}
}
public function updateInterviniente()
{
if (isset($_POST['accion'])) {
$datos = [
"id" => $_POST['id'],
"nombre" => $_POST['nombre'],
"tipo" => $_POST['tipo']
];
$respuesta = CarpetaIntervinientesModel::updateInterviniente($datos);
if ($respuesta) {
echo '<script>window.location.href="index.php?pagina=carpeta/carpeta-dato&ids=' .$this->carpeta_id . '";</script>';
} else {
echo '<script>alert("Error al agregar el delito.");</script>';
}
}
}
public function deleteInterviniente()
{
if (isset($_POST['accion']) && $_POST['accion'] === 'eliminar') {
$id = $_POST['id'];
$respuesta = CarpetaIntervinientesModel::deleteInterviniente($id);
if ($respuesta) {
echo '<script>window.location.href="index.php?pagina=carpeta/carpeta-datos&id=' . $this->carpeta_id . '";</script>';
} else {
echo '<script>alert("Error al eliminar el interviniente.");</script>';
}
}
}
}
?>
Comentarios
Publicar un comentario