You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

1357 lines
50 KiB

<?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>