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.
 
 
 

83 lines
2.8 KiB

-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;
CREATE TEMP TABLE w_dbsetup AS
SELECT
t_indicateur_theme.oid,
t_indicateur_theme.code,
t_indicateur_theme.texte,
t_indicateur_theme.level,
COALESCE(t_indicateur_parent_theme.code,'') AS parent_code
FROM eco.t_indicateur_theme
LEFT JOIN eco.t_indicateur_theme t_indicateur_parent_theme ON t_indicateur_theme.parent_id = t_indicateur_parent_theme.oid
ORDER BY 2 LIMIT 0
;
-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
oid,
code,
texte,
level,
parent_code
)
VALUES
(1, '--0', 'Source', 1, ''),
(1, '--1', 'Thèmes principaux', 1, ''),
(1, '--2', 'Période', 1, ''),
(1, '--3', 'Rapports', 1, ''),
(1, '--4', 'Type de donnée', 1, ''),
(1, '--DDATE', 'Date date', 2, '--2'),
(1, '--DDATE_COMMANDE', 'Date date_commande', 2, '--2'),
(1, '--DDATE_ENGAGEMENT', 'Date date_engagement', 2, '--2'),
(1, '--DDATE_FIN', 'Date date_fin', 2, '--2'),
(1, '--R1', 'Rapports CTI', 2, '--3'),
(1, '--R10002', 'Essentiels CTI', 3, '--R1'),
(1, '--R10003', 'Dispositifs Médicaux', 3, '--R1'),
(1, '--R10004', 'Dispostifs Médicaux Implantables', 3, '--R1'),
(1, '--R10005', 'Médicaments', 3, '--R1'),
(1, '--R10006', 'Parapharmacie', 3, '--R1'),
(1, '--R10007', 'Economat', 3, '--R1'),
(1, '--R10008', 'Cuisine', 3, '--R1'),
(1, '--R10009', 'Lingerie', 3, '--R1'),
(1, '--R10010', 'Atelier', 3, '--R1'),
(1, '--R3', 'Rapports Etablissement', 2, '--3'),
(1, '--R30011', 'CTI Portfolio ', 3, '--R3'),
(1, '--S1', 'Indicateurs CTI', 2, '--0'),
(1, '--S2', 'Indicateurs Groupe', 2, '--0'),
(1, '--S3', 'Indicateurs spécifiques Etablissement', 2, '--0'),
(1, '--T0010', 'Mouvements', 2, '--1'),
(1, '--T0020', 'Commandes', 2, '--1'),
(1, '--T0030', 'Stocks mensuels', 2, '--1'),
(1, '1QTE', 'Quantité', 2, '--4'),
(1, '2MNT', 'Montants', 2, '--4'),
(1, '3DUR', 'Durées', 2, '--4'),
(1, '4TAUX', 'Taux', 2, '--4'),
(1, '5STOCK', 'Stocks', 2, '--4')
;
-- 3/3 : Màj de la table iCTI
INSERT INTO eco.t_indicateur_theme (code, texte, level)
SELECT code, texte, level
FROM w_dbsetup
WHERE code NOT IN (SELECT code FROM eco.t_indicateur_theme WHERE t_indicateur_theme.code IS NOT NULL)
;
UPDATE eco.t_indicateur_theme SET
texte = w_dbsetup.texte,
level = w_dbsetup.level,
parent_id = COALESCE(t_indicateur_parent_theme.oid,0)
FROM w_dbsetup
LEFT JOIN eco.t_indicateur_theme t_indicateur_parent_theme ON w_dbsetup.parent_code = t_indicateur_parent_theme.code
WHERE t_indicateur_theme.code = w_dbsetup.code AND
(
t_indicateur_theme.texte IS DISTINCT FROM w_dbsetup.texte OR
t_indicateur_theme.level IS DISTINCT FROM w_dbsetup.level OR
t_indicateur_theme.parent_id IS DISTINCT FROM COALESCE(t_indicateur_parent_theme.oid,0)
)
;
SELECT base.cti_reorganize_indicateur_theme('eco')
;