|
|
return: SETOF record
|
|
|
lang: plpgsql
|
|
|
parameters:
|
|
|
p0:
|
|
|
type: bigint
|
|
|
name: i_rapport_id
|
|
|
comment: Fonction remplacée par activite.cti_prepare_rapport_comp(bigint, bigint) mais laissée pour des raisons de rétro-compatibilité
|
|
|
src: |
|
|
|
DECLARE
|
|
|
sqlcmd text;
|
|
|
|
|
|
|
|
|
temp_cursor refcursor;
|
|
|
_oid integer;
|
|
|
_maxind integer;
|
|
|
|
|
|
row RECORD;
|
|
|
BEGIN
|
|
|
|
|
|
_maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id);
|
|
|
|
|
|
FOR row IN
|
|
|
SELECT * FROM activite.cti_prepare_rapport_indicateurs(i_rapport_id, 'COMP') AS (name text, value text)
|
|
|
UNION
|
|
|
SELECT 'RUBRIQUES_RAPPORT',
|
|
|
|
|
|
|
|
|
base.cti_group_concat(
|
|
|
'ARRAY[' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
'(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' ||
|
|
|
', ' ||
|
|
|
|
|
|
'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' ||
|
|
|
'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' ||
|
|
|
'ELSE 0 END, ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
'(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' ||
|
|
|
', ' ||
|
|
|
|
|
|
'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' ||
|
|
|
'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' ||
|
|
|
'ELSE 0 END , ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
'(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' ||
|
|
|
', ' ||
|
|
|
|
|
|
'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' ||
|
|
|
'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' ||
|
|
|
'ELSE 0 END, ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' ||
|
|
|
|
|
|
'(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' ||
|
|
|
', ' ||
|
|
|
|
|
|
'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' ||
|
|
|
'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' ||
|
|
|
activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' ||
|
|
|
'ELSE 0 END ' ||
|
|
|
']'
|
|
|
)
|
|
|
|
|
|
FROM (SELECT * FROM activite.t_rapports_rubriques
|
|
|
JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid
|
|
|
WHERE rapport_id = i_rapport_id ORDER BY numero_rubrique
|
|
|
) subview
|
|
|
|
|
|
LOOP
|
|
|
|
|
|
|
|
|
RETURN NEXT row;
|
|
|
END LOOP;
|
|
|
RETURN ;
|
|
|
END;
|