-- 1/3 : Création de la table temporaire
DROP TABLE IF EXISTS w_dbsetup
;

CREATE TEMP TABLE w_dbsetup AS
    SELECT 
    	CASE WHEN t_listes.oid = 0 THEN t_listes.oid ELSE 1 END AS oid,
    	t_listes.texte, 
    	t_listes.chapitre,
    	t_listes.code, 
    	t_listes.is_cti, 
    	t_listes.show_omit, 
    	'CTI'::text AS utilisateur_createur, 
    	t_listes.est_partagee_modification,
    	t_listes_tables.name as table_name,
        t_listes.contenu_by_code,
        t_listes.exclude_code,
        t_listes.include_code,
        t_listes.contenu_non_replicable_ailleurs
    FROM activite.t_listes, activite.t_listes_tables 
    WHERE (is_cti = '1' OR t_listes.code LIKE 'CTI_%')  and table_id = t_listes_tables.oid
    ORDER BY 4
     LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    texte,
    chapitre,
    code,
    is_cti,
    show_omit,
    utilisateur_createur,
    est_partagee_modification,
    table_name,
    contenu_by_code,
    exclude_code,
    include_code,
    contenu_non_replicable_ailleurs
)
VALUES
(1, 'Portail Médecin - Actes à exclure de la liste pour le top 20 Actes CCAM', 'Portail', 'ACT_PORT_CCAM', '1', '1', 'CTI', '1', 't_actes', '0', '', '', '0'),
(1, 'Portail Médecin - Actes à exclure de la liste pour le top 20 Actes NGAP', 'Portail', 'ACT_PORT_NGAP', '1', '1', 'CTI', '1', 't_actes', '0', '', '', '0'),
(1, 'CTI : Dialyse', '', 'CTI_DIA_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '0', '', '', '1'),
(1, 'CTI : CA Divers', '', 'CTI_DIVERS_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S06]', '1'),
(1, 'Etages inappropriés', '', 'CTI_ETA_KO', '0', '0', 'CTI', '1', 't_etages', '0', '', '', '1'),
(1, 'Médecins inappropriés', '', 'CTI_MED_KO', '0', '0', 'CTI', '1', 't_medecins_administratifs', '0', '', '', '1'),
(1, 'CTI : Prothèses', '', 'CTI_PROTHESE_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S22]', '1'),
(1, 'CTI : CA Séjours', '', 'CTI_RUBMED_R', '0', '1', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S01]', '1'),
(1, 'Services inappropriés', '', 'CTI_SER_KO', '0', '0', 'CTI', '1', 't_services_facturation', '0', '', '', '1'),
(1, 'CTI : Forfaits SE (SE à SE4)', '', 'CTI_SE_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S03]', '1'),
(1, 'CTI : Chambre particulière.', '', 'CTI_SHO_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S11]', '1'),
(1, 'CTI : Suppléments Hoteliers', '', 'CTI_SUPHOT_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S12]', '1'),
(1, 'CTI : CA Soins', '', 'CTI_T2A_R', '0', '1', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S01][CLASSE:CTI_RUB_2:S02][CLASSE:CTI_RUB_2:S03][CLASSE:CTI_RUB_2:S04][CLASSE:CTI_RUB_2:S05][CLASSE:CTI_RUB_2:S06]', '1'),
(1, 'CTI : Médicaments', '', 'CTI_UCD_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S21]', '1'),
(1, 'Unités Fonctionnelles Ambulatoires', 'Expert', 'CTI_UF_AMBU', '1', '0', 'CTI', '1', 't_unites_fonctionnelles', '0', '', '', '1'),
(1, 'CTI : Urgences', '', 'CTI_URG_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S04]', '1')
;

-- 3/3 : Màj de la table iCTI
UPDATE activite.t_listes SET 
	texte = w_dbsetup.texte, 
	chapitre = w_dbsetup.chapitre, 
	table_id = t_listes_tables.oid,
	is_cti = w_dbsetup.is_cti,
	show_omit = w_dbsetup.show_omit,
    -- contenu_by_code = w_dbsetup.contenu_by_code,
    exclude_code = w_dbsetup.exclude_code,
    include_code = w_dbsetup.include_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_name = t_listes_tables.name
    AND t_listes.code = w_dbsetup.code
;

INSERT INTO activite.t_listes(code, texte, chapitre, table_id, is_cti, show_omit, contenu_by_code, exclude_code, include_code, contenu_non_replicable_ailleurs)
    SELECT w_dbsetup.code, w_dbsetup.texte, w_dbsetup.chapitre, t_listes_tables.oid, w_dbsetup.is_cti, w_dbsetup.show_omit, w_dbsetup.contenu_by_code, w_dbsetup.exclude_code, w_dbsetup.include_code, w_dbsetup.contenu_non_replicable_ailleurs
        FROM w_dbsetup, activite.t_listes_tables 
        WHERE w_dbsetup.table_name = t_listes_tables.name AND w_dbsetup.code NOT IN (SELECT code FROM activite.t_listes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%'
;
	
DELETE FROM activite.t_listes WHERE texte like '*SUPPRIME%' AND is_cti = '1'
;