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.
 
 
 

1796 lines
99 KiB

return: text
lang: plpgsql
src: |
DECLARE
sqlcmd text;
def_cursor refcursor;
_schemaname text;
result TEXT;
BEGIN
-- Entreprises
DROP TABLE IF EXISTS w_indicateur_condition;
CREATE TEMP TABLE w_indicateur_condition AS
SELECT
'CTI_ENTREPRISE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_ENTREPRISE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Entreprise. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_entreprise_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'ETABLISSEMENT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'D2%' THEN COALESCE('D2#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
]::text[] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
]::text[] AS arbre_texte
FROM rh.v_etablissements_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_entreprises t_source ON v_source.oid LIKE 'D2%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid LIKE 'D2%' AND
v_source.oid <> '-1'
;
-- Etablissement
INSERT INTO w_indicateur_condition
SELECT
'CTI_ETABLISSEMENT#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_ETABLISSEMENT#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Etablissement. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_etablissement_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'ETABLISSEMENT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_etablissements_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_etablissements t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid NOT LIKE 'D2%' AND
v_source.oid <> '-1'
;
-- Service
INSERT INTO w_indicateur_condition
SELECT
'CTI_SERVICE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_SERVICE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Service. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'service_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'SERVICE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_services_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_services t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Groupe de grille
INSERT INTO w_indicateur_condition
SELECT
'CTI_GRILLE_GROUPE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_GRILLE_GROUPE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Grille groupe. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'grille_groupe_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'GRILLE GROUPE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_grilles_groupes_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_grilles_groupes t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Grille
INSERT INTO w_indicateur_condition
SELECT
'CTI_GRILLE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_GRILLE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Grille. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'grille_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'GRILLE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_grilles_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_grilles t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Population
INSERT INTO w_indicateur_condition
SELECT
'CTI_POPULATION#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_POPULATION#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Population. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'population_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'POPULATION='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_population_2 v_source
LEFT JOIN rh.t_classes_sections ON true
AND v_source.oid LIKE 'LS%'
AND t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON true
AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%')
AND t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables AS t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_population t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE true
AND v_source.oid NOT LIKE 'LC%'
AND (false
OR v_source.oid NOT LIKE 'LS%'
OR substr(v_source.oid,5) <> '0')
AND v_source.oid <> '-1'
;
-- Service
INSERT INTO w_indicateur_condition
SELECT
'CTI_POLE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_POLE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Pole. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_pole_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'POLE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_pole_2 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_pole t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Clé budget
INSERT INTO w_indicateur_condition
SELECT
'CTI_BUD#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_BUD#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Clé budgetaire. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_budget_cle_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'BUD='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_budget_cle_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_budget_cle t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Service planning
INSERT INTO w_indicateur_condition
SELECT
'CTI_PLANNINGSERVICESOURCE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_PLANNINGSERVICESOURCE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Service source Planning. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_planning_service_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'PLANNING_SERVICE_SOURCE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_planning_service_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_planning_service t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Qualifications
INSERT INTO w_indicateur_condition
SELECT
'CTI_QUALIFICATION#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_QUALIFICATION#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Qualification. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'qualification_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'QUALIFICATION='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_qualifications_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_qualifications t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Qualifications planning
INSERT INTO w_indicateur_condition
SELECT
'CTI_PLANNINGQUALIFICATIONSOURCE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_PLANNINGQUALIFICATIONSOURCE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Service source Planning. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_planning_qualification_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'PLANNING_SERVICE_SOURCE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_planning_qualification_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_planning_qualification t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- PLANNING - Type d'absence.
INSERT INTO w_indicateur_condition
SELECT
'CTI_PLANNINGTYPEABSENCE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_PLANNINGTYPEABSENCE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Type absence Planning. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_planning_type_absence_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'PLANNING_TYPE_ABSENCE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_planning_type_absence_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_motifs_debut_contrat t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Types de contrat
INSERT INTO w_indicateur_condition
SELECT
'CTI_TYPECONTRAT#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_TYPECONTRAT#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Type contrat. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'type_contrat_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'TYPE_CONTRAT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_types_contrat_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_types_contrat t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Codes emploi
INSERT INTO w_indicateur_condition
SELECT
'CTI_CODEEMPLOI#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_CODEEMPLOI#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Code emploi. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'code_emploi_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'CODE_EMPLOI='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_codes_emploi_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_codes_emploi t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Type temps de travail.
INSERT INTO w_indicateur_condition
SELECT
'CTI_TYPETEMPSW#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_TYPETEMPSW#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Type tps trav.. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'type_temps_travail_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'TYPE_TEMPS_TRAVAIL='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_types_temps_travail_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_types_temps_travail t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Types horaire
INSERT INTO w_indicateur_condition
SELECT
'CTI_TYPEHORAIRE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_TYPEHORAIRE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Type horaire. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'type_horaire_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'TYPE_HORAIRE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_types_horaire_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_types_horaire t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Spécialités
INSERT INTO w_indicateur_condition
SELECT
'CTI_SPECIALITE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_SPECIALITE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Spécialité. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'specialite_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'SPECIALITE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_specialites_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_specialites t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Salarié
INSERT INTO w_indicateur_condition
SELECT
'CTI_SALARIE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_SALARIE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Salarié. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'salarie_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'SALARIE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid)
WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid)
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_salaries_2 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3) AND
t_listes.code <> ''
LEFT JOIN rh.p_salaries t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE 1=1
AND v_source.oid NOT LIKE 'LC%'
AND v_source.oid NOT LIKE 'DT%'
AND (1!=1
OR v_source.oid NOT LIKE 'LS%'
OR substr(v_source.oid, 5) != '0')
AND v_source.oid != '-1'
;
-- Sexe
INSERT INTO w_indicateur_condition
SELECT
'CTI_SEXE#DT1'::text AS code,
'CTI_SEXE#DT1'::text AS condition_code,
'CTI_SEXE#'::text AS category_id,
'Sexe masculin' AS texte,
'Sexe masculin'::text AS texte_court,
'sexe_id'::text AS column_name,
''::text AS rule,
'DT1'::text AS value,
'SEXE=DT1' AS view_select_rule,
ARRAY[
'9' ,
'DT#1'
] AS arbre_code,
ARRAY[
'Valeurs',
'Sexe masculin'
] AS arbre_texte
;
INSERT INTO w_indicateur_condition
SELECT
'CTI_SEXE#DT2'::text AS code,
'CTI_SEXE#DT2'::text AS condition_code,
'CTI_SEXE#'::text AS category_id,
'Sexe féminin' AS texte,
'Sexe féminin'::text AS texte_court,
'sexe_id'::text AS column_name,
''::text AS rule,
'DT2'::text AS value,
'SEXE=DT2' AS view_select_rule,
ARRAY[
'9' ,
'DT#2'
] AS arbre_code,
ARRAY[
'Valeurs',
'Sexe féminin'
] AS arbre_texte
;
-- Ages
INSERT INTO w_indicateur_condition
SELECT
'CTI_AGE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_AGE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Age. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'age_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'AGE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_ages_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN base.t_ages t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Ancienneté
INSERT INTO w_indicateur_condition
SELECT
'CTI_ANCIENNETE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_ANCIENNETE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Ancienneté. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rhp_anciennete_annee_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'ANCIENNETE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_anciennetes_annee_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_anciennetes_annee t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- nationalité
INSERT INTO w_indicateur_condition
SELECT
'CTI_NATIONALITE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_NATIONALITE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Nationalité. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'nationalite_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'NATIONALITE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_nationalites_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_nationalites t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Motif début
INSERT INTO w_indicateur_condition
SELECT
'CTI_MOTIFDEBUTCONTRAT#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_MOTIFDEBUTCONTRAT#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Motif début de contrat. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'motif_debut_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'MOTIF_DEBUT_CONTRAT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_motifs_debut_contrat_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_motifs_debut_contrat t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Motif fin
INSERT INTO w_indicateur_condition
SELECT
'CTI_MOTIFFINCONTRAT#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_MOTIFFINCONTRAT#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Motif fin de contrat. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'motif_fin_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'MOTIF_FIN_CONTRAT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_motifs_fin_contrat_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_motifs_fin_contrat t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Rubriques
INSERT INTO w_indicateur_condition
SELECT
'CTI_RUBRIQUE#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_RUBRIQUE#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Rubrique. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'rubrique_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'RUBRIQUE='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
v_source.texte
] AS arbre_texte
FROM rh.v_rubriques_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_rubriques t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- motifs arret
INSERT INTO w_indicateur_condition
SELECT
'CTI_MOTIF_ARRET#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_MOTIF_ARRET#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Motif. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'motif_arret_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'MOTIF_ARRET='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
v_source.texte
] AS arbre_texte
FROM rh.v_motifs_arret_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_motifs_arret t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- Statuts
INSERT INTO w_indicateur_condition
SELECT
'CTI_STATUT#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_STATUT#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Statut. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'statut_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'STATUT='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_statuts_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_statuts t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
-- CSP
INSERT INTO w_indicateur_condition
SELECT
'CTI_CSP#' || v_source.oid::text AS code,
v_source.code as condition_code,
'CTI_CSP#' ||
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN 'DT#'
ELSE '###' END AS category_id,
COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'CSP. ' || v_source.texte::text) AS texte,
v_source.texte AS texte_court,
'categorie_socio_professionnelle_id'::text AS column_name,
''::text AS rule,
v_source.oid::text AS value,
'CSP='||v_source.oid AS view_select_rule,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2)
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI'
ELSE '9' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code
WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END
WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid)
ELSE '###'||v_source.oid END
] AS arbre_code,
ARRAY[
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte
WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI'
WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement'
ELSE 'Valeurs' END,
CASE
WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte
ELSE v_source.texte END
] AS arbre_texte
FROM rh.v_categories_socio_professionnelle_1 v_source
LEFT JOIN rh.t_classes_sections ON v_source.oid LIKE 'LS%' AND
t_classes_sections.oid::text = substr(v_source.oid,5)
LEFT JOIN rh.t_classes ON t_classes.oid = t_classes_sections.classe_id
LEFT JOIN rh.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid
LEFT JOIN rh.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND
t_listes.oid::text = substr(v_source.oid,3)
LEFT JOIN rh.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid
LEFT JOIN rh.t_categories_socio_professionnelle t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3)
WHERE v_source.oid NOT LIKE 'LC%' AND
(v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND
v_source.oid <> '-1'
;
INSERT INTO rh.t_indicateur_condition(code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte, condition_code, category_id)
SELECT code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte, condition_code, category_id
FROM w_indicateur_condition
WHERE code NOT IN (SELECT code FROM rh.t_indicateur_condition WHERE code IS NOT NULL)
;
UPDATE rh.t_indicateur_condition SET
texte = w_indicateur_condition.texte,
texte_court = w_indicateur_condition.texte_court,
column_name = w_indicateur_condition.column_name,
rule = w_indicateur_condition.rule,
value = w_indicateur_condition.value,
view_select_rule = w_indicateur_condition.view_select_rule,
arbre_code = w_indicateur_condition.arbre_code,
arbre_texte = w_indicateur_condition.arbre_texte,
condition_code = w_indicateur_condition.condition_code,
category_id = w_indicateur_condition.category_id
FROM w_indicateur_condition
WHERE w_indicateur_condition.code = t_indicateur_condition.code AND
(
t_indicateur_condition.texte IS DISTINCT FROM w_indicateur_condition.texte OR
t_indicateur_condition.texte_court IS DISTINCT FROM w_indicateur_condition.texte_court OR
t_indicateur_condition.column_name IS DISTINCT FROM w_indicateur_condition.column_name OR
t_indicateur_condition.rule IS DISTINCT FROM w_indicateur_condition.rule OR
t_indicateur_condition.value IS DISTINCT FROM w_indicateur_condition.value OR
t_indicateur_condition.view_select_rule IS DISTINCT FROM w_indicateur_condition.view_select_rule OR
t_indicateur_condition.arbre_code IS DISTINCT FROM w_indicateur_condition.arbre_code OR
t_indicateur_condition.arbre_texte IS DISTINCT FROM w_indicateur_condition.arbre_texte OR
t_indicateur_condition.condition_code IS DISTINCT FROM w_indicateur_condition.condition_code OR
t_indicateur_condition.category_id IS DISTINCT FROM w_indicateur_condition.category_id
)
;
WITH toto as (
SELECT
oid,
split_part(code, '#', 1)
||'#'
||arbre_code[2]
as new_external_code
FROM rh.t_indicateur_condition
)
UPDATE rh.t_indicateur_condition SET
external_code = new_external_code
FROM toto
WHERE 1=1
and t_indicateur_condition.oid = toto.oid
and external_code IS DISTINCT FROM new_external_code
;
WITH external_code2 as (
SELECT
oid,
split_part(code, '#', 1)
||'#'
||arbre_code[2]
as new_external_code2
FROM rh.t_indicateur_condition
)
UPDATE rh.t_indicateur_condition SET
external_code2 = new_external_code2
FROM external_code2
WHERE 1=1
and t_indicateur_condition.oid = external_code2.oid
and external_code2 IS DISTINCT FROM new_external_code2
;
DELETE FROM rh.t_indicateur_condition
WHERE code LIKE 'CTI%' AND
code NOT IN (SELECT code FROM w_indicateur_condition)
;
UPDATE rh.t_indicateur_condition SET
column_texte = CASE column_name
WHEN 'rhp_entreprise_id' THEN 'Entreprise'
WHEN 'rhp_etablissement_id' THEN 'Etablissement'
ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END
WHERE
column_texte IS DISTINCT FROM
CASE column_name
WHEN 'rhp_entreprise_id' THEN 'Entreprise'
WHEN 'rhp_etablissement_id' THEN 'Etablissement'
ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END
;
DROP TABLE IF EXISTS w_indicateur_condition_table;
CREATE TEMP TABLE w_indicateur_condition_table AS
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
''::text As table_name,
t_indicateur_condition.column_name || ' ' ||
CASE
WHEN t_indicateur_condition.value LIKE 'LS%' THEN '= ANY(ARRAY'
WHEN t_indicateur_condition.value LIKE 'LI%' THEN '= ANY(ARRAY'
WHEN t_indicateur_condition.value LIKE 'SL%' THEN '<> ALL(ARRAY'
WHEN t_indicateur_condition.value LIKE 'DT%' THEN '='
ELSE '='
END || ' ' ||
CASE
WHEN t_indicateur_condition.value LIKE 'LS%' THEN
'(SELECT to_id FROM rh.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')'
WHEN t_indicateur_condition.value LIKE 'LI%' THEN
'(SELECT to_id FROM rh.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')'
WHEN t_indicateur_condition.value LIKE 'SL%' THEN
'(SELECT to_id FROM rh.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')'
WHEN t_indicateur_condition.value LIKE 'DT%' THEN
substr(value,3)
ELSE substr(value,3)
END || ' ' ||
CASE
WHEN t_indicateur_condition.value LIKE 'LS%' THEN ')'
WHEN t_indicateur_condition.value LIKE 'LI%' THEN ')'
WHEN t_indicateur_condition.value LIKE 'SL%' THEN ')'
ELSE ''
END AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%'
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'v_arrets_travail_mois_1'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name IN ('rubrique_id')
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'v_contrats_mois_1'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name IN ('rubrique_id')
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'v_contrats_mois_1'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name IN ('rhp_planning_qualification_id', 'rhp_planning_service_id')
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'v_arrets_travail_mois_1'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name IN ('rhp_planning_qualification_id', 'rhp_planning_service_id')
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'v_historique_paie_1'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name IN ('rhp_planning_qualification_id', 'rhp_planning_service_id')
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'CALENDRIER'::text As table_name,
''::text AS check_where
FROM rh.t_indicateur_condition
;
INSERT INTO w_indicateur_condition_table
SELECT t_indicateur_condition.oid AS indicateur_condition_id,
'BUDGET_RH'::text As table_name,
'1<>1' AS check_where
FROM rh.t_indicateur_condition
WHERE t_indicateur_condition.code LIKE 'CTI%' AND
column_name NOT IN ('rhp_budget_cle_id')
;
ANALYSE w_indicateur_condition_table
;
INSERT INTO rh.t_indicateur_condition_table(indicateur_condition_id, table_name, check_where)
SELECT w_indicateur_condition_table.indicateur_condition_id, w_indicateur_condition_table.table_name, w_indicateur_condition_table.check_where
FROM w_indicateur_condition_table
LEFT JOIN rh.t_indicateur_condition_table ON
w_indicateur_condition_table.indicateur_condition_id = t_indicateur_condition_table.indicateur_condition_id AND
w_indicateur_condition_table.table_name = t_indicateur_condition_table.table_name
WHERE t_indicateur_condition_table.indicateur_condition_id IS NULL
;
UPDATE rh.t_indicateur_condition_table SET
check_where = w_indicateur_condition_table.check_where
FROM w_indicateur_condition_table
WHERE t_indicateur_condition_table.indicateur_condition_id = w_indicateur_condition_table.indicateur_condition_id AND
t_indicateur_condition_table.table_name = w_indicateur_condition_table.table_name AND
(
t_indicateur_condition_table.check_where IS DISTINCT FROM w_indicateur_condition_table.check_where
)
;
DELETE FROM rh.t_indicateur_condition_table
USING
(
SELECT t_indicateur_condition_table.indicateur_condition_id, t_indicateur_condition_table.table_name, t_indicateur_condition_table.check_where
FROM rh.t_indicateur_condition_table
LEFT JOIN w_indicateur_condition_table ON
w_indicateur_condition_table.indicateur_condition_id = t_indicateur_condition_table.indicateur_condition_id AND
w_indicateur_condition_table.table_name = t_indicateur_condition_table.table_name
WHERE w_indicateur_condition_table.indicateur_condition_id IS NULL
) subview
WHERE t_indicateur_condition_table.indicateur_condition_id = subview.indicateur_condition_id AND
t_indicateur_condition_table.table_name = subview.table_name
;
RETURN 'OK';
END;