fix: recepcion_desk_id quedaba NULL en historial
Agregado selector de escritorio al abrir recepcion.php sin desk_id. Si hay múltiples escritorios muestra un modal para elegir; si hay uno solo se asigna automáticamente. Así recepcion_desk_id siempre queda registrado en el turno y aparece correctamente en el historial. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
9b4cdcc817
commit
64f2e7c784
@@ -32,16 +32,23 @@ try {
|
|||||||
$examenesAgrupados[$cat][] = $ex;
|
$examenesAgrupados[$cat][] = $ex;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Escritorio de recepción (opcional, vía ?desk_id=X)
|
// Escritorio de recepción (vía ?desk_id=X)
|
||||||
$deskId = (int)($_GET['desk_id'] ?? 0);
|
$deskId = (int)($_GET['desk_id'] ?? 0);
|
||||||
$desk = null;
|
$desk = null;
|
||||||
|
$desksRecepcion = $pdo->query(
|
||||||
|
"SELECT id, nombre FROM turnero_lugares WHERE tipo='recepcion' AND activo=1 ORDER BY sort_order"
|
||||||
|
)->fetchAll(PDO::FETCH_ASSOC);
|
||||||
|
|
||||||
if ($deskId) {
|
if ($deskId) {
|
||||||
$stmtDesk = $pdo->prepare(
|
foreach ($desksRecepcion as $d) {
|
||||||
"SELECT id, nombre FROM turnero_lugares WHERE id = ? AND tipo = 'recepcion' AND activo = 1"
|
if ($d['id'] === $deskId) { $desk = $d; break; }
|
||||||
);
|
}
|
||||||
$stmtDesk->execute([$deskId]);
|
if (!$desk) { $deskId = 0; }
|
||||||
$desk = $stmtDesk->fetch(PDO::FETCH_ASSOC) ?: null;
|
}
|
||||||
if (!$desk) { $deskId = 0; } // ID inválido → sin desk
|
// Si solo hay un escritorio, asignarlo automáticamente
|
||||||
|
if (!$deskId && count($desksRecepcion) === 1) {
|
||||||
|
$desk = $desksRecepcion[0];
|
||||||
|
$deskId = (int)$desk['id'];
|
||||||
}
|
}
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
$lugares = [];
|
$lugares = [];
|
||||||
@@ -256,6 +263,35 @@ $SIDEBAR_ICON = 'fas fa-ticket-alt';
|
|||||||
require_once __DIR__ . '/../../../shared/components/sidebar.php';
|
require_once __DIR__ . '/../../../shared/components/sidebar.php';
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
<?php if (!$deskId && count($desksRecepcion) > 1): ?>
|
||||||
|
<!-- Modal selector de escritorio (se muestra si no hay desk_id en URL) -->
|
||||||
|
<div class="modal fade" id="modalDeskSelect" tabindex="-1" data-bs-backdrop="static" data-bs-keyboard="false">
|
||||||
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header" style="background:var(--doc-color,#1565c0);color:#fff">
|
||||||
|
<h5 class="modal-title"><i class="fas fa-desktop me-2"></i>Seleccione su escritorio</h5>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body pb-2">
|
||||||
|
<p class="text-muted small mb-3">¿Desde qué escritorio de recepción está trabajando hoy?</p>
|
||||||
|
<div class="d-grid gap-2">
|
||||||
|
<?php foreach ($desksRecepcion as $d): ?>
|
||||||
|
<a href="?m=turnero&v=recepcion&desk_id=<?= $d['id'] ?>"
|
||||||
|
class="btn btn-outline-primary btn-lg">
|
||||||
|
<i class="fas fa-chair me-2"></i><?= htmlspecialchars($d['nombre']) ?>
|
||||||
|
</a>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
|
new bootstrap.Modal(document.getElementById('modalDeskSelect')).show();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
<main class="main-content" style="padding:0">
|
<main class="main-content" style="padding:0">
|
||||||
|
|
||||||
<!-- ── Top bar ──────────────────────────────────────────── -->
|
<!-- ── Top bar ──────────────────────────────────────────── -->
|
||||||
|
|||||||
Reference in New Issue
Block a user