From 1296918c200db72c1325dc7d4e4574d00fa666d0 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Thu, 9 Jul 2026 16:12:10 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20tomas=20prolongadas=20=E2=80=94=20firma?= =?UTF-8?q?=20no=20guardaba=20y=20countdown=20no=20aparec=C3=ADa?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ver_formulario_enviado.php: - $_mpPrimeraPendiente, $_mpBloqueado y $fSvg buscaban la clave campoId_svg pero guardar_toma.php guarda con clave campoId (sin sufijo). Se añade fallback a ambas claves para compatibilidad hacia adelante y atrás. lugar.php: - new Date('2026-07-09 15:30:00') no parsea en Safari; se reemplaza el espacio por 'T' para formato ISO antes de construir el timestamp. Co-Authored-By: Claude Sonnet 4.6 --- modules/turnero/views/lugar.php | 2 +- ver_formulario_enviado.php | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/turnero/views/lugar.php b/modules/turnero/views/lugar.php index 1e5bfa7..3e51780 100644 --- a/modules/turnero/views/lugar.php +++ b/modules/turnero/views/lugar.php @@ -1254,7 +1254,7 @@ function renderConsentimientos(lista) { lista.forEach(c => { if (c.es_toma_progresiva && c.estado === 'en_progreso') { _tomaTimers[c.id] = { - siguiente_toma_at: c.siguiente_toma_at ? new Date(c.siguiente_toma_at).getTime() : null, + siguiente_toma_at: c.siguiente_toma_at ? new Date(c.siguiente_toma_at.replace(' ', 'T')).getTime() : null, alertado: false, }; } diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 3b3e47e..dd06e52 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -284,7 +284,7 @@ if ($modoTurnero && $embebido && $_soloFirmaPro) { $_mpPrimeraPendiente = null; if (!empty($_mpMap)) { foreach ($_mpMap as $_fid => $_) { - if (empty($datosCliente[$_fid . '_svg'])) { + if (empty($datosCliente[$_fid]) && empty($datosCliente[$_fid . '_svg'])) { $_mpPrimeraPendiente = $_fid; break; } @@ -670,8 +670,8 @@ function esc2(mixed $v): string { // Campos posteriores (ej. desistimiento) solo muestran su propia firma por campo. $fSvg = $isPro ? (empty($_mpMap) && !$_renderedFirmaProfesional - ? ($firmaSharedProfesional ?? $datosCliente[$cid . '_svg'] ?? null) - : ($datosCliente[$cid . '_svg'] ?? null)) + ? ($firmaSharedProfesional ?? $datosCliente[$cid] ?? $datosCliente[$cid . '_svg'] ?? null) + : ($datosCliente[$cid] ?? $datosCliente[$cid . '_svg'] ?? null)) : ($datosCliente[$cid . '_svg'] ?? (!$_firmaGlobalPacienteUsada ? $firmaSharedPaciente : null) ?? null); $fFoto = $datosCliente[$cid . '_foto'] ?? null; $fIcon = $isPro ? 'fa-user-md' : 'fa-signature'; @@ -741,6 +741,7 @@ function esc2(mixed $v): string { $_mpBloqueado = !empty($_mpMap) && $_mpPrimeraPendiente !== null && $cid !== $_mpPrimeraPendiente + && empty($datosCliente[$cid]) && empty($datosCliente[$cid . '_svg']); ?>