|
|
return: text
|
|
|
lang: plpgsql
|
|
|
src: |
|
|
|
DECLARE
|
|
|
result TEXT;
|
|
|
BEGIN
|
|
|
DELETE FROM activite.t_actes_c
|
|
|
WHERE oid NOT IN (SELECT oid FROM base.t_actes);
|
|
|
|
|
|
UPDATE activite.t_actes_c SET
|
|
|
code = t_actes.code,
|
|
|
texte = t_actes.texte,
|
|
|
texte_court = t_actes.texte_court,
|
|
|
nomenclature = t_actes.nomenclature,
|
|
|
classant = t_actes.classant,
|
|
|
ccam_regroupement_id_1 = t_actes.ccam_regroupement_id_1,
|
|
|
ccam_regroupement_code_1 = t_ccam_regroupements_1.code,
|
|
|
ccam_regroupement_texte_1 = t_ccam_regroupements_1.texte,
|
|
|
ccam_regroupement_id_4 = t_actes.ccam_regroupement_id_4,
|
|
|
ccam_regroupement_code_4 = t_ccam_regroupements_4.code,
|
|
|
ccam_regroupement_texte_4 = t_ccam_regroupements_4.code,
|
|
|
chapitre_1_id = t_actes.chapitre_1_id,
|
|
|
chapitre_1_code = t_actes.chapitre_1_code,
|
|
|
chapitre_1_texte = t_actes.chapitre_1_texte,
|
|
|
chapitre_2_id = t_actes.chapitre_2_id,
|
|
|
chapitre_2_code = t_actes.chapitre_2_code,
|
|
|
chapitre_2_texte = t_actes.chapitre_2_texte,
|
|
|
chapitre_3_id = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END,
|
|
|
chapitre_3_code = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END,
|
|
|
chapitre_3_texte = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END,
|
|
|
chapitre_4_id = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END
|
|
|
ELSE t_actes.chapitre_4_id END,
|
|
|
chapitre_4_code = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END
|
|
|
ELSE t_actes.chapitre_4_code END,
|
|
|
chapitre_4_texte = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END
|
|
|
ELSE t_actes.chapitre_4_texte END,
|
|
|
type_id = t_actes.type_id,
|
|
|
type_code = t_actes.type_code,
|
|
|
type_texte = t_actes.type_texte,
|
|
|
topographie_1_id = t_actes.topographie_1_id,
|
|
|
topographie_1_code = t_actes.topographie_1_code,
|
|
|
topographie_1_texte = t_actes.topographie_1_texte,
|
|
|
topographie_2_id = t_actes.topographie_2_id,
|
|
|
topographie_2_code = t_actes.topographie_2_code,
|
|
|
topographie_2_texte = t_actes.topographie_2_texte,
|
|
|
action_id = t_actes.action_id,
|
|
|
action_code = t_actes.action_code,
|
|
|
action_texte = t_actes.action_texte,
|
|
|
technique_id = t_actes.technique_id,
|
|
|
technique_code = t_actes.technique_code,
|
|
|
technique_texte = t_actes.technique_texte
|
|
|
FROM base.t_actes
|
|
|
JOIN base.t_ccam_regroupements t_ccam_regroupements_1 ON t_actes.ccam_regroupement_id_1 = t_ccam_regroupements_1.oid
|
|
|
JOIN base.t_ccam_regroupements t_ccam_regroupements_4 ON t_actes.ccam_regroupement_id_4 = t_ccam_regroupements_4.oid
|
|
|
WHERE t_actes_c.oid = t_actes.oid AND
|
|
|
(
|
|
|
t_actes_c.code IS DISTINCT FROM t_actes.code OR
|
|
|
t_actes_c.texte IS DISTINCT FROM t_actes.texte OR
|
|
|
t_actes_c.texte_court IS DISTINCT FROM t_actes.texte_court OR
|
|
|
t_actes_c.nomenclature IS DISTINCT FROM t_actes.nomenclature OR
|
|
|
t_actes_c.classant IS DISTINCT FROM t_actes.classant OR
|
|
|
t_actes_c.ccam_regroupement_id_1 IS DISTINCT FROM t_actes.ccam_regroupement_id_1 OR
|
|
|
t_actes_c.ccam_regroupement_code_1 IS DISTINCT FROM t_ccam_regroupements_1.code OR
|
|
|
t_actes_c.ccam_regroupement_texte_1 IS DISTINCT FROM t_ccam_regroupements_1.texte OR
|
|
|
t_actes_c.ccam_regroupement_id_4 IS DISTINCT FROM t_actes.ccam_regroupement_id_4 OR
|
|
|
t_actes_c.ccam_regroupement_code_4 IS DISTINCT FROM t_ccam_regroupements_4.code OR
|
|
|
t_actes_c.ccam_regroupement_texte_4 IS DISTINCT FROM t_ccam_regroupements_4.code OR
|
|
|
t_actes_c.chapitre_1_id IS DISTINCT FROM t_actes.chapitre_1_id OR
|
|
|
t_actes_c.chapitre_1_code IS DISTINCT FROM t_actes.chapitre_1_code OR
|
|
|
t_actes_c.chapitre_1_texte IS DISTINCT FROM t_actes.chapitre_1_texte OR
|
|
|
t_actes_c.chapitre_2_id IS DISTINCT FROM t_actes.chapitre_2_id OR
|
|
|
t_actes_c.chapitre_2_code IS DISTINCT FROM t_actes.chapitre_2_code OR
|
|
|
t_actes_c.chapitre_2_texte IS DISTINCT FROM t_actes.chapitre_2_texte OR
|
|
|
t_actes_c.chapitre_3_id IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END OR
|
|
|
t_actes_c.chapitre_3_code IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END OR
|
|
|
t_actes_c.chapitre_3_texte IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END OR
|
|
|
t_actes_c.chapitre_4_id IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END
|
|
|
ELSE t_actes.chapitre_4_id END OR
|
|
|
t_actes_c.chapitre_4_code IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END
|
|
|
ELSE t_actes.chapitre_4_code END OR
|
|
|
t_actes_c.chapitre_4_texte IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END
|
|
|
ELSE t_actes.chapitre_4_texte END OR
|
|
|
t_actes_c.type_id IS DISTINCT FROM t_actes.type_id OR
|
|
|
t_actes_c.type_code IS DISTINCT FROM t_actes.type_code OR
|
|
|
t_actes_c.type_texte IS DISTINCT FROM t_actes.type_texte OR
|
|
|
t_actes_c.topographie_1_id IS DISTINCT FROM t_actes.topographie_1_id OR
|
|
|
t_actes_c.topographie_1_code IS DISTINCT FROM t_actes.topographie_1_code OR
|
|
|
t_actes_c.topographie_1_texte IS DISTINCT FROM t_actes.topographie_1_texte OR
|
|
|
t_actes_c.topographie_2_id IS DISTINCT FROM t_actes.topographie_2_id OR
|
|
|
t_actes_c.topographie_2_code IS DISTINCT FROM t_actes.topographie_2_code OR
|
|
|
t_actes_c.topographie_2_texte IS DISTINCT FROM t_actes.topographie_2_texte OR
|
|
|
t_actes_c.action_id IS DISTINCT FROM t_actes.action_id OR
|
|
|
t_actes_c.action_code IS DISTINCT FROM t_actes.action_code OR
|
|
|
t_actes_c.action_texte IS DISTINCT FROM t_actes.action_texte OR
|
|
|
t_actes_c.technique_id IS DISTINCT FROM t_actes.technique_id OR
|
|
|
t_actes_c.technique_code IS DISTINCT FROM t_actes.technique_code OR
|
|
|
t_actes_c.technique_texte IS DISTINCT FROM t_actes.technique_texte
|
|
|
);
|
|
|
INSERT INTO activite.t_actes_c(
|
|
|
oid,
|
|
|
code,
|
|
|
texte,
|
|
|
texte_court,
|
|
|
nomenclature,
|
|
|
classant,
|
|
|
ccam_regroupement_id_1,
|
|
|
ccam_regroupement_code_1,
|
|
|
ccam_regroupement_texte_1,
|
|
|
ccam_regroupement_id_4,
|
|
|
ccam_regroupement_code_4,
|
|
|
ccam_regroupement_texte_4,
|
|
|
chapitre_1_id,
|
|
|
chapitre_1_code,
|
|
|
chapitre_1_texte,
|
|
|
chapitre_2_id,
|
|
|
chapitre_2_code,
|
|
|
chapitre_2_texte,
|
|
|
chapitre_3_id,
|
|
|
chapitre_3_code,
|
|
|
chapitre_3_texte,
|
|
|
chapitre_4_id,
|
|
|
chapitre_4_code,
|
|
|
chapitre_4_texte,
|
|
|
type_id,
|
|
|
type_code,
|
|
|
type_texte,
|
|
|
topographie_1_id,
|
|
|
topographie_1_code,
|
|
|
topographie_1_texte,
|
|
|
topographie_2_id,
|
|
|
topographie_2_code,
|
|
|
topographie_2_texte,
|
|
|
action_id,
|
|
|
action_code,
|
|
|
action_texte,
|
|
|
technique_id,
|
|
|
technique_code,
|
|
|
technique_texte)
|
|
|
SELECT
|
|
|
t_actes.oid,
|
|
|
t_actes.code,
|
|
|
t_actes.texte,
|
|
|
t_actes.texte_court,
|
|
|
t_actes.nomenclature,
|
|
|
t_actes.classant,
|
|
|
t_actes.ccam_regroupement_id_1,
|
|
|
t_ccam_regroupements_1.code AS ccam_regroupement_code_1,
|
|
|
t_ccam_regroupements_1.texte_court AS ccam_regroupement_texte_1,
|
|
|
t_actes.ccam_regroupement_id_4,
|
|
|
t_ccam_regroupements_4.code AS ccam_regroupement_code_4,
|
|
|
t_ccam_regroupements_4.texte_court AS ccam_regroupement_texte_4,
|
|
|
t_actes.chapitre_1_id AS ccam_chapitre_1_id,
|
|
|
t_actes.chapitre_1_code AS ccam_chapitre_1_code,
|
|
|
t_actes.chapitre_1_texte AS ccam_chapitre_1_texte,
|
|
|
t_actes.chapitre_2_id AS ccam_chapitre_2_id,
|
|
|
t_actes.chapitre_2_code AS ccam_chapitre_2_code,
|
|
|
t_actes.chapitre_2_texte AS ccam_chapitre_2_texte,
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END AS ccam_chapitre_3_id,
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END AS ccam_chapitre_3_code,
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END AS ccam_chapitre_3_texte,
|
|
|
CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END
|
|
|
ELSE t_actes.chapitre_4_id END AS ccam_chapitre_4_id,
|
|
|
CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END
|
|
|
ELSE t_actes.chapitre_4_code END AS ccam_chapitre_4_code,
|
|
|
CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN
|
|
|
CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END
|
|
|
ELSE t_actes.chapitre_4_texte END AS ccam_chapitre_4_texte,
|
|
|
t_actes.type_id AS ccam_type_id,
|
|
|
t_actes.type_code AS ccam_type_code,
|
|
|
t_actes.type_texte AS ccam_type_texte,
|
|
|
t_actes.topographie_1_id AS ccam_topographie_1_id,
|
|
|
t_actes.topographie_1_code AS ccam_topographie_1_code,
|
|
|
t_actes.topographie_1_texte AS ccam_topographie_1_texte,
|
|
|
t_actes.topographie_2_id AS ccam_topographie_2_id,
|
|
|
t_actes.topographie_2_code AS ccam_topographie_2_code,
|
|
|
t_actes.topographie_2_texte AS ccam_topographie_2_texte,
|
|
|
t_actes.action_id AS ccam_action_id,
|
|
|
t_actes.action_code AS ccam_action_code,
|
|
|
t_actes.action_texte AS ccam_action_texte,
|
|
|
t_actes.technique_id AS ccam_technique_id,
|
|
|
t_actes.technique_code AS ccam_technique_code,
|
|
|
t_actes.technique_texte AS ccam_technique_texte
|
|
|
FROM base.t_actes
|
|
|
JOIN base.t_ccam_regroupements t_ccam_regroupements_1 ON t_actes.ccam_regroupement_id_1 = t_ccam_regroupements_1.oid
|
|
|
JOIN base.t_ccam_regroupements t_ccam_regroupements_4 ON t_actes.ccam_regroupement_id_4 = t_ccam_regroupements_4.oid
|
|
|
WHERE (t_actes.nomenclature IN ('CCAM', 'NGAP') OR t_actes.oid = 0) AND t_actes.oid NOT IN (SELECT oid FROM activite.t_actes_c);
|
|
|
|
|
|
RETURN 'OK';
|
|
|
END;
|