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;
|
||||
}
|
||||
|
||||
// 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);
|
||||
$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) {
|
||||
$stmtDesk = $pdo->prepare(
|
||||
"SELECT id, nombre FROM turnero_lugares WHERE id = ? AND tipo = 'recepcion' AND activo = 1"
|
||||
);
|
||||
$stmtDesk->execute([$deskId]);
|
||||
$desk = $stmtDesk->fetch(PDO::FETCH_ASSOC) ?: null;
|
||||
if (!$desk) { $deskId = 0; } // ID inválido → sin desk
|
||||
foreach ($desksRecepcion as $d) {
|
||||
if ($d['id'] === $deskId) { $desk = $d; break; }
|
||||
}
|
||||
if (!$desk) { $deskId = 0; }
|
||||
}
|
||||
// Si solo hay un escritorio, asignarlo automáticamente
|
||||
if (!$deskId && count($desksRecepcion) === 1) {
|
||||
$desk = $desksRecepcion[0];
|
||||
$deskId = (int)$desk['id'];
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$lugares = [];
|
||||
@@ -256,6 +263,35 @@ $SIDEBAR_ICON = 'fas fa-ticket-alt';
|
||||
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">
|
||||
|
||||
<!-- ── Top bar ──────────────────────────────────────────── -->
|
||||
|
||||
Reference in New Issue
Block a user