fix(turnero): turno de recepcion 1 aparece en recepcion 2 en display
get_display_global.php: la query de cada escritorio tenía la condición OR t.recepcion_desk_id IS NULL lo que hacía que un turno llamado sin desk_id (NULL) apareciera como activo en TODOS los escritorios simultáneamente, anunciando el destino incorrecto. Se eliminó esa condición para usar match exacto por escritorio. llamar_turno.php: cambiar COALESCE(?, recepcion_desk_id) por ? directo. El COALESCE era innecesario porque el UPDATE solo aplica sobre estado='espera' (primer llamado). Ahora siempre escribe el valor recibido. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
4f25cd6b59
commit
9afefcf3e7
@@ -44,7 +44,7 @@ foreach ($escritoriosRec as $desk) {
|
||||
JOIN turnero_prioridades p ON p.id = t.prioridad_id
|
||||
WHERE t.sesion_id = ?
|
||||
AND t.estado = 'en_recepcion'
|
||||
AND (t.recepcion_desk_id = ? OR t.recepcion_desk_id IS NULL)
|
||||
AND t.recepcion_desk_id = ?
|
||||
ORDER BY t.llamado_recepcion_at DESC
|
||||
LIMIT 1"
|
||||
);
|
||||
|
||||
@@ -41,13 +41,16 @@ try {
|
||||
}
|
||||
|
||||
// Actualizar estado + timestamp
|
||||
// $deskId puede ser null si el recepcionista no seleccionó escritorio;
|
||||
// se guarda igual (puede quedar NULL) pero la query del display ya no
|
||||
// usa IS NULL para evitar que aparezca en todos los escritorios.
|
||||
$stmt = $pdo->prepare(
|
||||
'UPDATE turnero_turnos
|
||||
SET estado = "en_recepcion",
|
||||
llamado_recepcion_at = NOW(),
|
||||
inicio_recepcion_at = NOW(),
|
||||
atendido_recepcion_por = ?,
|
||||
recepcion_desk_id = COALESCE(?, recepcion_desk_id)
|
||||
recepcion_desk_id = ?
|
||||
WHERE id = ? AND estado = "espera"'
|
||||
);
|
||||
$stmt->execute([adminId(), $deskId, $turno['id']]);
|
||||
|
||||
Reference in New Issue
Block a user