documentoBase-2

 <?php


class Conexion
{
    static public function conectar()
    {
        return new PDO("mysql:host=localhost;dbname=despacho;charset=utf8", "root", "Juzgado-01");
    }
}

class DocumentosModel extends Conexion
{
    static public function casoDocumentos()
    {
        $stmt = Conexion::conectar()->prepare("SELECT * FROM documentos");
        $stmt->execute();
        return $stmt->fetchAll();
    }

    static public function obtenerDocumentos($caso_id)
    {
        $stmt = Conexion::conectar()->prepare("SELECT * FROM documentos WHERE caso_id = :caso_id");
        $stmt->bindParam(":caso_id", $caso_id, PDO::PARAM_INT);
        $stmt->execute();
        return $stmt->fetchAll();
    }

    static public function crearDocumento($datos)
    {
        $stmt = Conexion::conectar()->prepare("INSERT INTO documentos (caso_id, tipo_documento, descripcion, fecha, archivo) VALUES (:caso_id, :tipo_documento, :descripcion, :fecha, :archivo)");
        $stmt->bindParam(":caso_id", $datos['caso_id'], PDO::PARAM_INT);
        $stmt->bindParam(":tipo_documento", $datos['tipo_documento'], PDO::PARAM_STR);
        $stmt->bindParam(":descripcion", $datos['descripcion'], PDO::PARAM_STR);
        $stmt->bindParam(":fecha", $datos['fecha'], PDO::PARAM_STR);
        $stmt->bindParam(":archivo", $datos['archivo'], PDO::PARAM_STR);
       
        if ($stmt->execute()) {
            return "success";
        } else {
            return "error";
        }
    }

    static public function actualizarDocumento($datos)
    {
        $stmt = Conexion::conectar()->prepare("UPDATE documentos SET caso_id = :caso_id, tipo_documento = :tipo_documento, descripcion = :descripcion, fecha = :fecha, archivo = :archivo WHERE id = :id");
        $stmt->bindParam(":id", $datos['id'], PDO::PARAM_INT);
        $stmt->bindParam(":caso_id", $datos['caso_id'], PDO::PARAM_INT);
        $stmt->bindParam(":tipo_documento", $datos['tipo_documento'], PDO::PARAM_STR);
        $stmt->bindParam(":descripcion", $datos['descripcion'], PDO::PARAM_STR);
        $stmt->bindParam(":fecha", $datos['fecha'], PDO::PARAM_STR);
        $stmt->bindParam(":archivo", $datos['archivo'], PDO::PARAM_STR);
       
        if ($stmt->execute()) {
            return "success";
        } else {
            return "error";
        }
    }

    static public function eliminarDocumento($id)
    {
        $stmt = Conexion::conectar()->prepare("DELETE FROM documentos WHERE id = :id");
        $stmt->bindParam(":id", $id, PDO::PARAM_INT);
       
        if ($stmt->execute()) {
            return "success";
        } else {
            return "error";
        }
    }
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    switch ($_POST['action']) {
        case 'crear':
            $datos = [
                "caso_id" => $_POST["caso_id"],
                "tipo_documento" => $_POST["tipo_documento"],
                "descripcion" => $_POST["descripcion"],
                "fecha" => $_POST["fecha"],
                "archivo" => $_POST["archivo"]
            ];
            $resultado = DocumentosModel::crearDocumento($datos);
            if ($resultado === "success") {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location = "documentoBase.php?caso_id=' . $_POST["caso_id"] . '";
                </script>';
            } else {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location.reload();
                </script>';
            }
            break;
        case 'actualizar':
            $datos = [
                "id" => $_POST["id"],
                "caso_id" => $_POST["caso_id"],
                "tipo_documento" => $_POST["tipo_documento"],
                "descripcion" => $_POST["descripcion"],
                "fecha" => $_POST["fecha"],
                "archivo" => $_POST["archivo"]
            ];
            $resultado = DocumentosModel::actualizarDocumento($datos);
            if ($resultado === "success") {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location = "documentoBase.php?caso_id=' . $_POST["caso_id"] . '";
                </script>';
            } else {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location.reload();
                </script>';
            }
            break;
        case 'eliminar':
            $resultado = DocumentosModel::eliminarDocumento($_POST['id']);
            if ($resultado === "success") {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location = "documentoBase.php?caso_id=' . $_POST["caso_id"] . '";
                </script>';
            } else {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                    window.location.reload();
                </script>';
            }
            break;
    }
}

if (isset($_GET['caso_id'])) {
    $caso_id = $_GET['caso_id'];
    $documentos = DocumentosModel::obtenerDocumentos($caso_id);
} else {
    die("caso_id no está especificado en la URL.");
}

?>

<div class="container mt-5">
    <h3>Gestión de Documentos</h3>
    <button class="btn btn-success mb-3" data-bs-toggle="modal" data-bs-target="#crearModal">Crear Documento</button>
    <table class="table">
        <thead class="table-dark">
            <tr>
                <th>ID</th>
                <th>Caso ID</th>
                <th>Tipo de Documento</th>
                <th>Descripción</th>
                <th>Fecha</th>
                <th>Archivo</th>
                <th>Acciones</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($documentos as $documento) { ?>
                <tr>
                    <td><?php echo $documento['id']; ?></td>
                    <td><?php echo $documento['caso_id']; ?></td>
                    <td><?php echo $documento['tipo_documento']; ?></td>
                    <td><?php echo $documento['descripcion']; ?></td>
                    <td><?php echo $documento['fecha']; ?></td>
                    <td><?php echo $documento['archivo']; ?></td>
                    <td>
                        <form method="post" style="display: inline-block;">
                            <input type="hidden" name="action" value="eliminar">
                            <input type="hidden" name="id" value="<?php echo $documento['id']; ?>">
                            <input type="hidden" name="caso_id" value="<?php echo $caso_id; ?>">
                            <button type="submit" class="btn btn-danger">Eliminar</button>
                        </form>
                    </td>
                </tr>
            <?php } ?>
        </tbody>
    </table>
</div>

<!-- Modal Crear -->
<div class="modal fade" id="crearModal" tabindex="-1" aria-labelledby="crearModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="crearModalLabel">Crear Documento</h5>
                <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            </div>
            <div class="modal-body">
                <form method="post">
                   
                <input type="hidden" name="action" value="crear">

                    <div class="row">
                        <div class="col-6 mb-3">
                            <label for="caso_id" class="form-label">Caso ID</label>
                            <input type="text" class="form-control" id="caso_id" name="caso_id" value="<?php echo htmlspecialchars($caso_id); ?>" readonly>
                        </div>
                        <div class="col-6 mb-3">
                            <label for="tipo_documento" class="form-label">Tipo de Documento</label>
                            <select class="form-control" id="tipo_documento" name="tipo_documento" required>
                                <option value="Demanda">Demanda</option>
                                <option value="Prueba">Prueba</option>
                                <option value="Sentencia">Sentencia</option>
                                <option value="Notificación">Notificación</option>
                                <option value="Otro">Otro</option>
                            </select>
                        </div>
                        <div class="col-12 mb-3">
                            <label for="descripcion" class="form-label">Descripción</label>
                            <textarea class="form-control" id="descripcion" name="descripcion"></textarea>
                        </div>
                        <div class="col-6 mb-3">
                            <label for="fecha" class="form-label">Fecha</label>
                            <input type="date" class="form-control" id="fecha" name="fecha" required>
                        </div>
                        <div class="col-6 mb-3">
                            <label for="archivo" class="form-label">Archivo</label>
                            <input type="text" class="form-control" id="archivo" name="archivo">
                        </div>
                    </div>
                    <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cerrar</button>
                    <button type="submit" class="btn btn-success">Crear</button>
                </form>
            </div>
        </div>
    </div>
</div>

Comentarios