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