= 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 ]]> = 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 ]]> = 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 ]]> 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) ; ]]> 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 ; ]]> 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 ; ]]> 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); ]]> 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); ]]> 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); ]]> 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 ; ]]> 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) ; ]]> '' 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'); ]]>