This commit is contained in:
Lizandro Guarnizo
2026-06-16 13:20:13 -05:00
parent 5af94e50e5
commit b11a7f5f98
3 changed files with 99 additions and 49 deletions
+25 -7
View File
@@ -61,12 +61,12 @@ try {
} else {
// Cola de un Lugar específico: turnos 'en_espera_lugar' asignados a ese lugar
if ($turnoId) {
// Llamar uno específico por id
// Llamar uno específico por id (puede ser en_espera_lugar o ya en_servicio para re-llamar)
$stmt = $pdo->prepare(
'SELECT t.*, p.codigo AS prioridad_codigo, p.nombre AS prioridad_nombre, p.color AS prioridad_color
FROM turnero_turnos t
JOIN turnero_prioridades p ON p.id = t.prioridad_id
WHERE t.id = ? AND t.estado = "en_espera_lugar"'
WHERE t.id = ? AND t.estado IN ("en_espera_lugar", "en_servicio")'
);
$stmt->execute([$turnoId]);
$turno = $stmt->fetch(PDO::FETCH_ASSOC);
@@ -82,15 +82,33 @@ try {
}
}
// Re-llamar: si ya está en_servicio en ESTA estación, solo actualiza llamado_at
if ($turno['estado'] === 'en_servicio' && $turno['lugar_destino_id'] == $lugarId) {
$pdo->prepare(
'UPDATE turnero_turnos SET llamado_lugar_at = NOW() WHERE id = ?'
)->execute([$turno['id']]);
$pdo->commit();
// Refrescar y retornar
$stmt = $pdo->prepare(
'SELECT t.*, p.codigo AS prioridad_codigo, p.nombre AS prioridad_nombre, p.color AS prioridad_color
FROM turnero_turnos t JOIN turnero_prioridades p ON p.id = t.prioridad_id WHERE t.id = ?'
);
$stmt->execute([$turno['id']]);
$turnoActualizado = $stmt->fetch(PDO::FETCH_ASSOC);
notificarSSE((int)$turnoActualizado['sesion_id']);
jsonOk(['turno' => $turnoActualizado], "Turno {$turnoActualizado['codigo']} re-llamado");
}
$stmt = $pdo->prepare(
'UPDATE turnero_turnos
SET estado = "en_servicio",
llamado_lugar_at = NOW(),
inicio_lugar_at = NOW(),
atendido_lugar_por = ?
SET estado = "en_servicio",
llamado_lugar_at = NOW(),
inicio_lugar_at = NOW(),
atendido_lugar_por= ?,
lugar_destino_id = ?
WHERE id = ? AND estado = "en_espera_lugar"'
);
$stmt->execute([adminId(), $turno['id']]);
$stmt->execute([adminId(), $lugarId, $turno['id']]);
if ($stmt->rowCount() === 0) {
$pdo->rollBack();