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

CREATE TEMP TABLE w_dbsetup AS
    SELECT 
    	t_listes.oid, 
    	t_listes.code,
    	t_listes.texte,
    	t_listes.chapitre,
    	t_listes.contenu_by_code,
    	t_listes.include_code,
    	t_listes.exclude_code,
    	t_listes.is_cti, 
    	t_listes.show_omit, 
    	t_listes.utilisateur_createur, 
    	t_listes.est_partagee_modification,
    	t_listes_tables.name as table_name 
    FROM 
    	compta.t_listes, 
    	compta.t_listes_tables 
    WHERE 
    	(is_cti = '1' OR t_listes.code LIKE 'CTI%')
    	AND t_listes.code <> ''
    	AND table_id = t_listes_tables.oid
    ORDER BY t_listes.code LIMIT 0
;

-- 2/3 : Peuplement de la table temporaire
INSERT INTO w_dbsetup(
    oid,
    code,
    texte,
    chapitre,
    contenu_by_code,
    include_code,
    exclude_code,
    is_cti,
    show_omit,
    utilisateur_createur,
    est_partagee_modification,
    table_name
)
VALUES
(1, 'CTISIG2AC', 'SIG2. AUTRES ACHATS ET CHARGES EXTERNES', 'SIG2', '1', '[CLASSE:CTISIG03:D650][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2CA', 'SIG2. CHIFFRE D''AFFAIRE', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B7065]', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2EB', 'SIG2. EBIT', 'SIG2', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2EBDR', 'SIG2. EBITDAR', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2EDITDA', 'SIG2. EDITDA', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*][CLASSE:CTISIG03:H6132]', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2HA', 'SIG2. ACHATS ET VARIATIONS DE STOCKS', 'SIG2', '1', '60*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2PX', 'SIG2. PRODUITS D''EXPLOITATION', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*]', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2RN', 'SIG2. RESULTAT NET', 'SIG2', '1', '6* 7*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2SE', 'SIG2. SERVICES EXTERIEURS', 'SIG2', '1', '61*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIG2TO', 'SIG2. TOTAL', 'SIG2', '0', '601 602 6061 6062 6063 6064 6068 6111 6131 6151 6161 6221 6231 6261 6281 6211', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGAUACEX', 'CTISIG. Autres achats et charges externes', 'SIG', '1', '604* 605* 606* 61* 62*', '621*', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGAUCHGC', 'CTISIG. Autres charges de gestion courante', 'SIG', '1', '65*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGAUPRGC', 'CTISIG. Autres produits de gestion courante', 'SIG', '1', '75*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCA', 'CTISIG. Chiffre d''affaire', 'SIG', '1', '70*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCHEX', 'CTISIG. Charges exceptionnelles', 'SIG', '1', '67* 687*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCHFI', 'CTISIG. Charges financières', 'SIG', '1', '66* 686*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCHFICB', 'CTISIG. Charges financières sur crédit-bail', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCHPR', 'CTISIG. Charges de personnel', 'SIG', '1', '64*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCOACMA', 'CTISIG. Coût d''achat des marchandises vendues', 'SIG', '1', '607* 6087* 6037* 6047* 6057* 6067* 6097*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGCOACMP', 'CTISIG. Coût d''achat matières premières et approv.', 'SIG', '1', '601* 602* 6091* 6092* 6093*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGDOAMCB', 'CTISIG. Dotations aux amortissements de crédit-bail', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGDOAMDP', 'CTISIG. Dotations aux amortissements, dépréciations et provisions', 'SIG', '1', '681*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGEXBREX', 'CTISIG. Excédent brut d''exploitation', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGIMBE', 'CTISIG. Impôts sur les bénéfices', 'SIG', '1', '695*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGIMTX', 'CTISIG. Impôts et taxes', 'SIG', '1', '63*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGIMTXHV', 'CTISIG. Impôts et taxes hors valeur ajoutée', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGJOU', 'SIG : Liste des journaux fin d''exercice', 'SIG', '0', '', '', '1', '1', '*CTI', '1', 't_journaux'),
(1, 'CTISIGJSAUFJRN', 'CTISIG. Journaux à omettre des SIG', '', '0', '', '', '0', '0', 'cti', '1', 't_journaux'),
(1, 'CTISIGMACO', 'CTISIG. Marge commerciale', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPASA', 'CTISIG. Participation des salariés', 'SIG', '1', '691*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPEEX', 'CTISIG. Personnel extérieur', 'SIG', '1', '621*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPREX', 'CTISIG. Production de l''exercice', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPRFI', 'CTISIG. Produits financiers', 'SIG', '1', '76* 786* 796*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPRIM', 'CTISIG. Production immobilisée', 'SIG', '1', '72*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPRSTDE', 'CTISIG. Production stockée ou déstockage', 'SIG', '1', '713*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPRVE', 'CTISIG. Production vendue', 'SIG', '1', '701* 702* 703* 704* 705* 706* 708* 709*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGPRXX', 'CTISIG. Produits exceptionnels', 'SIG', '1', '77* 787* 797*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGQPOPCO', 'CTISIG. Quote-part sur opérations faites en commun', 'SIG', '1', '755* 655*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRCB', 'CTISIG. Redevance crédit-bail (mobilier)', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGREDCB', 'CTISIG. Redevances crédit-bail', 'SIG', '1', '612*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRPAMDP', 'CTISIG. Reprises sur amort. dépréciations et provisions', 'SIG', '1', '781*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRSCO', 'CTISIG. Résultat courant', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65* 76* 786* 796* 66* 686* 755* 655*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRSEX', 'CTISIG. Résultat d''exploitation', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRSNT', 'CTISIG. Résultat net', 'SIG', '1', '6* 7*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGRSXX', 'CTISIG. Résultat exceptionnel', 'SIG', '1', '77* 787* 797* 67* 687*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGSOTRDI', 'CTISIG. Sous-traitance directe', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGSTPR', 'CTISIG. Sous-traitance production', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGSUEX', 'CTISIG. Subventions d''exploitation', 'SIG', '1', '74*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGSUPR', 'CTISIG. Subventions de production', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGSUVTMA', 'CTISIG. Subventions sur ventes de marchandise', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGTRCHEX', 'CTISIG. Transferts de charges d''exploitation', 'SIG', '1', '791*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGVAAJ', 'CTISIG. Valeur ajoutée', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62*', '621*', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGVAST', 'CTISIG. Variations de stock', 'SIG', '1', '6031* 6032*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTISIGVTMA', 'CTISIG. Ventes de marchandises', 'SIG', '1', '707* 7097*', '', '1', '0', '*CTI', '1', 't_comptes'),
(1, 'CTITYPEGES', 'Gestion', '', '0', '', '', '1', '0', '*CTI', '1', 't_types_compta'),
(1, 'CTI_TYP_BIL', 'Bilan', '', '0', '', '', '1', '0', '*CTI', '1', 't_types_compta')
;

-- 3/3 : Màj de la table iCTI
UPDATE compta.t_listes SET 
	texte = w_dbsetup.texte, 
	chapitre = w_dbsetup.chapitre, 
	contenu_by_code= w_dbsetup.contenu_by_code, 
	include_code = w_dbsetup.include_code, 
	exclude_code = w_dbsetup.exclude_code, 
	is_cti = w_dbsetup.is_cti,
	show_omit = w_dbsetup.show_omit,
	utilisateur_createur = w_dbsetup.utilisateur_createur,
	est_partagee_modification = w_dbsetup.est_partagee_modification,
	table_id = t_listes_tables.oid
FROM 
	w_dbsetup, 
	compta.t_listes_tables
WHERE 
	w_dbsetup.table_name = t_listes_tables.name 
	AND t_listes.code = w_dbsetup.code
;


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


DELETE FROM compta.t_listes WHERE texte like '*SUPPRIME%' AND is_cti = '1'
;

SELECT base.cti_initialize_listes_by_code('compta');