-- 1/3 : Création de la table temporaire DROP TABLE IF EXISTS w_dbsetup ; CREATE TEMP TABLE w_dbsetup AS SELECT CASE WHEN t_classes.oid = 0 THEN t_classes.oid ELSE 1 END AS oid, t_classes.code, t_classes.texte, t_classes.is_cti, t_classes.sequence, t_listes_tables.code as table_code, t_classes.contenu_by_code, t_classes.contenu_non_replicable_ailleurs FROM activite.t_classes, activite.t_listes_tables WHERE 1=1 AND (is_cti = '1' OR t_classes.code ilike 'CTI_%') AND table_id = t_listes_tables.oid ORDER BY t_classes.code LIMIT 0 ; -- 2/3 : Peuplement de la table temporaire INSERT INTO w_dbsetup( oid, code, texte, is_cti, sequence, table_code, contenu_by_code, contenu_non_replicable_ailleurs ) VALUES (1, 'CTIGFA1', 'Formes d''activité CTI niveau 1', '1', 1, 'FORMEACTIVITE', '0', '0'), (1, 'CTIGFA2', 'Formes d''activité CTI niveau 2', '1', 2, 'FORMEACTIVITE', '0', '0'), (1, 'CTIGFA3', 'Champ satisfaction', '1', 3, 'FORMEACTIVITE', '0', '0'), (1, 'CTI_DURSEJ', 'Tranches séjours CTI', '1', 9, 'DURSEJ', '0', '0'), (1, 'CTI_ETA_1', 'Etages CTI', '0', 4, 'ETAGE', '0', '1'), (1, 'CTI_GHMDA', 'Domaines d''activité ATIH', '1', 9, 'GHM', '0', '0'), (1, 'CTI_GHMGA', 'Groupes d''activité ATIH', '1', 7, 'GHM', '0', '0'), (1, 'CTI_GHMGP', 'Groupes de planification ATIH', '1', 8, 'GHM', '0', '0'), (1, 'CTI_MEDLIBSAL', 'Conditions d''exercice', '1', 1, 'MEDECIN', '0', '1'), (1, 'CTI_PRC_1', 'Prestations CTI', '0', 4, 'PRESTA_C', '0', '0'), (1, 'CTI_PREDCA', 'Décomposition CA (CTI)', '1', 9, 'PRESTA_C', '0', '0'), (1, 'CTI_RUB_1', 'Rubriques CTI', '0', 4, 'RUBRIQUE', '1', '1'), (1, 'CTI_RUB_2', 'Rubriques détaillées CTI.', '0', 31, 'RUBRIQUE', '0', '1'), (1, 'CTI_SER_1', 'Services CTI', '0', 4, 'SERVICE_F', '0', '1'), (1, 'CTI_TAGE', 'Tranches d''âge', '1', 9, 'AGE', '0', '0'), (1, 'CTI_UF_1', 'Unités Fonctionnelles CTI', '0', 4, 'UF', '0', '1'), (1, 'ETATSEJN1', 'Etat de séjour CTI niveau 1', '1', 11, 'ETATSEJOUR', '0', '0'), (1, 'ETATSEJN2', 'Etat de séjour CTI niveau 2', '1', 10, 'ETATSEJOUR', '0', '0') ; -- 3/3 : Màj de la table iCTI UPDATE activite.t_classes SET code = w_dbsetup.code, texte = w_dbsetup.texte, table_id = t_listes_tables.oid, is_cti = w_dbsetup.is_cti, contenu_by_code = w_dbsetup.contenu_by_code, contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs FROM w_dbsetup, activite.t_listes_tables WHERE 1=1 AND w_dbsetup.table_code = t_listes_tables.code AND t_classes.sequence = w_dbsetup.sequence AND t_classes.table_id = t_listes_tables.oid AND (1!=1 OR t_classes.code IS DISTINCT FROM w_dbsetup.code OR t_classes.texte IS DISTINCT FROM w_dbsetup.texte OR t_classes.table_id IS DISTINCT FROM t_listes_tables.oid OR t_classes.is_cti IS DISTINCT FROM w_dbsetup.is_cti OR t_classes.contenu_by_code IS DISTINCT FROM w_dbsetup.contenu_by_code OR t_classes.contenu_non_replicable_ailleurs IS DISTINCT FROM w_dbsetup.contenu_non_replicable_ailleurs) ; INSERT INTO activite.t_classes(code, texte, table_id, is_cti, sequence, contenu_by_code, contenu_non_replicable_ailleurs) SELECT w_dbsetup.code, w_dbsetup.texte, t_listes_tables.oid, w_dbsetup.is_cti, w_dbsetup.sequence, w_dbsetup.contenu_by_code, w_dbsetup.contenu_non_replicable_ailleurs FROM w_dbsetup, activite.t_listes_tables WHERE 1=1 AND w_dbsetup.table_code = t_listes_tables.code AND t_listes_tables.oid::text || '-' || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM activite.t_classes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%' ;