feat(turnero): devolver paciente a recepción desde toma de muestras

- cambiar_estado: permite en_espera_lugar→en_recepcion y en_servicio→en_recepcion
- Al volver de un lugar limpia lugar_destino_id, llamado_lugar_at, inicio_lugar_at,
  fin_recepcion_at y atendido_lugar_por para que quede reasignable
- lugar.php: botón "A recepción" visible en en_espera_lugar y en_servicio
- resetFicha oculta el botón nuevo al limpiar la ficha

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-22 22:22:05 -05:00
co-authored by Claude Sonnet 4.6
parent 728d78f606
commit a15dceae2a
2 changed files with 36 additions and 2 deletions
+10 -2
View File
@@ -39,8 +39,8 @@ if ($nuevoEstado === '') jsonError('nuevo_estado es requerido.');
const TRANSICIONES = [
'espera' => ['en_recepcion', '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'],
'en_espera_lugar' => ['en_servicio', 'en_recepcion', 'ausente', 'cancelado'],
'en_servicio' => ['finalizado', 'ausente', 'cancelado', 'en_espera_lugar', 'en_recepcion'],
];
$pdo = db();
@@ -116,6 +116,14 @@ try {
$sets[] = 'recepcion_desk_id = ?';
$binds[] = $deskId;
}
// Viene de un lugar: limpiar campos del lugar para que quede reasignable
if (in_array($estadoActual, ['en_espera_lugar', 'en_servicio'], true)) {
$sets[] = 'lugar_destino_id = NULL';
$sets[] = 'llamado_lugar_at = NULL';
$sets[] = 'inicio_lugar_at = NULL';
$sets[] = 'fin_recepcion_at = NULL';
$sets[] = 'atendido_lugar_por = NULL';
}
break;
case 'en_espera_lugar':