return: text
lang: plpgsql
parameters:
  p0:
    type: bigint
    name: i_oid
src: |
  DECLARE	
  	result TEXT;
  BEGIN
  
  	-- Table de travail
  	IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_gen_budget') THEN
  	DROP TABLE IF EXISTS w_cti_gen_budget;
  	CREATE TEMP TABLE w_cti_gen_budget(
  		oid bigint,
  		import_ligne text, 
  		import_compte_budgetaire text,
  		import_compte_texte text, 
  		import_include_comptes text,
  		import_exclude_comptes text,
  		import_montant_exercice text, 
  		import_type_ventilation text, 
  		import_taux01 text, 
  		import_taux02 text, 
  		import_taux03 text, 
  		import_taux04 text, 
  		import_taux05 text, 
  		import_taux06 text, 
  		import_taux07 text, 
  		import_taux08 text, 
  		import_taux09 text, 
  		import_taux10 text, 
  		import_taux11 text, 
  		import_taux12 text,
  		montant_exercice numeric,
  		taux01 numeric, 
  		taux02 numeric, 
  		taux03 numeric, 
  		taux04 numeric, 
  		taux05 numeric, 
  		taux06 numeric, 
  		taux07 numeric, 
  		taux08 numeric, 
  		taux09 numeric, 
  		taux10 numeric, 
  		taux11 numeric, 
  		taux12 numeric,
  		import_section_analytique text
  	);
  	END IF;
  
  
  	-- lignes de budget issues du copier coller excel
  	TRUNCATE w_cti_gen_budget;
  
  	
  	INSERT INTO w_cti_gen_budget(oid, import_ligne)
  	SELECT 
  		oid,
  		trim(import_ligne) AS import_ligne
  	FROM 
  		(
  		SELECT oid, unnest(data_array) AS import_ligne 
  		FROM
  		(
  		SELECT
  			t_budget.oid, string_to_array(replace(import_data,E'\t','||'),E'\r') AS data_array
  		FROM compta.t_budget
  		WHERE is_actif = '1' AND
  			(
  			t_budget.oid = i_oid OR
  			i_oid = 0
  			)
  		) subview 
  		) subview 
  	WHERE trim(import_ligne) <> '';
  
  	-- Découpage champs
  	UPDATE w_cti_gen_budget SET
  		import_compte_budgetaire = trim(split_part(import_ligne,'||',1)),
  		import_compte_texte = trim(split_part(import_ligne,'||',2)),
  		import_include_comptes = trim(split_part(import_ligne,'||',3)),
  		import_exclude_comptes = trim(split_part(import_ligne,'||',4)),
  		import_montant_exercice = trim(split_part(import_ligne,'||',5)),
  		import_type_ventilation = trim(split_part(import_ligne,'||',6)),
  		import_taux01 = trim(split_part(import_ligne,'||',7)),
  		import_taux02 = trim(split_part(import_ligne,'||',8)),
  		import_taux03 = trim(split_part(import_ligne,'||',9)),
  		import_taux04 = trim(split_part(import_ligne,'||',10)),
  		import_taux05 = trim(split_part(import_ligne,'||',11)),
  		import_taux06 = trim(split_part(import_ligne,'||',12)),
  		import_taux07 = trim(split_part(import_ligne,'||',13)),
  		import_taux08 = trim(split_part(import_ligne,'||',14)),
  		import_taux09 = trim(split_part(import_ligne,'||',15)),
  		import_taux10 = trim(split_part(import_ligne,'||',16)),
  		import_taux11 = trim(split_part(import_ligne,'||',17)),
  		import_taux12 = trim(split_part(import_ligne,'||',18)),
  		import_section_analytique = trim(split_part(import_ligne,'||',19))
  	;
  
  	-- Champs numériques
  	UPDATE w_cti_gen_budget SET
  		montant_exercice = CASE WHEN import_montant_exercice <> '' THEN base.cti_to_number(translate(import_montant_exercice ,',€? ','.')) ELSE 0 END,
  		taux01 = CASE WHEN import_taux01 <> '' THEN base.cti_to_number(translate(import_taux01 ,',€? ','.')) ELSE 0 END,
  		taux02 = CASE WHEN import_taux02 <> '' THEN base.cti_to_number(translate(import_taux02 ,',€? ','.')) ELSE 0 END,
  		taux03 = CASE WHEN import_taux03 <> '' THEN base.cti_to_number(translate(import_taux03 ,',€? ','.')) ELSE 0 END,
  		taux04 = CASE WHEN import_taux04 <> '' THEN base.cti_to_number(translate(import_taux04 ,',€? ','.')) ELSE 0 END,
  		taux05 = CASE WHEN import_taux05 <> '' THEN base.cti_to_number(translate(import_taux05 ,',€? ','.')) ELSE 0 END,
  		taux06 = CASE WHEN import_taux06 <> '' THEN base.cti_to_number(translate(import_taux06 ,',€? ','.')) ELSE 0 END,
  		taux07 = CASE WHEN import_taux07 <> '' THEN base.cti_to_number(translate(import_taux07 ,',€? ','.')) ELSE 0 END,
  		taux08 = CASE WHEN import_taux08 <> '' THEN base.cti_to_number(translate(import_taux08 ,',€? ','.')) ELSE 0 END,
  		taux09 = CASE WHEN import_taux09 <> '' THEN base.cti_to_number(translate(import_taux09 ,',€? ','.')) ELSE 0 END,
  		taux10 = CASE WHEN import_taux10 <> '' THEN base.cti_to_number(translate(import_taux10 ,',€? ','.')) ELSE 0 END,
  		taux11 = CASE WHEN import_taux11 <> '' THEN base.cti_to_number(translate(import_taux11 ,',€? ','.')) ELSE 0 END,
  		taux12 = CASE WHEN import_taux12 <> '' THEN base.cti_to_number(translate(import_taux12 ,',€? ','.')) ELSE 0 END
  		;
  
  	-- Génération des tables budget
  	DELETE FROM compta.t_budget_compte
  	WHERE budget_id IN (SELECT oid FROM w_cti_gen_budget)
  	;
  
  	-- Budget structuré
  	INSERT INTO compta.t_budget_compte(
  		budget_id, 
  		numero, 
  		texte, 
  		clinique_honoraire, 
  		section_analytique_code,
  		include_numero, 
  		exclude_numero, 
  		montant_budget_exercice, 
  		mode_ventilation, 
  		taux_budget_mensuel)
          SELECT
  		oid,
  		import_compte_budgetaire,
  		import_compte_texte,
  		'C'::text AS clinique_honoraire,
  		import_section_analytique,
  		import_include_comptes,
  		import_exclude_comptes,
  		montant_exercice,
  		import_type_ventilation,
  		Array[
  			taux01, 
  			taux02, 
  			taux03, 
  			taux04, 
  			taux05, 
  			taux06, 
  			taux07, 
  			taux08, 
  			taux09, 
  			taux10, 
  			taux11, 
  			taux12
  			]
  	FROM w_cti_gen_budget
  	WHERE import_compte_budgetaire <> '' AND
  		import_compte_budgetaire BETWEEN '1' AND '99999999'  AND
  		import_include_comptes <> ''
  	;
  
  
  
  	-- Ajout compte à zéro pour jointure budget
  	INSERT INTO compta.t_types_compta(
              oid, code_original, code, texte, specialite)
  	SELECT 0, '', 'NR', 'Non renseigné', ''
  	WHERE 0 NOT IN (SELECT oid FROM compta.t_types_compta)
  	;
  
  	INSERT INTO compta.t_classes_comptes
              (oid, code, texte, clinique, honoraire)
  	SELECT 0, '0', 'Non renseigné', '0', '0'
  	WHERE 0 NOT IN (SELECT oid FROM compta.t_classes_comptes)
  	;
  
  	INSERT INTO compta.t_comptes
              (oid, type_compta_id, numero, texte, clinique_honoraire, compte_general_id)
  	SELECT 0, 0, '00000000', 'Non renseigné', 'C', 0
  	WHERE 0 NOT IN (SELECT oid FROM compta.t_comptes)
  	;
  
  	INSERT INTO compta.t_comptes(
  		type_compta_id, numero, texte, clinique_honoraire)
  	SELECT subview.type_compta_id, 
  		t_budget_compte.numero,
  		t_budget_compte.texte,
  		t_budget_compte.clinique_honoraire
  	FROM compta.t_budget_compte
  	JOIN
  	(
  		SELECT 
  			substr(numero,1,1) AS classe, MAX(type_compta_id) AS type_compta_id
  		FROM compta.t_comptes
  		WHERE oid = compte_general_id 
  		GROUP BY 1
  		ORDER BY count(*) DESC
  	) subview ON substr(numero,1,1)= subview.classe
  	LEFT JOIN compta.t_comptes ON
  		t_budget_compte.numero = t_comptes.numero AND
  		subview.type_compta_id = t_comptes.type_compta_id
  	WHERE t_budget_compte.numero BETWEEN '1' AND '99999999' AND
  		t_comptes.oid IS NULL
  	;
  
  	UPDATE compta.t_comptes
  	SET compte_general_id = oid
  	WHERE (compte_general_id IS NULL OR compte_general_id = 0) AND
  		numero IN (SELECT numero FROM compta.t_budget_compte)
  	;
  
  	PERFORM compta.cti_reorganize_comptes_c();
  
  	PERFORM base.cti_update_classes('compta', 't_comptes_c', 'CPT','');
  
  	UPDATE compta.t_budget_compte
  	SET compte_budget_id = t_comptes.oid
  	FROM compta.t_comptes
  	WHERE t_budget_compte.numero = t_comptes.numero AND
  		t_budget_compte.numero BETWEEN '1' AND '99999999' AND
  		compte_budget_id IS DISTINCT FROM t_comptes.oid
  	;
  
  
  
  	-- Table d'association lignes budget - comptes
  	DROP TABLE IF EXISTS w_budget_compte_compte;
  	CREATE TEMP TABLE w_budget_compte_compte AS
  	SELECT t_budget_compte.oid AS in_budget_compte_id, t_comptes.oid AS in_compte_id
  	FROM compta.t_budget_compte
  	JOIN compta.t_comptes ON
  		t_comptes.numero ILIKE ANY (string_to_array(replace(include_numero,'*','%'),' ')) AND
  		NOT (t_comptes.numero ILIKE ANY (string_to_array(replace(exclude_numero,'*','%'),' ')))
  	;
  
  
  	INSERT INTO compta.t_budget_compte_compte 
  		(budget_compte_id, compte_id)
  	SELECT in_budget_compte_id, in_compte_id
  	FROM w_budget_compte_compte
  	LEFT JOIN compta.t_budget_compte_compte ON
  		in_budget_compte_id = budget_compte_id AND
  		in_compte_id = compte_id
  	WHERE budget_compte_id IS NULL
  	;
  
  	DELETE FROM compta.t_budget_compte_compte
  	USING
  	(
  		SELECT budget_compte_id, compte_id
  		FROM compta.t_budget_compte_compte
  		LEFT JOIN w_budget_compte_compte ON
  			in_budget_compte_id = budget_compte_id AND
  			in_compte_id = compte_id
  		WHERE in_budget_compte_id IS NULL
  	) subview
  	WHERE t_budget_compte_compte.budget_compte_id = subview.budget_compte_id AND
  		t_budget_compte_compte.compte_id = subview.compte_id
  	;
  
  
  	
  
  
  
  
  
  	UPDATE compta.p_historique_ecritures_total p_historique_ecritures
  	SET compte_budget_id = t_budget_compte.compte_budget_id
  	FROM compta.t_budget_compte_compte,
  		compta.t_budget_compte,
  		compta.t_budget
  	WHERE t_budget_compte_compte.compte_id = p_historique_ecritures.compte_id AND
  		t_budget_compte_compte.budget_compte_id = t_budget_compte.oid AND
  		t_budget_compte.budget_id = t_budget.oid AND
  		t_budget.exercice_comptable = p_historique_ecritures.exercice_comptable AND
  		t_budget.site_id = p_historique_ecritures.site_id AND
  		p_historique_ecritures.compte_budget_id IS DISTINCT FROM t_budget_compte.compte_budget_id
  	;
  
  	UPDATE compta.p_historique_ecritures
  	SET compte_budget_id = t_budget_compte.compte_budget_id
  	FROM compta.t_budget_compte_compte,
  		compta.t_budget_compte,
  		compta.t_budget
  	WHERE t_budget_compte_compte.compte_id = p_historique_ecritures.compte_id AND
  		t_budget_compte_compte.budget_compte_id = t_budget_compte.oid AND
  		t_budget_compte.budget_id = t_budget.oid AND
  		t_budget.exercice_comptable = p_historique_ecritures.exercice_comptable AND
  		t_budget.site_id = p_historique_ecritures.site_id AND
  		p_historique_ecritures.compte_budget_id IS DISTINCT FROM t_budget_compte.compte_budget_id
  	;
  
  	UPDATE compta.p_historique_ecritures_total
  	SET compte_budget_id = compte_nonsigne_id
  	FROM compta.t_comptes 
  	WHERE compte_id = t_comptes.oid AND
  		(compte_budget_id = 0 OR compte_budget_id IS NULL)
  	;
  
  	UPDATE compta.p_historique_ecritures
  	SET compte_budget_id = compte_nonsigne_id
  	FROM compta.t_comptes 
  	WHERE compte_id = t_comptes.oid AND
  		(compte_budget_id = 0 OR compte_budget_id IS NULL)
  	;
  	
  	UPDATE compta.p_historique_ecritures_total
  	SET compte_budget_id = 0
  	WHERE compte_budget_id IS NULL
  	;
  
  	UPDATE compta.p_historique_ecritures
  	SET compte_budget_id = 0
  	WHERE compte_budget_id IS NULL
  	;
  
  	
  	-- Ventilation mensuelle
  
  	-- Mois
  	UPDATE compta.t_budget
  	SET mois = subview.mois
  	FROM
  	(
  	SELECT oid, base.cti_array_accum(mois) AS mois
  	FROM
  	(
  	SELECT t_budget.oid, p_calendrier_mois.mois 
  	FROM base.p_calendrier_mois
  	JOIN compta.t_budget ON t_budget.exercice_comptable = p_calendrier_mois.exercice_comptable
  	ORDER BY t_budget.oid, p_calendrier_mois.mois
  	) subview
  	GROUP BY 1
  	) subview
  	WHERE t_budget.oid = subview.oid AND
  		t_budget.mois IS DISTINCT FROM subview.mois
  	;
  		
  
  	-- Taux de ventilation
  
  	-- Prorata temporis
  	UPDATE compta.t_budget_compte
  	SET taux_budget_mensuel = 
  		ARRAY[
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12,
  			1.00/12
  		]
  	WHERE mode_ventilation = '1'
  	;
  
  	
  
  	--Saisonnalisé	
  
  	UPDATE compta.t_budget_compte
  	SET taux_budget_mensuel = subview.taux_budget_mensuel
  	FROM
  	(
  		SELECT 
  			t_budget_compte.oid, 
  			t_budget_compte.numero, 
  			Array[
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[1] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[2] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[3] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[4] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[5] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[6] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[7] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[8] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[9] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[10] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[11] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)),
  				base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[12] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit))
  			] AS taux_budget_mensuel,
  			SUM(montant_debit-montant_credit)
  		FROM compta.p_historique_ecritures
  		JOIN compta.t_budget ON p_historique_ecritures.exercice_comptable = t_budget.exercice_comptable -1
  		JOIN compta.t_budget_compte ON budget_id = t_budget.oid AND mode_ventilation = '2'
  		JOIN compta.t_budget_compte_compte ON t_budget_compte.oid = budget_compte_id
  		WHERE p_historique_ecritures.compte_id = t_budget_compte_compte.compte_id AND
  			is_budget IS DISTINCT FROM '1'
  		GROUP BY 1,2
  	) subview
  	WHERE t_budget_compte.oid = subview.oid
  	;
  
  	-- Montant saisis
  
  	UPDATE compta.t_budget_compte
  	SET taux_budget_mensuel = 
  		ARRAY[
  			base.cti_division(taux_budget_mensuel[1],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[2],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[3],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[4],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[5],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[6],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[7],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[8],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[9],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[10],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[11],montant_budget_exercice),
  			base.cti_division(taux_budget_mensuel[12],montant_budget_exercice)
  		]
  	WHERE mode_ventilation = '8'
  	;
  
  		
  	-- Ajustement dernier mois (arrondis)
  	UPDATE compta.t_budget_compte SET
  		montant_budget_mensuel = 
  		ARRAY[
  			round(montant_budget_exercice * taux_budget_mensuel[1],2),
  			round(montant_budget_exercice * taux_budget_mensuel[2],2),
  			round(montant_budget_exercice * taux_budget_mensuel[3],2),
  			round(montant_budget_exercice * taux_budget_mensuel[4],2),
  			round(montant_budget_exercice * taux_budget_mensuel[5],2),
  			round(montant_budget_exercice * taux_budget_mensuel[6],2),
  			round(montant_budget_exercice * taux_budget_mensuel[7],2),
  			round(montant_budget_exercice * taux_budget_mensuel[8],2),
  			round(montant_budget_exercice * taux_budget_mensuel[9],2),
  			round(montant_budget_exercice * taux_budget_mensuel[10],2),
  			round(montant_budget_exercice * taux_budget_mensuel[11],2),
  			0.00
  		]
  	;
  
  	UPDATE compta.t_budget_compte SET
  		montant_budget_mensuel[12] =
  		montant_budget_exercice - 
  			montant_budget_mensuel[1] - 
  			montant_budget_mensuel[2] - 
  			montant_budget_mensuel[3] - 
  			montant_budget_mensuel[4] - 
  			montant_budget_mensuel[5] - 
  			montant_budget_mensuel[6] - 
  			montant_budget_mensuel[7] - 
  			montant_budget_mensuel[8] - 
  			montant_budget_mensuel[9] - 
  			montant_budget_mensuel[10] - 
  			montant_budget_mensuel[11]
  	;
  
  	-- Génération en comptabilité
  	DELETE FROM compta.p_historique_ecritures
  	WHERE is_budget = '1'
  	;
  
  	INSERT INTO compta.p_historique_ecritures(
  		compte_id,
  		date_ecriture,
  		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,
  		cle_originale,
  		texte,
  		date_facture_fournisseur,
  		date_echeance,
  		numero_cheque,
  		site_id,
  		is_budget,
  		compte_budget_id)
  	SELECT
  		t_budget_compte.compte_budget_id,
  		(t_budget.mois[i]||'01')::date AS date_ecriture,
  		t_budget.mois[i] AS mois_comptable,
  		CASE WHEN t_budget_compte.numero LIKE '7%' OR t_budget_compte.numero BETWEEN '1' AND '59999999' OR t_budget_compte.numero BETWEEN '8' AND '99999999' AND montant_budget_mensuel[i] > 0 THEN montant_budget_mensuel[i] ELSE 0 END AS montant_credit,
  		CASE WHEN t_budget_compte.numero LIKE '6%' OR t_budget_compte.numero BETWEEN '1' AND '59999999' OR t_budget_compte.numero BETWEEN '8' AND '99999999' AND montant_budget_mensuel[i] < 0 THEN 0-montant_budget_mensuel[i] ELSE 0 END AS montant_debit,
  		0::bigint AS journal_id,
  		COALESCE(t_sections_analytiques.oid,0::bigint) AS section_analytique_id,
  		t_budget_compte.clinique_honoraire,
  		t_budget.exercice_comptable,
  		t_comptes.type_compta_id,
  		t_budget_compte.compte_budget_id AS compte_extra_id,
  		'0'::text AS comptabilisee,
  		'0'::text AS fin_exercice,
  		'0'::text AS ajustement,
  		t_budget.oid AS cle_originale,
  		'Budget ' || t_budget.exercice_comptable || ' ' || t_budget.texte,
  		'20991231'::date AS date_facture_fournisseur,
  		'20991231'::date AS date_echeance,
  		''::text AS numero_cheque,
  		t_budget.site_id,
  		'1'::text AS is_budget,
  		t_budget_compte.compte_budget_id
  	FROM compta.t_budget
  	JOIN compta.t_budget_compte ON budget_id = t_budget.oid
  	JOIN compta.t_comptes ON t_budget_compte.compte_budget_id = t_comptes.oid
  	LEFT JOIN compta.t_sections_analytiques ON t_budget_compte.section_analytique_code = t_sections_analytiques.code AND t_budget_compte.section_analytique_code <> ''
  	JOIN (
  		SELECT generate_series(1,12) AS i
  		) subview ON 1=1
  	WHERE is_actif = '1'
  	;
  
  	-- Regénération écritures 'total'
  	DELETE FROM compta.p_historique_ecritures_total WHERE is_budget = '1'  ;
  	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, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice,  
  		ajustement, inter_site, ecriture_consolidee, 
  		is_budget,
  		compte_budget_id,
  		nombre_ecritures) 
  	SELECT  
  		compte_id, mois_comptable, montant_credit, montant_debit, journal_id,  
  		section_analytique_id, clinique_honoraire, exercice_comptable,  
  		type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice,  
  		ajustement, inter_site, ecriture_consolidee,
  		is_budget,
  		compte_budget_id, 
  		1 
  	FROM compta.p_historique_ecritures 
  	WHERE is_budget = '1' 
  	;
  
  	-- Ajout des oid des comptes budgetaires
  	INSERT INTO compta.p_oids (code_table, oid) 
  	SELECT 'comptes_budget_c', compte_budget_id 
  	FROM compta.p_historique_ecritures_total
  	WHERE clinique_honoraire = 'C' 
  	AND compte_budget_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_budget_c')
  	GROUP BY 1,2;
  
  					
  	RETURN 'OK';
  END;