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