= date_debut_acropole;
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_2');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_3');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_4');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_5');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_6');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_7');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_8');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_9');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_10');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_11');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_12');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_13');
SELECT base.cti_disable_index('compta', 'i_historique_ecritures_total_1');
]]>
= 200701
;
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');
]]>
'C'
AND site_id IN (SELECT oid FROM compta.t_sites WHERE clinique_honoraire <> 'H');
UPDATE compta.p_historique_ecritures
SET clinique_honoraire = 'H'
FROM compta.t_sites
WHERE p_historique_ecritures.site_id = t_sites.oid
AND p_historique_ecritures.clinique_honoraire <> 'H'
AND site_id IN (SELECT oid FROM compta.t_sites WHERE clinique_honoraire = 'H');
UPDATE compta.p_historique_ecritures
SET compte_id = t_comptes.compte_general_id
FROM compta.t_comptes
WHERE comptabilisee <> '1'
AND compte_id = t_comptes.oid
AND t_comptes.oid <> t_comptes.compte_general_id
AND compte_id = compte_extra_id;
-- Précision cli/hon (cli prioritaire)
UPDATE compta.t_comptes
SET clinique_honoraire = subview.clinique_honoraire
FROM
(
SELECT
compte_id AS compte_id,
MIN(CASE WHEN p_historique_ecritures.clinique_honoraire = 'H' THEN 'H' ELSE 'C' END) AS clinique_honoraire
FROM compta.p_historique_ecritures
JOIN compta.t_comptes ON compte_id = t_comptes.oid
GROUP BY 1
) subview
WHERE t_comptes.oid = subview.compte_id AND
t_comptes.clinique_honoraire <> subview.clinique_honoraire;
UPDATE compta.t_comptes
SET clinique_honoraire = subview.clinique_honoraire
FROM
(
SELECT
t_comptes.oid AS compte_id, t_comptes.numero,
MIN(CASE WHEN p_historique_ecritures.clinique_honoraire = 'H' THEN 'H' ELSE 'C' END) AS clinique_honoraire
FROM compta.p_historique_ecritures
JOIN compta.t_comptes ON compte_extra_id = t_comptes.oid
GROUP BY 1,2
) subview
WHERE t_comptes.oid = subview.compte_id AND
t_comptes.clinique_honoraire <> subview.clinique_honoraire;
UPDATE compta.t_journaux
SET clinique_honoraire = subview.clinique_honoraire
FROM
(
SELECT
journal_id,
MIN(CASE WHEN p_historique_ecritures.clinique_honoraire = 'H' THEN 'H' ELSE 'C' END) AS clinique_honoraire
FROM compta.p_historique_ecritures
GROUP BY 1
) subview
WHERE t_journaux.oid = subview.journal_id AND
t_journaux.clinique_honoraire <> subview.clinique_honoraire;
]]>
0);
-- Comptes auxiliaires
DROP TABLE IF EXISTS w_plx_plc;
CREATE TEMP TABLE w_plx_plc AS
SELECT ECR_AFF, ECR_REP, CASE WHEN ECR_AFF LIKE '6%' THEN 'GES'
WHEN ECR_AFF LIKE '7%' THEN 'GES'
WHEN ECR_AFF LIKE '8%' THEN 'RES'
ELSE 'BIL' END AS plc_type
FROM temp.w_08083a7h
WHERE ECR_REP IS NOT NULL
GROUP BY 1,2,3;
INSERT INTO compta.t_comptes(
type_compta_id, numero, texte, compte_general_id, clinique_honoraire, partenaire_id)
SELECT t_types_compta.oid, t_comptes.numero::text || '_'::text || t_partenaires.code::text, t_partenaires.texte, t_comptes.oid, '', coalesce(t_partenaires.oid,0)
FROM w_plx_plc
JOIN compta.t_comptes ON (w_plx_plc.ECR_AFF = t_comptes.numero)
JOIN compta.t_types_compta ON (plc_type = t_types_compta.code_original)
LEFT JOIN compta.t_partenaires ON (ECR_REP = t_partenaires.code_original)
WHERE t_comptes.numero::text || '_'::text || t_partenaires.code::text NOT IN (SELECT numero::text FROM compta.t_comptes);
-- comptes non présents
INSERT INTO compta.t_comptes(type_compta_id, numero, texte, clinique_honoraire, banque)
SELECT t_types_compta.oid, ECR_AFF, MAX(ECR_LIB), '', 0
FROM temp.w_08083a7h
JOIN compta.t_types_compta ON (CASE WHEN ECR_AFF LIKE '6%' THEN 'GES'
WHEN ECR_AFF LIKE '7%' THEN 'GES'
WHEN ECR_AFF LIKE '8%' THEN 'RES'
ELSE 'BIL' END = t_types_compta.code_original)
WHERE ECR_AFF NOT IN (SELECT numero::text FROM compta.t_comptes)
GROUP BY 1,2;
-- Classes de comptes
INSERT into compta.t_classes_comptes (code, texte)
(SELECT DISTINCT substr(numero, 1 , 1), '' FROM compta.t_comptes
WHERE compte_general_id = oid AND numero <> '' 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 numero <> '' 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 numero <> '' 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 numero <> '' 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 numero <> '' 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 numero <> '' 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
]]>