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

Entradas populares de este blog

Sistema de Juzgado con Asignación Equitativa de Turnos

CREATE TABLE `carpeta_hechos

libros de gobierno por un software.