fix(turnero): incluir solo_muestras en llamar_turno y bypass consent para entrega
- llamar_turno.php: ambos SELECT de refresco hacen LEFT JOIN con turnero_solicitudes para devolver COALESCE(ts.solo_muestras,0). Sin este JOIN, JS recibía undefined y _esSoloEntrega() retornaba false → polling de consentimientos arrancaba → hayPendientes=true → finalizar bloqueado (caso turno E047 ALVARO TIRADO). - lugar.php renderConsentimientos: hayPendientes se fuerza a false cuando _esSoloEntrega(turnoActivo) es true, para que un consentimiento huérfano previo no bloquee la finalización en turnos de solo entrega de muestras. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
dffb242522
commit
925b29b00b
@@ -96,8 +96,12 @@ try {
|
||||
$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 = ?'
|
||||
'SELECT t.*, p.codigo AS prioridad_codigo, p.nombre AS prioridad_nombre, p.color AS prioridad_color,
|
||||
COALESCE(ts.solo_muestras, 0) AS solo_muestras
|
||||
FROM turnero_turnos t
|
||||
JOIN turnero_prioridades p ON p.id = t.prioridad_id
|
||||
LEFT JOIN turnero_solicitudes ts ON ts.turno_id = t.id
|
||||
WHERE t.id = ?'
|
||||
);
|
||||
$stmt->execute([$turno['id']]);
|
||||
$turnoActualizado = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
@@ -127,9 +131,11 @@ try {
|
||||
'SELECT t.*,
|
||||
p.codigo AS prioridad_codigo,
|
||||
p.nombre AS prioridad_nombre,
|
||||
p.color AS prioridad_color
|
||||
p.color AS prioridad_color,
|
||||
COALESCE(ts.solo_muestras, 0) AS solo_muestras
|
||||
FROM turnero_turnos t
|
||||
JOIN turnero_prioridades p ON p.id = t.prioridad_id
|
||||
LEFT JOIN turnero_solicitudes ts ON ts.turno_id = t.id
|
||||
WHERE t.id = ?'
|
||||
);
|
||||
$stmt->execute([$turno['id']]);
|
||||
|
||||
@@ -1545,7 +1545,8 @@ function renderConsentimientos(lista) {
|
||||
// Mostrar consentimientos de examen (origen null) + los de esta estación
|
||||
lista = lista.filter(c => !c.origen_lugar_id || c.origen_lugar_id == lugarId);
|
||||
tieneConsent = lista.length > 0;
|
||||
hayPendientes = lista.some(c => !['firmado','rechazado','cerrado_anticipado'].includes(c.estado));
|
||||
hayPendientes = !_esSoloEntrega(turnoActivo) &&
|
||||
lista.some(c => !['firmado','rechazado','cerrado_anticipado'].includes(c.estado));
|
||||
// en_progreso bloquea finalizar pero no muestra aviso de "pendiente sin acción"
|
||||
const pendCount = lista.filter(c => ['pendiente','enviado','visto'].includes(c.estado)).length;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user