return: text
|
|
lang: plpgsql
|
|
src: |
|
|
DECLARE
|
|
result TEXT;
|
|
BEGIN
|
|
|
|
|
|
-- Recopie listes de FINESS de activité vers base
|
|
IF NOT EXISTS (
|
|
SELECT t_listes.code
|
|
FROM base.t_listes
|
|
) AND
|
|
EXISTS
|
|
(SELECT t_listes.code
|
|
FROM activite.t_listes
|
|
JOIN activite.t_listes_tables ON t_listes.table_id = t_listes_tables.oid
|
|
WHERE t_listes_tables.code = 'FINESS'
|
|
)
|
|
THEN
|
|
DROP TABLE IF EXISTS w_listes_finess;
|
|
CREATE TEMP TABLE w_listes_finess AS
|
|
SELECT t_listes.*
|
|
FROM activite.t_listes
|
|
JOIN activite.t_listes_tables ON t_listes.table_id = t_listes_tables.oid
|
|
WHERE t_listes_tables.code = 'FINESS' AND
|
|
(SELECT count(*) FROM base.t_listes) = 0
|
|
;
|
|
|
|
INSERT INTO base.t_listes(
|
|
chapitre,
|
|
code,
|
|
contenu_by_code,
|
|
contenu_non_replicable_ailleurs,
|
|
est_partagee_modification,
|
|
exclude_code,
|
|
include_code,
|
|
is_cti,
|
|
oid,
|
|
show_omit,
|
|
table_id,
|
|
texte,
|
|
utilisateur_createur)
|
|
SELECT
|
|
w_listes_finess.chapitre,
|
|
w_listes_finess.code,
|
|
w_listes_finess.contenu_by_code,
|
|
w_listes_finess.contenu_non_replicable_ailleurs,
|
|
w_listes_finess.est_partagee_modification,
|
|
w_listes_finess.exclude_code,
|
|
w_listes_finess.include_code,
|
|
w_listes_finess.is_cti,
|
|
w_listes_finess.oid,
|
|
w_listes_finess.show_omit,
|
|
t_listes_tables.oid AS table_id,
|
|
w_listes_finess.texte,
|
|
w_listes_finess.utilisateur_createur
|
|
FROM w_listes_finess
|
|
JOIN base.t_listes_tables ON t_listes_tables.code = 'FINESS'
|
|
;
|
|
|
|
INSERT INTO base.t_listes_contenu(
|
|
liste_id,
|
|
to_id)
|
|
SELECT liste_id,
|
|
to_id
|
|
FROM activite.t_listes_contenu
|
|
WHERE liste_id IN (SELECT oid FROM w_listes_finess)
|
|
;
|
|
|
|
END IF;
|
|
|
|
-- Recopie classes de FINESS de activité vers base
|
|
IF NOT EXISTS (
|
|
SELECT t_classes.code
|
|
FROM base.t_classes
|
|
) AND
|
|
EXISTS
|
|
(SELECT t_classes.code
|
|
FROM activite.t_classes
|
|
JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid
|
|
WHERE t_listes_tables.code = 'FINESS'
|
|
)
|
|
THEN
|
|
DROP TABLE IF EXISTS w_classes_finess;
|
|
CREATE TEMP TABLE w_classes_finess AS
|
|
SELECT t_classes.*
|
|
FROM activite.t_classes
|
|
JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid
|
|
WHERE t_listes_tables.code = 'FINESS' AND
|
|
(SELECT count(*) FROM base.t_classes) = 0
|
|
;
|
|
|
|
|
|
INSERT INTO base.t_classes(
|
|
oid,
|
|
sequence,
|
|
code,
|
|
contenu_by_code,
|
|
contenu_non_replicable_ailleurs,
|
|
is_cti,
|
|
table_id,
|
|
texte)
|
|
SELECT
|
|
w_classes_finess.oid,
|
|
w_classes_finess.sequence,
|
|
w_classes_finess.code,
|
|
w_classes_finess.contenu_by_code,
|
|
w_classes_finess.contenu_non_replicable_ailleurs,
|
|
w_classes_finess.is_cti,
|
|
t_listes_tables.oid AS table_id,
|
|
w_classes_finess.texte
|
|
FROM w_classes_finess
|
|
JOIN base.t_listes_tables ON t_listes_tables.code = 'FINESS'
|
|
;
|
|
|
|
INSERT INTO base.t_classes_sections(
|
|
oid,
|
|
classe_id,
|
|
code,
|
|
condition,
|
|
exclude_code,
|
|
include_code,
|
|
texte)
|
|
SELECT oid,
|
|
classe_id,
|
|
code,
|
|
condition,
|
|
exclude_code,
|
|
include_code,
|
|
texte
|
|
FROM activite.t_classes_sections
|
|
WHERE classe_id IN (SELECT oid FROM w_classes_finess)
|
|
;
|
|
|
|
INSERT INTO base.t_classes_sections_elements(section_id, to_id)
|
|
SELECT t_classes_sections_elements.section_id, t_classes_sections_elements.to_id
|
|
FROM activite.t_classes_sections_elements
|
|
JOIN activite.t_classes_sections ON section_id = t_classes_sections.oid
|
|
WHERE t_classes_sections.classe_id IN (SELECT oid FROM w_classes_finess)
|
|
;
|
|
|
|
PERFORM base.cti_update_classes('base', 't_finess', 'FINESS','');
|
|
END IF;
|
|
|
|
EXECUTE 'UPDATE activite.t_finess_c SET
|
|
code = t_finess.code,
|
|
texte = t_finess.texte,
|
|
texte_court = t_finess.texte_court,
|
|
type_etablissement = t_finess.type_etablissement,
|
|
secondaire = t_finess.secondaire,
|
|
section_id = t_finess.section_id,
|
|
section_code = t_finess.section_code,
|
|
section_texte = t_finess.section_texte
|
|
FROM base.t_finess
|
|
WHERE t_finess.oid = t_finess_c.oid AND
|
|
(
|
|
t_finess_c.code IS DISTINCT FROM t_finess.code OR
|
|
t_finess_c.texte IS DISTINCT FROM t_finess.texte OR
|
|
t_finess_c.texte_court IS DISTINCT FROM t_finess.texte_court OR
|
|
t_finess_c.type_etablissement IS DISTINCT FROM t_finess.type_etablissement OR
|
|
t_finess_c.secondaire IS DISTINCT FROM t_finess.secondaire OR
|
|
t_finess_c.section_id IS DISTINCT FROM t_finess.section_id OR
|
|
t_finess_c.section_code IS DISTINCT FROM t_finess.section_code OR
|
|
t_finess_c.section_texte IS DISTINCT FROM t_finess.section_texte
|
|
)';
|
|
EXECUTE 'INSERT INTO activite.t_finess_c(oid, code, texte, texte_court, type_etablissement, section_id, section_code, section_texte)
|
|
SELECT 0, ''000000000'', ''Non renseigné'', ''Non renseigné'', ''0'', NULL, NULL, NULL
|
|
WHERE 0 != ALL(ARRAY(SELECT oid FROM activite.t_finess_c)::bigint[])';
|
|
EXECUTE 'INSERT INTO activite.t_finess_c(oid, code, texte, texte_court, type_etablissement, secondaire, section_id, section_code, section_texte)
|
|
SELECT oid, code, texte, texte_court, type_etablissement, secondaire, section_id, section_code, section_texte
|
|
FROM base.t_finess
|
|
WHERE t_finess.oid NOT IN (SELECT oid FROM activite.t_finess_c)
|
|
ORDER BY t_finess.oid;';
|
|
|
|
RETURN 'OK';
|
|
END;
|