return: text
lang: plpgsql
src: |
  DECLARE	
  	result TEXT;
  BEGIN
  	
  	UPDATE compta.t_comptes 
  	SET classe_1_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 1) = t_classes_comptes.code AND 
  		t_comptes.classe_1_id IS DISTINCT FROM t_classes_comptes.oid;
  	UPDATE compta.t_comptes 
  	SET classe_2_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 2) = t_classes_comptes.code AND 
  		t_comptes.classe_2_id IS DISTINCT FROM t_classes_comptes.oid;
  	UPDATE compta.t_comptes 
  	SET classe_3_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 3) = t_classes_comptes.code AND 
  		t_comptes.classe_3_id IS DISTINCT FROM t_classes_comptes.oid;
  	UPDATE compta.t_comptes 
  	SET classe_4_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 4) = t_classes_comptes.code AND 
  		t_comptes.classe_4_id IS DISTINCT FROM t_classes_comptes.oid;
  	UPDATE compta.t_comptes 
  	SET classe_5_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 5) = t_classes_comptes.code AND 
  		t_comptes.classe_5_id IS DISTINCT FROM t_classes_comptes.oid;
  		
  		
  	UPDATE compta.t_comptes 
  	SET classe_6_id = t_classes_comptes.oid
  	FROM compta.t_classes_comptes, compta.t_comptes t_comptes_generaux 
  	WHERE t_comptes.compte_general_id = t_comptes_generaux.oid AND 
  		substr(t_comptes_generaux.numero, 1 , 6) = t_classes_comptes.code AND 
  		t_comptes.classe_6_id IS DISTINCT FROM t_classes_comptes.oid;
  	-- Comptes signes (classes 4 et 5 pour bilan)
  	-- Nouveaux champs
  	UPDATE compta.t_comptes
  	SET sens = '' 
  	WHERE sens IS NULL;
  	UPDATE compta.t_comptes
  	SET sens = 'C'
  	WHERE t_comptes.numero like '%(C)' AND sens = ''
  	;
  
  	UPDATE compta.t_comptes
  	SET sens = 'D'
  	WHERE t_comptes.numero like '%(D)' AND sens = ''
  	;
  
  	UPDATE compta.t_comptes
  	SET compte_nonsigne_id = t_comptes_nonsigne.oid, 
  		compte_nonsigne_numero = t_comptes_nonsigne.numero
  	FROM compta.t_comptes t_comptes_nonsigne
  	WHERE t_comptes_nonsigne.type_compta_id = t_comptes.type_compta_id AND
  		split_part(t_comptes.numero,'(C)',1) = t_comptes_nonsigne.numero AND
  		t_comptes.numero like '%(C)' AND
  		t_comptes.oid = t_comptes.compte_nonsigne_id 
  		;
  
  	UPDATE compta.t_comptes
  	SET compte_nonsigne_id = t_comptes_nonsigne.oid, 
  		compte_nonsigne_numero = t_comptes_nonsigne.numero
  	FROM compta.t_comptes t_comptes_nonsigne
  	WHERE t_comptes_nonsigne.type_compta_id = t_comptes.type_compta_id AND
  		split_part(t_comptes.numero,'(D)',1) = t_comptes_nonsigne.numero AND
  		t_comptes.numero like '%(D)' AND
  		t_comptes.oid = t_comptes.compte_nonsigne_id 
  		;
  			
  	UPDATE compta.t_comptes
  	SET compte_nonsigne_id = oid
  	WHERE sens = '' AND
  		compte_nonsigne_id IS DISTINCT FROM oid;
  	UPDATE compta.t_comptes
  	SET compte_nonsigne_numero = numero
  	WHERE sens = '' AND
  		compte_nonsigne_numero IS DISTINCT FROm numero
  	;
  	-- Sens des comptes selon exercice
  	DROP TABLE IF EXISTS cti_reorganize_comptes_compte_sens;
  	CREATE TEMP TABLE cti_reorganize_comptes_compte_sens AS
  	SELECT p_historique_ecritures_total.site_id,
  		t_comptes.compte_nonsigne_id AS oid,
  		t_comptes.compte_nonsigne_numero AS numero,
  		exercice_comptable,
  		CASE 
  		WHEN SUM(montant_debit)-SUM(montant_credit) > 0 THEN 'D' 
  		WHEN SUM(montant_debit)-SUM(montant_credit) < 0 THEN 'C'
  		ELSE '' END AS sens
  	FROM compta.p_historique_ecritures_total
  	JOIN compta.t_comptes ON t_comptes.oid = p_historique_ecritures_total.compte_id
  	WHERE t_comptes.numero LIKE '4%' OR t_comptes.numero LIKE '5%' OR t_comptes.numero LIKE '603%' OR t_comptes.numero LIKE '1813%' OR t_comptes.numero LIKE '1814%'
  	GROUP BY 1,2,3,4
  	ORDER BY 1,2;
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 
  		CASE 
  		WHEN nb_c > nb_d THEN 'C'
  		WHEN nb_d > nb_c THEN 'D'
  		ELSE '' END
  	FROM (
  		SELECT oid, 
  			SUM(CASE WHEN sens = 'C' THEN 1 ELSE 0 END) AS nb_c,
  			SUM(CASE WHEN sens = 'D' THEN 1 ELSE 0 END) AS nb_d
  		FROM cti_reorganize_comptes_compte_sens
  		GROUP BY 1
  		) subview
  	WHERE cti_reorganize_comptes_compte_sens.oid = subview.oid AND cti_reorganize_comptes_compte_sens.sens = ''
  	;
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 
  		CASE 
  		WHEN nb_c > nb_d THEN 'C'
  		WHEN nb_d > nb_c THEN 'D'
  		ELSE '' END
  	FROM (
  		SELECT substr(numero,1,3) AS sous_classe, 
  			SUM(CASE WHEN sens = 'C' THEN 1 ELSE 0 END) AS nb_c,
  			SUM(CASE WHEN sens = 'D' THEN 1 ELSE 0 END) AS nb_d
  		FROM cti_reorganize_comptes_compte_sens
  		GROUP BY 1
  		ORDER BY 1
  		) subview
  	WHERE substr(cti_reorganize_comptes_compte_sens.numero,1,3) = subview.sous_classe AND cti_reorganize_comptes_compte_sens.sens = ''
  	;
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 
  		CASE 
  		WHEN nb_c > nb_d THEN 'C'
  		WHEN nb_d > nb_c THEN 'D'
  		ELSE '' END
  	FROM (
  		SELECT substr(numero,1,2) AS sous_classe, 
  			SUM(CASE WHEN sens = 'C' THEN 1 ELSE 0 END) AS nb_c,
  			SUM(CASE WHEN sens = 'D' THEN 1 ELSE 0 END) AS nb_d
  		FROM cti_reorganize_comptes_compte_sens
  		GROUP BY 1
  		ORDER BY 1
  		) subview
  	WHERE substr(cti_reorganize_comptes_compte_sens.numero,1,2) = subview.sous_classe AND cti_reorganize_comptes_compte_sens.sens = ''
  	;
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 'C'
  	WHERE sens = '' AND
  		substr(numero,1,1) = '4';
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 'D'
  	WHERE sens = '' AND
  		substr(numero,1,1) = '5';
  	UPDATE cti_reorganize_comptes_compte_sens
  	SET sens = 'D'
  	WHERE sens = '' AND
  		substr(numero,1,3) = '603';
  	-- Ajout des comptes signes (debit et credit)
  	INSERT INTO compta.t_comptes(
  		type_compta_id,
  		numero,
  		texte,
  		compte_general_id,
  		clinique_honoraire,
  		banque,
  		etat,
  		classe_1_id,
  		classe_2_id,
  		classe_3_id,
  		classe_4_id,
  		classe_5_id,
  		classe_6_id,
  		solde_initial,
  		collectif,
  		type_compta_extra_id,
  		numero_extra,
  		texte_extra,
  		partenaire_id,
  		inter_site,
  		sens,
  		compte_nonsigne_id,
  		compte_nonsigne_numero)
  	SELECT 
  		t_comptes.type_compta_id,
  		t_comptes.numero|| '(C)',
  		t_comptes.texte,
  		t_comptes.compte_general_id,
  		t_comptes.clinique_honoraire,
  		t_comptes.banque,
  		t_comptes.etat,
  		t_comptes.classe_1_id,
  		t_comptes.classe_2_id,
  		t_comptes.classe_3_id,
  		t_comptes.classe_4_id,
  		t_comptes.classe_5_id,
  		t_comptes.classe_6_id,
  		t_comptes.solde_initial,
  		t_comptes.collectif,
  		t_comptes.type_compta_extra_id,
  		t_comptes.numero_extra,
  		t_comptes.texte_extra,
  		t_comptes.partenaire_id,
  		t_comptes.inter_site,
  		'C' AS sens,
  		t_comptes.oid AS compte_nonsigne_id,
  		t_comptes.numero AS compte_nonsigne_numero
  	FROM compta.t_comptes
  	JOIN
  		( SELECT oid 
  		FROM cti_reorganize_comptes_compte_sens
  		WHERE sens <> ''
  		GROUP BY 1
  		) subview
  		ON t_comptes.oid = subview.oid
  	WHERE (t_comptes.numero|| '(C)') NOT IN (SELECT numero FROM compta.t_comptes)
  	;
  	INSERT INTO compta.t_comptes(
  		type_compta_id,
  		numero,
  		texte,
  		compte_general_id,
  		clinique_honoraire,
  		banque,
  		etat,
  		classe_1_id,
  		classe_2_id,
  		classe_3_id,
  		classe_4_id,
  		classe_5_id,
  		classe_6_id,
  		solde_initial,
  		collectif,
  		type_compta_extra_id,
  		numero_extra,
  		texte_extra,
  		partenaire_id,
  		inter_site,
  		sens,
  		compte_nonsigne_id,
  		compte_nonsigne_numero)
  	SELECT 
  		t_comptes.type_compta_id,
  		t_comptes.numero|| '(D)',
  		t_comptes.texte,
  		t_comptes.compte_general_id,
  		t_comptes.clinique_honoraire,
  		t_comptes.banque,
  		t_comptes.etat,
  		t_comptes.classe_1_id,
  		t_comptes.classe_2_id,
  		t_comptes.classe_3_id,
  		t_comptes.classe_4_id,
  		t_comptes.classe_5_id,
  		t_comptes.classe_6_id,
  		t_comptes.solde_initial,
  		t_comptes.collectif,
  		t_comptes.type_compta_extra_id,
  		t_comptes.numero_extra,
  		t_comptes.texte_extra,
  		t_comptes.partenaire_id,
  		t_comptes.inter_site,
  		'D' AS sens,
  		t_comptes.oid AS compte_nonsigne_id,
  		t_comptes.numero AS compte_nonsigne_numero
  	FROM compta.t_comptes
  	JOIN
  		( SELECT oid 
  		FROM cti_reorganize_comptes_compte_sens
  		WHERE sens <> ''
  		GROUP BY 1
  		) subview
  		ON t_comptes.oid = subview.oid
  	WHERE (t_comptes.numero|| '(D)') NOT IN (SELECT numero FROM compta.t_comptes)
  	;
  
  	UPDATE compta.t_comptes_c
  	SET banque = t_comptes.banque
  	FROM compta.t_comptes
  	WHERE t_comptes.oid = t_comptes_c.compte_nonsigne_id AND
  		t_comptes_c.banque <> t_comptes.banque
  	;
  	
  	-- Mise a jour des ecritures
  	UPDATE compta.p_historique_ecritures
  	SET compte_id = t_comptes_signe.oid
  	FROM compta.t_comptes 
  	JOIN cti_reorganize_comptes_compte_sens ON t_comptes.compte_nonsigne_id = cti_reorganize_comptes_compte_sens.oid 
  	JOIN compta.t_comptes t_comptes_signe ON cti_reorganize_comptes_compte_sens.oid = t_comptes_signe.compte_nonsigne_id AND
  		cti_reorganize_comptes_compte_sens.sens = t_comptes_signe.sens
  	WHERE p_historique_ecritures.compte_id = t_comptes.oid AND
  		p_historique_ecritures.site_id = cti_reorganize_comptes_compte_sens.site_id AND
  		p_historique_ecritures.exercice_comptable = cti_reorganize_comptes_compte_sens.exercice_comptable AND
  		p_historique_ecritures.compte_id IS DISTINCT FROM t_comptes_signe.oid
  	;
  	UPDATE compta.p_historique_ecritures_total p_historique_ecritures
  	SET compte_id = t_comptes_signe.oid
  	FROM compta.t_comptes 
  	JOIN cti_reorganize_comptes_compte_sens ON t_comptes.compte_nonsigne_id = cti_reorganize_comptes_compte_sens.oid 
  	JOIN compta.t_comptes t_comptes_signe ON cti_reorganize_comptes_compte_sens.oid = t_comptes_signe.compte_nonsigne_id AND
  		cti_reorganize_comptes_compte_sens.sens = t_comptes_signe.sens
  	WHERE p_historique_ecritures.compte_id = t_comptes.oid AND
  		p_historique_ecritures.site_id = cti_reorganize_comptes_compte_sens.site_id AND
  		p_historique_ecritures.exercice_comptable = cti_reorganize_comptes_compte_sens.exercice_comptable AND
  		p_historique_ecritures.compte_id IS DISTINCT FROM t_comptes_signe.oid
  	;
  
  	-- Code banque
  	UPDATE compta.t_comptes
  	SET banque = t_comptes_nonsignes.banque
  	FROM compta.t_comptes t_comptes_nonsignes
  	WHERE t_comptes.compte_nonsigne_id = t_comptes_nonsignes.oid AND
  		t_comptes.compte_nonsigne_id <> t_comptes.oid AND
  		t_comptes.banque <> t_comptes_nonsignes.banque
  	;
  		
  	-- Mise a jour table repliquee
  	UPDATE compta.t_comptes_c SET
  		compte_general_id = t_comptes.compte_general_id, 
  		compte_general_numero = t_comptes_generaux.numero,
  		compte_general_texte = t_comptes_generaux.texte,  
  		numero = t_comptes.numero,
  		texte = t_comptes.texte,  
  		clinique_honoraire = t_comptes.clinique_honoraire,   
  		type_compta_id = t_comptes.type_compta_id,  
  		type_compta_code = t_types_compta.code, 
  		type_compta_texte = t_types_compta.texte, 
  		banque = t_comptes.banque,  
  		classe_1_id = t_comptes.classe_1_id,
  		classe_1_code = t_classe_1.code, 
  		classe_1_texte = t_classe_1.texte,
  		classe_2_id = t_comptes.classe_2_id,
  		classe_2_code = t_classe_2.code, 
  		classe_2_texte = t_classe_2.texte, 
  		classe_3_id = t_comptes.classe_3_id,
  		classe_3_code = t_classe_3.code, 
  		classe_3_texte = t_classe_3.texte,
  		classe_4_id = t_comptes.classe_4_id,
  		classe_4_code = t_classe_4.code, 
  		classe_4_texte = t_classe_4.texte,
  		classe_5_id = t_comptes.classe_5_id,
  		classe_5_code = t_classe_5.code, 
  		classe_5_texte = t_classe_5.texte, 
  		classe_6_id = t_comptes.classe_6_id,
  		classe_6_code = t_classe_6.code, 
  		classe_6_texte = t_classe_6.texte,
  		compte_nonsigne_id = t_comptes.compte_nonsigne_id,  
  		compte_nonsigne_numero = t_comptes.compte_nonsigne_numero  
  	FROM compta.t_comptes
  		JOIN compta.t_types_compta ON (t_comptes.type_compta_id = t_types_compta.oid ) 
  		JOIN compta.t_comptes t_comptes_generaux ON (t_comptes_generaux.oid = t_comptes.compte_general_id)
  		JOIN compta.t_classes_comptes t_classe_1 ON (t_comptes.classe_1_id = t_classe_1.oid) 
  		JOIN compta.t_classes_comptes t_classe_2 ON (t_comptes.classe_2_id = t_classe_2.oid) 
  		JOIN compta.t_classes_comptes t_classe_3 ON (t_comptes.classe_3_id = t_classe_3.oid) 
  		JOIN compta.t_classes_comptes t_classe_4 ON (t_comptes.classe_4_id = t_classe_4.oid) 
  		JOIN compta.t_classes_comptes t_classe_5 ON (t_comptes.classe_5_id = t_classe_5.oid) 
  		JOIN compta.t_classes_comptes t_classe_6 ON (t_comptes.classe_6_id = t_classe_6.oid) 
  	WHERE t_comptes.oid = t_comptes_c.oid
  	AND (
  		t_comptes_c.compte_general_id IS DISTINCT FROM t_comptes.compte_general_id OR 
  		t_comptes_c.compte_general_numero IS DISTINCT FROM t_comptes_generaux.numero OR
  		t_comptes_c.compte_general_texte IS DISTINCT FROM t_comptes_generaux.texte OR  
  		t_comptes_c.numero IS DISTINCT FROM t_comptes.numero OR
  		t_comptes_c.texte IS DISTINCT FROM t_comptes.texte OR  
  		t_comptes_c.clinique_honoraire IS DISTINCT FROM t_comptes.clinique_honoraire OR   
  		t_comptes_c.type_compta_id IS DISTINCT FROM t_comptes.type_compta_id OR  
  		t_comptes_c.type_compta_code IS DISTINCT FROM t_types_compta.code OR 
  		t_comptes_c.type_compta_texte IS DISTINCT FROM t_types_compta.texte OR 
  		t_comptes_c.banque IS DISTINCT FROM t_comptes.banque OR  
  		t_comptes_c.classe_1_id IS DISTINCT FROM t_comptes.classe_1_id OR
  		t_comptes_c.classe_1_code IS DISTINCT FROM t_classe_1.code OR 
  		t_comptes_c.classe_1_texte IS DISTINCT FROM t_classe_1.texte OR
  		t_comptes_c.classe_2_id IS DISTINCT FROM t_comptes.classe_2_id OR
  		t_comptes_c.classe_2_code IS DISTINCT FROM t_classe_2.code OR 
  		t_comptes_c.classe_2_texte IS DISTINCT FROM t_classe_2.texte OR 
  		t_comptes_c.classe_3_id IS DISTINCT FROM t_comptes.classe_3_id OR
  		t_comptes_c.classe_3_code IS DISTINCT FROM t_classe_3.code OR 
  		t_comptes_c.classe_3_texte IS DISTINCT FROM t_classe_3.texte OR
  		t_comptes_c.classe_4_id IS DISTINCT FROM t_comptes.classe_4_id OR
  		t_comptes_c.classe_4_code IS DISTINCT FROM t_classe_4.code OR 
  		t_comptes_c.classe_4_texte IS DISTINCT FROM t_classe_4.texte OR
  		t_comptes_c.classe_5_id IS DISTINCT FROM t_comptes.classe_5_id OR
  		t_comptes_c.classe_5_code IS DISTINCT FROM t_classe_5.code OR 
  		t_comptes_c.classe_5_texte IS DISTINCT FROM t_classe_5.texte OR 
  		t_comptes_c.classe_6_id IS DISTINCT FROM t_comptes.classe_6_id OR
  		t_comptes_c.classe_6_code IS DISTINCT FROM t_classe_6.code OR 
  		t_comptes_c.classe_6_texte IS DISTINCT FROM t_classe_6.texte OR
  		t_comptes_c.compte_nonsigne_id IS DISTINCT FROM t_comptes.compte_nonsigne_id OR 
  		t_comptes_c.compte_nonsigne_numero IS DISTINCT FROM t_comptes.compte_nonsigne_numero  
  	);
  	
  	INSERT INTO compta.t_comptes_c(
  		compte_general_id, 
  		compte_general_numero, 
  		compte_general_texte, 
  		oid, 
  		numero, 
  		texte, 
  		clinique_honoraire, 
  		type_compta_id, 
  		type_compta_code, 
  		type_compta_texte, 
  		banque, 
  		classe_1_id, classe_1_code, classe_1_texte, 
  		classe_2_id, classe_2_code, classe_2_texte, 
  		classe_3_id, classe_3_code, classe_3_texte, 
  		classe_4_id, classe_4_code, classe_4_texte, 
  		classe_5_id, classe_5_code, classe_5_texte, 
  		classe_6_id, classe_6_code, classe_6_texte,
  		compte_nonsigne_id, compte_nonsigne_numero
  	) 
  	SELECT 
  		t_comptes.compte_general_id, 
  		t_comptes_generaux.numero, 
  		t_comptes_generaux.texte, 
  		t_comptes.oid, 
  		t_comptes.numero,  
  		t_comptes.texte,  
  		t_comptes.clinique_honoraire,  
  		t_comptes.type_compta_id, 
  		t_types_compta.code, 
  		t_types_compta.texte, 
  		t_comptes.banque,  
  		t_comptes.classe_1_id, t_classe_1.code, t_classe_1.texte,  
  		t_comptes.classe_2_id, t_classe_2.code, t_classe_2.texte, 
  		t_comptes.classe_3_id, t_classe_3.code, t_classe_3.texte,  
  		t_comptes.classe_4_id, t_classe_4.code, t_classe_4.texte,  
  		t_comptes.classe_5_id, t_classe_5.code, t_classe_5.texte, 
  		t_comptes.classe_6_id, t_classe_6.code, t_classe_6.texte,
  		t_comptes.compte_nonsigne_id, t_comptes.compte_nonsigne_numero
  	FROM compta.t_comptes
  		JOIN compta.t_types_compta ON (t_comptes.type_compta_id = t_types_compta.oid ) 
  		JOIN compta.t_comptes t_comptes_generaux ON (t_comptes_generaux.oid = t_comptes.compte_general_id)
  		JOIN compta.t_classes_comptes t_classe_1 ON (t_comptes.classe_1_id = t_classe_1.oid) 
  		JOIN compta.t_classes_comptes t_classe_2 ON (t_comptes.classe_2_id = t_classe_2.oid) 
  		JOIN compta.t_classes_comptes t_classe_3 ON (t_comptes.classe_3_id = t_classe_3.oid) 
  		JOIN compta.t_classes_comptes t_classe_4 ON (t_comptes.classe_4_id = t_classe_4.oid) 
  		JOIN compta.t_classes_comptes t_classe_5 ON (t_comptes.classe_5_id = t_classe_5.oid) 
  		JOIN compta.t_classes_comptes t_classe_6 ON (t_comptes.classe_6_id = t_classe_6.oid) 
  	WHERE t_comptes.oid NOT IN (SELECt oid FROM compta.t_comptes_c)
  	ORDER BY t_comptes.numero;
  	-- Texte des comptes signes
  	UPDATE compta.t_comptes_c SET
  		compte_nonsigne_numero = t_comptes_nonsigne.numero,
  		texte = t_comptes_nonsigne.texte
  	FROM compta.t_comptes t_comptes_nonsigne
  	WHERE t_comptes_nonsigne.oid = t_comptes_c.compte_nonsigne_id AND
  		t_comptes_c.compte_nonsigne_id <> t_comptes_c.oid AND
  		(
  		t_comptes_c.compte_nonsigne_numero IS DISTINCT FROM t_comptes_nonsigne.numero OR
  		t_comptes_c.texte IS DISTINCT FROM t_comptes_nonsigne.texte
  		)
  	;
  	-- Classes
  	UPDATE compta.t_comptes_c SET 
  			arbre_classe_1_id = 0,  
  			arbre_classe_1_code = '',  
  			arbre_classe_1_texte = '',  
  			arbre_classe_2_id = 0,  
  			arbre_classe_2_code = '',  
  			arbre_classe_2_texte = '',  
  			arbre_classe_3_id = 0,  
  			arbre_classe_3_code = '',  
  			arbre_classe_3_texte = '',  
  			arbre_classe_4_id = 0,  
  			arbre_classe_4_code = '',  
  			arbre_classe_4_texte = '',  
  			arbre_classe_5_id = 0,  
  			arbre_classe_5_code = '',  
  			arbre_classe_5_texte = '',  
  			arbre_classe_6_id = 0,  
  			arbre_classe_6_code = '',  
  			arbre_classe_6_texte = '',  
  			arbre_classe_7_id = 0,  
  			arbre_classe_7_code = '',  
  			arbre_classe_7_texte = ''; 
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_1_id = 
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_id  
  			WHEN classe_2_texte <> '' THEN classe_2_id  
  			WHEN classe_3_texte <> '' THEN classe_3_id  
  			WHEN classe_4_texte <> '' THEN classe_4_id  
  			WHEN classe_5_texte <> '' THEN classe_5_id  
  			WHEN classe_6_texte <> '' THEN classe_6_id  
  			ELSE compte_general_id
  		END, 
  		arbre_classe_1_code = 
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_code 
  			WHEN classe_2_texte <> '' THEN classe_2_code  
  			WHEN classe_3_texte <> '' THEN classe_3_code  
  			WHEN classe_4_texte <> '' THEN classe_4_code  
  			WHEN classe_5_texte <> '' THEN classe_5_code 
  			WHEN classe_6_texte <> '' THEN classe_6_code 
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_1_texte = 
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_texte  
  			WHEN classe_2_texte <> '' THEN classe_2_texte  
  			WHEN classe_3_texte <> '' THEN classe_3_texte 
  			WHEN classe_4_texte <> '' THEN classe_4_texte 
  			WHEN classe_5_texte <> '' THEN classe_5_texte 
  			WHEN classe_6_texte <> '' THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END
  	WHERE 
  		arbre_classe_1_id IS DISTINCT FROM
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_id  
  			WHEN classe_2_texte <> '' THEN classe_2_id  
  			WHEN classe_3_texte <> '' THEN classe_3_id  
  			WHEN classe_4_texte <> '' THEN classe_4_id  
  			WHEN classe_5_texte <> '' THEN classe_5_id  
  			WHEN classe_6_texte <> '' THEN classe_6_id  
  			ELSE compte_general_id
  		END OR
  		arbre_classe_1_code IS DISTINCT FROM
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_code 
  			WHEN classe_2_texte <> '' THEN classe_2_code  
  			WHEN classe_3_texte <> '' THEN classe_3_code  
  			WHEN classe_4_texte <> '' THEN classe_4_code  
  			WHEN classe_5_texte <> '' THEN classe_5_code 
  			WHEN classe_6_texte <> '' THEN classe_6_code 
  			ELSE compte_general_numero 
  		END OR
  		arbre_classe_1_texte IS DISTINCT FROM
  		CASE  
  			WHEN classe_1_texte <> '' THEN classe_1_texte  
  			WHEN classe_2_texte <> '' THEN classe_2_texte  
  			WHEN classe_3_texte <> '' THEN classe_3_texte 
  			WHEN classe_4_texte <> '' THEN classe_4_texte 
  			WHEN classe_5_texte <> '' THEN classe_5_texte 
  			WHEN classe_6_texte <> '' THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END;
  	
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_2_id = 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_id  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_id  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id  
  		END, 
  		arbre_classe_2_code = 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_code 
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_code 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_code 
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_2_texte = 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_texte 
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_texte 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_texte 
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_texte 
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END 
  	WHERE arbre_classe_1_code <> compte_general_numero 
  		AND (
  		arbre_classe_2_id IS DISTINCT FROM 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_id  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_id  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id  
  		END OR
  		arbre_classe_2_code IS DISTINCT FROM 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_code 
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_code 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_code 
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END OR
  		arbre_classe_2_texte IS DISTINCT FROM 
  		CASE  
  			WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_texte 
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_texte 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_texte 
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_texte 
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END 
  		);
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_3_id = 
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_id  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END, 
  		arbre_classe_3_code = 
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_code 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_code  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_3_texte = 
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_texte 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_texte  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_texte  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END 
  	WHERE arbre_classe_1_code <> compte_general_numero AND arbre_classe_2_code <> compte_general_numero
  		AND (
  		arbre_classe_3_id IS DISTINCT FROM
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_id  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END OR
  		arbre_classe_3_code IS DISTINCT FROM
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_code 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_code  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END OR
  		arbre_classe_3_texte IS DISTINCT FROM
  		CASE  
  			WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_texte 
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_texte  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_texte  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_texte 
  			ELSE compte_general_texte 
  		END 
  		);
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_4_id = 
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id  
  		END, 
  		arbre_classe_4_code = 
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_code  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_code  
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_4_texte = 
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_texte  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_texte  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_texte  
  			ELSE compte_general_texte 
  		END 
  	WHERE arbre_classe_1_code <> compte_general_numero AND arbre_classe_2_code <> compte_general_numero AND arbre_classe_3_code <> compte_general_numero
  		AND (
  		arbre_classe_4_id IS DISTINCT FROM
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_id  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id  
  		END OR
  		arbre_classe_4_code IS DISTINCT FROM
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_code  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_code  
  			ELSE compte_general_numero 
  		END OR
  		arbre_classe_4_texte IS DISTINCT FROM
  		CASE  
  			WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code AND arbre_classe_3_code <> classe_4_code THEN classe_4_texte  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code THEN classe_5_texte  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code THEN classe_6_texte  
  			ELSE compte_general_texte 
  		END 
  		);
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_5_id = 
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END, 
  		arbre_classe_5_code = 
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_code  
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_5_texte = 
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_texte 
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_texte  
  			ELSE compte_general_texte 
  		END 
  	WHERE arbre_classe_1_code <> compte_general_numero AND arbre_classe_2_code <> compte_general_numero AND 
  		arbre_classe_3_code <> compte_general_numero AND arbre_classe_4_code <> compte_general_numero AND
  		(
  		arbre_classe_5_id IS DISTINCT FROM
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_id  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END OR 
  		arbre_classe_5_code IS DISTINCT FROM
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_code  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_code  
  			ELSE compte_general_numero 
  		END OR 
  		arbre_classe_5_texte IS DISTINCT FROM
  		CASE  
  			WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code AND arbre_classe_3_code <> classe_5_code AND arbre_classe_4_code <> classe_5_code THEN classe_5_texte 
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_texte  
  			ELSE compte_general_texte 
  		END 
  		);
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_6_id = 
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END, 
  		arbre_classe_6_code = 
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END, 
  		arbre_classe_6_texte = 
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_texte 
  				ELSE compte_general_texte 
  			END 
  	WHERE arbre_classe_1_code <> compte_general_numero AND arbre_classe_2_code <> compte_general_numero AND arbre_classe_3_code <> compte_general_numero AND 
  		arbre_classe_4_code <> compte_general_numero AND arbre_classe_5_code <> compte_general_numero AND
  		(
  		arbre_classe_6_id IS DISTINCT FROM
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_id  
  			ELSE compte_general_id
  		END OR 
  		arbre_classe_6_code IS DISTINCT FROM
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_code 
  			ELSE compte_general_numero 
  		END OR 
  		arbre_classe_6_texte IS DISTINCT FROM
  		CASE  
  			WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code AND arbre_classe_3_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code AND arbre_classe_4_code <> classe_6_code THEN classe_6_texte 
  				ELSE compte_general_texte 
  			END 
  		);
  	
  	
  	UPDATE compta.t_comptes_c 
  		SET  
  		arbre_classe_7_id = compte_general_id,  
  		arbre_classe_7_code = compte_general_numero, 
  		arbre_classe_7_texte = compte_general_texte 
  	WHERE arbre_classe_1_code <> numero 
  		AND arbre_classe_2_code <> compte_general_numero 
  		AND arbre_classe_3_code <> compte_general_numero 
  		AND arbre_classe_4_code <> compte_general_numero 
  		AND arbre_classe_5_code <> compte_general_numero 
  		AND arbre_classe_6_code <> compte_general_numero
  		AND (
  			arbre_classe_7_id IS DISTINCT FROM compte_general_id OR  
  			arbre_classe_7_code IS DISTINCT FROM compte_general_numero OR 
  			arbre_classe_7_texte IS DISTINCT FROM compte_general_texte 
  		);

    -- Synchronisation entre les tables t_comptes_c et t_comptes cf. intégrité des tables
    DELETE
    FROM compta.t_comptes_c
    WHERE oid NOT IN (
      SELECT oid
      FROM compta.t_comptes
    );
  	  		
  	RETURN 'OK';
  END;