= 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 ]]>