48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
<?php
|
|
/**
|
|
* POST /modules/turnero/api/rellamar.php
|
|
* Re-llama un turno que ya está en_recepcion: actualiza llamado_recepcion_at = NOW()
|
|
* para que la pantalla TV detecte el cambio y vuelva a anunciar/animar.
|
|
*
|
|
* Body JSON:
|
|
* turno_id int requerido
|
|
*/
|
|
|
|
require_once __DIR__ . '/_helpers.php';
|
|
requireMethod('POST');
|
|
requireTurnero();
|
|
|
|
$datos = inputJson();
|
|
$turnoId = (int)($datos['turno_id'] ?? 0);
|
|
$deskId = isset($datos['desk_id']) ? (int)$datos['desk_id'] : null;
|
|
|
|
if (!$turnoId) jsonError('turno_id es obligatorio.', 400);
|
|
|
|
$pdo = db();
|
|
$stmt = $pdo->prepare(
|
|
"UPDATE turnero_turnos
|
|
SET llamado_recepcion_at = NOW(),
|
|
recepcion_desk_id = COALESCE(?, recepcion_desk_id)
|
|
WHERE id = ? AND estado = 'en_recepcion'"
|
|
);
|
|
$stmt->execute([$deskId, $turnoId]);
|
|
|
|
if ($stmt->rowCount() === 0) {
|
|
jsonError('El turno no está en estado en_recepcion o no existe.', 404);
|
|
}
|
|
|
|
// Devolver el turno actualizado para que recepcion.php abra la ficha
|
|
$stmtT = $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 = ?"
|
|
);
|
|
$stmtT->execute([$turnoId]);
|
|
$turno = $stmtT->fetch(PDO::FETCH_ASSOC);
|
|
|
|
jsonOk(['turno' => $turno]);
|