diff --git a/modules/turnero/api/get_consentimientos.php b/modules/turnero/api/get_consentimientos.php index 97781fe..f8ee086 100644 --- a/modules/turnero/api/get_consentimientos.php +++ b/modules/turnero/api/get_consentimientos.php @@ -87,9 +87,12 @@ foreach ($consentimientos as &$c) { if ($esTomaProg) { // Mapear cada firma_profesional a los valores de examen de su sección condicional + // (y a su etiqueta + campo hora, para poder mostrar el detalle por toma) $firmaCondMap = []; $curCondCampo = null; $curCondVals = []; + $curLabel = null; + $curHoraId = null; foreach ($campos as $campo) { $ft = $campo['tipo'] ?? ''; if ($ft === 'separador') { @@ -98,8 +101,15 @@ foreach ($consentimientos as &$c) { $curCondVals = $cond ? ($cond['valores'] ?? ($cond['valor'] ? [$cond['valor']] : [])) : []; + $curLabel = $campo['label'] ?? ''; + $curHoraId = null; + } elseif ($ft === 'hora') { + $curHoraId = $campo['id'] ?? null; } elseif ($ft === 'firma_profesional' && !empty($campo['id'])) { - $firmaCondMap[$campo['id']] = ['campo' => $curCondCampo, 'valores' => $curCondVals]; + $firmaCondMap[$campo['id']] = [ + 'campo' => $curCondCampo, 'valores' => $curCondVals, + 'label' => $curLabel, 'hora_id' => $curHoraId, + ]; } } @@ -133,9 +143,19 @@ foreach ($consentimientos as &$c) { } $tomasTotal = count($relevantIds); + $tomasDetalle = []; foreach ($relevantIds as $fid) { - if ((!empty($dr[$fid]) && strlen($dr[$fid]) > 10) - || (!empty($dr[$fid.'_svg']) && strlen($dr[$fid.'_svg']) > 10)) $tomasFirm++; + $firmado = (!empty($dr[$fid]) && strlen($dr[$fid]) > 10) + || (!empty($dr[$fid.'_svg']) && strlen($dr[$fid.'_svg']) > 10); + if ($firmado) $tomasFirm++; + $info = $firmaCondMap[$fid] ?? []; + $horaId = $info['hora_id'] ?? null; + $tomasDetalle[] = [ + 'label' => $info['label'] ?? '', + 'hora' => $horaId ? ($dr[$horaId] ?? null) : null, + 'firmado' => $firmado, + 'firmante' => $firmado ? ($dr[$fid . '_pro_nombre'] ?? $dr['_pro_nombre'] ?? null) : null, + ]; } } @@ -147,6 +167,7 @@ foreach ($consentimientos as &$c) { $c['es_toma_progresiva'] = $esTomaProg; $c['tomas_total'] = $tomasTotal; $c['tomas_firmadas'] = $tomasFirm; + $c['tomas_detalle'] = $tomasDetalle ?? []; $c['cierre_anticipado'] = $dr['_cierre_anticipado'] ?? null; // Exponer campos firma_profesional (ids) para el frontend $c['campos_firma_pro'] = array_column($camposFirmaPro, 'id'); diff --git a/modules/turnero/views/historial.php b/modules/turnero/views/historial.php index 0e1c51a..eb47695 100644 --- a/modules/turnero/views/historial.php +++ b/modules/turnero/views/historial.php @@ -631,7 +631,7 @@ async function cargarDocumentosTurno(turnoId, container) { ? ` ${c.tomas_firmadas||0}/${c.tomas_total||0} tomas` : ''; if (est === 'firmado' && c.token) { - const url = BASE_URL_ROOT + 'ver_formulario_enviado.php?token=' + encodeURIComponent(c.token); + const url = BASE_URL_ROOT + 'ver_formulario_enviado.php?token=' + encodeURIComponent(c.token) + '&embed=1'; return ` ${nombre}${tomas} `; @@ -640,7 +640,19 @@ async function cargarDocumentosTurno(turnoId, container) { const ico = est === 'enviado' ? 'fa-paper-plane' : (est === 'visto' ? 'fa-eye' : 'fa-clock'); return `${nombre}${tomas}`; }).join(''); - container.innerHTML = '
| ${esc(c.formulario_nombre||'')} | Hora | Atendió |
|---|---|---|
| ${esc((t.label||'').replace(/^Toma\s*·\s*/,''))} | +${esc(t.hora || '—')} | +${t.firmado ? esc(t.firmante || '—') : ' pendiente'} | +