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.
 
 

96 lines
3.7 KiB

-- 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%'
;