documentoBase-3-1-join completo
<?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 d.*, c.numero_expediente
FROM documentos d
JOIN casos c ON d.caso_id = c.id
WHERE d.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>Expediente</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 htmlspecialchars($documento['numero_expediente']); ?></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="datetime-local" 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="file" 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
Publicar un comentario