<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>

	<NODE name="INIT" label="INITIALISATIONS ENVIRONNEMENT [FINESS] [FINESS_TEXTE]">
	</NODE>

	<NODE name="COMPTA" label="RÉCUPÉRATION DE LA COMPTA">
	
		<NODE label="Écritures (détail)">
			<sqlcmd><![CDATA[
			
				SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT p_historique_ecritures.*, t_comptes.compte_nonsigne_id
						FROM compta.p_historique_ecritures
						JOIN compta.t_comptes ON p_historique_ecritures.compte_id = t_comptes.oid
						WHERE mois_comptable >= to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric
						', 'temp p_historique_ecritures_in'
					);

				INSERT INTO compta.p_historique_ecritures(
					compte_id,
					mois_comptable,
					montant_credit,
					montant_debit,
					journal_id,
					section_analytique_id,
					clinique_honoraire,
					exercice_comptable,
					type_compta_id,
					compte_extra_id,
					comptabilisee,
					fin_exercice,
					ajustement,
					site_id,
					partenaire_id,
					inter_site,
					ecriture_consolidee,
					date_ecriture,
					cle_originale,
					compte_contrepartie_id,
					texte,
					date_facture_fournisseur,
					piece,
					dossier,
					date_echeance,
					journal_paiement_id,
					mode_paiement_id,
					numero_cheque,
					identifiant_operation,
					is_budget,
					compte_budget_id
					)
				SElECT
					COALESCE(c_comptes.to_oid,0) AS compte_id,
					p_historique_ecritures_in.mois_comptable,
					p_historique_ecritures_in.montant_credit,
					p_historique_ecritures_in.montant_debit,
					COALESCE(c_journaux.to_oid,0) AS journal_id,
					COALESCE(c_sections_analytiques.to_oid,0) AS section_analytique_id,
					p_historique_ecritures_in.clinique_honoraire,
					p_historique_ecritures_in.exercice_comptable,
					COALESCE(c_types_compta.to_oid,0) AS type_compta_id,
					COALESCE(c_comptes_extra.to_oid,0) AS compte_extra_id,
					p_historique_ecritures_in.comptabilisee,
					p_historique_ecritures_in.fin_exercice,
					p_historique_ecritures_in.ajustement,
					p_historique_ecritures_in.site_id + [IPX] AS site_id,
					COALESCE(c_partenaires.to_oid,0) AS partenaire_id,
					p_historique_ecritures_in.inter_site,
					p_historique_ecritures_in.ecriture_consolidee,
					p_historique_ecritures_in.date_ecriture,
					p_historique_ecritures_in.cle_originale,
					COALESCE(c_comptes_contre.to_oid,0) AS compte_contrepartie_id,
					p_historique_ecritures_in.texte,
					p_historique_ecritures_in.date_facture_fournisseur,
					p_historique_ecritures_in.piece,
					p_historique_ecritures_in.dossier,
					p_historique_ecritures_in.date_echeance,
					p_historique_ecritures_in.journal_paiement_id,
					p_historique_ecritures_in.mode_paiement_id,
					p_historique_ecritures_in.numero_cheque,
					p_historique_ecritures_in.identifiant_operation,
					p_historique_ecritures_in.is_budget,
					COALESCE(c_comptes_budget.to_oid,0) AS compte_budget_id
				FROM p_historique_ecritures_in
					LEFT JOIN c_comptes ON p_historique_ecritures_in.compte_nonsigne_id = c_comptes.oid
					LEFT JOIN c_comptes c_comptes_extra ON p_historique_ecritures_in.compte_extra_id = c_comptes_extra.oid
					LEFT JOIN c_journaux ON p_historique_ecritures_in.journal_id = c_journaux.oid
					LEFT JOIN c_sections_analytiques ON p_historique_ecritures_in.section_analytique_id = c_sections_analytiques.oid
					LEFT JOIN c_types_compta ON p_historique_ecritures_in.type_compta_id = c_types_compta.oid
					LEFT JOIN c_partenaires ON p_historique_ecritures_in.partenaire_id = c_partenaires.oid
					LEFT JOIN c_comptes c_comptes_contre ON p_historique_ecritures_in.compte_contrepartie_id = c_comptes_contre.oid
					LEFT JOIN c_comptes c_comptes_budget ON p_historique_ecritures_in.compte_budget_id = c_comptes_budget.oid
										
			]]></sqlcmd>
		</NODE>
	
		<NODE label="Écritures (total)">
			<sqlcmd><![CDATA[
			
				SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT p_historique_ecritures_total.*, t_comptes.compte_nonsigne_id
						FROM compta.p_historique_ecritures_total
						JOIN compta.t_comptes ON p_historique_ecritures_total.compte_id = t_comptes.oid
						WHERE mois_comptable >= to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric
						', 'temp p_historique_ecritures_total_in'
					);

				INSERT INTO compta.p_historique_ecritures_total(
					compte_id,
					mois_comptable,
					montant_credit,
					montant_debit,
					journal_id,
					section_analytique_id,
					clinique_honoraire,
					exercice_comptable,
					type_compta_id,
					compte_extra_id,
					comptabilisee,
					fin_exercice,
					ajustement,
					nombre_ecritures,
					site_id,
					partenaire_id,
					inter_site,
					ecriture_consolidee,
					is_budget,
					compte_budget_id)
				SElECT
					COALESCE(c_comptes.to_oid,0) AS compte_id,
					p_historique_ecritures_total_in.mois_comptable,
					p_historique_ecritures_total_in.montant_credit,
					p_historique_ecritures_total_in.montant_debit,
					COALESCE(c_journaux.to_oid,0) AS journal_id,
					COALESCE(c_sections_analytiques.to_oid,0) AS section_analytique_id,
					p_historique_ecritures_total_in.clinique_honoraire,
					p_historique_ecritures_total_in.exercice_comptable,
					COALESCE(c_types_compta.to_oid,0) AS type_compta_id,
					COALESCE(c_comptes_extra.to_oid,0) AS compte_extra_id,
					p_historique_ecritures_total_in.comptabilisee,
					p_historique_ecritures_total_in.fin_exercice,
					p_historique_ecritures_total_in.ajustement,
					p_historique_ecritures_total_in.nombre_ecritures,
					p_historique_ecritures_total_in.site_id + [IPX] AS site_id,
					COALESCE(c_partenaires.to_oid,0) AS partenaire_id,
					p_historique_ecritures_total_in.inter_site,
					p_historique_ecritures_total_in.ecriture_consolidee,
					p_historique_ecritures_total_in.is_budget,
					COALESCE(c_comptes_budget.to_oid,0) AS compte_budget_id
				FROM p_historique_ecritures_total_in
					LEFT JOIN c_comptes ON p_historique_ecritures_total_in.compte_nonsigne_id = c_comptes.oid
					LEFT JOIN c_comptes c_comptes_extra ON p_historique_ecritures_total_in.compte_extra_id = c_comptes_extra.oid
					LEFT JOIN c_journaux ON p_historique_ecritures_total_in.journal_id = c_journaux.oid
					LEFT JOIN c_sections_analytiques ON p_historique_ecritures_total_in.section_analytique_id = c_sections_analytiques.oid
					LEFT JOIN c_types_compta ON p_historique_ecritures_total_in.type_compta_id = c_types_compta.oid
					LEFT JOIN c_partenaires ON p_historique_ecritures_total_in.partenaire_id = c_partenaires.oid
					LEFT JOIN c_comptes c_comptes_budget ON p_historique_ecritures_total_in.compte_budget_id = c_comptes_budget.oid
										
			]]></sqlcmd>
		</NODE>
		
		<NODE label="Chiffrier">
			<sqlcmd><![CDATA[
			
				SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.p_chiffrier_comptable
						WHERE mois_comptable >= to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric
						', 'temp p_chiffrier_comptable_in'
					);

				INSERT INTO compta.p_chiffrier_comptable(
					mois_comptable, 
					site_id, 
					clinique_honoraire, 
					montant_debit, 
					montant_credit, 
					provider_id)
				SElECT
					p_chiffrier_comptable_in.mois_comptable, 
					p_chiffrier_comptable_in.site_id + [IPX] AS site_id,
					p_chiffrier_comptable_in.clinique_honoraire, 
					p_chiffrier_comptable_in.montant_debit, 
					p_chiffrier_comptable_in.montant_credit, 
					0::bigint AS provider_id
				FROM p_chiffrier_comptable_in

			]]></sqlcmd>
		</NODE>
			
	</NODE>

	<NODE name="PARAM" label="RÉCUPÉRATION DES PARAMÈTRES">
	
		<NODE label="Récupération des tables">

			<NODE label="Sites">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_sites
						WHERE oid <> 0 AND oid IN (SELECT site_id FROM compta.p_historique_ecritures_total)
						', 'temp t_sites_in'
					);

					INSERT INTO compta.t_sites
						(oid, code, code_original, texte, clinique_honoraire)
					SELECT oid + [IPX], code, oid + [IPX], texte, clinique_honoraire
					FROM t_sites_in
					WHERE (oid + [IPX]) NOT IN (SELECT oid FROM compta.t_sites) ;

				]]></sqlcmd>
			</NODE>
			
			<NODE label="Classes de comptes">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_classes_comptes
						WHERE oid <> 0
						', 'temp t_classes_comptes_in'
					);

					INSERT INTO compta.t_classes_comptes
						(code, texte, clinique, honoraire)
					SELECT code, texte, '1', '0'
					FROM t_classes_comptes_in
					WHERE code NOT IN (SELECT code FROM compta.t_classes_comptes) ;

					DROP TABLE IF EXISTS c_classes_comptes;
					CREATE TEMP TABLE c_classes_comptes AS
					SELECT
						*,
						code AS to_code,
						texte AS to_texte,
						0::bigint AS to_oid
					FROM t_classes_comptes_in;

					UPDATE c_classes_comptes
					SET to_oid = t_classes_comptes.oid,
						to_code = t_classes_comptes.code,
						to_texte = t_classes_comptes.texte
					FROM compta.t_classes_comptes
					WHERE c_classes_comptes.code = t_classes_comptes.code ;
	
				
				]]></sqlcmd>
			</NODE>
			
			<NODE label="Types de comptes">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_types_compta
						WHERE oid <> 0
						', 'temp t_types_compta_in'
					);

					INSERT INTO compta.t_types_compta
						(code, code_original, texte, specialite)
					SELECT code, code_original, texte, specialite
					FROM t_types_compta_in
					WHERE code NOT IN (SELECT code FROM compta.t_types_compta) ;

					DROP TABLE IF EXISTS c_types_compta;
					CREATE TEMP TABLE c_types_compta AS
					SELECT
						*,
						code AS to_code,
						texte AS to_texte,
						0::bigint AS to_oid
					FROM t_types_compta_in;

					UPDATE c_types_compta
					SET to_oid = t_types_compta.oid,
						to_code = t_types_compta.code,
						to_texte = t_types_compta.texte
					FROM compta.t_types_compta
					WHERE c_types_compta.code = t_types_compta.code ;

				]]></sqlcmd>
			</NODE>
		
			<NODE label="Partenaires">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_partenaires
						WHERE oid <> 0
						', 'temp t_partenaires_in'
					);

					DROP TABLE IF EXISTS c_partenaires;
					CREATE TEMP TABLE c_partenaires AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex,
						''::text AS to_code,
						''::text AS to_texte,
						0::bigint AS to_oid
					FROM t_partenaires_in;

					DROP TABLE IF EXISTS w_partenaires_to;
					CREATE TEMP TABLE w_partenaires_to AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex
					FROM compta.t_partenaires;

					UPDATE c_partenaires
					SET to_oid = oid + [IPX],
						to_code = code,
						to_texte = texte_court
					WHERE code NOT IN (SELECT code FROM w_partenaires_to);
					
					UPDATE c_partenaires
					SET to_oid = w_partenaires_to.oid,
						to_code = w_partenaires_to.code,
						to_texte = w_partenaires_to.texte_court
					FROM w_partenaires_to
					WHERE to_oid = 0 AND
						c_partenaires.code = w_partenaires_to.code AND
						c_partenaires.texte_soundex = w_partenaires_to.texte_soundex;

					UPDATE c_partenaires
					SET to_oid = oid + [IPX],
						to_code = code || '[SPX]',
						to_texte = texte_court
					WHERE to_oid = 0;
					
					ALTER TABLE c_partenaires ADD CONSTRAINT c_partenaires_pkey PRIMARY KEY(oid);
					
					UPDATE compta.t_partenaires SET code_original = '#'||oid WHERE code_original <> oid::text;
					UPDATE compta.t_partenaires SET code_original = oid WHERE code_original <> oid::text;

					INSERT INTO compta.t_partenaires(
						oid,
						code_original, 
						code, 
						texte, 
						texte_court) 
					SELECT 
						to_oid,
						to_oid AS code_original, 
						to_code,
						texte, 
						texte_court
					FROM c_partenaires
					WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_partenaires);

				]]></sqlcmd>
			</NODE>
			
			<NODE label="Sections analytiques">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_sections_analytiques
						WHERE oid <> 0
						', 'temp t_sections_analytiques_in'
					);

					DROP TABLE IF EXISTS c_sections_analytiques;
					CREATE TEMP TABLE c_sections_analytiques AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex,
						''::text AS to_code,
						''::text AS to_texte,
						0::bigint AS to_oid
					FROM t_sections_analytiques_in;

					DROP TABLE IF EXISTS w_sections_analytiques_to;
					CREATE TEMP TABLE w_sections_analytiques_to AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex
					FROM compta.t_sections_analytiques;

					UPDATE c_sections_analytiques
					SET to_oid = oid + [IPX],
						to_code = code,
						to_texte = texte
					WHERE code NOT IN (SELECT code FROM w_sections_analytiques_to);
					
					UPDATE c_sections_analytiques
					SET to_oid = w_sections_analytiques_to.oid,
						to_code = w_sections_analytiques_to.code,
						to_texte = w_sections_analytiques_to.texte
					FROM w_sections_analytiques_to
					WHERE to_oid = 0 AND
						c_sections_analytiques.code = w_sections_analytiques_to.code AND
						c_sections_analytiques.texte_soundex = w_sections_analytiques_to.texte_soundex;

					UPDATE c_sections_analytiques
					SET to_oid = oid + [IPX],
						to_code = code || '[SPX]',
						to_texte = texte
					WHERE to_oid = 0;
					
					ALTER TABLE c_sections_analytiques ADD CONSTRAINT c_sections_analytiques_pkey PRIMARY KEY(oid);
					
					UPDATE compta.t_sections_analytiques SET code_original = '#'||oid WHERE code_original <> oid::text;
					UPDATE compta.t_sections_analytiques SET code_original = oid WHERE code_original <> oid::text;

					INSERT INTO compta.t_sections_analytiques(
						oid,
						code_original, 
						code, 
						texte) 
					SELECT 
						to_oid,
						to_oid AS code_original, 
						to_code,
						texte
					FROM c_sections_analytiques
					WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_sections_analytiques);

				]]></sqlcmd>
			</NODE>
			
			<NODE label="Journaux">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_journaux
						WHERE oid <> 0
						', 'temp t_journaux_in'
					);

					DROP TABLE IF EXISTS c_journaux;
					CREATE TEMP TABLE c_journaux AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex,
						''::text AS to_code,
						''::text AS to_texte,
						0::bigint AS to_oid
					FROM t_journaux_in;

					DROP TABLE IF EXISTS w_journaux_to;
					CREATE TEMP TABLE w_journaux_to AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex
					FROM compta.t_journaux;

					UPDATE c_journaux
					SET to_oid = oid + [IPX],
						to_code = code,
						to_texte = texte
					WHERE code NOT IN (SELECT code FROM w_journaux_to);
					
					UPDATE c_journaux
					SET to_oid = w_journaux_to.oid,
						to_code = w_journaux_to.code,
						to_texte = w_journaux_to.texte
					FROM w_journaux_to
					WHERE to_oid = 0 AND
						c_journaux.code = w_journaux_to.code AND
						c_journaux.texte_soundex = w_journaux_to.texte_soundex;

					UPDATE c_journaux
					SET to_oid = oid + [IPX],
						to_code = code || '[SPX]',
						to_texte = texte
					WHERE to_oid = 0;
					
					ALTER TABLE c_journaux ADD CONSTRAINT c_journaux_pkey PRIMARY KEY(oid);
					
					UPDATE compta.t_journaux SET code_original = '#'||oid WHERE code_original <> oid::text;
					UPDATE compta.t_journaux SET code_original = oid WHERE code_original <> oid::text;

					INSERT INTO compta.t_journaux(
						oid,
						code_original, 
						code, 
						texte) 
					SELECT 
						to_oid,
						to_oid AS code_original, 
						to_code,
						texte
					FROM c_journaux
					WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_journaux);

				]]></sqlcmd>
			</NODE>

			<NODE label="Comptes">
			
				<sqlcmd><![CDATA[

					-- Partenaires
					SELECT base.cti_copy_table('dbname=[DBNAME] host=[DBHOST] port=[DBPORT] user=[DBUSERNAME] password=[DBPASSWORD]', '
						SELECT *
						FROM compta.t_comptes
						WHERE oid <> 0 AND t_comptes.numero NOT LIKE ''%(C)'' AND t_comptes.numero NOT LIKE ''%(D)''
						', 'temp.t_comptes_in'
					);
					
					-- Enlever les tirets car utilisés pour siffixer les comptes en conso
					UPDATE temp.t_comptes_in
					SET numero = replace(numero,'-','_')
					WHERE numero like '%-%'
					;

					UPDATE compta.t_comptes
					SET numero = replace(t_comptes.numero,'-','_')
					FROM temp.t_comptes_in
					WHERE replace(t_comptes.numero,'-','_') = t_comptes_in.numero AND
						t_comptes.numero LIKE '%-%'
					;

					DROP TABLE IF EXISTS c_comptes;
					CREATE TEMP TABLE c_comptes AS
					SELECT
						*,
						base.cti_soundex_nom(texte) AS texte_soundex,
						''::text AS to_numero,
						''::text AS to_texte,
						'0'::text AS q_new,
						0::bigint AS to_oid,
						0::bigint AS to_type_compta_id,
						0::bigint AS to_compte_general_id,
						0::bigint AS to_partenaire_id,
						0::bigint AS to_classe_1_id,
						0::bigint AS to_classe_2_id,
						0::bigint AS to_classe_3_id,
						0::bigint AS to_classe_4_id,
						0::bigint AS to_classe_5_id,
						0::bigint AS to_classe_6_id,
						0::bigint AS to_compte_nonsigne_id
					FROM temp.t_comptes_in;
					
					UPDATE c_comptes
					SET to_type_compta_id = c_types_compta.to_oid
					FROM c_types_compta
					WHERE c_comptes.type_compta_id = c_types_compta.oid
					;
					
					UPDATE c_comptes
					SET to_partenaire_id = c_partenaires.to_oid
					FROM c_partenaires
					WHERE c_comptes.partenaire_id = c_partenaires.oid
					;
					
					UPDATE c_comptes
					SET to_classe_1_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_1_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes
					SET to_classe_2_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_2_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes
					SET to_classe_3_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_3_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes
					SET to_classe_4_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_4_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes
					SET to_classe_5_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_5_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes
					SET to_classe_6_id = c_classes_comptes.to_oid
					FROM c_classes_comptes
					WHERE c_comptes.classe_6_id = c_classes_comptes.oid
					;
					
					UPDATE c_comptes SET
						to_oid = t_comptes.oid,
						to_numero = t_comptes.numero
					FROM compta.t_comptes
					WHERE c_comptes.numero = split_part(t_comptes.numero,'-',1) AND
						c_comptes.to_type_compta_id = t_comptes.type_compta_id AND
						texte_soundex = base.cti_soundex_nom(t_comptes.texte) AND
						c_comptes.numero NOT LIKE '%(C)%' AND
						c_comptes.numero NOT LIKE '%(D)%' AND
						t_comptes.numero NOT LIKE '%(C)%' AND
						t_comptes.numero NOT LIKE '%(D)%'
					;

					UPDATE c_comptes SET
						q_new = '1',
						to_oid = nextval('compta.s_comptes'::regclass),
						to_numero = c_comptes.numero || '-' || (nb+1)
					FROM 
						(
							SELECT type_compta_id, split_part(numero,'-',1) AS numero, (MAX(CASE WHEN split_part(numero,'-',2) <> '' AND split_part(numero,'-',2) BETWEEN '0' AND '9' THEN split_part(numero,'-',2) ELSE '1' END))::numeric AS nb
							FROM compta.t_comptes
							WHERE numero NOT LIKE '%(C)%' AND numero NOT LIKE '%(D)%'
							GROUP BY 1,2
						) subview
					WHERE c_comptes.to_oid = 0 AND
						c_comptes.numero NOT LIKE '%(C)%' AND
						c_comptes.numero NOT LIKE '%(D)%' AND
						(
							c_comptes.numero = subview.numero 
						) AND
						c_comptes.to_type_compta_id = subview.type_compta_id
					;

					UPDATE c_comptes SET
						q_new = '1',
						to_oid = nextval('compta.s_comptes'::regclass),
						to_numero = c_comptes.numero
					WHERE c_comptes.to_oid = 0 AND
						c_comptes.numero NOT LIKE '%(C)%' AND
						c_comptes.numero NOT LIKE '%(D)%'
					;

					UPDATE c_comptes 
					SET to_numero = c_comptes_nonsigne.numero || '(C)'
					FROM c_comptes c_comptes_nonsigne
					WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid AND
						c_comptes.numero LIKE '%(C)'
						;
					UPDATE c_comptes 
					SET to_numero = c_comptes_nonsigne.numero || '(D)'
					FROM c_comptes c_comptes_nonsigne
					WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid AND
						c_comptes.numero LIKE '%(D)'
						;

					UPDATE c_comptes SET
						to_oid = t_comptes.oid
					FROM compta.t_comptes
					WHERE c_comptes.numero = t_comptes.numero AND
						c_comptes.to_type_compta_id = t_comptes.type_compta_id AND
						(
						c_comptes.numero LIKE '%(C)' OR
						c_comptes.numero LIKE '%(D)' 
						)
					;

					UPDATE c_comptes SET
						q_new = '1',
						to_oid = nextval('compta.s_comptes'::regclass)
					WHERE c_comptes.to_oid = 0 AND
						(
						c_comptes.numero LIKE '%(C)' OR
						c_comptes.numero LIKE '%(D)' 
						)
					;
					
					UPDATE c_comptes
					SET to_compte_general_id = c_comptes_generaux.to_oid
					FROM c_comptes c_comptes_generaux
					WHERE c_comptes.compte_general_id = c_comptes_generaux.oid
					;
					
					UPDATE c_comptes
					SET to_compte_nonsigne_id = c_comptes_nonsigne.to_oid
					FROM c_comptes c_comptes_nonsigne
					WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid
					;
					
					INSERT INTO compta.t_comptes(
						type_compta_id, numero, texte, oid, 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)
					SELECT
						to_type_compta_id, to_numero, texte, to_oid, to_compte_general_id, clinique_honoraire, 
						banque, etat, to_classe_1_id, to_classe_2_id, to_classe_3_id, to_classe_4_id, 
						to_classe_5_id, to_classe_6_id, solde_initial, collectif, 0, 
						numero_extra, texte_extra, to_partenaire_id, inter_site
					FROM c_comptes
					WHERE to_oid NOT IN (SElECT oid FROM compta.t_comptes)
					;
					
					UPDATE compta.t_comptes
					SET partenaire_id = c_comptes.to_partenaire_id
					FROM c_comptes
					WHERE t_comptes.oid = c_comptes.to_oid AND
						t_comptes.partenaire_id <> c_comptes.to_partenaire_id
					;
					
					UPDATE compta.t_comptes
					SET compte_nonsigne_numero = t_comptes_nonsigne.numero
					FROM compta.t_comptes t_comptes_nonsigne
					WHERE t_comptes.compte_nonsigne_id = t_comptes_nonsigne.oid AND
						t_comptes.compte_nonsigne_numero IS DISTINCT FROM t_comptes_nonsigne.numero
					;

				]]></sqlcmd>
			</NODE>

		</NODE>

	</NODE>
	
	<NODE name="POST" label="TRAITEMENTS COMPLÉMENTAIRES">
	
		<NODE label="Ajustement paramètres">
			<sqlcmd><![CDATA[
		
				UPDATE compta.t_sites SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0;
				INSERT INTO compta.t_sites(oid, code, clinique_honoraire, code_original, texte) 
				SELECT 0, chr(127) || '***', '', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_sites);
				
				UPDATE compta.t_partenaires SET code = chr(127) || '****', texte = 'Non renseigné', texte_court = 'Non renseigné' WHERE oid = 0;
				INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) 
				SELECT 0, chr(127) || '****', '', 'Non renseigné', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires);
				
				UPDATE compta.t_journaux SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0;
				INSERT INTO compta.t_journaux(oid, code, clinique_honoraire, code_original, texte) 
				SELECT 0, chr(127) || '***', '', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_journaux);
	
				UPDATE compta.t_sections_analytiques SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0;
				INSERT INTO compta.t_sections_analytiques(oid, code, code_original, texte) 
				SELECT 0, chr(127) || '***', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_sections_analytiques);

			]]></sqlcmd>
		
		</NODE>
		
		
		<NODE label="Classes des comptes">
			<sqlcmd><![CDATA[
			
				UPDATE compta.t_classes_comptes
				SET code = trim(code)
				WHERE code <> trim(code);
		
				INSERT into compta.t_classes_comptes (code, texte) 
				(SELECT DISTINCT substr(numero, 1 , 1), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 1) NOT IN (SELECT code FROM compta.t_classes_comptes)) 
				UNION 
				SELECT DISTINCT substr(numero, 1 , 2), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 2) NOT IN (SELECT code FROM compta.t_classes_comptes) 
				UNION 
				SELECT DISTINCT substr(numero, 1 , 3), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 3) NOT IN (SELECT code FROM compta.t_classes_comptes) 
				UNION 
				SELECT DISTINCT substr(numero, 1 , 4), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 4) NOT IN (SELECT code FROM compta.t_classes_comptes) 
				UNION 
				SELECT DISTINCT substr(numero, 1 , 5), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 5) NOT IN (SELECT code FROM compta.t_classes_comptes) 
				UNION 
				SELECT DISTINCT substr(numero, 1 , 6), '' FROM compta.t_comptes  
				WHERE compte_general_id = oid AND substr(numero, 1 , 6) NOT IN (SELECT code FROM compta.t_classes_comptes) ;
		
		
		

				UPDATE compta.t_classes_comptes SET texte = '' WHERE texte IS NULL;
	
	

				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  ;
				
				
	
				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  ;
				
				
	
				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  ;
				
				
				
				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  ;
				
				
				
				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  ;
				
				
				
				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  ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '0', honoraire = '0' ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET clinique = '1' 
						WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				

				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
				
				UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ;
				
				
								
				
			]]></sqlcmd>
		
		</NODE>
		
		

		
		
		<NODE label="Tables répliquées">
		
			
			<sqlcmd><![CDATA[
			
				SELECT compta.cti_reorganize_comptes_c();
				
				
				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 ;
				
				
				
				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  ;
				
				


				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 ;
				
				


				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 ;
				
				


				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 ;
				
				


				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 ;
				
				
				

				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 ;
							
							
							
				SELECT compta.cti_update_schema_classes('*ALL');

			]]></sqlcmd>
		
		</NODE>
        
        <NODE label="Budget">
			<sqlcmd><![CDATA[
		
				SELECT compta.cti_gen_budget(0);		
						
			]]></sqlcmd>
		
		</NODE>
		
		<NODE label="Controle chiffrier">
			<sqlcmd><![CDATA[
				SELECT compta.cti_reorganize_controle_chiffrier();
			]]></sqlcmd>
		</NODE>
		
		<NODE label="Référencement paramètres">
			
			<sqlcmd><![CDATA[
			
				TRUNCATE compta.p_mois_comptables;
					INSERT INTO compta.p_mois_comptables (mois_comptable, texte, exercice_comptable, annee, mois, texte_court, exercice_mois_comptable_1) 
					SELECT mois, texte, exercice_comptable, annee, numero_mois, texte_court, exercice_mois_comptable_1 
					FROM base.p_calendrier_mois 
					WHERE mois not in (select mois_comptable from compta.p_mois_comptables) 
					AND mois IN (select mois_comptable from compta.p_historique_ecritures);

				
				TRUNCATE compta.p_oids;

				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'journaux_c', journal_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'C' AND journal_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'journaux_c')
					GROUP BY 1,2;
				
				INSERT INTO compta.p_oids (code_table, oid)
					SELECT 'journaux_h', journal_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'H' AND journal_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'journaux_h')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'comptes_c', compte_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'C' AND compte_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_c') 
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'comptes_h', compte_id 
					FROM compta.v_historique_ecritures_total_1
					WHERE clinique_honoraire = 'H' AND compte_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_h') 
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'comptes_extra_c', compte_extra_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'C' 
					AND compte_extra_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_extra_c')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'comptes_extra_h', compte_extra_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'H' 
					AND compte_extra_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_extra_h')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'types_compta_c', type_compta_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'C' 
					AND type_compta_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'types_compta_c')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'types_compta_h', type_compta_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'H' 
					AND type_compta_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'types_compta_h')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'types_compta_extra_c', type_compta_extra_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'C' 
					AND type_compta_extra_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'types_compta_extra_c')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'types_compta_extra_h', type_compta_extra_id 
					FROM compta.v_historique_ecritures_total_1 
					WHERE clinique_honoraire = 'H' 
					AND type_compta_extra_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'types_compta_extra_h')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid)
					SELECT 'sections_analytiques_c', section_analytique_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'C' 
					AND section_analytique_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'sections_analytiques_c')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'partenaires_c', partenaire_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'C' 
					AND partenaire_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'partenaires_c')
					GROUP BY 1,2;
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'partenaires_h', partenaire_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'H' 
					AND partenaire_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'partenaires_h')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'sites_c', site_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'C' 
					AND site_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'sites_c')
					GROUP BY 1,2;
				
				
				INSERT INTO compta.p_oids (code_table, oid) 
					SELECT 'sites_h', site_id 
					FROM compta.p_historique_ecritures_total 
					WHERE clinique_honoraire = 'H' 
					AND site_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'sites_h')
					GROUP BY 1,2;
				
				
				
				SELECT compta.cti_update_schema_classes('*ALL');

				
			]]></sqlcmd>
		</NODE>
		
		<NODE label="Réorganisation tables">
			
			<sqlcmd><![CDATA[
			
				SELECT base.cti_vacuum_table('compta','p_historique_ecritures_total');
			
				SELECT base.cti_reindex_schema('compta');

				VACUUM FULL compta.t_comptes;
				VACUUM FULL compta.t_comptes_c;
				VACUUM FULL compta.t_classes_comptes;
				
			]]></sqlcmd>
		</NODE>
		
		<NODE label="Vide cache">
			<sqlcmd><![CDATA[
			
				SELECT cti_cache_reload as log from cache.cti_cache_reload('iCTI_compta', true);
				
			]]></sqlcmd>
		</NODE>
					
		
		
	</NODE>

	<NODE name="DISABLE_INDEX" label="DÉSACTIVATION INDEX">
	
		<NODE label="Ecritures">
			<sqlcmd><![CDATA[
				
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_2');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_3');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_4');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_5');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_6');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_7');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_8');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_9');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_10');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_11');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_12');
				SELECT base.cti_disable_index('compta', 'i_historique_ecritures_13');

			]]></sqlcmd>
		</NODE>
					
		
	</NODE>
	
	<NODE name="ENABLE_INDEX" label="RÉACTIVATION INDEX">
	
		<NODE label="Ecritures">
			<sqlcmd><![CDATA[
				
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_1');				
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_2');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_3');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_4');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_5');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_6');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_7');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_8');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_9');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_10');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_11');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_12');
				SELECT base.cti_enable_index('compta', 'i_historique_ecritures_13');
				
			]]></sqlcmd>
		</NODE>
				
		
	</NODE>

	<NODE name="RAZ" label="RAZ BASE">

		<NODE label="Nettoyage des tables">
			<sqlcmd><![CDATA[

				TRUNCATE compta.p_historique_ecritures;
				TRUNCATE compta.p_historique_ecritures_total;
				TRUNCATE compta.p_chiffrier_comptable;

			]]></sqlcmd>
		</NODE>

	</NODE>

</ROOT>