From 868263fe6fe76411d2de34fe57c713e21cd6e075 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 22 Jul 2026 21:57:34 -0500 Subject: [PATCH] fix: no usar firma_svg global como fallback cuando hay datos por-campo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Formularios con 2 campos firma (consentimiento + disentimiento) mostraban la firma del campo 2 también en el campo 1 porque firma_svg se usaba como fallback del primer campo. Ahora si datos_respuestas ya tiene algún _svg, se confía solo en los datos por-campo y se ignora el fallback global. Co-Authored-By: Claude Sonnet 4.6 --- ver_formulario_enviado.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index f8e3312..d3353ea 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -888,8 +888,11 @@ function _addExamWizardHtml(string $cid): string { // Firma global del profesional (un solo valor para todos los campos firma_profesional) $firmaSharedProfesional = $envio['firma_profesional_svg'] ?? null; - // Firma global del paciente: fallback para cuando no hay datos_cliente por campo + // Firma global del paciente: fallback solo para registros sin datos por-campo (_svg). $firmaSharedPaciente = $envio['firma_svg'] ?? null; + // Si datos_respuestas ya tiene algún campo _svg, no usar firma_svg global como fallback + // (evita mostrar la firma del disentimiento en el campo de consentimiento y viceversa). + $_hayDatosPerCampoSvg = !empty(array_filter(array_keys($datosCliente ?? []), fn($k) => str_ends_with($k, '_svg'))); // Rastrear si ya se renderizó la firma inline (para no duplicarla al pie) $_renderedFirmaProfesional = false; @@ -964,7 +967,7 @@ function _addExamWizardHtml(string $cid): string { ? (empty($_mpMap) && !$_renderedFirmaProfesional ? ($firmaSharedProfesional ?? $datosCliente[$cid] ?? $datosCliente[$cid . '_svg'] ?? null) : ($datosCliente[$cid] ?? $datosCliente[$cid . '_svg'] ?? null)) - : ($datosCliente[$cid . '_svg'] ?? (!$_firmaGlobalPacienteUsada ? $firmaSharedPaciente : null) ?? null); + : ($datosCliente[$cid . '_svg'] ?? (!$_firmaGlobalPacienteUsada && !$_hayDatosPerCampoSvg ? $firmaSharedPaciente : null) ?? null); $fFoto = $datosCliente[$cid . '_foto'] ?? null; $fIcon = $isPro ? 'fa-user-md' : 'fa-signature'; $fColor = $isPro ? '#198754' : '#1565c0';