up
This commit is contained in:
@@ -210,6 +210,7 @@ function siguienteTurnoEnCola(string $estado, ?int $lugarId = null): ?array
|
||||
AND t.lugar_destino_id = ?
|
||||
ORDER BY p.orden_peso ASC, t.creado_at ASC
|
||||
LIMIT 1
|
||||
FOR UPDATE
|
||||
';
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute([$estado, $lugarId]);
|
||||
@@ -221,6 +222,7 @@ function siguienteTurnoEnCola(string $estado, ?int $lugarId = null): ?array
|
||||
WHERE t.estado = ?
|
||||
ORDER BY p.orden_peso ASC, t.creado_at ASC
|
||||
LIMIT 1
|
||||
FOR UPDATE
|
||||
';
|
||||
$stmt = $pdo->prepare($sql);
|
||||
$stmt->execute([$estado]);
|
||||
|
||||
@@ -37,7 +37,7 @@ if ($nuevoEstado === '') jsonError('nuevo_estado es requerido.');
|
||||
// Mapa de transiciones válidas [estado_actual => [estados_destino_permitidos]]
|
||||
const TRANSICIONES = [
|
||||
'espera' => ['en_recepcion', 'ausente', 'cancelado'],
|
||||
'en_recepcion' => ['en_espera_lugar', 'ausente', 'cancelado'],
|
||||
'en_recepcion' => ['en_espera_lugar', 'espera', 'ausente', 'cancelado'],
|
||||
'en_espera_lugar' => ['en_servicio', 'ausente', 'cancelado'],
|
||||
'en_servicio' => ['finalizado', 'ausente', 'cancelado', 'en_espera_lugar'],
|
||||
];
|
||||
@@ -139,6 +139,13 @@ try {
|
||||
$binds[] = adminId();
|
||||
break;
|
||||
|
||||
case 'espera':
|
||||
// Soltar: liberar el turno para que otro escritorio lo llame
|
||||
$sets[] = 'recepcion_desk_id = NULL';
|
||||
$sets[] = 'inicio_recepcion_at = NULL';
|
||||
$sets[] = 'atendido_recepcion_por = NULL';
|
||||
break;
|
||||
|
||||
case 'ausente':
|
||||
case 'cancelado':
|
||||
// Sin timestamps adicionales; simplemente cambio de estado
|
||||
|
||||
@@ -66,6 +66,7 @@ $stmt = $pdo->prepare(
|
||||
t.numero,
|
||||
t.estado,
|
||||
t.paciente_nombre,
|
||||
t.recepcion_desk_id,
|
||||
t.creado_at,
|
||||
t.llamado_recepcion_at,
|
||||
t.llamado_lugar_at,
|
||||
|
||||
Reference in New Issue
Block a user