= 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 AND ECRITURE_SUPPRIMEE.LE_CODE IS NULL ; INSERT INTO compta.p_historique_ecritures( compte_id, date_ecriture, 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, cle_originale, compte_contrepartie_id, texte, date_facture_fournisseur, piece, dossier, date_echeance, journal_paiement_id, mode_paiement_id, numero_cheque, site_id, partenaire_id, inter_site, identifiant_operation ) SELECT t_comptes.oid AS compte_id, (HE_ANNEE || LPAD(HE_MOIS,2,'0') || LPAD(HLE_JOUR,2,'0'))::date AS date_ecriture, (HE_ANNEE || LPAD(HE_MOIS,2,'0'))::bigint AS mois_comptable, HLE_CRE_ORG::numeric AS montant_credit, HLE_DEB_ORG::numeric AS montant_debit, t_journaux.oid AS journal_id, 0 AS section_analytique_id, COALESCE(t_sites.clinique_honoraire,'C'), exercice_comptable, t_comptes.type_compta_id, COALESCE(t_comptes.oid,0), '0' AS comptabilisee, '0' AS fin_exercice, '0' AS ajustement, HLE_CODE AS cle_originale, COALESCE(t_comptes_contre.oid,0) AS compte_contrepartie_id, HLE_LIB AS texte, '20991231' AS date_facture_fournisseur, '' AS piece, '' AS dossier, '20991231' AS date_echeance, 0 AS journal_paiement_id, 0 AS mode_paiement_id, '' AS numero_cheque, COALESCE(t_sites.oid,0) AS site_id, COALESCE(t_partenaires.oid,0), '0' AS inter_site, HISTO_ECRITURE.HE_CODE::text || '-'::text || HLE_ORDRE::text AS identifiant_operation FROM prod_acd.HISTO_ECRITURE JOIN prod_acd.HISTO_LIGNE_ECRITURE ON HISTO_ECRITURE.HE_CODE = HISTO_LIGNE_ECRITURE.HE_CODE JOIN prod_acd.COMPTE ON HISTO_LIGNE_ECRITURE.CPT_CODE = COMPTE.CPT_CODE JOIN compta.t_comptes ON (CASE WHEN CPT_CATEG = 'G' THEN HISTO_LIGNE_ECRITURE.CPT_CODE WHEN CPT_CATEG = 'F' THEN '41100000_' || HISTO_LIGNE_ECRITURE.CPT_CODE WHEN CPT_CATEG = 'C' THEN '40100000_' || HISTO_LIGNE_ECRITURE.CPT_CODE END = t_comptes.numero) JOIN compta.t_journaux ON (JNL_CODE = t_journaux.code_original) LEFT JOIN compta.t_sites ON t_sites.oid = 0 JOIN base.p_calendrier_mois ON HE_ANNEE = annee AND HE_MOIS = numero_mois LEFT JOIN compta.t_partenaires ON HISTO_LIGNE_ECRITURE.CPT_CODE = t_partenaires.code LEFT JOIN compta.t_comptes t_comptes_contre ON t_comptes_contre.oid = -1 WHERE (HISTO_ECRITURE.HE_ANNEE || LPAD(HISTO_ECRITURE.HE_MOIS,2,'0'))::bigint >= 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 t_journaux.code != 'HONO'; UPDATE compta.p_historique_ecritures SET clinique_honoraire = 'H' FROM compta.t_journaux WHERE journal_id = t_journaux.oid AND p_historique_ecritures.clinique_honoraire <> 'H' AND t_journaux.code = 'HONO'; 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 IS NULL OR 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 IS NULL OR 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 IS NULL OR t_journaux.clinique_honoraire <> subview.clinique_honoraire); ]]> 0 GROUP BY 1,2 UNION ALL SELECT NULL, cpt_code FROM prod_acd.histo_ligne_ecriture GROUP BY 1,2 ) subviewj LEFT JOIN (SELECT CASE WHEN CPT_CODE LIKE '6%' THEN 'GES' WHEN CPT_CODE LIKE '7%' THEN 'GES' WHEN CPT_CODE LIKE '8%' THEN 'RES' ELSE 'BIL' END AS plc_type, CPT_CODE, CPT_LIB FROM prod_acd.COMPTE WHERE CPT_CATEG = 'G') subview ON subview.CPT_CODE = subviewj.CPT_CODE JOIN compta.t_types_compta ON (plc_type = t_types_compta.code_original) WHERE subview.CPT_CODE NOT IN (SELECT numero FROM compta.t_comptes) GROUP BY 1,2,3,4,5 ORDER BY subview.CPT_CODE; UPDATE compta.t_comptes SET banque = CASE WHEN numero like '512%' THEN '1' ELSE '0' END ; -- Comptes spécifiques ? INSERT INTO compta.t_comptes(type_compta_id, numero, texte, compte_general_id, clinique_honoraire) SELECT 0, '41100000', 'CTI Fournisseurs', 0, 'C' WHERE '41100000' NOT IN (SElECT numero FROM compta.t_comptes); INSERT INTO compta.t_comptes(type_compta_id, numero, texte, compte_general_id, clinique_honoraire) SELECT 0, '40100000', 'CTI Clients', 0, 'C' WHERE '40100000' NOT IN (SElECT numero FROM compta.t_comptes); UPDATE compta.t_comptes SET compte_general_id = oid WHERE compte_general_id IS NULL OR (compte_general_id = 0 AND oid <> 0); -- Comptes auxiliaires 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 prod_acd.COMPTE JOIN compta.t_comptes ON CPT_CATEG != 'G' AND (CASE WHEN CPT_CATEG = 'F' THEN '41100000' ELSE '40100000' END = t_comptes.numero) JOIN compta.t_types_compta ON ('BIL' = t_types_compta.code_original) JOIN compta.t_partenaires ON (CPT_CODE = t_partenaires.code_original) WHERE t_comptes.numero::text || '_'::text || t_partenaires.code::text NOT IN (SELECT numero::text FROM compta.t_comptes); -- 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 ]]>