From 092dfd30741d4a8dafd73a312fde92f971d13a0c Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Wed, 24 Jun 2026 01:14:23 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20firma=20del=20paciente=20aparece=20en=20?= =?UTF-8?q?su=20posici=C3=B3n=20del=20esquema=20en=20turnero?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El campo tipo=firma se saltaba cuando no había firma existente, dejando el canvas al fondo de la página fuera de lugar. Ahora en modoTurnero pendiente el canvas aparece donde el esquema lo define. El widget del fondo es solo fallback cuando el esquema no tiene campo firma propio. Los campos siguen siendo editables como corresponde. Co-Authored-By: Claude Sonnet 4.6 --- ver_formulario_enviado.php | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/ver_formulario_enviado.php b/ver_formulario_enviado.php index 5c5d458..6f5b54b 100644 --- a/ver_formulario_enviado.php +++ b/ver_formulario_enviado.php @@ -455,6 +455,7 @@ function esc2(mixed $v): string { // Rastrear si ya se renderizó la firma inline (para no duplicarla al pie) $_renderedFirmaProfesional = false; $_renderedFirmaPaciente = false; + $_esquemaTieneFirmaPaciente = false; // el esquema tiene campo tipo=firma foreach ($esquema as $campo): $tipo = $campo['tipo'] ?? ''; @@ -478,8 +479,15 @@ function esc2(mixed $v): string { $fColor = $isPro ? '#198754' : '#1565c0'; $fLabel = htmlspecialchars($campo['label'] ?? ($isPro ? 'Firma profesional' : 'Firma paciente')); - // Campo paciente sin firma: omitir (no hay nada que mostrar) - if (!$fSvg && !$fFoto && !$isPro) continue; + // Campo paciente sin firma: omitir en vista normal. + // En turnero pendiente se muestra el canvas en su posición del esquema. + if (!$fSvg && !$fFoto && !$isPro) { + if ($modoTurnero && $modoEditar) { + $_esquemaTieneFirmaPaciente = true; + } else { + continue; + } + } $yaHayCanvasPro = $isPro && $_renderedFirmaProfesional; if ($isPro) $_renderedFirmaProfesional = true; @@ -496,6 +504,21 @@ function esc2(mixed $v): string {
Foto - <?= $fLabel ?>
+ + +

He leído el documento. Dibuje su firma:

+ +
+ + +
+
@@ -545,9 +568,8 @@ function esc2(mixed $v): string { $cid = $campo['id'] ?? null; if (!$cid) continue; - // ── Modo editar: campos interactivos solo para envíos normales. - // En turnero el documento es de solo lectura; solo la firma es interactiva. - if ($modoEditar && !$modoTurnero): + // ── Modo editar (turnero o envío normal): campos interactivos ── + if ($modoEditar): $prefill = $todos[$cid] ?? ''; $label = esc2($campo['label'] ?? $cid); $req = !empty($campo['required']) ? ' required' : ''; @@ -706,8 +728,8 @@ function esc2(mixed $v): string { - - + +
Firma del paciente / responsable