documentoBase-1

 <?php

require_once "../cabesa.php";
?>
<?php
class Conexion
{
    static public function conectar()
    {
        return new PDO("mysql:host=localhost;dbname=despacho;charset=utf8", "root", "Juzgado-01");
    }
}
?>
<?php
class DocumentosModel extends Conexion
{
    static public function obtenerDocumentos()
    {
        $stmt = Conexion::conectar()->prepare("SELECT * FROM documentos");
        $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";
        }
    }
}
?>

<?php

// Manejo de solicitudes POST para CRUD
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 === true) {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                 
                       window.location = "agenda/documentoBase.php";
                </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 === true) {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                 
                         window.location = "agenda/documentoBase.php";
                </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 === true) {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                   window.location = "agenda/documentoBase.php";
                </script>';
            } else {
                echo '<script>
                    if (window.history.replaceState) {
                        window.history.replaceState(null, null, window.location.href);
                    }
                   
                                  window.location.reload();
                </script>';
            }
            break;
    }
}

// Obtener todos los documentos
$documentos = DocumentosModel::obtenerDocumentos();
?>

<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>
                        < método de formulario = "publicar" estilo = " mostrar: bloque en línea;" >
                            < tipo de entrada = "oculto" nombre = "acción" valor = "eliminar" >
                            < tipo de entrada = "oculto" nombre = "id" valor = " <?php echo $documento [ 'id' ]; ? > " >
                            <button type = "submit" class = "btn btn-danger" > Eliminar </button>
                        </formulario>
                    </td>
                </tr>
            <?php } ? >
        </cuerpo>
    </tabla>
</div>

<!-- Modal Crear -->
<div class = "desvanecimiento modal" id = "crearModal" tabindex = "-1" aria-labelledby = "crearModalLabel" aria-hidden = "true" >
    <div class = "diálogo-modal modal-lg" >
        <div class = "contenido-modal" >
            <div class = "encabezado-modal" >
                <h5 class = "modal-title" id = "crearModalLabel" > Crear documento </h5>
                <botón tipo = "botón" clase = "btn-close" datos-bs-dismiss = "modal" aria-label = "Cerrar" ></botón>
            </div>
            <div clase = "cuerpo-modal" >
                < método de formulario = "publicar" >
                    < tipo de entrada = "oculto" nombre = "acción" valor = "crear" >
                    <div class = "fila" >
                        <div clase = "col-6mb-3" >
                            <label for = "caso_id" class = "form-label" > Identificación del caso </label>
                            < tipo de entrada = "texto" clase = "control de formulario" id = "caso_id" nombre = "caso_id" requerido >
                        </div>
                        <div clase = "col-6mb-3" >
                            <label for = "tipo_documento" class = "form-label" > Tipo de Documento </label>
                            <select clase = "form-control" id = "tipo_documento" nombre = "tipo_documento" requerido >
                                <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>
                            </seleccionar>
                        </div>
                        <div clase = "col-12mb-3" >
                            <label for = "descripcion" class = "form-label" > Descripción </label>
                            <textarea clase = "form-control" id = "descripcion" nombre = "descripcion" ></textarea>
                        </div>
                        <div clase = "col-6mb-3" >
                            <label for = "fecha" class = "form-label" > Fecha </label>
                            < tipo de entrada = "fecha" clase = "form-control" id = "fecha" nombre = "fecha" requerido >
                        </div>
                        <div clase = "col-6mb-3" >
                            <label for = "archivo" class = "form-label" > Archivo </label>
                            < tipo de entrada = "texto" clase = "form-control" id = "archivo" nombre = "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>
                </formulario>
            </div>
        </div>
    </div>
</div>



<?php
require_once "../pie.php" ;
? >

Comentarios