up
This commit is contained in:
@@ -171,6 +171,25 @@ function siguienteNumero(int $sesionId): int
|
||||
return (int) $stmt->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* Genera el siguiente número correlativo de turno POR PRIORIDAD para una sesión.
|
||||
* Cada prioridad (A, B, C, D, E, F) tiene su propia secuencia independiente.
|
||||
* Usa bloqueo a nivel de fila para evitar duplicados en concurrencia.
|
||||
*/
|
||||
function siguienteNumeroPorPrioridad(int $sesionId, int $prioridadId): int
|
||||
{
|
||||
$pdo = db();
|
||||
$stmt = $pdo->prepare(
|
||||
'SELECT COALESCE(MAX(numero), 0) + 1 AS siguiente
|
||||
FROM turnero_turnos
|
||||
WHERE sesion_id = ?
|
||||
AND prioridad_id = ?
|
||||
FOR UPDATE'
|
||||
);
|
||||
$stmt->execute([$sesionId, $prioridadId]);
|
||||
return (int) $stmt->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* Selecciona el siguiente turno a llamar según el motor de prioridades.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user