La primer consulta SQL de la función get_formularios($habilitacion) de la clase co_encuestas.php no me trae ningún resultado y los campos elemento y encuesta son usados para generar el campo array() detalle.
Como la consulta no trae datos el guaraní genera el array() detalle pero no entra en el bucle while para llenarlo y entonces queda vacío.
protected function get_formularios($habilitacion)
{
$sql = "SELECT f.formulario,
fi.item as elemento ,
e.kolla_id_encuesta as encuesta
FROM gde_formularios as f,
gde_formulario_items as fi,
gde_habilitaciones as h,
gde_items as i,
gde_encuestas as e,
gde_grupos as g,
gde_subtipos_x_tipo as s
WHERE
h.habilitacion = $habilitacion AND
f.formulario = fi.formulario
AND i.item = fi.item
AND h.habilitacion = f.habilitacion
AND g.habilitacion = i.habilitacion
AND g.encuesta = i.encuesta
AND e.encuesta = g.encuesta
AND s.tipo = h.tipo
AND s.subtipo = e.subtipo
AND i.estado = 'A' -- Activo
AND f.generado_en_kolla = 'N'
ORDER BY
f.formulario asc,
s.orden, -- orden de la encuesta
i.titulo
";
$encuestas_form = guarani_db::consultar($sql);
// Formularios.
$sql = "SELECT gde_formularios.formulario as formulario,
gde_formularios.titulo as nombre,
gde_formularios.estado,
gde_formularios.formulario as concepto --el concepto tiene el mismo id que el formulario
FROM gde_formularios
WHERE gde_formularios.habilitacion = $habilitacion
AND gde_formularios.generado_en_kolla = 'N'
ORDER BY gde_formularios.formulario asc
";
$formularios = guarani_db::consultar($sql);
$cant_encuestas = count($encuestas_form);
$cant_forms = count($formularios);
$it = 0;
$form_actual = null;
for ($f = 0; $f < $cant_forms; $f++) {
$form_actual = & $formularios[$f];
$form_actual['detalle'] = array();
while ($it < $cant_encuestas) { //obs: los datos estan ordenados
$item_actual = $encuestas_form[$it];
if ($item_actual['formulario'] == $form_actual['formulario']) {
$form_actual['detalle'][] = array(
'encuesta' => $item_actual['encuesta'],
'elemento' => $item_actual['elemento']
);
$it++; //avanzo de item
} else break;
}
}
toba::logger()->info("Formularios procesados: $f /$cant_forms - Items procesados $it/$cant_encuestas");
return $formularios;
}
Paso log. En la línea 148 está esa consulta.
Graciass!!!