You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

78 lines
7.4 KiB

return: SETOF record
lang: plpgsql
parameters:
p0:
type: bigint
name: i_rapport_id
src: |
DECLARE
sqlcmd text;
temp_cursor refcursor;
_oid integer;
_maxind integer;
row RECORD;
BEGIN
-- Selection des rubriques et ajout des conditions
PERFORM rh.cti_prepare_rapport_init(i_rapport_id)
;
FOR row IN
SELECT * FROM rh.cti_prepare_rapport_indicateurs(i_rapport_id, 'v_contrats_mois_1', 'COMP') AS (name text, value text)
UNION
SELECT * FROM rh.cti_prepare_rapport_indicateurs(i_rapport_id, 'v_historique_paie_1', 'COMP') AS (name text, value text)
UNION
SELECT * FROM rh.cti_prepare_rapport_indicateurs(i_rapport_id, 'v_arrets_travail_mois_1', 'COMP') AS (name text, value text)
UNION
SELECT * FROM rh.cti_prepare_rapport_indicateurs(i_rapport_id, 'PLANNING_MOUVEMENT', 'COMP') AS (name text, value text)
UNION
SELECT 'RUBRIQUES_RAPPORT',
base.cti_group_concat(
'ARRAY[' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ', ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ', ' ||
'(' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' - ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ') ' ||
', ' ||
'CASE WHEN ' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' > 0 AND ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || '> 0 THEN ' ||
'base.cti_division((' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' - ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || '), ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ') * 100 ' ||
'ELSE 0 END, ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ', ' ||
'(' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' - ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ') ' ||
', ' ||
'CASE WHEN ' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' > 0 AND ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || '> 0 THEN ' ||
'base.cti_division((' || rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ' - ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || '), ' ||
rh.cti_prepare_rapport_calc_indicator(column_name, table_name, 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, indicateur_associe_8_id, indicateur_associe_9_id, indicateur_associe_10_id) || ') * 100 ' ||
'ELSE 0 END ' ||
']'
)
FROM (SELECT * FROM w_VP_rapports_rubriques t_rapports_rubriques
JOIN w_VP_indicateurs 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;