fix: tomas_total respeta _tomas_config al calcular progreso del badge

El badge 1/9 ignoraba la configuración guardada e incluía todas las tomas
sin condición. Ahora filtra relevantIds por los firma-ids en _tomas_config,
igual que lo hace guardar_toma.php y el render PHP del formulario.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-17 10:28:15 -05:00
co-authored by Claude Sonnet 4.6
parent f5de2c90ca
commit 82c76393e5
@@ -116,6 +116,13 @@ foreach ($consentimientos as &$c) {
}
}
// Si hay config de tomas guardada, restringir al subconjunto seleccionado
$tomasConfig = is_array($dr['_tomas_config'] ?? null) ? $dr['_tomas_config'] : null;
if ($tomasConfig !== null) {
$allowedFids = array_merge(...array_values($tomasConfig));
$relevantIds = array_values(array_filter($relevantIds, fn($id) => in_array($id, $allowedFids, true)));
}
$tomasTotal = count($relevantIds);
foreach ($relevantIds as $fid) {
if ((!empty($dr[$fid]) && strlen($dr[$fid]) > 10)
@@ -341,6 +348,11 @@ if ($incluirSolicitud) {
if (!empty(array_intersect($info2['valores'], $ca2))) $relevantIds2[] = $fid2;
}
}
$cfg2 = is_array($dr2['_tomas_config'] ?? null) ? $dr2['_tomas_config'] : null;
if ($cfg2 !== null) {
$allowed2 = array_merge(...array_values($cfg2));
$relevantIds2 = array_values(array_filter($relevantIds2, fn($id) => in_array($id, $allowed2, true)));
}
$tomasTotal2 = count($relevantIds2);
foreach ($relevantIds2 as $fid2) {
if (!empty($dr2[$fid2]) && strlen($dr2[$fid2]) > 10) $tomasFirm++;