commit 43528c48efd956287a12c3e455e47ed49e40a81c Author: ymi Date: Fri Sep 19 13:54:36 2025 +0200 initial commit diff --git a/db/data/dbdata_compta_t_classes.SQL b/db/data/dbdata_compta_t_classes.SQL new file mode 100644 index 0000000..689c6ae --- /dev/null +++ b/db/data/dbdata_compta_t_classes.SQL @@ -0,0 +1,125 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_classes.oid = 0 THEN t_classes.oid ELSE 1 END AS oid, + t_listes_tables.code as table_code, + t_classes.code, + t_classes.sequence AS sequence_source, + t_classes.texte, + t_classes.is_cti, + t_classes.contenu_by_code, + t_classes.contenu_non_replicable_ailleurs, + 0::numeric AS sequence, + 0::bigint AS table_id + FROM compta.t_classes + JOIN compta.t_listes_tables ON table_id = t_listes_tables.oid + WHERE t_classes.code <> '' AND + (is_cti = '1' OR t_classes.code ilike 'CTI_%') AND + 1=1 + ORDER BY 2,3 LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + table_code, + code, + sequence_source, + texte, + is_cti, + contenu_by_code, + contenu_non_replicable_ailleurs, + sequence, + table_id +) +VALUES +(1, 'CPT', 'CTI_CONTRIBUTION_BLOC_OPERATOIRE', 42, 'Coût des charges pour le calcul de la contribution', '1', '0', '0', 0, 0) +; + +-- 3/3 : Màj de la table iCTI +UPDATE w_dbsetup +SET table_id = t_listes_tables.oid +FROM compta.t_listes_tables +WHERE t_listes_tables.Code = table_code +; + +UPDATE w_dbsetup +SET sequence = t_classes.sequence +FROM compta.t_classes +WHERE t_classes.code = w_dbsetup.code AND + t_classes.table_id = w_dbsetup.table_id +; + +UPDATE w_dbsetup +SET sequence = sequence_source +WHERE code NOT IN (SELECT code FROM compta.t_classes) AND + w_dbsetup.table_id::text || '-' || w_dbsetup.sequence_source::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM compta.t_classes) +; + +UPDATE w_dbsetup +SET sequence = subview.sequence +FROM +( +SELECT w_dbsetup.table_id, sequence_source, +CASE WHEN sequence1 < 7 THEN sequence1 WHEN sequence2 <= 27 THEN sequence2 ELSE sequence3 END + row_number() OVER (PARTITION BY w_dbsetup.table_id ORDER BY code) AS sequence +FROM w_dbsetup +JOIN + ( + SELECT t_listes_tables.oid AS table_id, + MAX(CASE WHEN sequence < 7 THEN sequence ELSE 0 END) AS sequence1, + MAX(CASE WHEN sequence BETWEEN 10 AND 27 THEN sequence ELSE 9 END) AS sequence2, + MAX(CASE WHEN sequence > 30 THEN sequence ELSE 30 END) AS sequence3 + FROM compta.t_listes_tables + LEFT JOIN compta.t_classes ON t_listes_tables.oid = table_id + GROUP BY 1 + ) subview ON w_dbsetup.table_id = subview.table_id +WHERE sequence = 0 +) subview +WHERE w_dbsetup.table_id = subview.table_id AND + w_dbsetup.sequence_source = subview.sequence_source AND + w_dbsetup.sequence = 0 +; + +UPDATE compta.t_classes SET + texte = w_dbsetup.texte, + table_id = w_dbsetup.table_id, + is_cti = w_dbsetup.is_cti, + contenu_by_code = w_dbsetup.contenu_by_code, + contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs +FROM w_dbsetup +WHERE 1=1 + AND t_classes.code = w_dbsetup.code + AND t_classes.table_id = w_dbsetup.table_id + AND (1!=1 + OR t_classes.texte IS DISTINCT FROM w_dbsetup.texte + OR t_classes.is_cti IS DISTINCT FROM w_dbsetup.is_cti + OR t_classes.contenu_by_code IS DISTINCT FROM w_dbsetup.contenu_by_code + OR t_classes.contenu_non_replicable_ailleurs IS DISTINCT FROM w_dbsetup.contenu_non_replicable_ailleurs) +; + +INSERT INTO compta.t_classes( + code, + texte, + table_id, + is_cti, + sequence, + contenu_by_code, + contenu_non_replicable_ailleurs + ) +SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.table_id, + w_dbsetup.is_cti, + w_dbsetup.sequence, + w_dbsetup.contenu_by_code, + w_dbsetup.contenu_non_replicable_ailleurs +FROM w_dbsetup +WHERE 1=1 + AND w_dbsetup.sequence <> 0 + AND w_dbsetup.table_id::text || '-' || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM compta.t_classes) + AND w_dbsetup.texte NOT LIKE '*SUPPRIME%' +; \ No newline at end of file diff --git a/db/data/dbdata_compta_t_classes_comptes.SQL b/db/data/dbdata_compta_t_classes_comptes.SQL new file mode 100644 index 0000000..83da3ba --- /dev/null +++ b/db/data/dbdata_compta_t_classes_comptes.SQL @@ -0,0 +1,620 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT code, texte FROM compta.t_classes_comptes WHERE length(code) <= 3 AND oid <> 0 ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + code, + texte +) +VALUES +('00', ''), +('000', ''), +('1', 'CAPITAUX'), +('1', 'CAPITAUX'), +('10', 'CAPITAL ET RESERVES'), +('10', 'CAPITAL ET RESERVES'), +('101', 'CAPITAL'), +('101', 'CAPITAL'), +('104', 'PRIMES LIEES AU CAPITAL SOCIAL'), +('104', 'PRIMES LIEES AU CAPITAL SOCIAL'), +('105', 'PRIMES LIEES AU CAPITAL S'), +('106', 'RESERVES LEGALES ET FACULTATIV'), +('106', 'RESERVES LEGALES ET FACULTATIV'), +('107', 'ECART D''EQUIVALENCE'), +('108', 'COMPTE DE L''EXPLOITANT'), +('109', 'ACTIONNAIRES CAPITAL SOUSCRIT'), +('11', 'REPORT A NOUVEAU'), +('11', 'REPORT A NOUVEAU'), +('110', 'REPORT A NOUVEAU (CREDITEUR)'), +('110', 'REPORT A NOUVEAU (CREDITEUR)'), +('119', 'REPORT A NOUVEAU (DEBITEUR)'), +('12', 'RESULTAT DE L''EXERCICE'), +('12', 'RESULTAT DE L''EXERCICE'), +('120', 'RESULTAT EXERCICE (BENEFICE)'), +('120', 'RESULTAT EXERCICE (BENEFICE)'), +('121', ''), +('128', ''), +('129', 'RESULTAT EXERCICE (PERTE)'), +('129', 'RESULTAT EXERCICE (PERTE)'), +('13', 'SUBVENTIONS D''INVESTISSEMENT'), +('131', 'SUBVENTIONS D''EQUIPEMENT'), +('133', ''), +('138', 'AUTRES SUBVENTIONS'), +('139', 'SUBVENTIONS D''INVESTISSEMENT INSCRITES AU COMPTE DE RESULTAT '), +('14', 'PROVISIONS REGLEMENTEES'), +('142', 'PROVISIONS REGLEMENTEES IMMO'), +('143', 'PROVISIONS REGLEMENTEES STOCKS'), +('144', 'PROVISIONS REGLEMENTEES AUTRES'), +('145', 'AMORTISSEMENTS DEROGATOIRES'), +('146', 'PROV. SPECIALE DE REEVALUATION'), +('147', 'PLUS-VALUES REINVESTIES'), +('148', 'AUTRES PROVISIONS REGLEMENTEES '), +('15', 'PROVISIONS RISQUES ET CHARGES'), +('15', 'PROVISIONS RISQUES ET CHARGES'), +('151', 'PROVISIONS POUR RISQUES'), +('151', 'PROVISIONS POUR RISQUES'), +('153', 'PROVISIONS POUR PENSIONS ET OBLIGATIONS SIMILAIRES '), +('154', 'PROVISIONS POUR RESTRUCTURATIONS '), +('155', 'PROVISIONS POUR IMPOTS'), +('156', 'PROVISIONS RENOUVELLEMENT IMMO'), +('157', 'PROVISIONS CHARGES A REPARTIR'), +('158', 'AUTRES PROVISIONS POUR CHARGES'), +('16', 'EMPRUNTS ET DETTES ASSIMILEES'), +('16', 'EMPRUNTS ET DETTES ASSIMILEES'), +('161', 'EMPRUNTS OBLIGATAIRES CONVERT.'), +('162', ''), +('163', 'AUTRES EMPRUNTS OBLIGATAIRES'), +('164', 'EMPRUNTS ETABLISSEMENTS CREDIT'), +('164', 'EMPRUNTS ETABLISSEMENTS CREDIT'), +('165', 'DEPOTS ET CAUTIONNEMENTS RECUS'), +('166', 'PARTICIPATIONS DES SALARIES'), +('167', 'EMPRUNTS, DETTES PARTICULIERS'), +('167', 'EMPRUNTS, DETTES PARTICULIERS'), +('168', 'AUTRES EMPRUNTS ET DETTES'), +('168', 'AUTRES EMPRUNTS ET DETTES'), +('169', 'PRIMES REMBOURSEMENT OBLIG.'), +('17', 'DETTES RATTACHEES A DES PARTI.'), +('171', 'DETTES RATTACHEES A DES PARTICIPATIONS (GROUPE) '), +('174', 'DETTES RATTACHEES A DES PARTICIPATIONS (HORS GROUPE) '), +('178', 'DETTES RATTACHEES A DES SOCIETES EN PARTICIPATION '), +('18', 'COMPTES LIAISON ETAB. ET SCTES'), +('18', 'COMPTES LIAISON ETAB. ET SCTES'), +('180', ''), +('180', ''), +('181', 'COMPTES DE LIAISON DES ETABLISSEMENTS '), +('186', 'BIENS ET PRESTATIONS DE SERVICES ECHANGES ENTRE ETABLISSEMENTS (CHARGES) '), +('187', 'BIENS ET PRESTATIONS DE SERVICES ECHANGES ENTRE ETABLISSEMENTS (PRODUITS) '), +('188', 'COMPTES DE LIAISON DES SOCIETES EN PARTICIPATION '), +('19', ''), +('194', ''), +('2', 'CLASSE 2'), +('2', 'CLASSE 2'), +('20', 'IMMOBILISATIONS INCORPORELLES'), +('20', 'IMMOBILISATIONS INCORPORELLES'), +('200', ''), +('201', 'FRAIS D''ETABLISSEMENT'), +('201', 'FRAIS D''ETABLISSEMENT'), +('203', 'FRAIS RECHERCHE / DVLPT'), +('203', 'FRAIS RECHERCHE / DVLPT'), +('205', 'BREVETS / LICENCES'), +('205', 'BREVETS / LICENCES'), +('206', 'DROIT AU BAIL'), +('207', 'FONDS COMMERCIAL'), +('207', 'FONDS COMMERCIAL'), +('208', 'AUTRES IMMO. INCORPORELLES'), +('208', 'AUTRES IMMO. INCORPORELLES'), +('21', 'IMMOBILISATIONS CORPORELLES'), +('21', 'IMMOBILISATIONS CORPORELLES'), +('211', 'TERRAINS'), +('212', 'AGENC. ET AMENAG. DE TERRAINS'), +('213', 'CONSTRUCTIONS'), +('213', 'CONSTRUCTIONS'), +('214', 'CONSTRUCTIONS SUR SOL D''AUTRUI (MEME VENTILATION QUE CELLE DU COMPTE 213) '), +('215', 'INSTAL TECHN, MAT ET OUT INDUS'), +('215', 'INSTAL TECHN, MAT ET OUT INDUS'), +('218', 'AUTRES IMMO. CORPORELLES'), +('218', 'AUTRES IMMO. CORPORELLES'), +('22', 'IMMO. MISES EN CONCESSION'), +('23', 'IMMOBILISATIONS EN COURS'), +('23', 'IMMOBILISATIONS EN COURS'), +('230', ''), +('231', 'IMMO CORPO. EN COURS'), +('231', 'IMMO CORPO. EN COURS'), +('232', 'IMMOBILISATIONS INCORPORELLES EN COURS '), +('237', 'AV/ACPTE IMMO INCORP 20,6%RP'), +('238', 'AVANC./ACOMPT. CDE IMMO CORPO.'), +('238', 'AVANC./ACOMPT. CDE IMMO CORPO.'), +('25', 'PARTS DANS DES ENTREPRISES LIEES ET CREANCES SUR DES ENTREPRISES LIEES '), +('26', 'PART. ET CREANCES RATTACHEES'), +('26', 'PART. ET CREANCES RATTACHEES'), +('261', 'TITRES DE PARTICIPATION'), +('261', 'TITRES DE PARTICIPATION'), +('266', 'AUTRES FORMES DE PARTICIPATION '), +('267', 'CREANCES RATTACHEES A DES PARTICIPATIONS '), +('268', 'CREANCES RATTACHEES A DES SOCIETES EN PARTICIPATION '), +('269', 'VERSEMENTS RESTANT A EFFECTUER SUR TITRES DE PARTICIPATION NON LIBERES '), +('27', 'AUTRES IMMO. FINANCIERES'), +('27', 'AUTRES IMMO. FINANCIERES'), +('271', 'TITRES IMMOBILISES AUTRES QUE LES TITRES IMMOBILISES DE L''ACTIVITE DE PORTEFEUILLE (DROIT DE PROPRIETE) '), +('272', 'TITRES IMMOBILISES (DROIT DE CREANCE) '), +('273', 'TITRES IMMOBILISES DE L''ACTIVITE DE PORTEFEUILLE '), +('274', 'PRETS'), +('274', 'PRETS'), +('275', 'DEPOTS ET CAUTIONNEMENTS'), +('275', 'DEPOTS ET CAUTIONNEMENTS'), +('276', 'AUTRES CREANCES IMMOBILISEES'), +('277', '(ACTIONS PROPRES OU PARTS PROPRES)'), +('279', 'VERSEMENTS RESTANT A EFFECTUER SUR TITRES IMMOBILISES NON LIBERES '), +('28', 'AMORTISSEMENTS IMMOBILISATIONS'), +('28', 'AMORTISSEMENTS IMMOBILISATIONS'), +('280', 'AMORT. IMMO. INCORPORELLES'), +('280', 'AMORT. IMMO. INCORPORELLES'), +('281', 'AMORT. IMMO. CORPORELLES'), +('281', 'AMORT. IMMO. CORPORELLES'), +('282', 'AMORTISSEMENTS SITUATION'), +('29', 'PROVISIONS DEPRECIATION IMMO.'), +('29', 'PROVISIONS DEPRECIATION IMMO.'), +('290', 'PROV. DEPRECIATION IMMO INCORP'), +('291', 'PROV. DEPRECIATION IMMO. CORP'), +('292', 'DEPRECIATIONS DES IMMOBILISATIONS MISES EN CONCESSION '), +('293', 'DEPRECIATIONS DES IMMOBILISATIONS EN COURS '), +('296', 'PROVISIONS POUR DEPRECIATION DES PARTICIPATIONS ET CREANCES RATTACHEES A DES PARTICIPATIONS '), +('297', 'PROV. DEPREC. AUTRES IMMO FIN'), +('297', 'PROV. DEPREC. AUTRES IMMO FIN'), +('3', 'COMPTES DE STOCKS ET EN COURS'), +('3', 'COMPTES DE STOCKS ET EN COURS'), +('31', 'MATIERES PREMIERES,FOURNITURES'), +('310', 'STOCKS'), +('311', 'STOCKS DENREES'), +('312', 'MATIERES (OU GROUPE) B'), +('317', 'FOURNITURES A, B, C,'), +('32', 'AUTRES APPROVISIONNEMENTS'), +('32', 'AUTRES APPROVISIONNEMENTS'), +('321', 'MATIERES CONSOMMABLES'), +('321', 'MATIERES CONSOMMABLES'), +('322', 'FOURNITURES CONSOMMABLES'), +('326', 'EMBALLAGES'), +('33', 'EN-COURS DE PRODUCTION DE BIENS '), +('331', 'PRODUITS EN COURS'), +('335', 'TRAVAUX EN COURS'), +('34', 'EN-COURS PRODUCTION SERVICES'), +('341', 'ETUDES EN COURS'), +('345', 'PRESTATIONS DE SERVICES EN COURS'), +('35', 'STOCKS DE PRODUITS'), +('351', 'PRODUITS INTERMEDIAIRES'), +('355', 'PRODUITS FINIS'), +('358', 'PRODUITS RESIDUELS (OU MATIERES DE RECUPERATION) '), +('36', '"COMPTE A OUVRIR, LE CAS ECHEANT, SOUS L''INTITULE "" STOCKS PROVENANT D''IMMOBILISATIONS "" "'), +('37', 'STOCKS DE MARCHANDISES'), +('371', 'MARCHANDISES (OU GROUPE) A'), +('372', 'MARCHANDISES (OU GROUPE) B'), +('38', 'LORSQUE L''ENTITE TIENT UN INVENTAIRE PERMANENT EN COMPTABILITE GENERALE, LE COMPTE 38 PEUT ETRE UTILISE POUR COMPTABILISER LES STOCKS EN VOIE D''ACHEMINEMENT, MIS EN DEPOT OU DONNES EN CONSIGNATION '), +('39', 'PROVISIONS DEPRECIATION STOCKS'), +('391', 'PROV DEPREC MAT 1ERES ET FOURN'), +('392', 'PROV. DEPREC. AUTRES APPRO.'), +('393', 'PROVISIONS POUR DEPRECIATION DES EN-COURS DE PRODUCTION DE BIENS '), +('394', 'PROV DEPREC EN-COURS SERVICES'), +('395', 'PROV DEPREC STOCKS PRODUITS'), +('397', 'PROV DEPREC STOCK MARCHANDISES'), +('4', 'COMPTES DE TIERS'), +('4', 'COMPTES DE TIERS'), +('40', 'FOURNISSEURS ET CPTES RATTACHE'), +('40', 'FOURNISSEURS ET CPTES RATTACHE'), +('400', 'FOURNISSEURS COMPTES RATTACHES'), +('400', 'FOURNISSEURS COMPTES RATTACHES'), +('401', 'FOURNISSEURS'), +('401', 'FOURNISSEURS'), +('402', ''), +('402', ''), +('403', 'FOURNISSEURS - EFFETS A PAYER'), +('403', 'FOURNISSEURS - EFFETS A PAYER'), +('404', 'FOURNISSEURS IMMOBILISATIONS'), +('404', 'FOURNISSEURS IMMOBILISATIONS'), +('405', 'EFFETS A PAYER IMMOBILISATION'), +('406', ''), +('406', ''), +('407', ''), +('407', ''), +('408', 'FOURN. FACTURES NON PARVENUES'), +('408', 'FOURN. FACTURES NON PARVENUES'), +('409', 'FOURNISSEURS DEBITEURS'), +('409', 'FOURNISSEURS DEBITEURS'), +('41', 'CLIENTS ET COMPTES RATTACHES'), +('41', 'CLIENTS ET COMPTES RATTACHES'), +('410', 'CLIENTS COGECIS'), +('410', 'CLIENTS COGECIS'), +('411', 'CLIENTS'), +('411', 'CLIENTS'), +('412', 'CLIENTS ASSMED'), +('412', 'CLIENTS ASSMED'), +('413', 'CLIENTS - EFFETS A RECEVOIR'), +('413', 'CLIENTS - EFFETS A RECEVOIR'), +('415', ''), +('416', 'CLIENTS DOUTEUX'), +('416', 'CLIENTS DOUTEUX'), +('418', 'CLIENTS-PRODUITS NON FACTURES'), +('418', 'CLIENTS-PRODUITS NON FACTURES'), +('419', 'CLIENTS CREDITEURS'), +('419', 'CLIENTS CREDITEURS'), +('42', 'PERSONNEL ET CPTES RATTACHES'), +('42', 'PERSONNEL ET CPTES RATTACHES'), +('421', 'PERSONNEL-REMUNERATIONS DUES'), +('421', 'PERSONNEL-REMUNERATIONS DUES'), +('422', 'COMITES D''ENTREPRISE'), +('422', 'COMITES D''ENTREPRISE'), +('424', 'PARTICIPATION SALARIES'), +('425', 'PERSONNEL-AVANCES ET ACOMPTES'), +('425', 'PERSONNEL-AVANCES ET ACOMPTES'), +('426', 'PERSONNEL-DEPOTS'), +('427', 'PERSONNEL-OPPOSITION'), +('427', 'PERSONNEL-OPPOSITION'), +('428', 'PER-CH A PAYER-PTDS A RECEVOIR'), +('428', 'PER-CH A PAYER-PTDS A RECEVOIR'), +('43', 'CHARGES SOCIALES'), +('43', 'CHARGES SOCIALES'), +('431', 'SECURITE SOCIALE'), +('431', 'SECURITE SOCIALE'), +('437', 'AUTRES ORGANISMES SOCIAUX'), +('437', 'AUTRES ORGANISMES SOCIAUX'), +('438', 'ORG. SOCIAUX-CH A P-PDT A REC'), +('438', 'ORG. SOCIAUX-CH A P-PDT A REC'), +('44', 'ETAT-AUTRES COLLECTIVITES'), +('44', 'ETAT-AUTRES COLLECTIVITES'), +('441', 'ETAT - SUBVENTIONS A RECEVOIR'), +('442', 'ETAT - IMPOTS ET TAXES RECOUVRABLES SUR DES TIERS '), +('443', 'OPERATIONS PARTICULIERES AVEC L''ETAT, LES COLLECTIVITES PUBLIQUES, LES ORGANISMES INTERNATIONAUX '), +('444', 'ETAT-IMPOT SUR LES BENEFICES'), +('444', 'ETAT-IMPOT SUR LES BENEFICES'), +('445', 'ETAT-TAXES /CHIFFRE D''AFFAIRES'), +('445', 'ETAT-TAXES /CHIFFRE D''AFFAIRES'), +('446', 'OBLIGATIONS CAUTIONNEES'), +('447', 'AUTRES IMPOTS ET TAXES'), +('447', 'AUTRES IMPOTS ET TAXES'), +('448', 'ETAT - CHARGES A PAYER'), +('448', 'ETAT - CHARGES A PAYER'), +('449', 'QUOTAS D''EMISSION A RESTITUER A L''ETAT '), +('45', 'GROUPE ET ASSOCIES'), +('45', 'GROUPE ET ASSOCIES'), +('451', 'STE D''EXPLOITATION CCN'), +('452', ''), +('452', ''), +('453', ''), +('453', ''), +('455', 'ASSOCIES-COMPTES COURANTS'), +('455', 'ASSOCIES-COMPTES COURANTS'), +('456', 'ASSOCIES - OPERATIONS SUR LE CAPITAL '), +('457', 'ASSOCIES - DIVIDENDES A PAYER '), +('458', 'ASSOCIES - OPERATIONS FAITES EN COMMUN ET EN G.I.E. '), +('46', 'DEBITEURS ET CREDITEURS DIVERS'), +('46', 'DEBITEURS ET CREDITEURS DIVERS'), +('460', 'DEBITEURS DIVERS'), +('461', 'DIVERS HONORAIRES'), +('461', 'DIVERS HONORAIRES'), +('462', 'CREANCES / CESSION IMMO'), +('462', 'CREANCES / CESSION IMMO'), +('463', ''), +('464', 'DETTES SUR ACQUISITIONS DE VALEURS MOBILIERES DE PLACEMENT '), +('465', 'CREANCES / CESSIONS VMP'), +('465', 'CREANCES / CESSIONS VMP'), +('466', 'HONORAIRES A REVERSER'), +('466', 'HONORAIRES A REVERSER'), +('467', 'AUTRES DEBITEURS ET CREDITEURS'), +('467', 'AUTRES DEBITEURS ET CREDITEURS'), +('468', 'CH A PAYER-PDTS A RECEVOIR'), +('468', 'CH A PAYER-PDTS A RECEVOIR'), +('47', 'COMPTES D ATTENTE'), +('47', 'COMPTES D ATTENTE'), +('471', 'COMPTES D''ATTENTE'), +('471', 'COMPTES D''ATTENTE'), +('472', 'NON IMPUTABLE NOEMIE HON'), +('473', 'COMPTE D''ATTENTE PARK'), +('474', 'CPTE ATTENTE JUSTIFICATIF'), +('476', 'DIFFéRENCES DE CONVERSION - ACTIF'), +('477', 'DIFFéRENCES DE CONVERSION - PASSIF'), +('478', 'AUTRES COMPTES TRANSITOIRES'), +('478', 'AUTRES COMPTES TRANSITOIRES'), +('479', 'ENCAISSEMENTS A VENTILER'), +('479', 'ENCAISSEMENTS A VENTILER'), +('48', 'COMPTES DE REGULARISATION'), +('48', 'COMPTES DE REGULARISATION'), +('481', 'CHARGES A REPARTIR'), +('481', 'CHARGES A REPARTIR'), +('486', 'CHARGES CONSTATEES D''AVANCE'), +('486', 'CHARGES CONSTATEES D''AVANCE'), +('487', 'PRODUITS CONSTATES D''AVANCE'), +('487', 'PRODUITS CONSTATES D''AVANCE'), +('488', 'COMPTES DE REPARTITION'), +('488', 'COMPTES DE REPARTITION'), +('489', 'QUOTAS D''EMISSION ALLOUES PAR L''ETAT '), +('49', 'PROV. DEPREC. COMPTES DE TIERS'), +('49', 'PROV. DEPREC. COMPTES DE TIERS'), +('491', 'PROV. DEPREC. COMPTES CLIENTS'), +('491', 'PROV. DEPREC. COMPTES CLIENTS'), +('495', 'PROVISIONS POUR DEPRECIATION DES COMPTES DU GROUPE ET DES ASSOCIES '), +('496', 'PROV. DEPRE CPT DIV DEBITEURS'), +('496', 'PROV. DEPRE CPT DIV DEBITEURS'), +('5', 'COMPTES FINANCIERS'), +('5', 'COMPTES FINANCIERS'), +('50', 'VALEURS MOBILIERES PLACEMENT'), +('50', 'VALEURS MOBILIERES PLACEMENT'), +('501', 'PARTS DANS DES ENTREPRISES LIEES '), +('502', 'ACTIONS PROPRES'), +('503', 'ACTIONS'), +('504', 'AUTRES TITRES'), +('504', 'AUTRES TITRES'), +('505', 'OBLIGATIONS ET BONS EMIS PAR LA SOCIETE ET RACHETES PAR ELLE '), +('506', 'OBLIGATIONS'), +('507', 'BONS DU TRESOR ET BONS DE CAISSE A COURT TERME'), +('508', 'AUTRES VALEURS MOBILIERES DE PLACEMENT ET AUTRES CREANCES ASSIMILEES '), +('509', 'VERSEMENTS RESTANT A EFFECTUER SUR VALEURS MOBILIERES DE PLACEMENT NON LIBEREES '), +('51', 'BANQUES ETS FINANCIERS'), +('51', 'BANQUES ETS FINANCIERS'), +('511', 'VALEURS A L''ENCAISSEMENT'), +('511', 'VALEURS A L''ENCAISSEMENT'), +('512', 'BANQUES'), +('512', 'BANQUES'), +('513', ''), +('513', ''), +('514', 'CHEQUES POSTAUX'), +('514', 'CHEQUES POSTAUX'), +('515', '""" CAISSES "" DU TRESOR ET DES ETABLISSEMENTS PUBLICS "'), +('516', 'SOCIETES DE BOURSE'), +('517', 'AUTRES ORGANISMES FINANCIERS'), +('518', 'INTERETS COURUS'), +('518', 'INTERETS COURUS'), +('519', 'CONCOURS BANCAIRES COURANTS'), +('52', 'INSTRUMENTS DE TRESORERIE'), +('53', 'CAISSE'), +('53', 'CAISSE'), +('530', 'CAISSE'), +('530', 'CAISSE'), +('531', 'CAISSE'), +('532', 'CAISSE SUCCURSALE A'), +('532', 'CAISSE SUCCURSALE A'), +('533', 'CAISSE SUCCURSALE (OU USINE) B '), +('54', 'REGIES D''AVANCE ET ACCREDITIFS'), +('58', 'VIREMENTS INTERNES'), +('58', 'VIREMENTS INTERNES'), +('580', 'VIREMENTS INTERNES'), +('580', 'VIREMENTS INTERNES'), +('581', 'VIREMNTS DE FONDS INTRASOCIETE'), +('581', 'VIREMNTS DE FONDS INTRASOCIETE'), +('582', 'VIREMENTS INTERNES HONORAIRES'), +('59', 'PROVISIONS POUR DEPRECIATION DES COMPTES FINANCIERS '), +('590', 'PROVISIONS POUR DEPRECIATION DES VALEURS MOBILIERES DE PLACEMENT '), +('6', 'COMPTES DE CHARGES'), +('6', 'COMPTES DE CHARGES'), +('60', 'ACHATS'), +('60', 'ACHATS'), +('601', 'ACHATS STOCKES'), +('602', 'ACHATS STOCKES AUTRES APPRO.'), +('602', 'ACHATS STOCKES AUTRES APPRO.'), +('603', 'VARIATION DES STOCKS'), +('603', 'VARIATION DES STOCKS'), +('604', 'ACHATS PRESTATIONS SERVICES'), +('605', 'ACHATS DE MATERIEL,EQUIPEMENTS'), +('606', 'ACHATS NON STOCKES'), +('606', 'ACHATS NON STOCKES'), +('607', 'ACHATS DE MARCHANDISES'), +('608', '(COMPTE RESERVE, LE CAS ECHEANT, A LA RECAPITULATION DES FRAIS ACCESSOIRES INCORPORES AUX ACHATS) '), +('609', 'R.R.R OBTENUES SUR ACHATS'), +('609', 'R.R.R OBTENUES SUR ACHATS'), +('61', 'SERVICES EXTERIEURS'), +('61', 'SERVICES EXTERIEURS'), +('611', 'SOUS-TRAITANCE GENERALE'), +('611', 'SOUS-TRAITANCE GENERALE'), +('612', 'REDEVANCES DE CREDIT-BAIL'), +('612', 'REDEVANCES DE CREDIT-BAIL'), +('613', 'LOCATIONS'), +('613', 'LOCATIONS'), +('614', 'CHARGES LOCATIVES/COPROPRIETE'), +('614', 'CHARGES LOCATIVES/COPROPRIETE'), +('615', 'ENTRETIEN ET REPARATIONS'), +('615', 'ENTRETIEN ET REPARATIONS'), +('616', 'PRIMES D''ASSURANCE'), +('616', 'PRIMES D''ASSURANCE'), +('617', 'ETUDES ET RECHERCHES'), +('617', 'ETUDES ET RECHERCHES'), +('618', 'DIVERS'), +('618', 'DIVERS'), +('619', 'R.R.R OBTENUS/SUR SERVICES EXT'), +('62', 'AUTRES SERVICES EXTERIEURS'), +('62', 'AUTRES SERVICES EXTERIEURS'), +('621', 'INTERIM'), +('621', 'INTERIM'), +('622', 'REMUNERATIONS INTERMED ET HONO'), +('622', 'REMUNERATIONS INTERMED ET HONO'), +('623', 'PUBLICITE,PUBLICATIONS'), +('623', 'PUBLICITE,PUBLICATIONS'), +('624', 'TRANSPORTS'), +('624', 'TRANSPORTS'), +('625', 'DEPLACEMENTS'), +('625', 'DEPLACEMENTS'), +('626', 'FRAIS POSTAUX ET TELEPHONE'), +('626', 'FRAIS POSTAUX ET TELEPHONE'), +('627', 'SERVICES BANCAIRES'), +('627', 'SERVICES BANCAIRES'), +('628', 'DIVERS'), +('628', 'DIVERS'), +('629', 'RABAIS, REMISES ET RISTOURNES OBTENUS SUR AUTRES SERVICES EXTERIEURS '), +('63', 'IMPOTS ET TAXES'), +('63', 'IMPOTS ET TAXES'), +('631', 'IMPOTS ET TAXES/REMUNERATIONS'), +('631', 'IMPOTS ET TAXES/REMUNERATIONS'), +('632', 'CHARGES FISCALES/CP'), +('633', 'IMPOTS ET TAXES/REMUNERATIONS'), +('635', 'AUTRES IMPOTS ET TAXES'), +('635', 'AUTRES IMPOTS ET TAXES'), +('637', 'AUTRES IMPOTS (AUTRES ORG)'), +('637', 'AUTRES IMPOTS (AUTRES ORG)'), +('64', 'CHARGES PERSONNEL'), +('64', 'CHARGES PERSONNEL'), +('641', 'REMUNERATION DU PERSONNEL'), +('641', 'REMUNERATION DU PERSONNEL'), +('642', ''), +('644', 'REMUNERATION DU TRAVAIL DE L''EXPLOITANT '), +('645', 'CHARGES DE S.S ET PREVOYANCE'), +('645', 'CHARGES DE S.S ET PREVOYANCE'), +('646', 'COTISATIONS SOCIALES PERSONNELLES DE L''EXPLOITANT '), +('647', 'AUTRES CHARGES SOCIALES'), +('647', 'AUTRES CHARGES SOCIALES'), +('648', 'AUTRES CHARGES DE PERSONNEL'), +('648', 'AUTRES CHARGES DE PERSONNEL'), +('65', 'AUTRES CH. DE GESTION COURANTE'), +('65', 'AUTRES CH. DE GESTION COURANTE'), +('650', ''), +('650', ''), +('651', 'Autres taxes et redevances'), +('652', 'REDEVANCE'), +('653', 'JETONS DE PRESENCE'), +('654', 'PERTES/CREANCES IRRECOUVRABLES'), +('654', 'PERTES/CREANCES IRRECOUVRABLES'), +('655', 'QUOTE-PART DE RESULTAT SUR OPERATIONS FAITES EN COMMUN '), +('658', 'CH. DIVERSES GESTION COURANTE'), +('658', 'CH. DIVERSES GESTION COURANTE'), +('66', 'CHARGES FINANCIERES'), +('66', 'CHARGES FINANCIERES'), +('661', 'CHARGES D''INTERETS'), +('661', 'CHARGES D''INTERETS'), +('664', 'PERTES SUR CREANCES LIEES A DES PARTICIPATIONS '), +('665', 'ESCOMPTES ACCORDéS'), +('666', 'PERTES DE CHANGE'), +('667', 'CHARGES NETTES SUR CESSIONS DE VALEURS MOBILIERES DE PLACEMENT '), +('668', 'AUTRES CHARGES FINANCIERES'), +('668', 'AUTRES CHARGES FINANCIERES'), +('67', 'CHARGES EXCEPTIONNELLES'), +('67', 'CHARGES EXCEPTIONNELLES'), +('671', 'AUTRES CHARGES FINANCIERES'), +('671', 'AUTRES CHARGES FINANCIERES'), +('672', 'CHARGES EXCPT / EXERCICE ANTE.'), +('672', 'CHARGES EXCPT / EXERCICE ANTE.'), +('675', 'VALEURS COMPTA ELEMENTS ACTIFS'), +('675', 'VALEURS COMPTA ELEMENTS ACTIFS'), +('676', ''), +('676', ''), +('678', 'AUTRES CHARGES EXCEPTIONNELLES'), +('678', 'AUTRES CHARGES EXCEPTIONNELLES'), +('68', 'DOTATIONS AMORT.ET PROVISIONS'), +('68', 'DOTATIONS AMORT.ET PROVISIONS'), +('681', 'D.A.P CHARGES D''EXPLOITATION'), +('681', 'D.A.P CHARGES D''EXPLOITATION'), +('686', 'D.A.P CHARGES FINANCIERES'), +('687', 'D.A.P CHARGES EXCEPTIONNELLES'), +('687', 'D.A.P CHARGES EXCEPTIONNELLES'), +('69', 'PART.DES SALARIES-IMPOTS/BENEF'), +('69', 'PART.DES SALARIES-IMPOTS/BENEF'), +('691', 'PARTICIPATION SALARIES'), +('691', 'PARTICIPATION SALARIES'), +('695', 'IMPOTS SUR LES BENEFICES'), +('695', 'IMPOTS SUR LES BENEFICES'), +('696', 'SUPPLEMENTS D''IMPOT SUR LES SOCIETES LIES AUX DISTRIBUTIONS '), +('697', 'IMPOSITION FORFAITAIRE SOCIETE'), +('698', 'INTEGRATION FISCALE'), +('699', 'PRODUITS - REPORTS EN ARRIERE DES DEFICITS '), +('699', 'PRODUITS - REPORTS EN ARRIERE DES DEFICITS '), +('7', 'COMPTES DE PRODUITS'), +('7', 'COMPTES DE PRODUITS'), +('70', 'VENTES PRODUITS PREST SERVICES'), +('70', 'VENTES PRODUITS PREST SERVICES'), +('700', ''), +('700', ''), +('701', 'VENTES DE PRODUITS FINIS'), +('702', 'VENTES DE PRODUITS INTERMEDIAIRES '), +('703', 'VENTES DE PRODUITS RESIDUELS'), +('704', 'TRAVAUX'), +('705', 'ETUDES'), +('706', 'PRESTATIONS DE SERVICE'), +('706', 'PRESTATIONS DE SERVICE'), +('707', 'VENTES DE MARCHANDISES'), +('708', 'PRODUITS ACTIVITES ANNEXES'), +('708', 'PRODUITS ACTIVITES ANNEXES'), +('709', 'RABAIS, REMISES ET RISTOURNES ACCORDES PAR L''ENTREPRISE '), +('71', 'PRODUCTION STOCKEE (OU DESTOCKAGE)'), +('713', 'VARIATION DES STOCKS (EN-COURS DE PRODUCTION, PRODUITS) '), +('716', ''), +('72', 'PRODUCTION IMMOBILISEE'), +('72', 'PRODUCTION IMMOBILISEE'), +('721', 'IMMOBILISATIONS INCORPORELLES'), +('722', 'IMMOBILISATIONS CORPORELLES'), +('722', 'IMMOBILISATIONS CORPORELLES'), +('74', 'Subventions d''expmoitation'), +('74', 'SUBVENTIONS D''EXPLOITATION'), +('740', ''), +('741', ''), +('748', ''), +('748', ''), +('75', 'AUTRES PRODUITS GESTION'), +('75', 'AUTRES PRODUITS GESTION'), +('751', 'REDEVANCES POUR BREVETS ...'), +('751', 'REDEVANCES POUR BREVETS ...'), +('752', 'REVENUS DES IMMEUBLES'), +('752', 'REVENUS DES IMMEUBLES'), +('753', 'JETONS DE PRESENCE ET REMUNERATIONS D''ADMINISTRATEURS, GERANTS,... '), +('754', 'RISTOURNES PERÇUES DES COOPERATIVES (PROVENANT DES EXCEDENTS) '), +('754', 'RISTOURNES PERÇUES DES COOPERATIVES (PROVENANT DES EXCEDENTS) '), +('755', 'QUOTES-PARTS DE RESULTAT SUR OPERATIONS FAITES EN COMMUN '), +('758', 'PRODUITS DIVERS GESTION'), +('758', 'PRODUITS DIVERS GESTION'), +('76', 'PRODUITS FINANCIERS'), +('76', 'PRODUITS FINANCIERS'), +('761', 'PRODUITS DE PARTICIPATIONS'), +('762', 'PRODUITS AUTRES IMMOBILISATION'), +('762', 'PRODUITS AUTRES IMMOBILISATION'), +('763', 'REVENUS DES AUTRES CREANCES'), +('764', 'REVENUS SUR V.M.P.'), +('764', 'REVENUS SUR V.M.P.'), +('765', 'ESCOMPTES OBTENUS'), +('765', 'ESCOMPTES OBTENUS'), +('766', 'GAINS DE CHANGE'), +('767', 'PRODUITS NETS / CESSIONS VMP'), +('767', 'PRODUITS NETS / CESSIONS VMP'), +('768', 'AUTRES PRODUITS FINANCIERS'), +('768', 'AUTRES PRODUITS FINANCIERS'), +('77', 'PRODUITS EXCEPTIONNELS'), +('77', 'PRODUITS EXCEPTIONNELS'), +('771', 'PRODUITS EXCEPTIONNELS GESTION'), +('771', 'PRODUITS EXCEPTIONNELS GESTION'), +('772', 'PRODUITS EXCPT / EXERCICES ANT'), +('772', 'PRODUITS EXCPT / EXERCICES ANT'), +('775', 'PDTS CESSIONS ELEMENTS ACTIF'), +('775', 'PDTS CESSIONS ELEMENTS ACTIF'), +('776', ''), +('776', ''), +('777', 'QUOTE-PART DES SUBVENTIONS D''INVESTISSEMENT VIREE AU RESULTAT DE L''EXERCICE '), +('778', 'AUTRES PRODUITS EXCEPTIONNELS'), +('778', 'AUTRES PRODUITS EXCEPTIONNELS'), +('78', 'REPRISES / AMORT. ET PROV.'), +('78', 'REPRISES / AMORT. ET PROV.'), +('781', 'REPRISES / AMORT (PROD. EXPL)'), +('781', 'REPRISES / AMORT (PROD. EXPL)'), +('786', 'REPRISES SUR PROVISIONS POUR RISQUES (A INSCRIRE DANS LES PRODUITS FINANCIERS) '), +('787', 'REPRISES / PROV. (PROD. EXCPT)'), +('787', 'REPRISES / PROV. (PROD. EXCPT)'), +('79', 'TRANSFERT DE CHARGES'), +('79', 'TRANSFERT DE CHARGES'), +('791', 'TRANSFERTS CHARG. EXPLOITATION'), +('791', 'TRANSFERTS CHARG. EXPLOITATION'), +('796', 'TRANSFERTS DE CHARGES FINANCIèRES'), +('797', 'TRANSFERTS DE CHARGES EXCEPTIONNELLES'), +('8', 'RESULTAT'), +('80', 'ENGAGEMENTS*'), +('801', 'ENGAGEMENTS DONNES PAR L''ENTITE*'), +('802', 'ENGAGEMENTS RECUS PAR L''ENTITE*'), +('809', 'CONTREPARTIE DES ENGAGEMENTS*'), +('88', 'RéSULTAT EN INSTANCE D''AFFECTATION'), +('880', ''), +('89', 'BILAN*'), +('890', ''), +('9', ''), +('901', 'COMPTABILISATION DES GRATUITS'), +('99', ''), +('999', '') +; + +-- 3/3 : Màj de la table iCTI +UPDATE compta.t_classes_comptes SET texte = w_dbsetup.texte FROM w_dbsetup WHERE t_classes_comptes.code = w_dbsetup.code AND t_classes_comptes.texte = '' ; INSERT INTO compta.t_classes_comptes(code, texte) SELECT code, texte FROM w_dbsetup WHERE code NOT IN (SELECT code FROM compta.t_classes_comptes); \ No newline at end of file diff --git a/db/data/dbdata_compta_t_classes_sections.SQL b/db/data/dbdata_compta_t_classes_sections.SQL new file mode 100644 index 0000000..995eb2a --- /dev/null +++ b/db/data/dbdata_compta_t_classes_sections.SQL @@ -0,0 +1,105 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_classes_sections.oid = 0 THEN t_classes_sections.oid ELSE 1 END AS oid, + t_listes_tables.code as table_code, + t_classes.code AS classe_code, + t_classes.sequence as classe_sequence, + t_classes_sections.code, + t_classes_sections.texte, + t_classes_sections.condition, + t_classes_sections.exclude_code, + t_classes_sections.include_code, + 0::bigint AS classe_id, + 0::bigint AS table_id + FROM compta.t_classes_sections + JOIN compta.t_classes ON t_classes_sections.classe_id = t_classes.oid + JOIN compta.t_listes_tables ON table_id = t_listes_tables.oid + WHERE t_classes.code <> '' AND + (t_classes.is_cti = '1' OR t_classes.code LIKE 'CTI_%') AND + 1=1 + ORDER BY 2,3,5 LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + table_code, + classe_code, + classe_sequence, + code, + texte, + condition, + exclude_code, + include_code, + classe_id, + table_id +) +VALUES +(1, 'CPT', 'CTI_CONTRIBUTION_BLOC_OPERATOIRE', 42, 'S1', 'Consommable', '', '', '', 0, 0), +(1, 'CPT', 'CTI_CONTRIBUTION_BLOC_OPERATOIRE', 42, 'S2', 'Structure', '', '', '', 0, 0), +(1, 'CPT', 'CTI_CONTRIBUTION_BLOC_OPERATOIRE', 42, 'S3', 'Energie', '', '', '', 0, 0) +; + +-- 3/3 : Màj de la table iCTI +UPDATE w_dbsetup +SET table_id = t_listes_tables.oid +FROM compta.t_listes_tables +WHERE table_code = t_listes_tables.code +; + +UPDATE w_dbsetup +SET classe_id = t_classes.oid +FROM compta.t_classes +WHERE w_dbsetup.classe_code = t_classes.code AND + w_dbsetup.table_id = t_classes.table_id +; + +DELETE FROM compta.t_classes_sections +USING +( +SELECT t_classes_sections.classe_id, t_classes_sections.oid +FROM compta.t_classes_sections +LEFT JOIN w_dbsetup ON + w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code +WHERE w_dbsetup.oid IS NULL AND + t_classes_sections.classe_id IN (SELECT classe_id FROM w_dbsetup) AND + t_classes_sections.oid NOT IN (SELECT section_id FROM compta.t_classes_sections_elements) +) subview +WHERE subview.classe_id = t_classes_sections.classe_id AND + subview.oid = t_classes_sections.oid +; + +UPDATE compta.t_classes_sections SET + texte = w_dbsetup.texte, + condition = w_dbsetup.condition, + exclude_code = w_dbsetup.exclude_code, + include_code = w_dbsetup.include_code +FROM w_dbsetup +WHERE w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code AND + ( + t_classes_sections.texte IS DISTINCT FROM w_dbsetup.texte OR + t_classes_sections.condition IS DISTINCT FROM w_dbsetup.condition OR + t_classes_sections.exclude_code IS DISTINCT FROM w_dbsetup.exclude_code OR + t_classes_sections.include_code IS DISTINCT FROM w_dbsetup.include_code + ) +; + +INSERT INTO compta.t_classes_sections(code, texte, classe_id, condition, exclude_code, include_code) +SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.classe_id, + w_dbsetup.condition, + w_dbsetup.exclude_code, + w_dbsetup.include_code +FROM w_dbsetup +WHERE w_dbsetup.classe_id > 0 AND + (w_dbsetup.code||'@'||w_dbsetup.classe_id::text) + NOT IN (SELECT t_classes_sections.code||'@'||t_classes_sections.classe_id FROM compta.t_classes_sections) +; \ No newline at end of file diff --git a/db/data/dbdata_compta_t_divers.SQL b/db/data/dbdata_compta_t_divers.SQL new file mode 100644 index 0000000..148d3c1 --- /dev/null +++ b/db/data/dbdata_compta_t_divers.SQL @@ -0,0 +1,45 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_divers.code, + t_divers.description, + t_divers.show_info_module, + t_divers.texte, + t_divers.valeur, + t_divers.valeur_date::text + FROM + compta.t_divers + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + code, + description, + show_info_module, + texte, + valeur, + valeur_date +) +VALUES +('MOIS_DEBUT', 'Mois de début de la période comptable', 't', 'Mois début période comptable.', '7', '1970-01-01'), +('NOW', 'Date non modifiable', 't', 'Date dernière écriture', '', '1970-01-01'), +('NOWCLOTURE', 'Date non modifiable', 't', 'Date clôture', '', '1970-01-01') +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO compta.t_divers(code, description, show_info_module, texte, valeur, valeur_date) + SELECT + w_dbsetup.code, + w_dbsetup.description, + w_dbsetup.show_info_module, + w_dbsetup.texte, + w_dbsetup.valeur, + CASE WHEN w_dbsetup.valeur_date = '' THEN '19700101'::date ELSE w_dbsetup.valeur_date::date END AS valeur_date + FROM + w_dbsetup + WHERE w_dbsetup.code NOT IN (SELECT code from compta.t_divers) +; \ No newline at end of file diff --git a/db/data/dbdata_compta_t_indicateurs.SQL b/db/data/dbdata_compta_t_indicateurs.SQL new file mode 100644 index 0000000..bc93cc9 --- /dev/null +++ b/db/data/dbdata_compta_t_indicateurs.SQL @@ -0,0 +1,112 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT t_indicateurs.oid, t_indicateurs.texte, t_indicateurs.table_name, t_indicateurs.column_name, t_indicateurs.is_cti, t_indicateurs.entete, t_indicateurs.code, t_indicateurs.total_function, t_indicateurs.output_format, t_indicateurs.width, t_indicateurs.entete_etendue, t_indicateurs.dimension_date_1, t_indicateurs.dimension_date_2, t_indicateurs.dimension_date_3, t_indicateurs.dimension_date_4, t_indicateurs.dimension_date_5, t_indicateurs.dimension_date, t_indicateurs_1.code as indicateur_associe_1_code, t_indicateurs_2.code as indicateur_associe_2_code, t_indicateurs_3.code as indicateur_associe_3_code, t_indicateurs_4.code as indicateur_associe_4_code, t_indicateurs_5.code as indicateur_associe_5_code, t_indicateurs_6.code as indicateur_associe_6_code, t_indicateurs_7.code as indicateur_associe_7_code, t_indicateurs_8.code as indicateur_associe_8_code, t_indicateurs_9.code as indicateur_associe_9_code, t_indicateurs_10.code as indicateur_associe_10_code, t_indicateurs_11.code as indicateur_associe_11_code, t_indicateurs_12.code as indicateur_associe_12_code, t_indicateurs_13.code as indicateur_associe_13_code, t_indicateurs_14.code as indicateur_associe_14_code, t_indicateurs_15.code as indicateur_associe_15_code, t_indicateurs_16.code as indicateur_associe_16_code, t_indicateurs_17.code as indicateur_associe_17_code, t_indicateurs_18.code as indicateur_associe_18_code, t_indicateurs_19.code as indicateur_associe_19_code, t_indicateurs_20.code as indicateur_associe_20_code, t_indicateurs_reference.code as indicateur_reference_code FROM compta.t_indicateurs LEFT JOIN compta.t_indicateurs t_indicateurs_1 ON (t_indicateurs.indicateur_associe_1_id = t_indicateurs_1.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_2 ON (t_indicateurs.indicateur_associe_2_id = t_indicateurs_2.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_3 ON (t_indicateurs.indicateur_associe_3_id = t_indicateurs_3.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_4 ON (t_indicateurs.indicateur_associe_4_id = t_indicateurs_4.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_5 ON (t_indicateurs.indicateur_associe_5_id = t_indicateurs_5.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_6 ON (t_indicateurs.indicateur_associe_6_id = t_indicateurs_6.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_7 ON (t_indicateurs.indicateur_associe_7_id = t_indicateurs_7.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_8 ON (t_indicateurs.indicateur_associe_8_id = t_indicateurs_8.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_9 ON (t_indicateurs.indicateur_associe_9_id = t_indicateurs_9.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_10 ON (t_indicateurs.indicateur_associe_10_id = t_indicateurs_10.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_11 ON (t_indicateurs.indicateur_associe_11_id = t_indicateurs_11.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_12 ON (t_indicateurs.indicateur_associe_12_id = t_indicateurs_12.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_13 ON (t_indicateurs.indicateur_associe_13_id = t_indicateurs_13.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_14 ON (t_indicateurs.indicateur_associe_14_id = t_indicateurs_14.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_15 ON (t_indicateurs.indicateur_associe_15_id = t_indicateurs_15.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_16 ON (t_indicateurs.indicateur_associe_16_id = t_indicateurs_16.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_17 ON (t_indicateurs.indicateur_associe_17_id = t_indicateurs_17.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_18 ON (t_indicateurs.indicateur_associe_18_id = t_indicateurs_18.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_19 ON (t_indicateurs.indicateur_associe_19_id = t_indicateurs_19.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_20 ON (t_indicateurs.indicateur_associe_20_id = t_indicateurs_20.oid) LEFT JOIN compta.t_indicateurs t_indicateurs_reference ON (t_indicateurs.indicateur_reference_id = t_indicateurs_reference.oid) WHERE t_indicateurs.is_cti = '1' ORDER BY t_indicateurs.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + texte, + table_name, + column_name, + is_cti, + entete, + code, + total_function, + output_format, + width, + entete_etendue, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + indicateur_associe_1_code, + indicateur_associe_2_code, + indicateur_associe_3_code, + indicateur_associe_4_code, + indicateur_associe_5_code, + indicateur_associe_6_code, + indicateur_associe_7_code, + indicateur_associe_8_code, + indicateur_associe_9_code, + indicateur_associe_10_code, + indicateur_associe_11_code, + indicateur_associe_12_code, + indicateur_associe_13_code, + indicateur_associe_14_code, + indicateur_associe_15_code, + indicateur_associe_16_code, + indicateur_associe_17_code, + indicateur_associe_18_code, + indicateur_associe_19_code, + indicateur_associe_20_code, + indicateur_reference_code +) +VALUES +(1, 'BILAN Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code IN (''1'', ''2'', ''3'', ''4'', ''5'') THEN montant_solde_debit ELSE 0 END', '1', 'BILAN', 'CTI_BILC', 'SUM', '#E', 80, 'BILAN', '4', ' ', ' ', ' ', ' ', '4', 'CTI_CL6C', 'CTI_CL7C', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CAPITAUX Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''1'' THEN montant_solde_debit ELSE 0 END', '1', 'CAPITAUX', 'CTI_CL1C', 'SUM', '#E', 80, 'CAPITAUX', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'IMMOBILISATIONS Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''2'' THEN montant_solde_debit ELSE 0 END', '1', 'IMMOBILISATIONS', 'CTI_CL2C', 'SUM', '#E', 80, 'IMMOBILISATIONS', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'STOCKS Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''3'' THEN montant_solde_debit ELSE 0 END', '1', 'STOCKS', 'CTI_CL3C', 'SUM', '#E', 80, 'STOCKS', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CLIENTS Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_2_code = ''41'' THEN montant_solde_debit ELSE 0 END', '1', 'CLIENTS', 'CTI_CL41C', 'SUM', '#E', 80, 'CLIENTS', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CLIENTS Honoraires', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''H'' AND classe_2_code = ''41'' THEN montant_solde_debit ELSE 0 END', '1', 'CLIENTS H', 'CTI_CL41H', 'SUM', '#E', 80, 'CLIENTS Honoraires', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'COMPTES DE TIERS Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''4'' THEN montant_solde_debit ELSE 0 END', '1', 'COMPTES DE TIERS', 'CTI_CL4C', 'SUM', '#E', 80, 'COMPTES DE TIERS', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'COMPTES FINANCIERS Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''5'' THEN montant_solde_debit ELSE 0 END', '1', 'COMPTES FINANCIERS', 'CTI_CL5C', 'SUM', '#E', 80, 'COMPTES FINANCIERS', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'COMPTES DE CHARGE Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''6'' THEN montant_solde_debit ELSE 0 END', '1', 'COMPTES DE CHARGE', 'CTI_CL6C', 'SUM', '#E', 80, 'COMPTES DE CHARGE', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'COMPTES DE PRODUIT Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code = ''7'' THEN montant_solde_debit ELSE 0 END', '1', 'COMPTES DE PRODUIT', 'CTI_CL7C', 'SUM', '#E', 80, 'COMPTES DE PRODUIT', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'Erreur', 'SEP', '', '1', '', 'CTI_ERROR', 'SEP', '#', 0, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'X. EXEMPLE CTI. Choix d''un compte', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND compte_numero = ''41110000'' THEN montant_solde_debit ELSE 0 END', '1', 'Exemple CTI. Choix d''un compte', 'CTI_EXEMPLE1', 'SUM', '#E', 0, 'Exemple CTI. Choix d''un compte', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'X. EXEMPLE CTI. Choix d''une liste de comptes', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND compte_numero IN (''41110000'', ''4114000'', ''41180000'') THEN montant_solde_debit ELSE 0 END', '1', 'Exemple CTI. Choix d''une liste de comptes', 'CTI_EXEMPLE2', 'SUM', '#E', 0, 'Exemple CTI. Choix d''une liste de comptes', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'X. EXEMPLE CTI. Choix de comptes (début du code)', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND compte_numero LIKE ''4111%'' THEN montant_solde_debit ELSE 0 END', '1', 'Exemple CTI. Choix de comptes (début du code)', 'CTI_EXEMPLE3', 'SUM', '#E', 0, 'Exemple CTI. Choix de comptes (début du code)', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'X. EXEMPLE CTI. Choix de comptes (plusieurs début du code)', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND (compte_numero LIKE ''4111%'' OR compte_numero LIKE ''4114%'' OR compte_numero LIKE ''4118%'' ) THEN montant_solde_debit ELSE 0 END', '1', 'Exemple CTI. Choix de comptes (plusieurs début du code)', 'CTI_EXEMPLE4', 'SUM', '#E', 0, 'Exemple CTI. Choix de comptes (plusieurs début du code)', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'X. EXEMPLE CTI. Choix d''un journal', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_code = ''071'' THEN montant_debit ELSE 0 END', '1', 'Exemple CTI. Choix d''un journal', 'CTI_EXEMPLE5', 'SUM', '#E', 0, 'Exemple CTI. Choix d''un journal', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'GESTION Clinique', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND classe_1_code IN (''6'', ''7'') THEN montant_solde_debit ELSE 0 END', '1', 'GESTION', 'CTI_GESC', 'SUM', '#E', 80, 'GESTION', '4', ' ', ' ', ' ', ' ', '4', 'CTI_CL6C', 'CTI_CL7C', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI. Montant crédit', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' THEN montant_solde_credit ELSE 0 END', '1', 'Montant crédit', 'CTI_MTCREDIT', 'SUM', '#', 0, 'Montant crédit', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI. Montant débit', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' THEN montant_solde_credit ELSE 0 END', '1', 'Montant débit', 'CTI_MTDEBIT', 'SUM', '#', 0, 'Montant débit', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'Calcul d''indicateurs dans le rapport', '*RAPPORTCALC', '', '1', '', 'CTI_RAPPORTCALC', 'sum', '#', 0, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'Séparateur', 'SEP', '0', '1', '', 'CTI_SEP', 'SEP', '#', 0, '', '0', ' ', ' ', ' ', ' ', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Autres achats et charges externes', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUACEX] THEN montant_solde_credit ELSE 0 END', '1', 'Autres achats et charges externes', 'L_CTISIGAUACEX', 'SUM', '#', 0, 'Autres achats et charges externes', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Autres charges de gestion courante', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUCHGC] THEN montant_solde_credit ELSE 0 END', '1', 'Autres charges de gestion courante', 'L_CTISIGAUCHGC', 'SUM', '#', 0, 'Autres charges de gestion courante', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Autres produits de gestion courante', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUPRGC] THEN montant_solde_credit ELSE 0 END', '1', 'Autres produits de gestion courante', 'L_CTISIGAUPRGC', 'SUM', '#', 0, 'Autres produits de gestion courante', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Chiffre d''affaire', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCA] THEN montant_solde_credit ELSE 0 END', '1', 'Chiffre d''affaire', 'L_CTISIGCA', 'SUM', '#', 0, 'Chiffre d''affaire', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Charges exceptionnelles', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHEX] THEN montant_solde_credit ELSE 0 END', '1', 'Charges exceptionnelles', 'L_CTISIGCHEX', 'SUM', '#', 0, 'Charges exceptionnelles', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Charges financières', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHFI] THEN montant_solde_credit ELSE 0 END', '1', 'Charges financières', 'L_CTISIGCHFI', 'SUM', '#', 0, 'Charges financières', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Charges financières sur crédit-bail', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHFICB] THEN montant_solde_credit ELSE 0 END', '1', 'Charges financières sur crédit-bail', 'L_CTISIGCHFICB', 'SUM', '#', 0, 'Charges financières sur crédit-bail', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Charges de personnel', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHPR] THEN montant_solde_credit ELSE 0 END', '1', 'Charges de personnel', 'L_CTISIGCHPR', 'SUM', '#', 0, 'Charges de personnel', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Coût d''achat des marachandises vendues', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCOACMA] THEN montant_solde_credit ELSE 0 END', '1', 'Coût d''achat des marachandises vendues', 'L_CTISIGCOACMA', 'SUM', '#', 0, 'Coût d''achat des marachandises vendues', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Coût d''achat matières premières et approv.', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCOACMP] THEN montant_solde_credit ELSE 0 END', '1', 'Coût d''achat matières premières et approv.', 'L_CTISIGCOACMP', 'SUM', '#', 0, 'Coût d''achat matières premières et approv.', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Dotations aux amortissements de crédit-bail', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGDOAMCB] THEN montant_solde_credit ELSE 0 END', '1', 'SIG. Dotations aux amortissements de crédit-bail', 'L_CTISIGDOAMCB', 'SUM', '#', 0, 'SIG. Dotations aux amortissements de crédit-bail', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Dotations aux amortissements, dépréciations et provisions', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGDOAMDP] THEN montant_solde_credit ELSE 0 END', '1', 'Dotations aux amortissements, dépréciations et provisions', 'L_CTISIGDOAMDP', 'SUM', '#', 0, 'Dotations aux amortissements, dépréciations et provisions', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Excédent brut d''exploitation', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGEXBREX] THEN montant_solde_credit ELSE 0 END', '1', 'Excédent brut d''exploitation', 'L_CTISIGEXBREX', 'SUM', '#', 0, 'Excédent brut d''exploitation', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Impôts et taxes', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGIMTX] THEN montant_solde_credit ELSE 0 END', '1', 'Impôts et taxes', 'L_CTISIGIMTX', 'SUM', '#', 0, 'Impôts et taxes', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Impôts et taxes hors valeur ajoutée', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGIMTXHV] THEN montant_solde_credit ELSE 0 END', '1', 'Impôts et taxes hors valeur ajoutée', 'L_CTISIGIMTXHV', 'SUM', '#', 0, 'Impôts et taxes hors valeur ajoutée', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Marge commerciale', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGMACO] THEN montant_solde_credit ELSE 0 END', '1', 'Marge commerciale', 'L_CTISIGMACO', 'SUM', '#', 0, 'Marge commerciale', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Personnel extérieur', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPEEX] THEN montant_solde_credit ELSE 0 END', '1', 'Personnel extérieur', 'L_CTISIGPEEX', 'SUM', '#', 0, 'Personnel extérieur', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Production de l''exercice', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPREX] THEN montant_solde_credit ELSE 0 END', '1', 'Production de l''exercice', 'L_CTISIGPREX', 'SUM', '#', 0, 'Production de l''exercice', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Produits financiers', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRFI] THEN montant_solde_credit ELSE 0 END', '1', 'Produits financiers', 'L_CTISIGPRFI', 'SUM', '#', 0, 'Produits financiers', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Production immobilisée', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRIM] THEN montant_solde_credit ELSE 0 END', '1', 'Production immobilisée', 'L_CTISIGPRIM', 'SUM', '#', 0, 'Production immobilisée', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Production stockée ou déstockage', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRSTDE] THEN montant_solde_credit ELSE 0 END', '1', 'Production stockée ou déstockage', 'L_CTISIGPRSTDE', 'SUM', '#', 0, 'Production stockée ou déstockage', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Production vendue', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRVE] THEN montant_solde_credit ELSE 0 END', '1', 'Production vendue', 'L_CTISIGPRVE', 'SUM', '#', 0, 'Production vendue', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Produits exceptionnels', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRXX] THEN montant_solde_credit ELSE 0 END', '1', 'Produits exceptionnels', 'L_CTISIGPRXX', 'SUM', '#', 0, 'Produits exceptionnels', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Quote-part sur opérations faites en commun', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGQPOPCO] THEN montant_solde_credit ELSE 0 END', '1', 'Quote-part sur opérations faites en commun', 'L_CTISIGQPOPCO', 'SUM', '#', 0, 'Quote-part sur opérations faites en commun', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Redevance crédit-bail (mobilier)', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRCB] THEN montant_solde_credit ELSE 0 END', '1', 'Redevance crédit-bail (mobilier)', 'L_CTISIGRCB', 'SUM', '#', 0, 'Redevance crédit-bail (mobilier)', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Reprises sur amort. dépréciations et provisions', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRPAMDP] THEN montant_solde_credit ELSE 0 END', '1', 'Reprises sur amort. dépréciations et provisions', 'L_CTISIGRPAMDP', 'SUM', '#', 0, 'Reprises sur amort. dépréciations et provisions', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Résultat courant', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSCO] THEN montant_solde_credit ELSE 0 END', '1', 'Résultat courant', 'L_CTISIGRSCO', 'SUM', '#', 0, 'Résultat courant', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Résultat d''exploitation', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSEX] THEN montant_solde_credit ELSE 0 END', '1', 'Résultat d''exploitation', 'L_CTISIGRSEX', 'SUM', '#', 0, 'Résultat d''exploitation', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Résultat net', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSNT] THEN montant_solde_credit ELSE 0 END', '1', 'Résultat net', 'L_CTISIGRSNT', 'SUM', '#', 0, 'Résultat net', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Résultat exceptionnel', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSXX] THEN montant_solde_credit ELSE 0 END', '1', 'Résultat exceptionnel', 'L_CTISIGRSXX', 'SUM', '#', 0, 'Résultat exceptionnel', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Sous-traitance production', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSTPR] THEN montant_solde_credit ELSE 0 END', '1', 'Sous-traitance production', 'L_CTISIGSTPR', 'SUM', '#', 0, 'Sous-traitance production', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Subventions d''exploitation', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUEX] THEN montant_solde_credit ELSE 0 END', '1', 'Subventions d''exploitation', 'L_CTISIGSUEX', 'SUM', '#', 0, 'Subventions d''exploitation', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Subventions de production', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUPR] THEN montant_solde_credit ELSE 0 END', '1', 'Subventions de production', 'L_CTISIGSUPR', 'SUM', '#', 0, 'Subventions de production', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Subventions sur ventes de marchandise', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUVTMA] THEN montant_solde_credit ELSE 0 END', '1', 'Subventions sur ventes de marchandise', 'L_CTISIGSUVTMA', 'SUM', '#', 0, 'Subventions sur ventes de marchandise', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Valeur ajoutée', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVAAJ] THEN montant_solde_credit ELSE 0 END', '1', 'Valeur ajoutée', 'L_CTISIGVAAJ', 'SUM', '#', 0, 'Valeur ajoutée', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Variations de stock', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVAST] THEN montant_solde_credit ELSE 0 END', '1', 'Variations de stock', 'L_CTISIGVAST', 'SUM', '#', 0, 'Variations de stock', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTISIG. Ventes de marchandises', 'v_historique_ecritures_1', 'CASE WHEN clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVTMA] THEN montant_solde_credit ELSE 0 END', '1', 'Ventes de marchandises', 'L_CTISIGVTMA', 'SUM', '#', 0, 'Ventes de marchandises', '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '') +; + +-- 3/3 : Màj de la table iCTI +DELETE FROM compta.t_indicateurs USING ( SELECT code, MIN(oid) AS minoid FROM compta.t_indicateurs WHERE code <> '' GROUP BY 1 HAVING count(*) > 1 ) subview WHERE t_indicateurs.code = subview.code AND t_indicateurs.oid <> subview.minoid; UPDATE compta.t_indicateurs SET texte = w_dbsetup.texte, table_name = w_dbsetup.table_name, column_name = w_dbsetup.column_name, is_cti = w_dbsetup.is_cti, entete = w_dbsetup.entete, entete_etendue = w_dbsetup.entete_etendue, total_function = w_dbsetup.total_function, output_format = w_dbsetup.output_format, width = w_dbsetup.width, dimension_date_1 = w_dbsetup.dimension_date_1, dimension_date_2 = w_dbsetup.dimension_date_2, dimension_date_3 = w_dbsetup.dimension_date_3, dimension_date_4 = w_dbsetup.dimension_date_4, dimension_date_5 = w_dbsetup.dimension_date_5, dimension_date = w_dbsetup.dimension_date FROM w_dbsetup WHERE t_indicateurs.code = w_dbsetup.code; INSERT INTO compta.t_indicateurs(texte, table_name, column_name, is_cti, entete, entete_etendue, code, total_function, output_format, width, dimension_date_1, dimension_date_2, dimension_date_3, dimension_date_4, dimension_date_5, dimension_date) SELECT texte, table_name, column_name, is_cti, entete, entete_etendue, code, total_function, output_format, width, dimension_date_1, dimension_date_2, dimension_date_3, dimension_date_4, dimension_date_5, dimension_date FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM compta.t_indicateurs WHERE code IS NOT NULL); UPDATE compta.t_indicateurs SET indicateur_associe_1_id = COALESCE(t_indicateurs_1.oid,0), indicateur_associe_2_id = COALESCE(t_indicateurs_2.oid,0), indicateur_associe_3_id = COALESCE(t_indicateurs_3.oid,0), indicateur_associe_4_id = COALESCE(t_indicateurs_4.oid,0), indicateur_associe_5_id = COALESCE(t_indicateurs_5.oid,0), indicateur_associe_6_id = COALESCE(t_indicateurs_6.oid,0), indicateur_associe_7_id = COALESCE(t_indicateurs_7.oid,0), indicateur_associe_8_id = COALESCE(t_indicateurs_8.oid,0), indicateur_associe_9_id = COALESCE(t_indicateurs_9.oid,0), indicateur_associe_10_id = COALESCE(t_indicateurs_10.oid,0), indicateur_associe_11_id = COALESCE(t_indicateurs_11.oid,0), indicateur_associe_12_id = COALESCE(t_indicateurs_12.oid,0), indicateur_associe_13_id = COALESCE(t_indicateurs_13.oid,0), indicateur_associe_14_id = COALESCE(t_indicateurs_14.oid,0), indicateur_associe_15_id = COALESCE(t_indicateurs_15.oid,0), indicateur_associe_16_id = COALESCE(t_indicateurs_16.oid,0), indicateur_associe_17_id = COALESCE(t_indicateurs_17.oid,0), indicateur_associe_18_id = COALESCE(t_indicateurs_18.oid,0), indicateur_associe_19_id = COALESCE(t_indicateurs_19.oid,0), indicateur_associe_20_id = COALESCE(t_indicateurs_20.oid,0), indicateur_reference_id = COALESCE(t_indicateurs_reference.oid,0) FROM w_dbsetup LEFT JOIN compta.t_indicateurs t_indicateurs_1 ON (w_dbsetup.indicateur_associe_1_code = t_indicateurs_1.code AND w_dbsetup.indicateur_associe_1_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_2 ON (w_dbsetup.indicateur_associe_2_code = t_indicateurs_2.code AND w_dbsetup.indicateur_associe_2_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_3 ON (w_dbsetup.indicateur_associe_3_code = t_indicateurs_3.code AND w_dbsetup.indicateur_associe_3_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_4 ON (w_dbsetup.indicateur_associe_4_code = t_indicateurs_4.code AND w_dbsetup.indicateur_associe_4_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_5 ON (w_dbsetup.indicateur_associe_5_code = t_indicateurs_5.code AND w_dbsetup.indicateur_associe_5_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_6 ON (w_dbsetup.indicateur_associe_6_code = t_indicateurs_6.code AND w_dbsetup.indicateur_associe_6_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_7 ON (w_dbsetup.indicateur_associe_7_code = t_indicateurs_7.code AND w_dbsetup.indicateur_associe_7_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_8 ON (w_dbsetup.indicateur_associe_8_code = t_indicateurs_8.code AND w_dbsetup.indicateur_associe_8_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_9 ON (w_dbsetup.indicateur_associe_9_code = t_indicateurs_9.code AND w_dbsetup.indicateur_associe_9_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_10 ON (w_dbsetup.indicateur_associe_10_code = t_indicateurs_10.code AND w_dbsetup.indicateur_associe_10_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_11 ON (w_dbsetup.indicateur_associe_11_code = t_indicateurs_11.code AND w_dbsetup.indicateur_associe_11_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_12 ON (w_dbsetup.indicateur_associe_12_code = t_indicateurs_12.code AND w_dbsetup.indicateur_associe_12_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_13 ON (w_dbsetup.indicateur_associe_13_code = t_indicateurs_13.code AND w_dbsetup.indicateur_associe_13_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_14 ON (w_dbsetup.indicateur_associe_14_code = t_indicateurs_14.code AND w_dbsetup.indicateur_associe_14_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_15 ON (w_dbsetup.indicateur_associe_15_code = t_indicateurs_15.code AND w_dbsetup.indicateur_associe_15_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_16 ON (w_dbsetup.indicateur_associe_16_code = t_indicateurs_16.code AND w_dbsetup.indicateur_associe_16_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_17 ON (w_dbsetup.indicateur_associe_17_code = t_indicateurs_17.code AND w_dbsetup.indicateur_associe_17_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_18 ON (w_dbsetup.indicateur_associe_18_code = t_indicateurs_18.code AND w_dbsetup.indicateur_associe_18_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_19 ON (w_dbsetup.indicateur_associe_19_code = t_indicateurs_19.code AND w_dbsetup.indicateur_associe_19_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_20 ON (w_dbsetup.indicateur_associe_20_code = t_indicateurs_20.code AND w_dbsetup.indicateur_associe_20_code <> '') LEFT JOIN compta.t_indicateurs t_indicateurs_reference ON (w_dbsetup.indicateur_reference_code = t_indicateurs_reference.code AND w_dbsetup.indicateur_reference_code <> '') WHERE t_indicateurs.code = w_dbsetup.code AND (indicateur_associe_1_code <> '' OR indicateur_associe_2_code <> '' OR indicateur_associe_3_code <> '' OR indicateur_reference_code <> ''); SELECT base.cti_reorganize_indicateurs('compta'); \ No newline at end of file diff --git a/db/data/dbdata_compta_t_listes.SQL b/db/data/dbdata_compta_t_listes.SQL new file mode 100644 index 0000000..2b08626 --- /dev/null +++ b/db/data/dbdata_compta_t_listes.SQL @@ -0,0 +1,162 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_listes.oid, + t_listes.code, + t_listes.texte, + t_listes.chapitre, + t_listes.contenu_by_code, + t_listes.include_code, + t_listes.exclude_code, + t_listes.is_cti, + t_listes.show_omit, + t_listes.utilisateur_createur, + t_listes.est_partagee_modification, + t_listes_tables.name as table_name + FROM + compta.t_listes, + compta.t_listes_tables + WHERE + (is_cti = '1' OR t_listes.code LIKE 'CTI%') + AND t_listes.code <> '' + AND table_id = t_listes_tables.oid + ORDER BY t_listes.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + chapitre, + contenu_by_code, + include_code, + exclude_code, + is_cti, + show_omit, + utilisateur_createur, + est_partagee_modification, + table_name +) +VALUES +(1, 'CTISIG2AC', 'SIG2. AUTRES ACHATS ET CHARGES EXTERNES', 'SIG2', '1', '[CLASSE:CTISIG03:D650][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2CA', 'SIG2. CHIFFRE D''AFFAIRE', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B7065]', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2EB', 'SIG2. EBIT', 'SIG2', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2EBDR', 'SIG2. EBITDAR', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2EDITDA', 'SIG2. EDITDA', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*][CLASSE:CTISIG03:H6132]', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2HA', 'SIG2. ACHATS ET VARIATIONS DE STOCKS', 'SIG2', '1', '60*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2PX', 'SIG2. PRODUITS D''EXPLOITATION', 'SIG2', '1', '[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*]', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2RN', 'SIG2. RESULTAT NET', 'SIG2', '1', '6* 7*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2SE', 'SIG2. SERVICES EXTERIEURS', 'SIG2', '1', '61*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIG2TO', 'SIG2. TOTAL', 'SIG2', '0', '601 602 6061 6062 6063 6064 6068 6111 6131 6151 6161 6221 6231 6261 6281 6211', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGAUACEX', 'CTISIG. Autres achats et charges externes', 'SIG', '1', '604* 605* 606* 61* 62*', '621*', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGAUCHGC', 'CTISIG. Autres charges de gestion courante', 'SIG', '1', '65*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGAUPRGC', 'CTISIG. Autres produits de gestion courante', 'SIG', '1', '75*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCA', 'CTISIG. Chiffre d''affaire', 'SIG', '1', '70*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCHEX', 'CTISIG. Charges exceptionnelles', 'SIG', '1', '67* 687*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCHFI', 'CTISIG. Charges financières', 'SIG', '1', '66* 686*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCHFICB', 'CTISIG. Charges financières sur crédit-bail', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCHPR', 'CTISIG. Charges de personnel', 'SIG', '1', '64*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCOACMA', 'CTISIG. Coût d''achat des marchandises vendues', 'SIG', '1', '607* 6087* 6037* 6047* 6057* 6067* 6097*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGCOACMP', 'CTISIG. Coût d''achat matières premières et approv.', 'SIG', '1', '601* 602* 6091* 6092* 6093*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGDOAMCB', 'CTISIG. Dotations aux amortissements de crédit-bail', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGDOAMDP', 'CTISIG. Dotations aux amortissements, dépréciations et provisions', 'SIG', '1', '681*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGEXBREX', 'CTISIG. Excédent brut d''exploitation', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGIMBE', 'CTISIG. Impôts sur les bénéfices', 'SIG', '1', '695*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGIMTX', 'CTISIG. Impôts et taxes', 'SIG', '1', '63*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGIMTXHV', 'CTISIG. Impôts et taxes hors valeur ajoutée', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGJOU', 'SIG : Liste des journaux fin d''exercice', 'SIG', '0', '', '', '1', '1', '*CTI', '1', 't_journaux'), +(1, 'CTISIGJSAUFJRN', 'CTISIG. Journaux à omettre des SIG', '', '0', '', '', '0', '0', 'cti', '1', 't_journaux'), +(1, 'CTISIGMACO', 'CTISIG. Marge commerciale', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPASA', 'CTISIG. Participation des salariés', 'SIG', '1', '691*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPEEX', 'CTISIG. Personnel extérieur', 'SIG', '1', '621*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPREX', 'CTISIG. Production de l''exercice', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPRFI', 'CTISIG. Produits financiers', 'SIG', '1', '76* 786* 796*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPRIM', 'CTISIG. Production immobilisée', 'SIG', '1', '72*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPRSTDE', 'CTISIG. Production stockée ou déstockage', 'SIG', '1', '713*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPRVE', 'CTISIG. Production vendue', 'SIG', '1', '701* 702* 703* 704* 705* 706* 708* 709*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGPRXX', 'CTISIG. Produits exceptionnels', 'SIG', '1', '77* 787* 797*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGQPOPCO', 'CTISIG. Quote-part sur opérations faites en commun', 'SIG', '1', '755* 655*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRCB', 'CTISIG. Redevance crédit-bail (mobilier)', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGREDCB', 'CTISIG. Redevances crédit-bail', 'SIG', '1', '612*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRPAMDP', 'CTISIG. Reprises sur amort. dépréciations et provisions', 'SIG', '1', '781*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRSCO', 'CTISIG. Résultat courant', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65* 76* 786* 796* 66* 686* 755* 655*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRSEX', 'CTISIG. Résultat d''exploitation', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRSNT', 'CTISIG. Résultat net', 'SIG', '1', '6* 7*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGRSXX', 'CTISIG. Résultat exceptionnel', 'SIG', '1', '77* 787* 797* 67* 687*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGSOTRDI', 'CTISIG. Sous-traitance directe', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGSTPR', 'CTISIG. Sous-traitance production', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGSUEX', 'CTISIG. Subventions d''exploitation', 'SIG', '1', '74*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGSUPR', 'CTISIG. Subventions de production', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGSUVTMA', 'CTISIG. Subventions sur ventes de marchandise', 'SIG', '0', '', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGTRCHEX', 'CTISIG. Transferts de charges d''exploitation', 'SIG', '1', '791*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGVAAJ', 'CTISIG. Valeur ajoutée', 'SIG', '1', '707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62*', '621*', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGVAST', 'CTISIG. Variations de stock', 'SIG', '1', '6031* 6032*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTISIGVTMA', 'CTISIG. Ventes de marchandises', 'SIG', '1', '707* 7097*', '', '1', '0', '*CTI', '1', 't_comptes'), +(1, 'CTITYPEGES', 'Gestion', '', '0', '', '', '1', '0', '*CTI', '1', 't_types_compta'), +(1, 'CTI_TYP_BIL', 'Bilan', '', '0', '', '', '1', '0', '*CTI', '1', 't_types_compta') +; + +-- 3/3 : Màj de la table iCTI +UPDATE compta.t_listes SET + texte = w_dbsetup.texte, + chapitre = w_dbsetup.chapitre, + contenu_by_code= w_dbsetup.contenu_by_code, + include_code = w_dbsetup.include_code, + exclude_code = w_dbsetup.exclude_code, + is_cti = w_dbsetup.is_cti, + show_omit = w_dbsetup.show_omit, + utilisateur_createur = w_dbsetup.utilisateur_createur, + est_partagee_modification = w_dbsetup.est_partagee_modification, + table_id = t_listes_tables.oid +FROM + w_dbsetup, + compta.t_listes_tables +WHERE + w_dbsetup.table_name = t_listes_tables.name + AND t_listes.code = w_dbsetup.code +; + + +INSERT INTO compta.t_listes( + code, + texte, + chapitre, + contenu_by_code, + include_code, + exclude_code, + is_cti, + show_omit, + utilisateur_createur, + est_partagee_modification, + table_id + ) + SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.chapitre, + w_dbsetup.contenu_by_code, + w_dbsetup.include_code, + w_dbsetup.exclude_code, + w_dbsetup.is_cti, + w_dbsetup.show_omit, + w_dbsetup.utilisateur_createur, + w_dbsetup.est_partagee_modification, + t_listes_tables.oid + FROM + w_dbsetup, + compta.t_listes_tables + WHERE + w_dbsetup.table_name = t_listes_tables.name + AND w_dbsetup.code NOT IN (SELECT code FROM compta.t_listes) + AND w_dbsetup.texte NOT LIKE '*SUPPRIME%' +; + + +DELETE FROM compta.t_listes WHERE texte like '*SUPPRIME%' AND is_cti = '1' +; + +SELECT base.cti_initialize_listes_by_code('compta'); \ No newline at end of file diff --git a/db/data/dbdata_compta_t_listes_tables.SQL b/db/data/dbdata_compta_t_listes_tables.SQL new file mode 100644 index 0000000..d5eb60c --- /dev/null +++ b/db/data/dbdata_compta_t_listes_tables.SQL @@ -0,0 +1,75 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT oid, name, texte, select_cmd, code FROM compta.t_listes_tables ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + name, + texte, + select_cmd, + code +) +VALUES +(1, 't_sections_analytiques', 'Sections analytiques', 'SELECT oid, code, texte, '''' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''sections_analytiques_c'') THEN ''O'' ELSE ''N'' END as utilise FROM compta.t_sections_analytiques WHERE oid > 0 ORDER BY code', 'ANA'), +(1, 't_sections_analytiques_c', 'Sections analytiques Clinique', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_sections_analytiques WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''sections_analytiques_c'') ORDER BY code', 'ANAC'), +(1, 't_comptes', 'Comptes', 'SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, CASE WHEN t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table IN (''comptes_c'', ''comptes_h'', ''comptes_extra_c'', ''comptes_extra_h'')) THEN ''O'' ELSE ''N'' END as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid +AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table IN (''comptes_c'', ''comptes_h'', ''comptes_extra_c'', ''comptes_extra_h'')) ORDER BY code', 'CPT'), +(1, 't_comptes_c', 'Comptes Clinique', 'SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, ''O'' as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''comptes_c'') ORDER BY code', 'CPTC'), +(1, 't_comptes_h', 'Comptes Honoraires', 'SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, ''O'' as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''comptes_h'') ORDER BY code', 'CPTH'), +(1, 't_activites_cout_patient_shs', 'Cout patient SHS. Activités', 'SELECT t_activites_cout_patient_shs.oid, t_activites_cout_patient_shs.code, t_activites_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_activites_cout_patient_shs LEFT JOIN compta.p_oids ON (t_activites_cout_patient_shs.oid = p_oids.oid AND code_table = ''activites_cout_patient_shs'') +WHERE t_activites_cout_patient_shs.oid > 0 +ORDER BY t_activites_cout_patient_shs.code', 'CSA'), +(1, 't_elements_cout_patient_shs', 'Cout patient SHS. Eléments de cout', 'SELECT t_elements_cout_patient_shs.oid, t_elements_cout_patient_shs.code, t_elements_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_elements_cout_patient_shs LEFT JOIN compta.p_oids ON (t_elements_cout_patient_shs.oid = p_oids.oid AND code_table = ''etages_cout_patient_shs'') +WHERE t_elements_cout_patient_shs.oid > 0 +ORDER BY t_elements_cout_patient_shs.code', 'CSC'), +(1, 't_etages_cout_patient_shs', 'Cout patient SHS. Etages', 'SELECT t_etages_cout_patient_shs.oid, t_etages_cout_patient_shs.code, t_etages_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_etages_cout_patient_shs LEFT JOIN compta.p_oids ON (t_etages_cout_patient_shs.oid = p_oids.oid AND code_table = ''etages_cout_patient_shs'') +WHERE t_etages_cout_patient_shs.oid > 0 +ORDER BY t_etages_cout_patient_shs.code', 'CSE'), +(1, 't_services_facturation_cout_patient_shs', 'Cout patient SHS. Services', 'SELECT t_services_facturation_cout_patient_shs.oid, t_services_facturation_cout_patient_shs.code, t_services_facturation_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_services_facturation_cout_patient_shs LEFT JOIN compta.p_oids ON (t_services_facturation_cout_patient_shs.oid = p_oids.oid AND code_table = ''services_facturation_cout_patient_shs'') +WHERE t_services_facturation_cout_patient_shs.oid > 0 +ORDER BY t_services_facturation_cout_patient_shs.code', 'CSF'), +(1, 't_ghm_cout_patient_shs', 'Cout patient SHS. GHM', 'SELECT t_ghm_cout_patient_shs.oid, t_ghm_cout_patient_shs.code, t_ghm_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_ghm_cout_patient_shs LEFT JOIN compta.p_oids ON (t_ghm_cout_patient_shs.oid = p_oids.oid AND code_table = ''ghm_cout_patient_shs'') +WHERE t_ghm_cout_patient_shs.oid > 0 +ORDER BY t_ghm_cout_patient_shs.code', 'CSG'), +(1, 't_ghs_cout_patient_shs', 'Cout patient SHS. GHS', 'SELECT t_ghs_cout_patient_shs.oid, t_ghs_cout_patient_shs.code, t_ghs_cout_patient_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_ghs_cout_patient_shs LEFT JOIN compta.p_oids ON (t_ghs_cout_patient_shs.oid = p_oids.oid AND code_table = ''ghs_cout_patient_shs'') +WHERE t_ghs_cout_patient_shs.oid > 0 +ORDER BY t_ghs_cout_patient_shs.code', 'CSH'), +(1, 't_medecins_cout_patient_shs', 'Cout patient SHS. Médecins', 'SELECT t_medecins_cout_patient_shs.oid, t_medecins_cout_patient_shs.code, t_medecins_cout_patient_shs.nom || '' '' || t_medecins_cout_patient_shs.prenom AS texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_medecins_cout_patient_shs LEFT JOIN compta.p_oids ON (t_medecins_cout_patient_shs.oid = p_oids.oid AND code_table = ''medecins_cout_patient_shs'') +WHERE t_medecins_cout_patient_shs.oid > 0 +ORDER BY t_medecins_cout_patient_shs.code', 'CSM'), +(1, 't_unites_oeuvres_shs', 'Cout patient SHS. Unités d''oeuvre', 'SELECT t_unites_oeuvre_shs.oid, t_unites_oeuvre_shs.code, t_unites_oeuvre_shs.texte, ''''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END as utilise +FROM compta.t_unites_oeuvre_shs LEFT JOIN compta.p_oids ON (t_unites_oeuvre_shs.oid = p_oids.oid AND code_table = ''etages_cout_patient_shs'') +WHERE t_unites_oeuvre_shs.oid > 0 +ORDER BY t_unites_oeuvre_shs.code', 'CSU'), +(1, 't_journaux', 'Journaux', 'SELECT t_journaux.oid, t_journaux.code, t_journaux.texte, subview.clinique_honoraire as complement, ''O'' as utilise FROM compta.t_journaux, +(SELECT oid, trim(MAX(CASE WHEN code_table = ''journaux_c'' THEN ''CLINIQUE'' ELSE '''' END) || '' '' || MAX(CASE WHEN code_table = ''journaux_h'' THEN ''HONORAIRE'' ELSE '''' END)) as clinique_honoraire FROM compta.p_oids WHERE code_table IN (''journaux_c'', ''journaux_h'') GROUP BY oid +) subview +WHERE t_journaux.oid > 0 AND t_journaux.oid = subview.oid +ORDER BY code', 'JRN'), +(1, 't_journaux_c', 'Journaux Clinique', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_journaux WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''journaux_c'') ORDER BY code', 'JRNC'), +(1, 't_journaux_h', 'Journaux Honoraires', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_journaux WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''journaux_h'') ORDER BY code', 'JRNH'), +(1, 't_partenaires', 'Partenaires', 'SELECT oid, code, texte, subview.comptes as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table IN (''partenaires_c'', ''partenaires_h'')) THEN ''O'' ELSE ''N'' END as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || '' '' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 ORDER BY code', 'PAR'), +(1, 't_partenaires_c', 'Partenaires Clinique', 'SELECT oid, code, texte, subview.comptes as complement, ''O'' as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || '' '' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''partenaires_c'') ORDER BY code', 'PARC'), +(1, 't_partenaires_h', 'Partenaires Honoraires', 'SELECT oid, code, texte, subview.comptes as complement, ''O'' as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || '' '' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''partenaires_h'') ORDER BY code', 'PARH'), +(1, 't_sites', 'Sites', 'SELECT oid, code, texte, '''' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table IN (''sites_c'', ''t_sites_h'')) THEN ''O'' ELSE ''N'' END as utilise FROM compta.t_sites WHERE oid > 0 ORDER BY code', 'SIT'), +(1, 't_sites_c', 'Sites Clinique', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_sites WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''sites_c'') ORDER BY code', 'SITC'), +(1, 't_sites_h', 'Sites Honoraires', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_sites WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = ''sites_h'') ORDER BY code', 'SITH'), +(1, 't_types_compta', 'Types comptabilité', 'SELECT oid, code, texte, '''' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table In (''types_compta_c'', ''types_compta_extra_c'', ''types_compta_h'', ''types_compta_extra_h'')) THEN ''O'' ELSE ''N'' END as utilise FROM compta.t_types_compta WHERE oid > 0 ORDER BY code', 'TYP'), +(1, 't_types_compta_c', 'Types comptabilité Clinique', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_types_compta WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table In (''types_compta_c'', ''types_compta_extra_c'')) ORDER BY code', 'TYPC'), +(1, 't_types_compta_h', 'Types comptabilité Honoraires', 'SELECT oid, code, texte, '''' as complement, ''O'' as utilise FROM compta.t_types_compta WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table In (''types_compta_h'', ''types_compta_extra_h'')) ORDER BY code', 'TYPH') +; + +-- 3/3 : Màj de la table iCTI +UPDATE compta.t_listes_tables SET code = w_dbsetup.code, texte = w_dbsetup.texte, select_cmd = w_dbsetup.select_cmd FROM w_dbsetup WHERE t_listes_tables.name = w_dbsetup.name; INSERT INTO compta.t_listes_tables(oid, code, name, texte, select_cmd) SELECT oid, code, name, texte, select_cmd FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM compta.t_listes_tables); INSERT INTO compta.t_listes_tables(code, name, texte, select_cmd) SELECT code, name, texte, select_cmd FROM w_dbsetup WHERE oid <> 0 AND name NOT IN (SELECT name FROM compta.t_listes_tables); \ No newline at end of file diff --git a/db/data/dbdata_compta_t_rapports.SQL b/db/data/dbdata_compta_t_rapports.SQL new file mode 100644 index 0000000..e840670 --- /dev/null +++ b/db/data/dbdata_compta_t_rapports.SQL @@ -0,0 +1,26 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT oid, code, texte, is_cti, is_essentiel FROM compta.t_rapports WHERE is_cti = '1' ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + is_cti, + is_essentiel +) +VALUES +(1, 'CTI_BAL1', 'X EXEMPLE CTI - Balance', '1', '0'), +(1, 'CTI_ESS_1', 'COMPTA Essentiels 1', '1', '1'), +(1, 'CTI_ESS_2', 'COMPTA Essentiels 2', '1', '1'), +(1, 'CTI_PF_AGG', 'CTI Portfolio', '1', '1'), +(1, 'CTI_PORTFO', 'CTI Portfolio ', '1', '1') +; + +-- 3/3 : Màj de la table iCTI +UPDATE compta.t_rapports SET texte = w_dbsetup.texte, is_cti = w_dbsetup.is_cti, is_essentiel = w_dbsetup.is_essentiel FROM w_dbsetup WHERE t_rapports.code = w_dbsetup.code; INSERT INTO compta.t_rapports(oid, code, texte, is_cti, is_essentiel) SELECT oid, code, texte, is_cti, is_essentiel FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM compta.t_rapports); INSERT INTO compta.t_rapports(code, texte, is_cti, is_essentiel) SELECT code, texte, is_cti, is_essentiel FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM compta.t_rapports); \ No newline at end of file diff --git a/db/data/dbdata_compta_t_rapports_rubriques.SQL b/db/data/dbdata_compta_t_rapports_rubriques.SQL new file mode 100644 index 0000000..f488daf --- /dev/null +++ b/db/data/dbdata_compta_t_rapports_rubriques.SQL @@ -0,0 +1,207 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_rapports_rubriques.numero_rubrique, + t_rapports_rubriques.entete, + t_rapports_rubriques.entete_etendue, + t_rapports_rubriques.output_format, + t_rapports_rubriques.width, + t_rapports_rubriques.periode_reference, + t_rapports_rubriques.row_height, + t_rapports_rubriques.padding, + t_rapports_rubriques.font_size, + t_rapports_rubriques.font_weight, + t_rapports_rubriques.border_thickness, + t_rapports_rubriques.color, + t_rapports_rubriques.base_nationale, + t_rapports_rubriques.base_nationale_qualifiee, + t_rapports_rubriques.background_color, + t_rapports_rubriques.viewlink, + t_rapports_rubriques.viewlink_label, + t_rapports_rubriques.viewlink_param, + t_rapports_rubriques.picto_enabled, + t_rapports_rubriques.positif_is_good, + COALESCE(ind2.code, 'PAS_DE_CODE') as indicateur_associe_code, + t_rapports.code AS rapport_code, + ind1.code AS indicateur_code + FROM + compta.t_rapports_rubriques + JOIN compta.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid + JOIN compta.t_indicateurs ind1 ON t_rapports_rubriques.indicateur_id = ind1.oid + LEFT JOIN compta.t_indicateurs ind2 ON t_rapports_rubriques.indicateur_associe_id = ind2.oid + WHERE 1=1 + AND ind1.is_cti = '1' + AND ind1.code <> '' + AND t_rapports.is_cti = '1' + AND ind2.is_cti IS DISTINCT FROM '0' + ORDER BY + t_rapports.code, + ind1.code, + t_rapports_rubriques.numero_rubrique + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + numero_rubrique, + entete, + entete_etendue, + output_format, + width, + periode_reference, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + base_nationale, + base_nationale_qualifiee, + background_color, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + indicateur_associe_code, + rapport_code, + indicateur_code +) +VALUES +(1, '', 'SOLDE INTERMEDIAIRE DE GESTION (synthèse)', '', 0, ' ', 26, 0, 18, 'bold ', 2, '0x6633 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG - CTI synthèse', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI77', ' ', ' ', 'PAS_DE_CODE', 'CTI_ESS_1', 'CTI_SEP'), +(15, '', 'k. Autres achats et charges externes', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Autres achats et charges externes', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI47', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGAUACEX'), +(27, '', 'u. Autres charges de gestion courante ', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Autres charges de gestion courante', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI48', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGAUCHGC'), +(24, '', 'r. Autres produits de gestion courante', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Autres produits de gestion courante', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI49', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGAUPRGC'), +(2, '', 'Chiffre d''affaire :', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x0 ', '0', '0', ' ', 'COMPTA000057', 'SIG - CHIFFRE D''AFFAIRE', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI50', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCA'), +(36, '', 'Charges exceptionnelles', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Charges exceptionnelles', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI51', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCHEX'), +(31, '', 'x. Charges financières', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Charges financières', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS46 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI52', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCHFI'), +(32, '', 'y. Charges financières sur crédit-bail', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Charges financières sur crédit-bail', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI53', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCHFICB'), +(20, '', 'o. Charges de personnel ', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Charges de personnel', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI54', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCHPR'), +(5, '', 'c. Coût d''achat des marchandises vendues ', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Coût d''achat des marchandises vendues', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI55', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCOACMA'), +(13, '', 'i. Coût d''achat matières premières et approv.', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Coût d''achat matières premières et approv.', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI56', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGCOACMP'), +(28, '', 'v. Dotations aux amortissements de crédit-bail', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Dotations aux amortissement de crédit-bail', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI57', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGDOAMCB'), +(26, '', 't. Dotations aux amortissements, dépréciations et provisions', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Dotations aux amortissements, dépréciations et provisions', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI58', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGDOAMDP'), +(22, '', '1. Excédent brut d''exploitation (II+m+n+o+p)', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x6600 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI EXCEDENT BRUT D''EXPLOITATION', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS32 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS17 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI59', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGEXBREX'), +(19, '', 'n. Impôts et taxes', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Impôts et taxes', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI61', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGIMTX'), +(16, '', 'l. Impôts et taxes hors valeur ajoutée', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Impôts et taxes hors valeur ajoutée', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI62', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGIMTXHV'), +(6, '', 'Marge commerciale :', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x0 ', '0', '0', ' ', 'COMPTA000057', 'SIG - MARGE COMMERCIALE', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI64', '0', '0', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGMACO'), +(21, '', 'p. Personnel extérieur', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Personnel extérieur', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI66', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPEEX'), +(12, '', 'I. PRODUCTION DE L''EXERCICE (a+b+c+d+e+f+g+h)', '', 0, ' ', 26, 0, 14, 'bold ', 2, '0x6633 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI PRODUCTION DE L''EXERCICE', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI67', '0', '0', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPREX'), +(30, '', 'w. Produits financiers', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Produits financiers', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI68', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPRFI'), +(10, '', 'g. Production immobilisée ', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Production immobilisée', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS28 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI69', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPRIM'), +(9, '', 'f. Production stockée ou déstockage', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Production stockée ou déstockage', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI70', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPRSTDE'), +(7, '', 'd. Production vendue', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG Production vendue', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI71', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPRVE'), +(35, '', 'Produits exceptionnels', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Produits exceptionnels', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI72', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGPRXX'), +(33, '', 'z. Quote-part sur opérations faites en commun', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Quote-part sur opérations faites en commun', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI73', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGQPOPCO'), +(23, '', 'q. Reprises sur amort. dépréciations et provisions', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Reprises sur amort. dépréciations et provisions', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI74', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGRPAMDP'), +(34, '', '3. Résultat courant (2+/-y+v-w-x)', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x6600 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI RESULTAT COURANT', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI75', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGRSCO'), +(29, '', '2. Résultat exploitation (1+q+r+s-t-u)', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x6600 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI RESULTAT D''EXPLOITATION', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS18 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS19 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI76', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGRSEX'), +(38, 'RESULTAT NET', 'RESULTAT NET', '', 0, ' ', 26, 0, 14, 'bold ', 2, '0x990000 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI RESULTAT NET', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI77', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGRSNT'), +(37, '', '4. Résultat exceptionnel (Produits except. - Charges except.)', '', 0, ' ', 0, 0, 12, 'bold ', 0, '0x6600 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI RESULTAT EXCEPTIONNEL', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI78', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGRSXX'), +(11, '', 'h. Sous-traitance production', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Sous-traitance production', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI80', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGSTPR'), +(18, '', 'm. Subventions d''exploitation', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Subventions d''exploitation', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI81', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGSUEX'), +(8, '', 'e. Subventions de production', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Subventions de production', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI82', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGSUPR'), +(4, '', 'b. Subventions sur ventes de marchandise', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Subventions sur ventes de marchandise', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI83', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGSUVTMA'), +(17, '', 'II. VALEUR AJOUTEE (I-(i+j+k+l))', '', 0, ' ', 26, 0, 14, 'bold ', 2, '0x6633 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI VALEUR AJOUTEE', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI85', '0', '0', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGVAAJ'), +(14, '', 'j. Variations de stock', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG - Variations de stock', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI86', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGVAST'), +(3, '', 'a. Vente de marchandises ', '', 0, ' ', 0, 10, 12, ' ', 0, ' ', '0', '0', ' ', 'COMPTA000057', 'SIG -Ventes de marchandises', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI87', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_1', 'L_CTISIGVTMA'), +(1, '', 'SOLDE INTERMEDIAIRE DE GESTION (détaillé)', '', 0, ' ', 28, 0, 18, 'bold ', 2, '0x6633 ', '0', '0', '0xcccccc ', 'COMPTA000057', 'SIG CTI détaillé', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=SAISIECODE & COMPTE_C_CODES=6*,7*', ' ', ' ', 'PAS_DE_CODE', 'CTI_ESS_2', 'CTI_SEP'), +(40, '', 'G. Dotations aux amortissements, dépréciations et provisions', '', 0, ' ', 0, 10, 0, ' ', 0, '0x0 ', '0', '0', ' ', 'COMPTA000057', 'SIG CTI Niveau 2 - Dotations aux amort.', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI58', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_2', 'L_CTISIGDOAMDP'), +(41, '', 'H. Redevance crédit-bail (mobilier) ', '#', 0, ' ', 0, 10, 0, ' ', 0, '0x0 ', '0', '0', ' ', 'COMPTA000057', 'SIG CTI Niveau 2 - Redevance crédit-bail (mobilier)', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI107', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_2', 'L_CTISIGRCB'), +(39, '', 'F. Reprises sur amort. dépréciations et provisions ', '', 0, ' ', 0, 10, 0, ' ', 0, '0x0 ', '0', '0', ' ', 'COMPTA000057', 'SIG CTI Niveau 2 - Reprises sur amort.', 'MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI74', '1', '1', 'PAS_DE_CODE', 'CTI_ESS_2', 'L_CTISIGRPAMDP') +; + +-- 3/3 : Màj de la table iCTI +-- Sauvegarder les données sources pour rejouer le spécifique +SELECT base.cti_verify_table_encoding('compta','t_rapports_rubriques') +; +DROP TABLE IF EXISTS w_specific_rapports_rubriques ; +CREATE TEMP TABLE w_specific_rapports_rubriques AS +SELECT t_rapports_rubriques.* +FROM compta.t_rapports_rubriques +JOIN compta.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid +WHERE t_rapports.is_essentiel = '1' +; + +-- Installer les données CTI +DELETE FROM compta.t_rapports_rubriques +WHERE 1=1 + AND rapport_id IN (SELECT oid FROM compta.t_rapports WHERE is_cti = '1') +; + +INSERT INTO compta.t_rapports_rubriques( + rapport_id, + numero_rubrique, + indicateur_id, + entete, + entete_etendue, + output_format, + width, + periode_reference, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + base_nationale, + base_nationale_qualifiee, + background_color, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + indicateur_associe_id + ) +SELECT + t_rapports.oid, + numero_rubrique, + ind1.oid, + w_dbsetup.entete, + w_dbsetup.entete_etendue, + w_dbsetup.output_format, + w_dbsetup.width, + w_dbsetup.periode_reference, + w_dbsetup.row_height, + w_dbsetup.padding, + w_dbsetup.font_size, + w_dbsetup.font_weight, + w_dbsetup.border_thickness, + w_dbsetup.color, + w_dbsetup.base_nationale, + w_dbsetup.base_nationale_qualifiee, + w_dbsetup.background_color, + w_dbsetup.viewlink, + w_dbsetup.viewlink_label, + w_dbsetup.viewlink_param, + w_dbsetup.picto_enabled, + w_dbsetup.positif_is_good, + COALESCE(ind2.oid, 0) +FROM + w_dbsetup + JOIN compta.t_rapports ON w_dbsetup.rapport_code = t_rapports.code + JOIN compta.t_indicateurs ind1 ON w_dbsetup.indicateur_code = ind1.code + LEFT JOIN compta.t_indicateurs ind2 ON w_dbsetup.indicateur_associe_code = ind2.code +; + +-- Rejouer le spécifique +UPDATE compta.t_rapports_rubriques SET + is_hide = w_specific_rapports_rubriques.is_hide, + specific_viewlink = w_specific_rapports_rubriques.specific_viewlink, + specific_viewlink_label = w_specific_rapports_rubriques.specific_viewlink_label, + specific_viewlink_param = w_specific_rapports_rubriques.specific_viewlink_param +FROM w_specific_rapports_rubriques +WHERE w_specific_rapports_rubriques.rapport_id = t_rapports_rubriques.rapport_id AND + w_specific_rapports_rubriques.indicateur_id = t_rapports_rubriques.indicateur_id AND + w_specific_rapports_rubriques.entete_etendue = t_rapports_rubriques.entete_etendue AND + ( + w_specific_rapports_rubriques.is_hide = '1' OR + w_specific_rapports_rubriques.specific_viewlink <> '' OR + w_specific_rapports_rubriques.specific_viewlink_label <> '' OR + w_specific_rapports_rubriques.specific_viewlink_param <> '' + ) +; \ No newline at end of file diff --git a/db/data2/dbdata_compta_t_classes.csv b/db/data2/dbdata_compta_t_classes.csv new file mode 100644 index 0000000..1c9332c --- /dev/null +++ b/db/data2/dbdata_compta_t_classes.csv @@ -0,0 +1,2 @@ +oid|table_code|code|sequence_source|texte|is_cti|contenu_by_code|contenu_non_replicable_ailleurs|sequence|table_id +1|CPT|CTI_CONTRIBUTION_BLOC_OPERATOIRE|42|Coût des charges pour le calcul de la contribution|1|0|0|0|0 diff --git a/db/data2/dbdata_compta_t_classes_comptes.csv b/db/data2/dbdata_compta_t_classes_comptes.csv new file mode 100644 index 0000000..4b34d16 --- /dev/null +++ b/db/data2/dbdata_compta_t_classes_comptes.csv @@ -0,0 +1,370 @@ +code|texte +00| +000| +1|CAPITAUX (CLASSE 1) +10|CAPITAL ET RÉSERVES +101|Capital +102|Fonds fiduciaires +104|Primes liées au capital social +105|Écarts de réévaluation +106|Réserves +107|Écart d'équivalence +108|Compte de l'exploitant +109|Actionnaires : Capital souscrit - non appelé +11|REPORT A NOUVEAU (solde créditeur ou débiteur) +110|Report à nouveau (solde créditeur) +119|Report à nouveau (solde débiteur) +12|RÉSULTAT DE L'EXERCICE (bénéfice ou perte) +120|Résultat de l'exercice (bénéfice) +129|Résultat de l'exercice (perte) +13|SUBVENTIONS D'INVESTISSEMENT +131|Subventions d'équipement +138|Autres subventions d'investissement (même ventilation que celle du compte 131) +139|Subventions d'investissement inscrites au compte de résultat +14|PROVISIONS RÉGLEMENTÉES +142|Provisions réglementées relatives aux immobilisations +143|Provisions réglementées relatives aux stocks +144|Provisions réglementées relatives aux autres éléments de l'actif +145|Amortissements dérogatoires +146|Provision spéciale de réévaluation +147|Plus - values réinvesties +148|Autres provisions réglementées +15|PROVISIONS +151|Provisions pour risques +153|Provisions pour pensions et obligations similaires +154|Provisions pour restructurations +155|Provisions pour impôts +156|Provisions pour renouvellement des immobilisations (entreprises concessionnaires) +157|Provisions pour charges à répartir sur plusieurs exercices +158|Autres provisions pour charges +16|EMPRUNTS ET DETTES ASSIMILÉES +161|Emprunts obligataires convertibles +162|Obligations représentatives de passifs nets remis en fiducie +163|Autres emprunts obligataires +164|Emprunts auprès des établissements de crédit +165|Dépôts et cautionnements reçus +166|Participation des salariés aux résultats +167|Emprunts et dettes assortis de conditions particulières +168|Autres emprunts et dettes assimilées +169|Primes de remboursement des obligations +17|DETTES RATTACHÉES A DES PARTICIPATIONS +171|Dettes rattachées à des participations (groupe) +174|Dettes rattachées à des participations (hors groupe) +178|Dettes rattachées à des sociétés en participation +18|COMPTES DE LIAISON DES ÉTABLISSEMENTS ET SOCIÉTÉS EN PARTICIPATION +181|Comptes de liaison des établissements +186|Biens et prestations de services échangés entre établissements (charges) +187|Biens et prestations de services échangés entre établissements (produits) +188|Comptes de liaison des sociétés en participation +2|IMMOBILISATIONS (CLASSE 2) +20|IMMOBILISATIONS INCORPORELLES +201|Frais d'établissement +203|Frais de recherche et de développement +205|Concessions et droits similaires, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires +206|Droit au bail +207|Fonds commercial +208|Autres immobilisations incorporelles +21|IMMOBILISATIONS CORPORELLES +211|Terrains +212|Agencements et aménagements de terrains (même ventilation que celle du compte 211) +213|Constructions +214|Constructions sur sol d'autrui (même ventilation que celle du compte 213) +215|Installations techniques, matériels et outillage industriels +218|Autres immobilisations corporelles +22|IMMOBILISATIONS MISES EN CONCESSION +23|IMMOBILISATIONS EN COURS +231|Immobilisations corporelles en cours +232|Immobilisations incorporelles en cours +237|Avances et acomptes versés sur immobilisations incorporelles +238|Avances et acomptes versés sur commandes d'immobilisations corporelles +25|PARTS DANS DES ENTREPRISES LIÉES ET CRÉANCES SUR DES ENTREPRISES LIÉES +26|PARTICIPATIONS ET CRÉANCES RATTACHÉES À DES PARTICIPATIONS +261|Titres de participation +266|Autres formes de participation +267|Créances rattachées à des participations +268|Créances rattachées à des sociétés en participation +269|Versements restant à effectuer sur titres de participation non libérés +27|AUTRES IMMOBILISATIONS FINANCIÈRES +271|Titres immobilisés autres que les titres immobilisés de l'activité de portefeuille (droit de propriété) +272|Titres immobilisés (droit de créance) +273|Titres immobilisés de l'activité de portefeuille +274|Prêts +275|Dépôts et cautionnements versés +276|Autres créances immobilisées +277|Actions propres ou parts propres +278|Mali de fusion sur actifs financiers (1) +279|Versements restant à effectuer sur titres immobilisés non libérés +28|AMORTISSEMENTS DES IMMOBILISATIONS +280|Amortissements des immobilisations incorporelles +281|Amortissements des immobilisations corporelles +282|Amortissements des immobilisations mises en concession +29|DÉPRÉCIATIONS DES IMMOBILISATIONS +290|Dépréciations des immobilisations incorporelles +291|dépréciations des immobilisations corporelles (même ventilation que celle du compte 21) +292|dépréciations des immobilisations mises en concession +293|dépréciations des immobilisations en cours +296|Dépréciations des participations et créances rattachées à des participations ? +297|Dépréciations des autres immobilisations financières +3|COMPTE DES STOCKS ET EN-COURS (CLASSE 3) +31|MATIÈRES PREMIÈRES (ET FOURNITURES) +311|Matières (ou groupe) A +312|Matières (ou groupe) B +317|Fournitures A, B, C, ... +32|AUTRES APPROVISIONNEMENTS +321|Matières consommables +322|Fournitures consommables +326|Emballages +33|EN-COURS DE PRODUCTION DE BIENS +331|Produits en cours +335|Travaux en cours +34|EN-COURS DE PRODUCTION DE SERVICES +341|Études en cours +345|Prestations de services en cours +35|STOCKS DE PRODUITS +351|Produits intermédiaires +355|Produits finis +358|Produits résiduels (ou matières de récupération) +36|(compte à ouvrir, le cas échéant, sous l'intitulé « stocks provenant d'immobilisations ») +37|STOCKS DE MARCHANDISES +371|Marchandises (ou groupe) A +372|Marchandises (ou groupe) B +38|(lorsque l'entité tient un inventaire permanent en comptabilité générale, le compte 38 peut être utilisé pour comptabiliser les stocks en voie d'acheminement, mis en dépôt ou donnés en consignation) +39|DÉPRÉCIATIONS DES STOCKS ET EN-COURS +391|Dépréciations des matières premières (et fournitures) +392|Dépréciations des autres approvisionnements +393|Dépréciations des en-cours de production de biens +394|Dépréciations des en-cours de production de services +395|Dépréciations des stocks de produits +397|Dépréciations des stocks de marchandises +4|TIERS (CLASSE 4) +40|FOURNISSEURS ET COMPTES RATTACHÉS +400|Fournisseurs et Comptes rattachés +401|Fournisseurs +403|Fournisseurs - Effets à payer +404|Fournisseurs d'immobilisations +405|Fournisseurs d'immobilisations - Effets à payer +408|Fournisseurs - Factures non parvenues +409|Fournisseurs débiteurs +41|CLIENTS ET COMPTES RATTACHÉS +410|Clients et Comptes rattachés +411|Clients +413|Clients - Effets à recevoir +416|Clients douteux ou litigieux +418|Clients - Produits non encore facturés +419|Clients créditeurs +42|PERSONNEL ET COMPTES RATTACHÉS +421|Personnel - Rémunérations dues +422|Comités d'entreprises, d'établissement, ... +424|Participation des salariés aux résultats +425|Personnel - Avances et acomptes +426|Personnel ? Dépôts +427|Personnel - Oppositions +428|Personnel - Charges à payer et produits à recevoir +43|SÉCURITÉ SOCIALE ET AUTRES ORGANISMES SOCIAUX +431|Sécurité sociale +437|Autres organismes sociaux +438|Organismes sociaux - Charges à payer et produits à recevoir +44|ETAT ET AUTRES COLLECTIVITÉS PUBLIQUES +441|Etat - Subventions à recevoir +442|Contributions, impôts et taxes recouvrés pour le compte de l'Etat (2) +443|Opérations particulières avec l'État, les collectivités publiques, les organismes internationaux +444|État - Impôts sur les bénéfices +445|État - Taxes sur le chiffre d'affaires +446|Obligations cautionnées +447|Autres impôts, taxes et versements assimilés +448|État - Charges à payer et produits à recevoir +449|Quotas d'émission à acquérir +45|GROUPE ET ASSOCIÉS +451|Groupe +455|Associés - Comptes courants +456|Associés - Opérations sur le capital +457|Associés - Dividendes à payer +458|Associés - Opérations faites en commun et en G.I.E. +46|DÉBITEURS DIVERS ET CRÉDITEURS DIVERS +462|Créances sur cessions d'immobilisations +464|Dettes sur acquisitions de valeurs mobilières de placement +465|Créances sur cessions de valeurs mobilières de placement +467|Autres comptes débiteurs ou créditeurs +468|Divers - Charges à payer et produits à recevoir +47|COMPTES TRANSITOIRES OU D'ATTENTE +471|Comptes d'attente +472|Comptes d'attente +473|Comptes d'attente +474|Différences d'évaluation de jetons sur des passifs +475|Comptes d'attente +476|Différence de conversion - ACTIF +477|Différences de conversion - PASSIF +478|Autres comptes transitoires +48|COMPTES DE RÉGULARISATION +481|Charges à répartir sur plusieurs exercices +486|Charges constatées d'avance +487|Produits constatés d'avance +488|Comptes de répartition périodique des charges et des produits +49|DÉPRÉCIATIONS DES COMPTES DE TIERS +491|Dépréciations des comptes de clients +495|Dépréciations des comptes du groupe et des associés +496|Dépréciations des comptes de débiteurs divers +5|FINANCIERS (CLASSE 5) +50|VALEURS MOBILIÈRES DE PLACEMENT +501|Parts dans des entreprises liées +502|Actions propres +503|Actions +504|Autres titres conférant un droit de propriété +505|Obligations et bons émis par la société et rachetés par elle +506|Obligations +507|Bons du Trésor et bons de caisse à court terme +508|Autres valeurs mobilières de placement et autres créances assimilées +509|Versements restant à effectuer sur valeurs mobilières de placement non libérées +51|BANQUES, ÉTABLISSEMENTS FINANCIERS ET ASSIMILÉS +511|Valeurs à l'encaissement +512|Banques +514|Chèques postaux +515|« Caisses » du Trésor et des établissements publics +516|Sociétés de bourse +517|Autres organismes financiers +518|Intérêts courus +519|Concours bancaires courants +52|INSTRUMENTS FINANCIERS À TERME ET JETONS DÉTENUS +521|Instruments financiers à terme +522|Jetons détenus +523|Jetons auto-détenus +524|Jetons empruntés +53|CAISSE +531|Caisse siège social +532|Caisse succursale (ou usine) A +533|Caisse succursale (ou usine) B +54|RÉGIES D'AVANCE ET ACCRÉDITIFS +58|VIREMENTS INTERNES +59|DÉPRÉCIATIONS DES COMPTES FINANCIERS +590|Dépréciations des valeurs mobilières de placement +6|CHARGES (CLASSE 6) +60|ACHATS (sauf 603) +601|Achats stockés - Matières premières (et fournitures) +602|Achats stockés - Autres approvisionnements +604|Achats d'études et prestations de services +605|Achats de matériel, équipements et travaux +606|Achats non stockés de matières et fournitures +607|Achats de marchandises +608|(Compte réservé, le cas échéant, à la récapitulation des frais accessoires incorporés aux achats) +609|Rabais, remises et ristournes obtenus sur achats +603|VARIATIONS DES STOCKS (approvisionnements et marchandises) +61|SERVICES EXTÉRIEURS +611|Sous-traitance générale +612|Redevances de crédit-bail +613|Locations +614|Charges locatives et de copropriété +615|Entretien et réparations +616|Primes d'assurances +617|Études et recherches +618|Divers +619|Rabais, remises et ristournes obtenus sur services extérieurs +62|AUTRES SERVICES EXTÉRIEURS +621|Personnel extérieur à l'entreprise +622|Rémunérations d'intermédiaires et honoraires +623|Publicité, publications, relations publiques +624|Transports de biens et transports collectifs du personnel +625|Déplacements, missions et réceptions +626|Frais postaux et de télécommunications +627|Services bancaires et assimilés +628|Divers +629|Rabais, remises et ristournes obtenus sur autres services extérieurs +63|IMPÔTS, TAXES ET VERSEMENTS ASSIMILÉS +631|Impôts, taxes et versements assimilés sur rémunérations (administrations des impôts) +633|Impôts, taxes et versements assimilés sur rémunérations (autres organismes) +635|Autres impôts, taxes et versements assimilés (administrations des impôts) +637|Autres impôts, taxes et versements assimilés (autres organismes) +64|CHARGES DE PERSONNEL +641|Rémunérations du personnel +644|Rémunération du travail de l'exploitant +645|Charges de sécurité sociale et de prévoyance +646|Cotisations sociales personnelles de l'exploitant +647|Autres charges sociales +648|Autres charges de personnel +65|AUTRES CHARGES DE GESTION COURANTE +651|Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires +653|Jetons de présence +654|Pertes sur créances irrécouvrables +655|Quotes - parts de résultat sur opérations faites en commun +656|Pertes de change sur créances commerciales +658|Charges diverses de gestion courante +66|CHARGES FINANCIÈRES +661|Charges d'intérêts +664|Pertes sur créances liées à des participations +665|Escomptes accordés +666|Pertes de change financières +667|Charges nettes sur cessions de valeurs mobilières de placement +668|Autres charges financières +67|CHARGES EXCEPTIONNELLES +671|Charges exceptionnelles sur opérations de gestion +672|(Compte à la disposition des entités pour enregistrer, en cours d'exercice, les charges sur exercices antérieurs) +674|Opérations de constitution ou liquidation des fiducies +675|Valeurs comptables des éléments d'actif cédés +678|Autres charges exceptionnelles +68|DOTATIONS AUX AMORTISSEMENTS, DÉPRÉCIATIONS ET PROVISIONS +681|Dotations aux amortissements, dépréciations et provisions ? Charges d'exploitation +686|Dotations aux amortissements, dépréciations et provisions - Charges financières +687|Dotations aux amortissements dépréciations et provisions - Charges exceptionnelles +69|PARTICIPATION DES SALARIÉS - IMPÔTS SUR LES BÉNÉFICES ET ASSIMILÉS +691|Participation des salariés aux résultats +695|Impôts sur les bénéfices +696|Suppléments d'impôt sur les sociétés liés aux distributions +698|Intégration fiscale +699|Produits - Report en arrière des déficits +7|PRODUITS (CLASSE 7) +70|VENTES DE PRODUITS FABRIQUÉS, PRESTATIONS DE SERVICES, MARCHANDISES +701|Ventes de produits finis +702|Ventes de produits intermédiaires +703|Ventes de produits résiduels +704|Travaux +705|Études +706|Prestations de services +707|Ventes de marchandises +708|Produits des activités annexes +709|Rabais, remises et ristournes accordés par l'entreprise +71|PRODUCTION STOCKÉE (OU DÉSTOCKAGE) +713|Variation des stocks (en-cours de production, produits) +72|PRODUCTION IMMOBILISÉE +721|Immobilisations incorporelles +722|Immobilisations corporelles +74|SUBVENTIONS D'EXPLOITATION +75|AUTRES PRODUITS DE GESTION COURANTE +751|Redevances pour concessions, brevets, licences, marques, procédés, logiciels, droits et valeurs similaires +752|Revenus des immeubles non affectés à des activités professionnelles +753|Jetons de présence et rémunérations d'administrateurs, gérants +754|Ristournes perçues des coopératives (provenant des excédents) +755|Quotes - parts de résultat sur opérations faites en commun +756|Gains de change sur créances commerciales +758|Produits divers de gestion courante +76|PRODUITS FINANCIERS +761|Produits de participations +762|Produits des autres immobilisations financières +763|Revenus des autres créances +764|Revenus des valeurs mobilières de placement +765|Escomptes obtenus +766|Gains de change +767|Produits nets sur cessions de valeurs mobilières de placement +768|Autres produits financiers +77|PRODUITS EXCEPTIONNELS +771|Produits exceptionnels sur opérations de gestion +772|(Compte à la disposition des entités pour enregistrer, en cours d'exercice, les produits sur exercices antérieurs) +774|Opérations de constitution ou liquidation des fiducies +775|Produits des cessions d'éléments d'actif +777|Quote - part des subventions d'investissement virée au résultat de l'exercice +778|Autres produits exceptionnels +78|REPRISES SUR AMORTISSEMENTS, DÉPRÉCIATIONS ET PROVISIONS +781|Reprises sur amortissements, dépréciations et provisions (à inscrire dans les produits d'exploitation) +786|Reprises sur dépréciations et provisions (à inscrire dans les produits financiers) +787|Reprises sur dépréciations et provisions (à inscrire dans les produits exceptionnels) +79|TRANSFERTS DE CHARGES +791|Transferts de charges d'exploitation +796|Transferts de charges financières +797|Transferts de charges exceptionnelles +8|RESULTAT +80|ENGAGEMENTS* +801|ENGAGEMENTS DONNES PAR L'ENTITE* +802|ENGAGEMENTS RECUS PAR L'ENTITE* +809|CONTREPARTIE DES ENGAGEMENTS* +88|RéSULTAT EN INSTANCE D'AFFECTATION +89|BILAN* +9| +901|COMPTABILISATION DES GRATUITS \ No newline at end of file diff --git a/db/data2/dbdata_compta_t_classes_sections.csv b/db/data2/dbdata_compta_t_classes_sections.csv new file mode 100644 index 0000000..6cd72ca --- /dev/null +++ b/db/data2/dbdata_compta_t_classes_sections.csv @@ -0,0 +1,4 @@ +oid|table_code|classe_code|classe_sequence|code|texte|condition|exclude_code|include_code|classe_id|table_id +1|CPT|CTI_CONTRIBUTION_BLOC_OPERATOIRE|42|S1|Consommable||||0|0 +1|CPT|CTI_CONTRIBUTION_BLOC_OPERATOIRE|42|S2|Structure||||0|0 +1|CPT|CTI_CONTRIBUTION_BLOC_OPERATOIRE|42|S3|Energie||||0|0 diff --git a/db/data2/dbdata_compta_t_divers.csv b/db/data2/dbdata_compta_t_divers.csv new file mode 100644 index 0000000..96c70f8 --- /dev/null +++ b/db/data2/dbdata_compta_t_divers.csv @@ -0,0 +1,4 @@ +code|description|show_info_module|texte|valeur|valeur_date +MOIS_DEBUT|Mois de début de la période comptable|t|Mois début période comptable.|7|1970-01-01 +NOW|Date non modifiable|t|Date dernière écriture||1970-01-01 +NOWCLOTURE|Date non modifiable|t|Date clôture||1970-01-01 diff --git a/db/data2/dbdata_compta_t_indicateurs.csv b/db/data2/dbdata_compta_t_indicateurs.csv new file mode 100644 index 0000000..56753d4 --- /dev/null +++ b/db/data2/dbdata_compta_t_indicateurs.csv @@ -0,0 +1,59 @@ +oid|texte|table_name|column_name|is_cti|entete|code|total_function|output_format|width|entete_etendue|dimension_date_1|dimension_date_2|dimension_date_3|dimension_date_4|dimension_date_5|dimension_date|indicateur_associe_1_code|indicateur_associe_2_code|indicateur_associe_3_code|indicateur_associe_4_code|indicateur_associe_5_code|indicateur_associe_6_code|indicateur_associe_7_code|indicateur_associe_8_code|indicateur_associe_9_code|indicateur_associe_10_code|indicateur_associe_11_code|indicateur_associe_12_code|indicateur_associe_13_code|indicateur_associe_14_code|indicateur_associe_15_code|indicateur_associe_16_code|indicateur_associe_17_code|indicateur_associe_18_code|indicateur_associe_19_code|indicateur_associe_20_code|indicateur_reference_code +1|BILAN Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code IN ('1', '2', '3', '4', '5') THEN montant_solde_debit ELSE 0 END|1|BILAN|CTI_BILC|SUM|#E|80|BILAN|4| | | | |4|CTI_CL6C|CTI_CL7C||||||||||||||||||| +1|CAPITAUX Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '1' THEN montant_solde_debit ELSE 0 END|1|CAPITAUX|CTI_CL1C|SUM|#E|80|CAPITAUX|4| | | | |4||||||||||||||||||||| +1|IMMOBILISATIONS Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '2' THEN montant_solde_debit ELSE 0 END|1|IMMOBILISATIONS|CTI_CL2C|SUM|#E|80|IMMOBILISATIONS|4| | | | |4||||||||||||||||||||| +1|STOCKS Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '3' THEN montant_solde_debit ELSE 0 END|1|STOCKS|CTI_CL3C|SUM|#E|80|STOCKS|4| | | | |4||||||||||||||||||||| +1|CLIENTS Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_2_code = '41' THEN montant_solde_debit ELSE 0 END|1|CLIENTS|CTI_CL41C|SUM|#E|80|CLIENTS|4| | | | |4||||||||||||||||||||| +1|CLIENTS Honoraires|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'H' AND classe_2_code = '41' THEN montant_solde_debit ELSE 0 END|1|CLIENTS H|CTI_CL41H|SUM|#E|80|CLIENTS Honoraires|4| | | | |4||||||||||||||||||||| +1|COMPTES DE TIERS Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '4' THEN montant_solde_debit ELSE 0 END|1|COMPTES DE TIERS|CTI_CL4C|SUM|#E|80|COMPTES DE TIERS|4| | | | |4||||||||||||||||||||| +1|COMPTES FINANCIERS Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '5' THEN montant_solde_debit ELSE 0 END|1|COMPTES FINANCIERS|CTI_CL5C|SUM|#E|80|COMPTES FINANCIERS|4| | | | |4||||||||||||||||||||| +1|COMPTES DE CHARGE Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '6' THEN montant_solde_debit ELSE 0 END|1|COMPTES DE CHARGE|CTI_CL6C|SUM|#E|80|COMPTES DE CHARGE|4| | | | |4||||||||||||||||||||| +1|COMPTES DE PRODUIT Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code = '7' THEN montant_solde_debit ELSE 0 END|1|COMPTES DE PRODUIT|CTI_CL7C|SUM|#E|80|COMPTES DE PRODUIT|4| | | | |4||||||||||||||||||||| +1|Erreur|SEP||1||CTI_ERROR|SEP|#|0||0| | | | |0||||||||||||||||||||| +1|X. EXEMPLE CTI. Choix d'un compte|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND compte_numero = '41110000' THEN montant_solde_debit ELSE 0 END|1|Exemple CTI. Choix d'un compte|CTI_EXEMPLE1|SUM|#E|0|Exemple CTI. Choix d'un compte|4| | | | |4||||||||||||||||||||| +1|X. EXEMPLE CTI. Choix d'une liste de comptes|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND compte_numero IN ('41110000', '4114000', '41180000') THEN montant_solde_debit ELSE 0 END|1|Exemple CTI. Choix d'une liste de comptes|CTI_EXEMPLE2|SUM|#E|0|Exemple CTI. Choix d'une liste de comptes|4| | | | |4||||||||||||||||||||| +1|X. EXEMPLE CTI. Choix de comptes (début du code)|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND compte_numero LIKE '4111%' THEN montant_solde_debit ELSE 0 END|1|Exemple CTI. Choix de comptes (début du code)|CTI_EXEMPLE3|SUM|#E|0|Exemple CTI. Choix de comptes (début du code)|4| | | | |4||||||||||||||||||||| +1|X. EXEMPLE CTI. Choix de comptes (plusieurs début du code)|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND (compte_numero LIKE '4111%' OR compte_numero LIKE '4114%' OR compte_numero LIKE '4118%' ) THEN montant_solde_debit ELSE 0 END|1|Exemple CTI. Choix de comptes (plusieurs début du code)|CTI_EXEMPLE4|SUM|#E|0|Exemple CTI. Choix de comptes (plusieurs début du code)|4| | | | |4||||||||||||||||||||| +1|X. EXEMPLE CTI. Choix d'un journal|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_code = '071' THEN montant_debit ELSE 0 END|1|Exemple CTI. Choix d'un journal|CTI_EXEMPLE5|SUM|#E|0|Exemple CTI. Choix d'un journal|4| | | | |4||||||||||||||||||||| +1|GESTION Clinique|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND classe_1_code IN ('6', '7') THEN montant_solde_debit ELSE 0 END|1|GESTION|CTI_GESC|SUM|#E|80|GESTION|4| | | | |4|CTI_CL6C|CTI_CL7C||||||||||||||||||| +1|CTI. Montant crédit|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' THEN montant_solde_credit ELSE 0 END|1|Montant crédit|CTI_MTCREDIT|SUM|#|0|Montant crédit|4| | | | |4||||||||||||||||||||| +1|CTI. Montant débit|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' THEN montant_solde_credit ELSE 0 END|1|Montant débit|CTI_MTDEBIT|SUM|#|0|Montant débit|4| | | | |4||||||||||||||||||||| +1|Calcul d'indicateurs dans le rapport|*RAPPORTCALC||1||CTI_RAPPORTCALC|sum|#|0||0| | | | |0||||||||||||||||||||| +1|Séparateur|SEP|0|1||CTI_SEP|SEP|#|0||0| | | | |0||||||||||||||||||||| +1|CTISIG. Autres achats et charges externes|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUACEX] THEN montant_solde_credit ELSE 0 END|1|Autres achats et charges externes|L_CTISIGAUACEX|SUM|#|0|Autres achats et charges externes|4| | | | |4||||||||||||||||||||| +1|CTISIG. Autres charges de gestion courante|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUCHGC] THEN montant_solde_credit ELSE 0 END|1|Autres charges de gestion courante|L_CTISIGAUCHGC|SUM|#|0|Autres charges de gestion courante|4| | | | |4||||||||||||||||||||| +1|CTISIG. Autres produits de gestion courante|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGAUPRGC] THEN montant_solde_credit ELSE 0 END|1|Autres produits de gestion courante|L_CTISIGAUPRGC|SUM|#|0|Autres produits de gestion courante|4| | | | |4||||||||||||||||||||| +1|CTISIG. Chiffre d'affaire|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCA] THEN montant_solde_credit ELSE 0 END|1|Chiffre d'affaire|L_CTISIGCA|SUM|#|0|Chiffre d'affaire|4| | | | |4||||||||||||||||||||| +1|CTISIG. Charges exceptionnelles|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHEX] THEN montant_solde_credit ELSE 0 END|1|Charges exceptionnelles|L_CTISIGCHEX|SUM|#|0|Charges exceptionnelles|4| | | | |4||||||||||||||||||||| +1|CTISIG. Charges financières|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHFI] THEN montant_solde_credit ELSE 0 END|1|Charges financières|L_CTISIGCHFI|SUM|#|0|Charges financières|4| | | | |4||||||||||||||||||||| +1|CTISIG. Charges financières sur crédit-bail|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHFICB] THEN montant_solde_credit ELSE 0 END|1|Charges financières sur crédit-bail|L_CTISIGCHFICB|SUM|#|0|Charges financières sur crédit-bail|4| | | | |4||||||||||||||||||||| +1|CTISIG. Charges de personnel|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCHPR] THEN montant_solde_credit ELSE 0 END|1|Charges de personnel|L_CTISIGCHPR|SUM|#|0|Charges de personnel|4| | | | |4||||||||||||||||||||| +1|CTISIG. Coût d'achat des marachandises vendues|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCOACMA] THEN montant_solde_credit ELSE 0 END|1|Coût d'achat des marachandises vendues|L_CTISIGCOACMA|SUM|#|0|Coût d'achat des marachandises vendues|4| | | | |4||||||||||||||||||||| +1|CTISIG. Coût d'achat matières premières et approv.|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGCOACMP] THEN montant_solde_credit ELSE 0 END|1|Coût d'achat matières premières et approv.|L_CTISIGCOACMP|SUM|#|0|Coût d'achat matières premières et approv.|4| | | | |4||||||||||||||||||||| +1|CTISIG. Dotations aux amortissements de crédit-bail|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGDOAMCB] THEN montant_solde_credit ELSE 0 END|1|SIG. Dotations aux amortissements de crédit-bail|L_CTISIGDOAMCB|SUM|#|0|SIG. Dotations aux amortissements de crédit-bail|4| | | | |4||||||||||||||||||||| +1|CTISIG. Dotations aux amortissements, dépréciations et provisions|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGDOAMDP] THEN montant_solde_credit ELSE 0 END|1|Dotations aux amortissements, dépréciations et provisions|L_CTISIGDOAMDP|SUM|#|0|Dotations aux amortissements, dépréciations et provisions|4| | | | |4||||||||||||||||||||| +1|CTISIG. Excédent brut d'exploitation|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGEXBREX] THEN montant_solde_credit ELSE 0 END|1|Excédent brut d'exploitation|L_CTISIGEXBREX|SUM|#|0|Excédent brut d'exploitation|4| | | | |4||||||||||||||||||||| +1|CTISIG. Impôts et taxes|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGIMTX] THEN montant_solde_credit ELSE 0 END|1|Impôts et taxes|L_CTISIGIMTX|SUM|#|0|Impôts et taxes|4| | | | |4||||||||||||||||||||| +1|CTISIG. Impôts et taxes hors valeur ajoutée|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGIMTXHV] THEN montant_solde_credit ELSE 0 END|1|Impôts et taxes hors valeur ajoutée|L_CTISIGIMTXHV|SUM|#|0|Impôts et taxes hors valeur ajoutée|4| | | | |4||||||||||||||||||||| +1|CTISIG. Marge commerciale|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGMACO] THEN montant_solde_credit ELSE 0 END|1|Marge commerciale|L_CTISIGMACO|SUM|#|0|Marge commerciale|4| | | | |4||||||||||||||||||||| +1|CTISIG. Personnel extérieur|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPEEX] THEN montant_solde_credit ELSE 0 END|1|Personnel extérieur|L_CTISIGPEEX|SUM|#|0|Personnel extérieur|4| | | | |4||||||||||||||||||||| +1|CTISIG. Production de l'exercice|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPREX] THEN montant_solde_credit ELSE 0 END|1|Production de l'exercice|L_CTISIGPREX|SUM|#|0|Production de l'exercice|4| | | | |4||||||||||||||||||||| +1|CTISIG. Produits financiers|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRFI] THEN montant_solde_credit ELSE 0 END|1|Produits financiers|L_CTISIGPRFI|SUM|#|0|Produits financiers|4| | | | |4||||||||||||||||||||| +1|CTISIG. Production immobilisée|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRIM] THEN montant_solde_credit ELSE 0 END|1|Production immobilisée|L_CTISIGPRIM|SUM|#|0|Production immobilisée|4| | | | |4||||||||||||||||||||| +1|CTISIG. Production stockée ou déstockage|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRSTDE] THEN montant_solde_credit ELSE 0 END|1|Production stockée ou déstockage|L_CTISIGPRSTDE|SUM|#|0|Production stockée ou déstockage|4| | | | |4||||||||||||||||||||| +1|CTISIG. Production vendue|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRVE] THEN montant_solde_credit ELSE 0 END|1|Production vendue|L_CTISIGPRVE|SUM|#|0|Production vendue|4| | | | |4||||||||||||||||||||| +1|CTISIG. Produits exceptionnels|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGPRXX] THEN montant_solde_credit ELSE 0 END|1|Produits exceptionnels|L_CTISIGPRXX|SUM|#|0|Produits exceptionnels|4| | | | |4||||||||||||||||||||| +1|CTISIG. Quote-part sur opérations faites en commun|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGQPOPCO] THEN montant_solde_credit ELSE 0 END|1|Quote-part sur opérations faites en commun|L_CTISIGQPOPCO|SUM|#|0|Quote-part sur opérations faites en commun|4| | | | |4||||||||||||||||||||| +1|CTISIG. Redevance crédit-bail (mobilier)|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRCB] THEN montant_solde_credit ELSE 0 END|1|Redevance crédit-bail (mobilier)|L_CTISIGRCB|SUM|#|0|Redevance crédit-bail (mobilier)|4| | | | |4||||||||||||||||||||| +1|CTISIG. Reprises sur amort. dépréciations et provisions|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRPAMDP] THEN montant_solde_credit ELSE 0 END|1|Reprises sur amort. dépréciations et provisions|L_CTISIGRPAMDP|SUM|#|0|Reprises sur amort. dépréciations et provisions|4| | | | |4||||||||||||||||||||| +1|CTISIG. Résultat courant|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSCO] THEN montant_solde_credit ELSE 0 END|1|Résultat courant|L_CTISIGRSCO|SUM|#|0|Résultat courant|4| | | | |4||||||||||||||||||||| +1|CTISIG. Résultat d'exploitation|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSEX] THEN montant_solde_credit ELSE 0 END|1|Résultat d'exploitation|L_CTISIGRSEX|SUM|#|0|Résultat d'exploitation|4| | | | |4||||||||||||||||||||| +1|CTISIG. Résultat net|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSNT] THEN montant_solde_credit ELSE 0 END|1|Résultat net|L_CTISIGRSNT|SUM|#|0|Résultat net|4| | | | |4||||||||||||||||||||| +1|CTISIG. Résultat exceptionnel|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGRSXX] THEN montant_solde_credit ELSE 0 END|1|Résultat exceptionnel|L_CTISIGRSXX|SUM|#|0|Résultat exceptionnel|4| | | | |4||||||||||||||||||||| +1|CTISIG. Sous-traitance production|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSTPR] THEN montant_solde_credit ELSE 0 END|1|Sous-traitance production|L_CTISIGSTPR|SUM|#|0|Sous-traitance production|4| | | | |4||||||||||||||||||||| +1|CTISIG. Subventions d'exploitation|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUEX] THEN montant_solde_credit ELSE 0 END|1|Subventions d'exploitation|L_CTISIGSUEX|SUM|#|0|Subventions d'exploitation|4| | | | |4||||||||||||||||||||| +1|CTISIG. Subventions de production|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUPR] THEN montant_solde_credit ELSE 0 END|1|Subventions de production|L_CTISIGSUPR|SUM|#|0|Subventions de production|4| | | | |4||||||||||||||||||||| +1|CTISIG. Subventions sur ventes de marchandise|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGSUVTMA] THEN montant_solde_credit ELSE 0 END|1|Subventions sur ventes de marchandise|L_CTISIGSUVTMA|SUM|#|0|Subventions sur ventes de marchandise|4| | | | |4||||||||||||||||||||| +1|CTISIG. Valeur ajoutée|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVAAJ] THEN montant_solde_credit ELSE 0 END|1|Valeur ajoutée|L_CTISIGVAAJ|SUM|#|0|Valeur ajoutée|4| | | | |4||||||||||||||||||||| +1|CTISIG. Variations de stock|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVAST] THEN montant_solde_credit ELSE 0 END|1|Variations de stock|L_CTISIGVAST|SUM|#|0|Variations de stock|4| | | | |4||||||||||||||||||||| +1|CTISIG. Ventes de marchandises|v_historique_ecritures_1|CASE WHEN clinique_honoraire = 'C' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:CTISIGVTMA] THEN montant_solde_credit ELSE 0 END|1|Ventes de marchandises|L_CTISIGVTMA|SUM|#|0|Ventes de marchandises|4| | | | |4||||||||||||||||||||| diff --git a/db/data2/dbdata_compta_t_listes.csv b/db/data2/dbdata_compta_t_listes.csv new file mode 100644 index 0000000..55b0c0f --- /dev/null +++ b/db/data2/dbdata_compta_t_listes.csv @@ -0,0 +1,57 @@ +oid|code|texte|chapitre|contenu_by_code|include_code|exclude_code|is_cti|show_omit|utilisateur_createur|est_partagee_modification|table_name +1|CTISIG2AC|SIG2. AUTRES ACHATS ET CHARGES EXTERNES|SIG2|1|[CLASSE:CTISIG03:D650][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]||1|0|*CTI|1|t_comptes +1|CTISIG2CA|SIG2. CHIFFRE D'AFFAIRE|SIG2|1|[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B7065]||1|0|*CTI|1|t_comptes +1|CTISIG2EB|SIG2. EBIT|SIG2|0|||1|0|*CTI|1|t_comptes +1|CTISIG2EBDR|SIG2. EBITDAR|SIG2|1|[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*]||1|0|*CTI|1|t_comptes +1|CTISIG2EDITDA|SIG2. EDITDA|SIG2|1|[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*][CLASSE:CTISIG03:D*][CLASSE:CTISIG03:E*][CLASSE:CTISIG03:F*][CLASSE:CTISIG03:G*][CLASSE:CTISIG03:H6132]||1|0|*CTI|1|t_comptes +1|CTISIG2HA|SIG2. ACHATS ET VARIATIONS DE STOCKS|SIG2|1|60*||1|0|*CTI|1|t_comptes +1|CTISIG2PX|SIG2. PRODUITS D'EXPLOITATION|SIG2|1|[CLASSE:CTISIG03:A*][CLASSE:CTISIG03:B*][CLASSE:CTISIG03:C*]||1|0|*CTI|1|t_comptes +1|CTISIG2RN|SIG2. RESULTAT NET|SIG2|1|6* 7*||1|0|*CTI|1|t_comptes +1|CTISIG2SE|SIG2. SERVICES EXTERIEURS|SIG2|1|61*||1|0|*CTI|1|t_comptes +1|CTISIG2TO|SIG2. TOTAL|SIG2|0|601 602 6061 6062 6063 6064 6068 6111 6131 6151 6161 6221 6231 6261 6281 6211||1|0|*CTI|1|t_comptes +1|CTISIGAUACEX|CTISIG. Autres achats et charges externes|SIG|1|604* 605* 606* 61* 62*|621*|1|0|*CTI|1|t_comptes +1|CTISIGAUCHGC|CTISIG. Autres charges de gestion courante|SIG|1|65*||1|0|*CTI|1|t_comptes +1|CTISIGAUPRGC|CTISIG. Autres produits de gestion courante|SIG|1|75*||1|0|*CTI|1|t_comptes +1|CTISIGCA|CTISIG. Chiffre d'affaire|SIG|1|70*||1|0|*CTI|1|t_comptes +1|CTISIGCHEX|CTISIG. Charges exceptionnelles|SIG|1|67* 687*||1|0|*CTI|1|t_comptes +1|CTISIGCHFI|CTISIG. Charges financières|SIG|1|66* 686*||1|0|*CTI|1|t_comptes +1|CTISIGCHFICB|CTISIG. Charges financières sur crédit-bail|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGCHPR|CTISIG. Charges de personnel|SIG|1|64*||1|0|*CTI|1|t_comptes +1|CTISIGCOACMA|CTISIG. Coût d'achat des marchandises vendues|SIG|1|607* 6087* 6037* 6047* 6057* 6067* 6097*||1|0|*CTI|1|t_comptes +1|CTISIGCOACMP|CTISIG. Coût d'achat matières premières et approv.|SIG|1|601* 602* 6091* 6092* 6093*||1|0|*CTI|1|t_comptes +1|CTISIGDOAMCB|CTISIG. Dotations aux amortissements de crédit-bail|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGDOAMDP|CTISIG. Dotations aux amortissements, dépréciations et provisions|SIG|1|681*||1|0|*CTI|1|t_comptes +1|CTISIGEXBREX|CTISIG. Excédent brut d'exploitation|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74*||1|0|*CTI|1|t_comptes +1|CTISIGIMBE|CTISIG. Impôts sur les bénéfices|SIG|1|695*||1|0|*CTI|1|t_comptes +1|CTISIGIMTX|CTISIG. Impôts et taxes|SIG|1|63*||1|0|*CTI|1|t_comptes +1|CTISIGIMTXHV|CTISIG. Impôts et taxes hors valeur ajoutée|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGJOU|SIG : Liste des journaux fin d'exercice|SIG|0|||1|1|*CTI|1|t_journaux +1|CTISIGJSAUFJRN|CTISIG. Journaux à omettre des SIG||0|||0|0|cti|1|t_journaux +1|CTISIGMACO|CTISIG. Marge commerciale|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097*||1|0|*CTI|1|t_comptes +1|CTISIGPASA|CTISIG. Participation des salariés|SIG|1|691*||1|0|*CTI|1|t_comptes +1|CTISIGPEEX|CTISIG. Personnel extérieur|SIG|1|621*||1|0|*CTI|1|t_comptes +1|CTISIGPREX|CTISIG. Production de l'exercice|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72*||1|0|*CTI|1|t_comptes +1|CTISIGPRFI|CTISIG. Produits financiers|SIG|1|76* 786* 796*||1|0|*CTI|1|t_comptes +1|CTISIGPRIM|CTISIG. Production immobilisée|SIG|1|72*||1|0|*CTI|1|t_comptes +1|CTISIGPRSTDE|CTISIG. Production stockée ou déstockage|SIG|1|713*||1|0|*CTI|1|t_comptes +1|CTISIGPRVE|CTISIG. Production vendue|SIG|1|701* 702* 703* 704* 705* 706* 708* 709*||1|0|*CTI|1|t_comptes +1|CTISIGPRXX|CTISIG. Produits exceptionnels|SIG|1|77* 787* 797*||1|0|*CTI|1|t_comptes +1|CTISIGQPOPCO|CTISIG. Quote-part sur opérations faites en commun|SIG|1|755* 655*||1|0|*CTI|1|t_comptes +1|CTISIGRCB|CTISIG. Redevance crédit-bail (mobilier)|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGREDCB|CTISIG. Redevances crédit-bail|SIG|1|612*||1|0|*CTI|1|t_comptes +1|CTISIGRPAMDP|CTISIG. Reprises sur amort. dépréciations et provisions|SIG|1|781*||1|0|*CTI|1|t_comptes +1|CTISIGRSCO|CTISIG. Résultat courant|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65* 76* 786* 796* 66* 686* 755* 655*||1|0|*CTI|1|t_comptes +1|CTISIGRSEX|CTISIG. Résultat d'exploitation|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62* 63* 64* 74* 781* 791* 75* 681* 65*||1|0|*CTI|1|t_comptes +1|CTISIGRSNT|CTISIG. Résultat net|SIG|1|6* 7*||1|0|*CTI|1|t_comptes +1|CTISIGRSXX|CTISIG. Résultat exceptionnel|SIG|1|77* 787* 797* 67* 687*||1|0|*CTI|1|t_comptes +1|CTISIGSOTRDI|CTISIG. Sous-traitance directe|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGSTPR|CTISIG. Sous-traitance production|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGSUEX|CTISIG. Subventions d'exploitation|SIG|1|74*||1|0|*CTI|1|t_comptes +1|CTISIGSUPR|CTISIG. Subventions de production|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGSUVTMA|CTISIG. Subventions sur ventes de marchandise|SIG|0|||1|0|*CTI|1|t_comptes +1|CTISIGTRCHEX|CTISIG. Transferts de charges d'exploitation|SIG|1|791*||1|0|*CTI|1|t_comptes +1|CTISIGVAAJ|CTISIG. Valeur ajoutée|SIG|1|707* 7097* 607* 6087* 6037* 6047* 6057* 6067* 6097* 701* 702* 703* 704* 705* 706* 708* 709* 713* 72* 601* 602* 604* 605* 606* 6091* 6092* 6093* 6031* 6032* 61* 62*|621*|1|0|*CTI|1|t_comptes +1|CTISIGVAST|CTISIG. Variations de stock|SIG|1|6031* 6032*||1|0|*CTI|1|t_comptes +1|CTISIGVTMA|CTISIG. Ventes de marchandises|SIG|1|707* 7097*||1|0|*CTI|1|t_comptes +1|CTITYPEGES|Gestion||0|||1|0|*CTI|1|t_types_compta +1|CTI_TYP_BIL|Bilan||0|||1|0|*CTI|1|t_types_compta diff --git a/db/data2/dbdata_compta_t_listes_tables.csv b/db/data2/dbdata_compta_t_listes_tables.csv new file mode 100644 index 0000000..6a2e675 --- /dev/null +++ b/db/data2/dbdata_compta_t_listes_tables.csv @@ -0,0 +1,55 @@ +oid|name|texte|select_cmd|code +1|t_sections_analytiques|Sections analytiques|SELECT oid, code, texte, '' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'sections_analytiques_c') THEN 'O' ELSE 'N' END as utilise FROM compta.t_sections_analytiques WHERE oid > 0 ORDER BY code|ANA +1|t_sections_analytiques_c|Sections analytiques Clinique|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_sections_analytiques WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'sections_analytiques_c') ORDER BY code|ANAC +1|t_comptes|Comptes|"SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, CASE WHEN t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table IN ('comptes_c', 'comptes_h', 'comptes_extra_c', 'comptes_extra_h')) THEN 'O' ELSE 'N' END as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid +AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table IN ('comptes_c', 'comptes_h', 'comptes_extra_c', 'comptes_extra_h')) ORDER BY code"|CPT +1|t_comptes_c|Comptes Clinique|SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, 'O' as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_c') ORDER BY code|CPTC +1|t_comptes_h|Comptes Honoraires|SELECT t_comptes.oid, t_comptes.numero as code, t_comptes.texte, t_types_compta.texte as complement, 'O' as utilise FROM compta.t_comptes, compta.t_types_compta WHERE t_comptes.oid > 0 AND t_comptes.type_compta_id = t_types_compta.oid AND t_comptes.oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_h') ORDER BY code|CPTH +1|t_activites_cout_patient_shs|Cout patient SHS. Activités|"SELECT t_activites_cout_patient_shs.oid, t_activites_cout_patient_shs.code, t_activites_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_activites_cout_patient_shs LEFT JOIN compta.p_oids ON (t_activites_cout_patient_shs.oid = p_oids.oid AND code_table = 'activites_cout_patient_shs') +WHERE t_activites_cout_patient_shs.oid > 0 +ORDER BY t_activites_cout_patient_shs.code"|CSA +1|t_elements_cout_patient_shs|Cout patient SHS. Eléments de cout|"SELECT t_elements_cout_patient_shs.oid, t_elements_cout_patient_shs.code, t_elements_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_elements_cout_patient_shs LEFT JOIN compta.p_oids ON (t_elements_cout_patient_shs.oid = p_oids.oid AND code_table = 'etages_cout_patient_shs') +WHERE t_elements_cout_patient_shs.oid > 0 +ORDER BY t_elements_cout_patient_shs.code"|CSC +1|t_etages_cout_patient_shs|Cout patient SHS. Etages|"SELECT t_etages_cout_patient_shs.oid, t_etages_cout_patient_shs.code, t_etages_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_etages_cout_patient_shs LEFT JOIN compta.p_oids ON (t_etages_cout_patient_shs.oid = p_oids.oid AND code_table = 'etages_cout_patient_shs') +WHERE t_etages_cout_patient_shs.oid > 0 +ORDER BY t_etages_cout_patient_shs.code"|CSE +1|t_services_facturation_cout_patient_shs|Cout patient SHS. Services|"SELECT t_services_facturation_cout_patient_shs.oid, t_services_facturation_cout_patient_shs.code, t_services_facturation_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_services_facturation_cout_patient_shs LEFT JOIN compta.p_oids ON (t_services_facturation_cout_patient_shs.oid = p_oids.oid AND code_table = 'services_facturation_cout_patient_shs') +WHERE t_services_facturation_cout_patient_shs.oid > 0 +ORDER BY t_services_facturation_cout_patient_shs.code"|CSF +1|t_ghm_cout_patient_shs|Cout patient SHS. GHM|"SELECT t_ghm_cout_patient_shs.oid, t_ghm_cout_patient_shs.code, t_ghm_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_ghm_cout_patient_shs LEFT JOIN compta.p_oids ON (t_ghm_cout_patient_shs.oid = p_oids.oid AND code_table = 'ghm_cout_patient_shs') +WHERE t_ghm_cout_patient_shs.oid > 0 +ORDER BY t_ghm_cout_patient_shs.code"|CSG +1|t_ghs_cout_patient_shs|Cout patient SHS. GHS|"SELECT t_ghs_cout_patient_shs.oid, t_ghs_cout_patient_shs.code, t_ghs_cout_patient_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_ghs_cout_patient_shs LEFT JOIN compta.p_oids ON (t_ghs_cout_patient_shs.oid = p_oids.oid AND code_table = 'ghs_cout_patient_shs') +WHERE t_ghs_cout_patient_shs.oid > 0 +ORDER BY t_ghs_cout_patient_shs.code"|CSH +1|t_medecins_cout_patient_shs|Cout patient SHS. Médecins|"SELECT t_medecins_cout_patient_shs.oid, t_medecins_cout_patient_shs.code, t_medecins_cout_patient_shs.nom || ' ' || t_medecins_cout_patient_shs.prenom AS texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_medecins_cout_patient_shs LEFT JOIN compta.p_oids ON (t_medecins_cout_patient_shs.oid = p_oids.oid AND code_table = 'medecins_cout_patient_shs') +WHERE t_medecins_cout_patient_shs.oid > 0 +ORDER BY t_medecins_cout_patient_shs.code"|CSM +1|t_unites_oeuvres_shs|Cout patient SHS. Unités d'oeuvre|"SELECT t_unites_oeuvre_shs.oid, t_unites_oeuvre_shs.code, t_unites_oeuvre_shs.texte, ''::text as complement, CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END as utilise +FROM compta.t_unites_oeuvre_shs LEFT JOIN compta.p_oids ON (t_unites_oeuvre_shs.oid = p_oids.oid AND code_table = 'etages_cout_patient_shs') +WHERE t_unites_oeuvre_shs.oid > 0 +ORDER BY t_unites_oeuvre_shs.code"|CSU +1|t_journaux|Journaux|"SELECT t_journaux.oid, t_journaux.code, t_journaux.texte, subview.clinique_honoraire as complement, 'O' as utilise FROM compta.t_journaux, +(SELECT oid, trim(MAX(CASE WHEN code_table = 'journaux_c' THEN 'CLINIQUE' ELSE '' END) || ' ' || MAX(CASE WHEN code_table = 'journaux_h' THEN 'HONORAIRE' ELSE '' END)) as clinique_honoraire FROM compta.p_oids WHERE code_table IN ('journaux_c', 'journaux_h') GROUP BY oid +) subview +WHERE t_journaux.oid > 0 AND t_journaux.oid = subview.oid +ORDER BY code"|JRN +1|t_journaux_c|Journaux Clinique|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_journaux WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'journaux_c') ORDER BY code|JRNC +1|t_journaux_h|Journaux Honoraires|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_journaux WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'journaux_h') ORDER BY code|JRNH +1|t_partenaires|Partenaires|"SELECT oid, code, texte, subview.comptes as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table IN ('partenaires_c', 'partenaires_h')) THEN 'O' ELSE 'N' END as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || ' ' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 ORDER BY code"|PAR +1|t_partenaires_c|Partenaires Clinique|"SELECT oid, code, texte, subview.comptes as complement, 'O' as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || ' ' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'partenaires_c') ORDER BY code"|PARC +1|t_partenaires_h|Partenaires Honoraires|"SELECT oid, code, texte, subview.comptes as complement, 'O' as utilise FROM compta.t_partenaires LEFT JOIN (SELECT partenaire_id, base.cti_group_concat(DISTINCT compte_numero || ' ' || substr(compte_texte, 1 , 15)) as comptes FROM compta.v_historique_ecritures_total_1 GROUP BY partenaire_id) subview ON (subview.partenaire_id = t_partenaires.oid) WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'partenaires_h') ORDER BY code"|PARH +1|t_sites|Sites|SELECT oid, code, texte, '' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table IN ('sites_c', 't_sites_h')) THEN 'O' ELSE 'N' END as utilise FROM compta.t_sites WHERE oid > 0 ORDER BY code|SIT +1|t_sites_c|Sites Clinique|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_sites WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'sites_c') ORDER BY code|SITC +1|t_sites_h|Sites Honoraires|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_sites WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table = 'sites_h') ORDER BY code|SITH +1|t_types_compta|Types comptabilité|SELECT oid, code, texte, '' as complement, CASE WHEN oid in (SELECT oid FROM compta.p_oids WHERE code_table In ('types_compta_c', 'types_compta_extra_c', 'types_compta_h', 'types_compta_extra_h')) THEN 'O' ELSE 'N' END as utilise FROM compta.t_types_compta WHERE oid > 0 ORDER BY code|TYP +1|t_types_compta_c|Types comptabilité Clinique|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_types_compta WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table In ('types_compta_c', 'types_compta_extra_c')) ORDER BY code|TYPC +1|t_types_compta_h|Types comptabilité Honoraires|SELECT oid, code, texte, '' as complement, 'O' as utilise FROM compta.t_types_compta WHERE oid > 0 AND oid in (SELECT oid FROM compta.p_oids WHERE code_table In ('types_compta_h', 'types_compta_extra_h')) ORDER BY code|TYPH diff --git a/db/data2/dbdata_compta_t_rapports.csv b/db/data2/dbdata_compta_t_rapports.csv new file mode 100644 index 0000000..9812982 --- /dev/null +++ b/db/data2/dbdata_compta_t_rapports.csv @@ -0,0 +1,6 @@ +oid|code|texte|is_cti|is_essentiel +1|CTI_BAL1|X EXEMPLE CTI - Balance|1|0 +1|CTI_ESS_1|COMPTA Essentiels 1|1|1 +1|CTI_ESS_2|COMPTA Essentiels 2|1|1 +1|CTI_PF_AGG|CTI Portfolio|1|1 +1|CTI_PORTFO|CTI Portfolio |1|1 diff --git a/db/data2/dbdata_compta_t_rapports_rubriques.csv b/db/data2/dbdata_compta_t_rapports_rubriques.csv new file mode 100644 index 0000000..5df3917 --- /dev/null +++ b/db/data2/dbdata_compta_t_rapports_rubriques.csv @@ -0,0 +1,42 @@ +numero_rubrique|entete|entete_etendue|output_format|width|periode_reference|row_height|padding|font_size|font_weight|border_thickness|color|base_nationale|base_nationale_qualifiee|background_color|viewlink|viewlink_label|viewlink_param|picto_enabled|positif_is_good|indicateur_associe_code|rapport_code|indicateur_code +1||SOLDE INTERMEDIAIRE DE GESTION (synthèse)||0| |26|0|18|bold |2|0x6633 |0|0|0xcccccc |COMPTA000057|SIG - CTI synthèse|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI77"| | |PAS_DE_CODE|CTI_ESS_1|CTI_SEP +15||k. Autres achats et charges externes||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Autres achats et charges externes|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI47"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGAUACEX +27||u. Autres charges de gestion courante ||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Autres charges de gestion courante|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI48"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGAUCHGC +24||r. Autres produits de gestion courante||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Autres produits de gestion courante|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI49"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGAUPRGC +2||Chiffre d'affaire :||0| |0|0|12|bold |0|0x0 |0|0| |COMPTA000057|SIG - CHIFFRE D'AFFAIRE|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI50"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCA +36||Charges exceptionnelles||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Charges exceptionnelles|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI51"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCHEX +31||x. Charges financières||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Charges financières|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS46 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI52"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCHFI +32||y. Charges financières sur crédit-bail||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Charges financières sur crédit-bail|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI53"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCHFICB +20||o. Charges de personnel ||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Charges de personnel|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI54"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCHPR +5||c. Coût d'achat des marchandises vendues ||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Coût d'achat des marchandises vendues|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI55"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCOACMA +13||i. Coût d'achat matières premières et approv.||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Coût d'achat matières premières et approv.|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI56"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGCOACMP +28||v. Dotations aux amortissements de crédit-bail||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Dotations aux amortissement de crédit-bail|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI57"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGDOAMCB +26||t. Dotations aux amortissements, dépréciations et provisions||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Dotations aux amortissements, dépréciations et provisions|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI58"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGDOAMDP +22||1. Excédent brut d'exploitation (II+m+n+o+p)||0| |0|0|12|bold |0|0x6600 |0|0|0xcccccc |COMPTA000057|SIG CTI EXCEDENT BRUT D'EXPLOITATION|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS32 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS17 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI59"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGEXBREX +19||n. Impôts et taxes||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Impôts et taxes|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI61"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGIMTX +16||l. Impôts et taxes hors valeur ajoutée||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Impôts et taxes hors valeur ajoutée|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI62"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGIMTXHV +6||Marge commerciale :||0| |0|0|12|bold |0|0x0 |0|0| |COMPTA000057|SIG - MARGE COMMERCIALE|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI64"|0|0|PAS_DE_CODE|CTI_ESS_1|L_CTISIGMACO +21||p. Personnel extérieur||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Personnel extérieur|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI66"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPEEX +12||I. PRODUCTION DE L'EXERCICE (a+b+c+d+e+f+g+h)||0| |26|0|14|bold |2|0x6633 |0|0|0xcccccc |COMPTA000057|SIG CTI PRODUCTION DE L'EXERCICE|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI67"|0|0|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPREX +30||w. Produits financiers||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Produits financiers|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI68"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPRFI +10||g. Production immobilisée ||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Production immobilisée|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS28 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI69"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPRIM +9||f. Production stockée ou déstockage||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Production stockée ou déstockage|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI70"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPRSTDE +7||d. Production vendue||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG Production vendue|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI71"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPRVE +35||Produits exceptionnels||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Produits exceptionnels|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI72"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGPRXX +33||z. Quote-part sur opérations faites en commun||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Quote-part sur opérations faites en commun|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI73"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGQPOPCO +23||q. Reprises sur amort. dépréciations et provisions||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Reprises sur amort. dépréciations et provisions|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI74"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGRPAMDP +34||3. Résultat courant (2+/-y+v-w-x)||0| |0|0|12|bold |0|0x6600 |0|0|0xcccccc |COMPTA000057|SIG CTI RESULTAT COURANT|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI75"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGRSCO +29||2. Résultat exploitation (1+q+r+s-t-u)||0| |0|0|12|bold |0|0x6600 |0|0|0xcccccc |COMPTA000057|SIG CTI RESULTAT D'EXPLOITATION|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS18 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS19 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI76"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGRSEX +38|RESULTAT NET|RESULTAT NET||0| |26|0|14|bold |2|0x990000 |0|0|0xcccccc |COMPTA000057|SIG CTI RESULTAT NET|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI77"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGRSNT +37||4. Résultat exceptionnel (Produits except. - Charges except.)||0| |0|0|12|bold |0|0x6600 |0|0|0xcccccc |COMPTA000057|SIG CTI RESULTAT EXCEPTIONNEL|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI78"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGRSXX +11||h. Sous-traitance production||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Sous-traitance production|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI80"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGSTPR +18||m. Subventions d'exploitation||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Subventions d'exploitation|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI81"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGSUEX +8||e. Subventions de production||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Subventions de production|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL2 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI82"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGSUPR +4||b. Subventions sur ventes de marchandise||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Subventions sur ventes de marchandise|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI83"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGSUVTMA +17||II. VALEUR AJOUTEE (I-(i+j+k+l))||0| |26|0|14|bold |2|0x6633 |0|0|0xcccccc |COMPTA000057|SIG CTI VALEUR AJOUTEE|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL1 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI85"|0|0|PAS_DE_CODE|CTI_ESS_1|L_CTISIGVAAJ +14||j. Variations de stock||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG - Variations de stock|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI86"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGVAST +3||a. Vente de marchandises ||0| |0|10|12| |0| |0|0| |COMPTA000057|SIG -Ventes de marchandises|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CL3 & GROUPBY_TAB=TREE & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI87"|1|1|PAS_DE_CODE|CTI_ESS_1|L_CTISIGVTMA +1||SOLDE INTERMEDIAIRE DE GESTION (détaillé)||0| |28|0|18|bold |2|0x6633 |0|0|0xcccccc |COMPTA000057|SIG CTI détaillé|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=SAISIECODE & COMPTE_C_CODES=6*,7*"| | |PAS_DE_CODE|CTI_ESS_2|CTI_SEP +40||G. Dotations aux amortissements, dépréciations et provisions||0| |0|10|0| |0|0x0 |0|0| |COMPTA000057|SIG CTI Niveau 2 - Dotations aux amort.|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI58"|1|1|PAS_DE_CODE|CTI_ESS_2|L_CTISIGDOAMDP +41||H. Redevance crédit-bail (mobilier) |#|0| |0|10|0| |0|0x0 |0|0| |COMPTA000057|SIG CTI Niveau 2 - Redevance crédit-bail (mobilier)|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI107"|1|1|PAS_DE_CODE|CTI_ESS_2|L_CTISIGRCB +39||F. Reprises sur amort. dépréciations et provisions ||0| |0|10|0| |0|0x0 |0|0| |COMPTA000057|SIG CTI Niveau 2 - Reprises sur amort.|"MOIS=VIEW.CURRENT_TOMOIS & DATA=SC & ARBRE1=CPTCLS12 & GROUPBY_TAB=TREE & ARBRE2=CPTCLS13 & GROUPBY=CPT & JOURNAL_C=SL100 & COMPTE_C=LI74"|1|1|PAS_DE_CODE|CTI_ESS_2|L_CTISIGRPAMDP diff --git a/db/dbsetup_data_compta.XML b/db/dbsetup_data_compta.XML new file mode 100644 index 0000000..4c172ca --- /dev/null +++ b/db/dbsetup_data_compta.XML @@ -0,0 +1,507 @@ + + + + +
+ + +
+ +
+ +
+ + +
+ + +
+ + +
+ + + +
+ +
+ '' + AND t_rapports.is_cti = '1' + AND ind2.is_cti IS DISTINCT FROM '0' + ORDER BY + t_rapports.code, + ind1.code, + t_rapports_rubriques.numero_rubrique + ; + + ]]> + '' OR + w_specific_rapports_rubriques.specific_viewlink_label <> '' OR + w_specific_rapports_rubriques.specific_viewlink_param <> '' + ) + ; + ]]> +
+ + + + + '' + AND table_id = t_listes_tables.oid + ORDER BY t_listes.code; + + ]]> + +
+ + + + + +
+ + diff --git a/db/dvp_data_apply.bat b/db/dvp_data_apply.bat new file mode 100644 index 0000000..2a0fded --- /dev/null +++ b/db/dvp_data_apply.bat @@ -0,0 +1,4 @@ +@ECHO Off +ECHO /!\ VOUS ETES SUR LE POINT DE PERDRE LES DONNEES DE VOTRE BASE /!\ +PAUSE +..\..\..\Sources\db\data\iCTI_svn_data_apply.exe -m compta \ No newline at end of file diff --git a/db/dvp_data_extract.bat b/db/dvp_data_extract.bat new file mode 100644 index 0000000..7b721ee --- /dev/null +++ b/db/dvp_data_extract.bat @@ -0,0 +1,2 @@ +@ECHO Off +..\..\..\Sources\db\data\iCTI_svn_data_extract.exe -m compta \ No newline at end of file diff --git a/db/hooks/install_db_last_jobs.sql b/db/hooks/install_db_last_jobs.sql new file mode 100644 index 0000000..44b0b33 --- /dev/null +++ b/db/hooks/install_db_last_jobs.sql @@ -0,0 +1,5 @@ +-- ============================================================ +-- Derniers traitements +-- - Lancement de fonctions PGSQL +-- - Nettoyage installdb (éventuel) +-- ============================================================ diff --git a/db/hooks/post_install_data.sql b/db/hooks/post_install_data.sql new file mode 100644 index 0000000..11582f8 --- /dev/null +++ b/db/hooks/post_install_data.sql @@ -0,0 +1,123 @@ +-- ===================================================================== +-- Divers traitements sur les données après l'installation des données +-- ===================================================================== + +-- Initilisation du mois de début de période comptable. +-- w_mois trouve le mois de début de période qui apparait le plus dans p_calendrier_mois +WITH w_mois AS ( + SELECT + to_number(substring(to_char(exercice_mois_comptable_1, 'FM999999') from '..$'), '99') as mois_debut, + count(*) as combien + FROM base.p_calendrier_mois + GROUP BY 1 + ORDER BY 2 DESC + LIMIT 1 + ) +INSERT INTO compta.t_divers( + code, + texte, + valeur, + valeur_date, + description, + show_info_module) +SELECT + 'MOIS_DEBUT', + 'Mois début période comptable.', + w_mois.mois_debut::text, + NULL, + 'Mois de début de la période comptable', + true +FROM + w_mois +WHERE (SELECT count(*) FROM compta.t_divers WHERE code = 'MOIS_DEBUT') = 0 +; + +UPDATE base.p_calendrier_mois SET + exercice_comptable = to_char(date_debut - (subview.valeur::text || ' month'::text)::interval + '1 month'::interval, 'YYYY')::numeric, + exercice_mois_comptable_1 = (to_char(date_debut - (subview.valeur::text || ' month'::text)::interval + '1 month'::interval, 'YYYY')||ltrim(to_char(subview.valeur::numeric, '00')))::numeric +FROM + (SELECT max(valeur) as valeur FROM compta.t_divers WHERE code = 'MOIS_DEBUT') subview +; + +-- Mise à jour des rubriques de rapports suite au passage des séquences sur deux digits +UPDATE compta.t_rapports_rubriques SET viewlink_param = regexp_replace(viewlink_param, 'CLS([0-9][^0-9])', 'CLS0\1', 'g') +WHERE viewlink_param ~ '.*CLS[0-9][^0-9].*'; + +-- Réplication du code banque sur les comptes signés +WITH w_cpt AS ( + SELECT + oid as compte_id, + banque + FROM + compta.t_comptes + WHERE + banque = '1' +) +UPDATE compta.t_comptes SET + banque = w_cpt.banque + FROM + w_cpt +WHERE 1=1 + AND t_comptes.compte_general_id = w_cpt.compte_id + AND t_comptes.banque IS DISTINCT FROM w_cpt.banque; + +-- Initialisation mois en cours/mois clôturé (NOW/NOWCLOTURE) lorsque pas déjà renseigné lors de l'import. +WITH subq as ( + SELECT date_ecriture + FROM compta.p_historique_ecritures + WHERE 1=1 + AND date_ecriture <= now() + AND ajustement = '0' + AND is_budget <> '1' + ORDER BY date_ecriture DESC + LIMIT 1) +INSERT INTO compta.t_divers( + code, + texte, + valeur, + valeur_date, + description, + show_info_module) +SELECT + 'NOW', + 'Mois en cours.', + to_char(date_ecriture, 'YYYYMM'), + date_ecriture, + 'Mois en cours.', + true +FROM subq +WHERE (SELECT count(*) FROM compta.t_divers WHERE code = 'NOW') = 0 +; + +WITH subq as ( + SELECT ((mois_comptable||'01')::date + interval '1 month' - interval '1 day' - interval '1 month')::date as date_comptable +FROM compta.p_historique_ecritures +WHERE 1=1 + AND date_ecriture <= now() + AND ajustement = '0' + AND is_budget <> '1' +ORDER BY mois_comptable DESC + LIMIT 1) +INSERT INTO compta.t_divers( + code, + texte, + valeur, + valeur_date, + description, + show_info_module) +SELECT + 'NOWCLOTURE', + 'Mois clôturé.', + to_char(date_comptable, 'YYYYMM'), + date_comptable, + 'Mois clôturé.', + true +FROM subq +WHERE (SELECT count(*) FROM compta.t_divers WHERE code = 'NOWCLOTURE') = 0 +; + +--Maj table compta.t_pole +INSERT INTO compta.t_pole (oid, code, texte, texte_court) +SELECT 0, '**', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_pole) +; \ No newline at end of file diff --git a/db/hooks/pre_install_data.sql b/db/hooks/pre_install_data.sql new file mode 100644 index 0000000..cbd7e4b --- /dev/null +++ b/db/hooks/pre_install_data.sql @@ -0,0 +1,3 @@ +-- ===================================================================== +-- Divers traitements sur les données avant l'installation des données +-- ===================================================================== \ No newline at end of file diff --git a/db/hooks/pre_install_schema.sql b/db/hooks/pre_install_schema.sql new file mode 100644 index 0000000..af03729 --- /dev/null +++ b/db/hooks/pre_install_schema.sql @@ -0,0 +1,8 @@ +-- ============================================= +-- Nettoyage de la BDD avant installation. +-- (Supprimer le contenu au bout de 3 mois) +-- - Suppression de tables +-- - Suppression de champs +-- - Suppression de vues/fonctions SQL +-- - Suppression ou modification de séquences +-- ============================================= \ No newline at end of file diff --git a/db/schema2/functions/cti_create_indicateurs_from_listes.yaml b/db/schema2/functions/cti_create_indicateurs_from_listes.yaml new file mode 100644 index 0000000..5b460c9 --- /dev/null +++ b/db/schema2/functions/cti_create_indicateurs_from_listes.yaml @@ -0,0 +1,322 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + UPDATE compta.t_indicateurs + SET external_code = code + WHERE substr(code,1,3) IN ('*L_', '*C_') AND COALESCE(external_code,'') = ''; + + UPDATE compta.t_indicateurs + SET external_code = '' + WHERE external_code IS NULL + ; + + DROP TABLE IF EXISTS w_indicateurs; + CREATE TEMP TABLE w_indicateurs AS + SELECT + code, + external_code, + old_code, + liste_code, + texte, + table_name, + CASE + WHEN classe IN ('2', '3', '5', '6') THEN column_name_debit + WHEN classe2 IN ('41') THEN column_name_debit + WHEN classe2 IN ('44') THEN column_name_debit + WHEN classe2 IN ('45') THEN column_name_debit + WHEN classe2 IN ('46') THEN column_name_debit + WHEN classe IN ('1', '4', '7') THEN column_name_credit + ELSE column_name_debit END AS column_name, + is_cti, + entete, + entete_etendue, + total_function + FROM ( + SELECT + '*L_' || t_listes.code::text AS code, + '*L_' || t_listes.oid::text AS external_code, + 'L_' || t_listes.code AS old_code, + t_listes.code::text AS liste_code, + 'Comptes de la liste : ' || t_listes.texte || CASE WHEN t_listes.code <> '' THEN ' (' || t_listes.code || ')' ELSE '' END as texte, + 'v_historique_ecritures_1' as table_name, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_debit ELSE 0 END' as column_name_debit, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_credit ELSE 0 END' as column_name_credit, + '0' AS is_cti, + t_listes.texte AS entete, + t_listes.texte AS entete_etendue, + 'SUM'::text AS total_function, + MIN(substr(t_comptes.numero,1,1)) AS classe, + MIN(substr(t_comptes.numero,1,2)) AS classe2 + FROM compta.t_listes + JOIN compta.t_listes_tables ON (table_id = t_listes_tables.oid) + JOIN compta.t_listes_contenu ON (t_listes.oid = t_listes_contenu.liste_id) + JOIN compta.t_comptes ON (t_listes_contenu.to_id = t_comptes.oid) + WHERE t_listes_tables.code = 'CPT' AND t_listes.code <> '' AND t_listes.is_cti <> '1' + GROUP BY 1,2,3,4,5,6,7,8,9,10 + HAVING MAX(clinique_honoraire) <> 'H' OR MIN(clinique_honoraire) <> 'H' + ) w_indicateurs; + -- Comptes honoraires + INSERT INTO w_indicateurs + SELECT + code, + external_code, + old_code, + liste_code, + texte, + table_name, + CASE + WHEN classe IN ('2', '3', '5', '6') THEN column_name_debit + WHEN classe2 IN ('41') THEN column_name_debit + WHEN classe2 IN ('44') THEN column_name_debit + WHEN classe2 IN ('45') THEN column_name_debit + WHEN classe2 IN ('46') THEN column_name_debit + WHEN classe IN ('1', '4', '7') THEN column_name_credit + ELSE column_name_debit END AS column_name, + is_cti, + entete, + entete_etendue, + total_function + FROM ( + SELECT + '*L_' || t_listes.code::text || '_H' AS code, + '*L_' || t_listes.oid::text || '_H' AS external_code, + 'L_' || t_listes.code || '_H' AS old_code, + t_listes.code AS liste_code, + 'Comptes de la liste : ' || t_listes.texte || ' (HON)' || CASE WHEN t_listes.code <> '' THEN ' (' || t_listes.code || ')' ELSE '' END as texte, + 'v_historique_ecritures_1' as table_name, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''H'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_debit ELSE 0 END' as column_name_debit, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''H'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_credit ELSE 0 END' as column_name_credit, + '0' AS is_cti, + t_listes.texte AS entete, + t_listes.texte AS entete_etendue, + 'SUM'::text AS total_function, + MIN(substr(t_comptes.numero,1,1)) AS classe, + MIN(substr(t_comptes.numero,1,2)) AS classe2 + FROM compta.t_listes + JOIN compta.t_listes_tables ON (table_id = t_listes_tables.oid) + JOIN compta.t_listes_contenu ON (t_listes.oid = t_listes_contenu.liste_id) + JOIN compta.t_comptes ON (t_listes_contenu.to_id = t_comptes.oid) + WHERE t_listes_tables.code = 'CPT' AND t_listes.code <> '' AND t_listes.is_cti <> '1' + GROUP BY 1,2,3,4,5,6,7,8,9,10 + HAVING MAX(clinique_honoraire) = 'H' AND MIN(clinique_honoraire) = 'H' + ) w_indicateurs; + INSERT INTO w_indicateurs + SELECT + code, + external_code, + old_code, + liste_code, + texte, + table_name, + CASE + WHEN classe IN ('2', '3', '5', '6') THEN column_name_debit + WHEN classe2 IN ('41') THEN column_name_debit + WHEN classe2 IN ('44') THEN column_name_debit + WHEN classe2 IN ('45') THEN column_name_debit + WHEN classe2 IN ('46') THEN column_name_debit + WHEN classe IN ('1', '4', '7') THEN column_name_credit + ELSE column_name_debit END AS column_name, + is_cti, + entete, + entete_etendue, + total_function + FROM ( + SELECT + '*L_' || t_listes.code::text || '_H' AS code, + '*L_' || t_listes.oid::text || '_H' AS external_code, + 'L_' || t_listes.code || '_H' AS old_code, + t_listes.code AS liste_code, + 'Comptes de la liste : ' || t_listes.texte || ' (HON)' || CASE WHEN t_listes.code <> '' THEN ' (' || t_listes.code || ')' ELSE '' END as texte, + 'v_historique_ecritures_1' as table_name, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''H'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_debit ELSE 0 END' as column_name_debit, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''H'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [LISTE:' || t_listes.code ||'] THEN montant_solde_credit ELSE 0 END' as column_name_credit, + '0' AS is_cti, + t_listes.texte AS entete, + t_listes.texte AS entete_etendue, + 'SUM'::text AS total_function, + MIN(substr(t_comptes.numero,1,1)) AS classe, + MIN(substr(t_comptes.numero,1,2)) AS classe2 + FROM compta.t_listes + JOIN compta.t_listes_tables ON (table_id = t_listes_tables.oid) + JOIN compta.t_listes_contenu ON (t_listes.oid = t_listes_contenu.liste_id) + JOIN compta.t_comptes ON (t_listes_contenu.to_id = t_comptes.oid) + WHERE t_listes_tables.code = 'CPT' AND t_listes.code <> '' AND t_listes.is_cti <> '1' + GROUP BY 1,2,3,4,5,6,7,8,9,10 + HAVING MAX(clinique_honoraire) = 'H' AND MIN(clinique_honoraire) <> 'H' + ) w_indicateurs; + + UPDATE compta.t_indicateurs + SET code = w_indicateurs.code, + texte = w_indicateurs.texte + FROM w_indicateurs + WHERE w_indicateurs.external_code = t_indicateurs.external_code AND + ( + t_indicateurs.texte IS DISTINCT FROM w_indicateurs.texte OR + t_indicateurs.code IS DISTINCT FROM w_indicateurs.code + ); + + UPDATE compta.t_indicateurs + SET column_name = w_indicateurs.column_name + FROM w_indicateurs + WHERE w_indicateurs.external_code = t_indicateurs.external_code AND + t_indicateurs.column_name IS DISTINCT FROM w_indicateurs.column_name AND + t_indicateurs.column_name NOT LIKE '%LISTE:' || liste_code || '%' AND liste_code <> ''; + + INSERT INTO compta.t_indicateurs( + code, + external_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function, + dimension_date) + SELECT + code, + external_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function, + '4'::text AS dimension_date + FROM w_indicateurs + WHERE external_code NOT IN (SELECT external_code FROM compta.t_indicateurs WHERE external_code IS NOT NULL); + -- CLasses + TRUNCATE w_indicateurs; + INSERT INTO w_indicateurs + SELECT + code, + external_code, + old_code, + classe_section_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function + FROM ( + SELECT + '*C_' || t_classes.code|| '-' || t_classes_sections.code || '-D' AS code, + '*C_' || t_classes.oid::text || '-' || t_classes_sections.oid::text || '-D' AS external_code, + ''::text AS old_code, + t_classes.code|| ':' || t_classes_sections.code AS classe_section_code, + 'Comptes de la section : ' || t_classes.texte || ' - ' || t_classes_sections.texte || ' (DEBIT)' as texte, + 'v_historique_ecritures_1' as table_name, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [CLASSE:' || t_classes.code || ':' || t_classes_sections.code ||'] THEN montant_solde_debit ELSE 0 END' as column_name, + '0' AS is_cti, + t_classes_sections.texte AS entete, + t_classes_sections.texte AS entete_etendue, + 'SUM'::text AS total_function + FROM compta.t_classes + JOIN compta.t_listes_tables ON (table_id = t_listes_tables.oid) + JOIN compta.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + WHERE t_listes_tables.code = 'CPT' AND t_classes.code <> '' AND t_classes.is_cti <> '1' AND t_classes.sequence <> 9 + GROUP BY 1,2,3,4,5,6,7,8,9,10,11 + ) w_indicateurs; + INSERT INTO w_indicateurs + SELECT + code, + external_code, + old_code, + classe_section_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function + FROM ( + SELECT + '*C_' || t_classes.code|| '-' || t_classes_sections.code || '-C' AS code, + '*C_' || t_classes.oid::text || '-' || t_classes_sections.oid::text || '-C' AS external_code, + ''::text AS old_code, + t_classes.code|| ':' || t_classes_sections.code AS classe_section_code, + 'Comptes de la section : ' || t_classes.texte || ' - ' || t_classes_sections.texte || ' (CREDIT)' as texte, + 'v_historique_ecritures_1' as table_name, + 'CASE WHEN ecriture_consolidee <> ''1'' AND v_historique_ecritures_1.clinique_honoraire = ''C'' AND journal_id NOT IN [LISTE:CTISIGJSAUFJRN] AND compte_id IN [CLASSE:' || t_classes.code || ':' || t_classes_sections.code ||'] THEN montant_solde_credit ELSE 0 END' as column_name, + '0' AS is_cti, + t_classes_sections.texte AS entete, + t_classes_sections.texte AS entete_etendue, + 'SUM'::text AS total_function + FROM compta.t_classes + JOIN compta.t_listes_tables ON (table_id = t_listes_tables.oid) + JOIN compta.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + WHERE t_listes_tables.code = 'CPT' AND t_classes.code <> '' AND t_classes.is_cti <> '1' AND t_classes.sequence <> 9 + GROUP BY 1,2,3,4,5,6,7,8,9,10,11 + ) w_indicateurs; + UPDATE compta.t_indicateurs + SET code = w_indicateurs.code, + texte = w_indicateurs.texte + FROM w_indicateurs + WHERE w_indicateurs.external_code = t_indicateurs.external_code AND + ( + t_indicateurs.texte IS DISTINCT FROM w_indicateurs.texte OR + t_indicateurs.code IS DISTINCT FROM w_indicateurs.code + ); + INSERT INTO compta.t_indicateurs( + code, + external_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function, + dimension_date) + SELECT + code, + external_code, + texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + total_function, + '4'::text AS dimension_date + FROM w_indicateurs + WHERE external_code NOT IN (SELECT external_code FROM compta.t_indicateurs WHERE external_code IS NOT NULL); + -- Changement de codes à reporter + UPDATE compta.t_indicateurs + SET column_name = replace(column_name,split_part(split_part(column_name,'[CLASSE:',2),']',1),(t_classes.code || ':' || t_classes_sections.code)) + FROM compta.t_classes_sections + JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + WHERE t_indicateurs.external_code like '*C%' AND + t_classes_sections.oid::text = split_part(substr(t_indicateurs.external_code,4),'-',2) AND + t_classes_sections.classe_id::text = split_part(substr(t_indicateurs.external_code,4),'-',1) AND + column_name LIKE '%[CLASSE:%' AND + split_part(split_part(column_name,'[CLASSE:',2),']',1) <> (t_classes.code || ':' || t_classes_sections.code) + ; + -- Ménage + DELETE FROM compta.t_indicateurs + WHERE oid IN + ( + SELECT + t_indicateurs.oid + FROM compta.t_indicateurs + LEFT JOIN compta.t_classes_sections ON t_classes_sections.oid = split_part(substr(t_indicateurs.external_code,4),'-',2)::bigint + WHERE t_indicateurs.external_code like '*C%' AND + t_indicateurs.oid NOT IN (SELECT indicateur_id FROM compta.t_rapports_rubriques) AND + t_indicateurs.oid NOT IN (SELECT indicateur_id FROM compta.p_indicateurs_cumules) AND + (t_classes_sections.oid IS NULL OR + t_classes_sections.classe_id IS DISTINCT FROM split_part(substr(t_indicateurs.external_code,4),'-',1)) + ); + + -- Reorganisation et valeurs par defaut + PERFORM base.cti_reorganize_indicateurs('compta'); + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_ajustements~bi.yaml b/db/schema2/functions/cti_gen_ajustements~bi.yaml new file mode 100644 index 0000000..7bb7277 --- /dev/null +++ b/db/schema2/functions/cti_gen_ajustements~bi.yaml @@ -0,0 +1,401 @@ +return: text +lang: plpgsql +parameters: + p0: + type: bigint + name: i_oid +src: | + DECLARE + result TEXT; + BEGIN + -- Paramètres + -- i_oid = oid ajustement ou 0 pour tout + + -- Suppression écritures déjà générées + DELETE FROM compta.p_historique_ecritures WHERE ajustement = '1' AND (cle_originale = i_oid::text OR i_oid = 0); + + -- Insertion des écritures 'simples' + 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) + SELECT + COALESCE(t_comptes.oid, t_comptes_extra.compte_general_id, 0), + t_ecritures_ajustement.date_ecriture, + t_ecritures_ajustement.mois_comptable, + t_ecritures_ajustement.montant_credit, + t_ecritures_ajustement.montant_debit, + t_journaux.oid, + COALESCE(t_sections_analytiques.oid,0), + t_ecritures_ajustement.clinique_honoraire, + p_calendrier_mois.exercice_comptable, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.type_compta_id ELSE t_comptes_gen.type_compta_id END, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.oid ELSE COALESCE(t_comptes_extra.oid,0) END, + '0', '0', '1', + CASE WHEN t_ecritures_ajustement.ecriture_maitre_id = 0 THEN t_ecritures_ajustement.oid ELSE t_ecritures_ajustement.ecriture_maitre_id END::text, + 0, + t_ecritures_ajustement.texte, + null, '', '', null, 0, 0, '' + FROM compta.t_ecritures_ajustement + JOIN base.p_calendrier_mois ON (t_ecritures_ajustement.mois_comptable = p_calendrier_mois.mois) + JOIN compta.t_journaux ON (t_ecritures_ajustement.journal_code = t_journaux.code) + LEFT JOIN compta.t_sections_analytiques ON (t_ecritures_ajustement.section_analytique_code = t_sections_analytiques.code) + LEFT JOIN compta.t_comptes ON (t_ecritures_ajustement.compte_numero = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_extra ON (t_ecritures_ajustement.compte_numero = t_comptes_extra.numero AND t_comptes_extra.oid <> t_comptes_extra.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_gen ON (t_comptes_extra.compte_general_id = t_comptes_gen.oid) + WHERE t_ecritures_ajustement.est_import_data IS DISTINCT FROM '1' AND + ( + t_ecritures_ajustement.oid = i_oid OR + t_ecritures_ajustement.ecriture_maitre_id = i_oid OR + i_oid = 0 + ); + + -- Insertion des écritures 'simples' en report mois suivant + 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) + SELECT + COALESCE(t_comptes.oid, t_comptes_extra.compte_general_id, 0), + t_ecritures_ajustement.date_ecriture, + CASE WHEN substr(t_ecritures_ajustement.mois_comptable, 5, 2) <> '12' THEN t_ecritures_ajustement.mois_comptable + 1 ELSE t_ecritures_ajustement.mois_comptable + 89 END, + t_ecritures_ajustement.montant_debit, + t_ecritures_ajustement.montant_credit, + t_journaux.oid, + COALESCE(t_sections_analytiques.oid,0), + t_ecritures_ajustement.clinique_honoraire, + p_calendrier_mois.exercice_comptable, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.type_compta_id ELSE t_comptes_gen.type_compta_id END, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.oid ELSE COALESCE(t_comptes_extra.oid,0) END, + '0', '0', '1', + CASE WHEN t_ecritures_ajustement.ecriture_maitre_id = 0 THEN t_ecritures_ajustement.oid ELSE t_ecritures_ajustement.ecriture_maitre_id END::text, + 0, + 'REPORT ' || t_ecritures_ajustement.texte, + null, '', '', null, 0, 0, '' + FROM compta.t_ecritures_ajustement + JOIN base.p_calendrier_mois ON (t_ecritures_ajustement.mois_comptable = p_calendrier_mois.mois) + JOIN compta.t_journaux ON (t_ecritures_ajustement.journal_code = t_journaux.code) + LEFT JOIN compta.t_sections_analytiques ON (t_ecritures_ajustement.section_analytique_code = t_sections_analytiques.code) + LEFT JOIN compta.t_comptes ON (t_ecritures_ajustement.compte_numero = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_extra ON (t_ecritures_ajustement.compte_numero = t_comptes_extra.numero AND t_comptes_extra.oid <> t_comptes_extra.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_gen ON (t_comptes_extra.compte_general_id = t_comptes_gen.oid) + WHERE t_ecritures_ajustement.est_import_data IS DISTINCT FROM '1' AND + t_ecritures_ajustement.report_automatique_mois_suivant = '1' AND + ( + t_ecritures_ajustement.oid = i_oid OR + t_ecritures_ajustement.ecriture_maitre_id = i_oid OR + i_oid = 0 + ); + -- Insertion des écritures en format Excel + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_gen_ajustements') THEN + CREATE TEMP TABLE w_cti_gen_ajustements( + oid bigint, + clinique_honoraire text, + report_automatique_mois_suivant text, + est_balance text, + texte_source text, + import_ligne text, + import_date text, + import_journal text, + import_compte text, + import_section text, + import_texte text, + import_debit text, + import_credit text, + date_ecriture date DEFAULT '20991231', + mois_comptable numeric DEFAULT 0, + exercice_comptable numeric DEFAULT 0, + montant_debit numeric default 0, + montant_credit numeric default 0); + END IF; + TRUNCATE w_cti_gen_ajustements; + INSERT INTO w_cti_gen_ajustements(oid, clinique_honoraire, report_automatique_mois_suivant, est_balance, texte_source, import_ligne) + SELECT + oid, + clinique_honoraire, + report_automatique_mois_suivant, + est_balance, + texte, + trim(import_ligne) AS import_ligne + FROM + ( + SELECT oid, clinique_honoraire, report_automatique_mois_suivant, est_balance, texte, unnest(data_array) AS import_ligne + FROM + ( + SELECT + t_ecritures_ajustement.oid, clinique_honoraire, report_automatique_mois_suivant, est_balance, texte, string_to_array(replace(import_data,E'\t','||'),E'\r') AS data_array + FROM compta.t_ecritures_ajustement + WHERE est_import_data = '1' AND + ( + t_ecritures_ajustement.oid = i_oid OR + i_oid = 0 + ) + ) subview + ) subview + WHERE trim(import_ligne) <> ''; + UPDATE w_cti_gen_ajustements SET + import_date = trim(split_part(import_ligne,'||',1)), + import_journal = upper(trim(split_part(import_ligne,'||',2))), + import_compte = trim(split_part(import_ligne,'||',3)), + import_section = trim(split_part(import_ligne,'||',4)), + import_texte = trim(split_part(import_ligne,'||',5)), + import_debit = trim(split_part(import_ligne,'||',6)), + import_credit = trim(split_part(import_ligne,'||',7)) + ; + UPDATE w_cti_gen_ajustements SET + date_ecriture = base.cti_to_date(import_date), + montant_debit = base.cti_to_number(translate(import_debit,',€? ','.')), + montant_credit = base.cti_to_number(translate(import_credit ,',€? ','.')); + UPDATE w_cti_gen_ajustements SET + mois_comptable = date_part('year',date_ecriture)*100+date_part('month',date_ecriture) + ; + UPDATE w_cti_gen_ajustements SET + exercice_comptable = p_calendrier_mois.exercice_comptable + FROM base.p_calendrier_mois + WHERE p_calendrier_mois.mois = w_cti_gen_ajustements.mois_comptable + ; + -- Si balance, traitement comptes en double + UPDATE w_cti_gen_ajustements SET + import_compte = CASE WHEN w_cti_gen_ajustements.CTID = keepCTID THEN w_cti_gen_ajustements.import_compte ELSE '' END, + montant_debit = subview.montant_debit, + montant_credit = subview.montant_credit + FROM + ( + SELECT + mois_comptable, + clinique_honoraire, + import_compte, + SUM(montant_debit) AS montant_debit, + SUM(montant_credit) AS montant_credit, + MIN(CTID) AS keepCTID + FROM w_cti_gen_ajustements + WHERE est_balance IN ('M','X') AND + NOT (import_compte = '' OR import_compte < '1' OR import_compte >= '8') + GROUP BY 1,2,3 + HAVING count(*) > 1 + ) subview + WHERE w_cti_gen_ajustements.mois_comptable = subview.mois_comptable AND + w_cti_gen_ajustements.import_compte = subview.import_compte AND + w_cti_gen_ajustements.clinique_honoraire = subview.clinique_honoraire + ; + DELETE FROM w_cti_gen_ajustements + WHERE import_compte = '' OR import_compte < '1' OR import_compte >= '8' ; + + -- Si import balances, génération des écarts + DROP TABLE IF EXISTS w_cti_gen_ajustements_synthese; + CREATE TEMP TABLE w_cti_gen_ajustements_synthese AS + SELECT oid, + mois_comptable, + mois_comptable AS mois_comptable_1, + 0::numeric AS exercice_comptable, + clinique_honoraire, + substr(import_compte,1,1) AS classe, + MAX(import_journal) AS import_journal, + MAX(import_texte) AS import_texte, + MAX(date_ecriture) AS date_ecriture, + MAX(texte_source) AS texte_source, + MAX(report_automatique_mois_suivant) AS report_automatique_mois_suivant, + MAX(est_balance) AS est_balance + FROM w_cti_gen_ajustements + WHERE import_compte <> '' AND + est_balance IN ('M','X') AND + mois_comptable IS NOT NULL AND + substr(import_compte,1,1) IN ('1','2','3','4','5','6','7') + GROUP BY 1,2,3,4,5,6; + UPDATE w_cti_gen_ajustements_synthese SET + mois_comptable_1 = CASE WHEN est_balance = 'X' THEN p_calendrier_mois.exercice_mois_comptable_1 ELSE mois_comptable_1 END, + exercice_comptable = p_calendrier_mois.exercice_comptable + FROM base.p_calendrier_mois + WHERE mois = mois_comptable; + + DROP TABLE IF EXISTS w_cti_gen_ajustements_deja; + CREATE TEMP TABLE w_cti_gen_ajustements_deja AS + SELECT w_cti_gen_ajustements_synthese.oid, + w_cti_gen_ajustements_synthese.mois_comptable, + w_cti_gen_ajustements_synthese.exercice_comptable, + w_cti_gen_ajustements_synthese.clinique_honoraire, + compte_nonsigne_numero AS numero, + SUM(montant_debit) AS montant_debit, + SUM(montant_credit) AS montant_credit, + SUM(montant_debit) - SUM(montant_credit) AS montant, + MAX(import_journal) AS import_journal, + MAX(import_texte) AS import_texte, + MAX(w_cti_gen_ajustements_synthese.date_ecriture) AS date_ecriture, + MAX(texte_source) AS texte_source, + MAX(report_automatique_mois_suivant) AS report_automatique_mois_suivant, + MAX(est_balance) AS est_balance + FROM compta.p_historique_ecritures + JOIN compta.t_comptes ON compte_id = t_comptes.oid + JOIN w_cti_gen_ajustements_synthese ON + substr(t_comptes.numero,1,1) = w_cti_gen_ajustements_synthese.classe AND + p_historique_ecritures.mois_comptable BETWEEN w_cti_gen_ajustements_synthese.mois_comptable_1 AND w_cti_gen_ajustements_synthese.mois_comptable AND + p_historique_ecritures.clinique_honoraire = w_cti_gen_ajustements_synthese.clinique_honoraire AND + p_historique_ecritures.is_budget = '0' + GROUP BY 1,2,3,4,5 + ORDER BY 1,2,3,5,6 + ; + INSERT INTO w_cti_gen_ajustements(oid, clinique_honoraire, report_automatique_mois_suivant, est_balance, texte_source, import_journal, import_compte, import_texte, date_ecriture, exercice_comptable, mois_comptable, montant_debit, montant_credit) + SELECT w_cti_gen_ajustements_deja.oid, + w_cti_gen_ajustements_deja.clinique_honoraire, + w_cti_gen_ajustements_deja.report_automatique_mois_suivant, + w_cti_gen_ajustements_deja.est_balance, + w_cti_gen_ajustements_deja.texte_source, + w_cti_gen_ajustements_deja.import_journal, + w_cti_gen_ajustements_deja.numero, + w_cti_gen_ajustements_deja.import_texte, + w_cti_gen_ajustements_deja.date_ecriture, + w_cti_gen_ajustements_deja.exercice_comptable, + w_cti_gen_ajustements_deja.mois_comptable, + 0, + 0 + FROM w_cti_gen_ajustements_deja + LEFT JOIN w_cti_gen_ajustements ON + w_cti_gen_ajustements_deja.mois_comptable = w_cti_gen_ajustements.mois_comptable AND + w_cti_gen_ajustements_deja.clinique_honoraire = w_cti_gen_ajustements.clinique_honoraire AND + w_cti_gen_ajustements_deja.numero = w_cti_gen_ajustements.import_compte + WHERE w_cti_gen_ajustements.import_compte IS NULL + ; + UPDATE w_cti_gen_ajustements SET + montant_debit = CASE WHEN montant_ajustement <= 0 THEN 0-montant_ajustement ELSE 0 END, + montant_credit = CASE WHEN montant_ajustement >= 0 THEN montant_ajustement ELSE 0 END + FROM + ( + SELECT + w_cti_gen_ajustements_deja.mois_comptable, + w_cti_gen_ajustements_deja.clinique_honoraire, + numero, + w_cti_gen_ajustements_deja.montant - (w_cti_gen_ajustements.montant_debit - w_cti_gen_ajustements.montant_credit) AS montant_ajustement + FROM w_cti_gen_ajustements_deja + JOIN w_cti_gen_ajustements ON + w_cti_gen_ajustements_deja.mois_comptable = w_cti_gen_ajustements.mois_comptable AND + w_cti_gen_ajustements_deja.clinique_honoraire = w_cti_gen_ajustements.clinique_honoraire AND + w_cti_gen_ajustements_deja.numero = w_cti_gen_ajustements.import_compte + ORDER BY 1,2,3 + ) subview + WHERE subview.mois_comptable = w_cti_gen_ajustements.mois_comptable AND + subview.clinique_honoraire = w_cti_gen_ajustements.clinique_honoraire AND + subview.numero = w_cti_gen_ajustements.import_compte; + -- Génération des écritures + 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) + SELECT + COALESCE(t_comptes.oid, t_comptes_extra.compte_general_id, 0), + w_cti_gen_ajustements.date_ecriture, + w_cti_gen_ajustements.mois_comptable, + w_cti_gen_ajustements.montant_credit, + w_cti_gen_ajustements.montant_debit, + t_journaux.oid, + COALESCE(t_sections_analytiques.oid,0), + w_cti_gen_ajustements.clinique_honoraire, + w_cti_gen_ajustements.exercice_comptable, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.type_compta_id ELSE t_comptes_gen.type_compta_id END, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.oid ELSE COALESCE(t_comptes_extra.oid,0) END, + '0', '0', '1', + w_cti_gen_ajustements.oid::text, + 0, + w_cti_gen_ajustements.texte_source || CASE WHEN w_cti_gen_ajustements.import_texte <> '' THEN '- ' || w_cti_gen_ajustements.import_texte ELSE '' END, + null, '', '', null, 0, 0, '' + FROM w_cti_gen_ajustements + JOIN compta.t_journaux ON (w_cti_gen_ajustements.import_journal = t_journaux.code) + LEFT JOIN compta.t_sections_analytiques ON (w_cti_gen_ajustements.import_section = t_sections_analytiques.code) + LEFT JOIN compta.t_comptes ON (w_cti_gen_ajustements.import_compte = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_extra ON (w_cti_gen_ajustements.import_compte = t_comptes_extra.numero AND t_comptes_extra.oid <> t_comptes_extra.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_gen ON (t_comptes_extra.compte_general_id = t_comptes_gen.oid) + WHERE import_compte <> '' AND + (w_cti_gen_ajustements.montant_debit <> 0 OR + w_cti_gen_ajustements.montant_credit <> 0) + ; + -- Report mois suivant + 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) + SELECT + COALESCE(t_comptes.oid, t_comptes_extra.compte_general_id, 0), + w_cti_gen_ajustements.date_ecriture, + CASE WHEN substr(w_cti_gen_ajustements.mois_comptable, 5, 2) <> '12' THEN w_cti_gen_ajustements.mois_comptable + 1 ELSE w_cti_gen_ajustements.mois_comptable + 89 END, + w_cti_gen_ajustements.montant_debit, + w_cti_gen_ajustements.montant_credit, + t_journaux.oid, + COALESCE(t_sections_analytiques.oid,0), + w_cti_gen_ajustements.clinique_honoraire, + w_cti_gen_ajustements.exercice_comptable, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.type_compta_id ELSE t_comptes_gen.type_compta_id END, + CASE WHEN t_comptes.oid IS NOT NULL THEN t_comptes.oid ELSE COALESCE(t_comptes_extra.oid,0) END, + '0', '0', '1', + w_cti_gen_ajustements.oid::text, + 0, + 'REPORT ' || w_cti_gen_ajustements.texte_source || CASE WHEN w_cti_gen_ajustements.import_texte <> '' THEN '- ' || w_cti_gen_ajustements.import_texte ELSE '' END, + null, '', '', null, 0, 0, '' + FROM w_cti_gen_ajustements + JOIN compta.t_journaux ON (w_cti_gen_ajustements.import_journal = t_journaux.code) + LEFT JOIN compta.t_sections_analytiques ON (w_cti_gen_ajustements.import_section = t_sections_analytiques.code) + LEFT JOIN compta.t_comptes ON (w_cti_gen_ajustements.import_compte = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_extra ON (w_cti_gen_ajustements.import_compte = t_comptes_extra.numero AND t_comptes_extra.oid <> t_comptes_extra.compte_general_id) + LEFT JOIN compta.t_comptes t_comptes_gen ON (t_comptes_extra.compte_general_id = t_comptes_gen.oid) + WHERE import_compte <> '' AND + w_cti_gen_ajustements.report_automatique_mois_suivant = '1' AND + (w_cti_gen_ajustements.montant_debit <> 0 OR + w_cti_gen_ajustements.montant_credit <> 0) + ; + UPDATE compta.p_historique_ecritures + SET site_id = coalesce((SELECT MIN(oid) FROM compta.t_sites WHERE oid <> 0), 0) + WHERE site_id IS NULL OR site_id = 0; + + -- Regénération écritures 'total' + DELETE FROM compta.p_historique_ecritures_total WHERE ajustement = '1' ; + INSERT INTO compta.p_historique_ecritures_total( + compte_id, mois_comptable, montant_credit, montant_debit, journal_id, + section_analytique_id, clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee, nombre_ecritures) + SELECT + compte_id, mois_comptable, sum(montant_credit), sum(montant_debit), journal_id, + section_analytique_id, clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee, count(*) + FROM compta.p_historique_ecritures + WHERE ajustement = '1' + GROUP BY + compte_id, mois_comptable, journal_id, + section_analytique_id, clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee; + -- Report des cumuls sur données importées excel + UPDATE compta.t_ecritures_ajustement SET + journal_code = subview.journal_code, + mois_comptable = subview.mois_comptable, + montant_debit = subview.montant_debit, + montant_credit = subview.montant_credit + FROM + ( + SELECT + cle_originale, + base.cti_group_concat(DISTINCT t_journaux.code) AS journal_code, + SUM(montant_debit) AS montant_debit, + SUM(montant_credit) AS montant_credit, + MAX(CASE WHEN p_historique_ecritures.texte NOT LIKE 'REPORT %' THEN mois_comptable ELSE 0 END) AS mois_comptable + FROM compta.p_historique_ecritures + JOIN compta.t_journaux ON journal_id = t_journaux.oid + WHERE ajustement = '1' + GROUP BY 1 + ) subview + WHERE t_ecritures_ajustement.oid = subview.cle_originale AND + t_ecritures_ajustement.est_import_data = '1'; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_budget~bi.yaml b/db/schema2/functions/cti_gen_budget~bi.yaml new file mode 100644 index 0000000..cceb0c4 --- /dev/null +++ b/db/schema2/functions/cti_gen_budget~bi.yaml @@ -0,0 +1,554 @@ +return: text +lang: plpgsql +parameters: + p0: + type: bigint + name: i_oid +src: | + DECLARE + result TEXT; + BEGIN + + -- Table de travail + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_gen_budget') THEN + DROP TABLE IF EXISTS w_cti_gen_budget; + CREATE TEMP TABLE w_cti_gen_budget( + oid bigint, + import_ligne text, + import_compte_budgetaire text, + import_compte_texte text, + import_include_comptes text, + import_exclude_comptes text, + import_montant_exercice text, + import_type_ventilation text, + import_taux01 text, + import_taux02 text, + import_taux03 text, + import_taux04 text, + import_taux05 text, + import_taux06 text, + import_taux07 text, + import_taux08 text, + import_taux09 text, + import_taux10 text, + import_taux11 text, + import_taux12 text, + montant_exercice numeric, + taux01 numeric, + taux02 numeric, + taux03 numeric, + taux04 numeric, + taux05 numeric, + taux06 numeric, + taux07 numeric, + taux08 numeric, + taux09 numeric, + taux10 numeric, + taux11 numeric, + taux12 numeric, + import_section_analytique text + ); + END IF; + + + -- lignes de budget issues du copier coller excel + TRUNCATE w_cti_gen_budget; + + + INSERT INTO w_cti_gen_budget(oid, import_ligne) + SELECT + oid, + trim(import_ligne) AS import_ligne + FROM + ( + SELECT oid, unnest(data_array) AS import_ligne + FROM + ( + SELECT + t_budget.oid, string_to_array(replace(import_data,E'\t','||'),E'\r') AS data_array + FROM compta.t_budget + WHERE is_actif = '1' AND + ( + t_budget.oid = i_oid OR + i_oid = 0 + ) + ) subview + ) subview + WHERE trim(import_ligne) <> ''; + + -- Découpage champs + UPDATE w_cti_gen_budget SET + import_compte_budgetaire = trim(split_part(import_ligne,'||',1)), + import_compte_texte = trim(split_part(import_ligne,'||',2)), + import_include_comptes = trim(split_part(import_ligne,'||',3)), + import_exclude_comptes = trim(split_part(import_ligne,'||',4)), + import_montant_exercice = trim(split_part(import_ligne,'||',5)), + import_type_ventilation = trim(split_part(import_ligne,'||',6)), + import_taux01 = trim(split_part(import_ligne,'||',7)), + import_taux02 = trim(split_part(import_ligne,'||',8)), + import_taux03 = trim(split_part(import_ligne,'||',9)), + import_taux04 = trim(split_part(import_ligne,'||',10)), + import_taux05 = trim(split_part(import_ligne,'||',11)), + import_taux06 = trim(split_part(import_ligne,'||',12)), + import_taux07 = trim(split_part(import_ligne,'||',13)), + import_taux08 = trim(split_part(import_ligne,'||',14)), + import_taux09 = trim(split_part(import_ligne,'||',15)), + import_taux10 = trim(split_part(import_ligne,'||',16)), + import_taux11 = trim(split_part(import_ligne,'||',17)), + import_taux12 = trim(split_part(import_ligne,'||',18)), + import_section_analytique = trim(split_part(import_ligne,'||',19)) + ; + + -- Champs numériques + UPDATE w_cti_gen_budget SET + montant_exercice = CASE WHEN import_montant_exercice <> '' THEN base.cti_to_number(translate(import_montant_exercice ,',€? ','.')) ELSE 0 END, + taux01 = CASE WHEN import_taux01 <> '' THEN base.cti_to_number(translate(import_taux01 ,',€? ','.')) ELSE 0 END, + taux02 = CASE WHEN import_taux02 <> '' THEN base.cti_to_number(translate(import_taux02 ,',€? ','.')) ELSE 0 END, + taux03 = CASE WHEN import_taux03 <> '' THEN base.cti_to_number(translate(import_taux03 ,',€? ','.')) ELSE 0 END, + taux04 = CASE WHEN import_taux04 <> '' THEN base.cti_to_number(translate(import_taux04 ,',€? ','.')) ELSE 0 END, + taux05 = CASE WHEN import_taux05 <> '' THEN base.cti_to_number(translate(import_taux05 ,',€? ','.')) ELSE 0 END, + taux06 = CASE WHEN import_taux06 <> '' THEN base.cti_to_number(translate(import_taux06 ,',€? ','.')) ELSE 0 END, + taux07 = CASE WHEN import_taux07 <> '' THEN base.cti_to_number(translate(import_taux07 ,',€? ','.')) ELSE 0 END, + taux08 = CASE WHEN import_taux08 <> '' THEN base.cti_to_number(translate(import_taux08 ,',€? ','.')) ELSE 0 END, + taux09 = CASE WHEN import_taux09 <> '' THEN base.cti_to_number(translate(import_taux09 ,',€? ','.')) ELSE 0 END, + taux10 = CASE WHEN import_taux10 <> '' THEN base.cti_to_number(translate(import_taux10 ,',€? ','.')) ELSE 0 END, + taux11 = CASE WHEN import_taux11 <> '' THEN base.cti_to_number(translate(import_taux11 ,',€? ','.')) ELSE 0 END, + taux12 = CASE WHEN import_taux12 <> '' THEN base.cti_to_number(translate(import_taux12 ,',€? ','.')) ELSE 0 END + ; + + -- Génération des tables budget + DELETE FROM compta.t_budget_compte + WHERE budget_id IN (SELECT oid FROM w_cti_gen_budget) + ; + + -- Budget structuré + INSERT INTO compta.t_budget_compte( + budget_id, + numero, + texte, + clinique_honoraire, + section_analytique_code, + include_numero, + exclude_numero, + montant_budget_exercice, + mode_ventilation, + taux_budget_mensuel) + SELECT + oid, + import_compte_budgetaire, + import_compte_texte, + 'C'::text AS clinique_honoraire, + import_section_analytique, + import_include_comptes, + import_exclude_comptes, + montant_exercice, + import_type_ventilation, + Array[ + taux01, + taux02, + taux03, + taux04, + taux05, + taux06, + taux07, + taux08, + taux09, + taux10, + taux11, + taux12 + ] + FROM w_cti_gen_budget + WHERE import_compte_budgetaire <> '' AND + import_compte_budgetaire BETWEEN '1' AND '99999999' AND + import_include_comptes <> '' + ; + + + + -- Ajout compte à zéro pour jointure budget + INSERT INTO compta.t_types_compta( + oid, code_original, code, texte, specialite) + SELECT 0, '', 'NR', 'Non renseigné', '' + WHERE 0 NOT IN (SELECT oid FROM compta.t_types_compta) + ; + + INSERT INTO compta.t_classes_comptes + (oid, code, texte, clinique, honoraire) + SELECT 0, '0', 'Non renseigné', '0', '0' + WHERE 0 NOT IN (SELECT oid FROM compta.t_classes_comptes) + ; + + INSERT INTO compta.t_comptes + (oid, type_compta_id, numero, texte, clinique_honoraire, compte_general_id) + SELECT 0, 0, '00000000', 'Non renseigné', 'C', 0 + WHERE 0 NOT IN (SELECT oid FROM compta.t_comptes) + ; + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, clinique_honoraire) + SELECT subview.type_compta_id, + t_budget_compte.numero, + t_budget_compte.texte, + t_budget_compte.clinique_honoraire + FROM compta.t_budget_compte + JOIN + ( + SELECT + substr(numero,1,1) AS classe, MAX(type_compta_id) AS type_compta_id + FROM compta.t_comptes + WHERE oid = compte_general_id + GROUP BY 1 + ORDER BY count(*) DESC + ) subview ON substr(numero,1,1)= subview.classe + LEFT JOIN compta.t_comptes ON + t_budget_compte.numero = t_comptes.numero AND + subview.type_compta_id = t_comptes.type_compta_id + WHERE t_budget_compte.numero BETWEEN '1' AND '99999999' AND + t_comptes.oid IS NULL + ; + + UPDATE compta.t_comptes + SET compte_general_id = oid + WHERE (compte_general_id IS NULL OR compte_general_id = 0) AND + numero IN (SELECT numero FROM compta.t_budget_compte) + ; + + PERFORM compta.cti_reorganize_comptes_c(); + + PERFORM base.cti_update_classes('compta', 't_comptes_c', 'CPT',''); + + UPDATE compta.t_budget_compte + SET compte_budget_id = t_comptes.oid + FROM compta.t_comptes + WHERE t_budget_compte.numero = t_comptes.numero AND + t_budget_compte.numero BETWEEN '1' AND '99999999' AND + compte_budget_id IS DISTINCT FROM t_comptes.oid + ; + + + + -- Table d'association lignes budget - comptes + DROP TABLE IF EXISTS w_budget_compte_compte; + CREATE TEMP TABLE w_budget_compte_compte AS + SELECT t_budget_compte.oid AS in_budget_compte_id, t_comptes.oid AS in_compte_id + FROM compta.t_budget_compte + JOIN compta.t_comptes ON + t_comptes.numero ILIKE ANY (string_to_array(replace(include_numero,'*','%'),' ')) AND + NOT (t_comptes.numero ILIKE ANY (string_to_array(replace(exclude_numero,'*','%'),' '))) + ; + + + INSERT INTO compta.t_budget_compte_compte + (budget_compte_id, compte_id) + SELECT in_budget_compte_id, in_compte_id + FROM w_budget_compte_compte + LEFT JOIN compta.t_budget_compte_compte ON + in_budget_compte_id = budget_compte_id AND + in_compte_id = compte_id + WHERE budget_compte_id IS NULL + ; + + DELETE FROM compta.t_budget_compte_compte + USING + ( + SELECT budget_compte_id, compte_id + FROM compta.t_budget_compte_compte + LEFT JOIN w_budget_compte_compte ON + in_budget_compte_id = budget_compte_id AND + in_compte_id = compte_id + WHERE in_budget_compte_id IS NULL + ) subview + WHERE t_budget_compte_compte.budget_compte_id = subview.budget_compte_id AND + t_budget_compte_compte.compte_id = subview.compte_id + ; + + + + + + + + + UPDATE compta.p_historique_ecritures_total p_historique_ecritures + SET compte_budget_id = t_budget_compte.compte_budget_id + FROM compta.t_budget_compte_compte, + compta.t_budget_compte, + compta.t_budget + WHERE t_budget_compte_compte.compte_id = p_historique_ecritures.compte_id AND + t_budget_compte_compte.budget_compte_id = t_budget_compte.oid AND + t_budget_compte.budget_id = t_budget.oid AND + t_budget.exercice_comptable = p_historique_ecritures.exercice_comptable AND + t_budget.site_id = p_historique_ecritures.site_id AND + p_historique_ecritures.compte_budget_id IS DISTINCT FROM t_budget_compte.compte_budget_id + ; + + UPDATE compta.p_historique_ecritures + SET compte_budget_id = t_budget_compte.compte_budget_id + FROM compta.t_budget_compte_compte, + compta.t_budget_compte, + compta.t_budget + WHERE t_budget_compte_compte.compte_id = p_historique_ecritures.compte_id AND + t_budget_compte_compte.budget_compte_id = t_budget_compte.oid AND + t_budget_compte.budget_id = t_budget.oid AND + t_budget.exercice_comptable = p_historique_ecritures.exercice_comptable AND + t_budget.site_id = p_historique_ecritures.site_id AND + p_historique_ecritures.compte_budget_id IS DISTINCT FROM t_budget_compte.compte_budget_id + ; + + UPDATE compta.p_historique_ecritures_total + SET compte_budget_id = compte_nonsigne_id + FROM compta.t_comptes + WHERE compte_id = t_comptes.oid AND + (compte_budget_id = 0 OR compte_budget_id IS NULL) + ; + + UPDATE compta.p_historique_ecritures + SET compte_budget_id = compte_nonsigne_id + FROM compta.t_comptes + WHERE compte_id = t_comptes.oid AND + (compte_budget_id = 0 OR compte_budget_id IS NULL) + ; + + UPDATE compta.p_historique_ecritures_total + SET compte_budget_id = 0 + WHERE compte_budget_id IS NULL + ; + + UPDATE compta.p_historique_ecritures + SET compte_budget_id = 0 + WHERE compte_budget_id IS NULL + ; + + + -- Ventilation mensuelle + + -- Mois + UPDATE compta.t_budget + SET mois = subview.mois + FROM + ( + SELECT oid, base.cti_array_accum(mois) AS mois + FROM + ( + SELECT t_budget.oid, p_calendrier_mois.mois + FROM base.p_calendrier_mois + JOIN compta.t_budget ON t_budget.exercice_comptable = p_calendrier_mois.exercice_comptable + ORDER BY t_budget.oid, p_calendrier_mois.mois + ) subview + GROUP BY 1 + ) subview + WHERE t_budget.oid = subview.oid AND + t_budget.mois IS DISTINCT FROM subview.mois + ; + + + -- Taux de ventilation + + -- Prorata temporis + UPDATE compta.t_budget_compte + SET taux_budget_mensuel = + ARRAY[ + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12, + 1.00/12 + ] + WHERE mode_ventilation = '1' + ; + + + + --Saisonnalisé + + UPDATE compta.t_budget_compte + SET taux_budget_mensuel = subview.taux_budget_mensuel + FROM + ( + SELECT + t_budget_compte.oid, + t_budget_compte.numero, + Array[ + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[1] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[2] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[3] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[4] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[5] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[6] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[7] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[8] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[9] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[10] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[11] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)), + base.cti_division(SUM(CASE WHEN mois_comptable+100 = t_budget.mois[12] THEN montant_debit-montant_credit ELSE 0 END),SUM(montant_debit-montant_credit)) + ] AS taux_budget_mensuel, + SUM(montant_debit-montant_credit) + FROM compta.p_historique_ecritures + JOIN compta.t_budget ON p_historique_ecritures.exercice_comptable = t_budget.exercice_comptable -1 + JOIN compta.t_budget_compte ON budget_id = t_budget.oid AND mode_ventilation = '2' + JOIN compta.t_budget_compte_compte ON t_budget_compte.oid = budget_compte_id + WHERE p_historique_ecritures.compte_id = t_budget_compte_compte.compte_id AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ) subview + WHERE t_budget_compte.oid = subview.oid + ; + + -- Montant saisis + + UPDATE compta.t_budget_compte + SET taux_budget_mensuel = + ARRAY[ + base.cti_division(taux_budget_mensuel[1],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[2],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[3],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[4],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[5],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[6],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[7],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[8],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[9],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[10],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[11],montant_budget_exercice), + base.cti_division(taux_budget_mensuel[12],montant_budget_exercice) + ] + WHERE mode_ventilation = '8' + ; + + + -- Ajustement dernier mois (arrondis) + UPDATE compta.t_budget_compte SET + montant_budget_mensuel = + ARRAY[ + round(montant_budget_exercice * taux_budget_mensuel[1],2), + round(montant_budget_exercice * taux_budget_mensuel[2],2), + round(montant_budget_exercice * taux_budget_mensuel[3],2), + round(montant_budget_exercice * taux_budget_mensuel[4],2), + round(montant_budget_exercice * taux_budget_mensuel[5],2), + round(montant_budget_exercice * taux_budget_mensuel[6],2), + round(montant_budget_exercice * taux_budget_mensuel[7],2), + round(montant_budget_exercice * taux_budget_mensuel[8],2), + round(montant_budget_exercice * taux_budget_mensuel[9],2), + round(montant_budget_exercice * taux_budget_mensuel[10],2), + round(montant_budget_exercice * taux_budget_mensuel[11],2), + 0.00 + ] + ; + + UPDATE compta.t_budget_compte SET + montant_budget_mensuel[12] = + montant_budget_exercice - + montant_budget_mensuel[1] - + montant_budget_mensuel[2] - + montant_budget_mensuel[3] - + montant_budget_mensuel[4] - + montant_budget_mensuel[5] - + montant_budget_mensuel[6] - + montant_budget_mensuel[7] - + montant_budget_mensuel[8] - + montant_budget_mensuel[9] - + montant_budget_mensuel[10] - + montant_budget_mensuel[11] + ; + + -- Génération en comptabilité + DELETE FROM compta.p_historique_ecritures + WHERE is_budget = '1' + ; + + 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, + texte, + date_facture_fournisseur, + date_echeance, + numero_cheque, + site_id, + is_budget, + compte_budget_id) + SELECT + t_budget_compte.compte_budget_id, + (t_budget.mois[i]||'01')::date AS date_ecriture, + t_budget.mois[i] AS mois_comptable, + CASE WHEN t_budget_compte.numero LIKE '7%' OR t_budget_compte.numero BETWEEN '1' AND '59999999' OR t_budget_compte.numero BETWEEN '8' AND '99999999' AND montant_budget_mensuel[i] > 0 THEN montant_budget_mensuel[i] ELSE 0 END AS montant_credit, + CASE WHEN t_budget_compte.numero LIKE '6%' OR t_budget_compte.numero BETWEEN '1' AND '59999999' OR t_budget_compte.numero BETWEEN '8' AND '99999999' AND montant_budget_mensuel[i] < 0 THEN 0-montant_budget_mensuel[i] ELSE 0 END AS montant_debit, + 0::bigint AS journal_id, + COALESCE(t_sections_analytiques.oid,0::bigint) AS section_analytique_id, + t_budget_compte.clinique_honoraire, + t_budget.exercice_comptable, + t_comptes.type_compta_id, + t_budget_compte.compte_budget_id AS compte_extra_id, + '0'::text AS comptabilisee, + '0'::text AS fin_exercice, + '0'::text AS ajustement, + t_budget.oid AS cle_originale, + 'Budget ' || t_budget.exercice_comptable || ' ' || t_budget.texte, + '20991231'::date AS date_facture_fournisseur, + '20991231'::date AS date_echeance, + ''::text AS numero_cheque, + t_budget.site_id, + '1'::text AS is_budget, + t_budget_compte.compte_budget_id + FROM compta.t_budget + JOIN compta.t_budget_compte ON budget_id = t_budget.oid + JOIN compta.t_comptes ON t_budget_compte.compte_budget_id = t_comptes.oid + LEFT JOIN compta.t_sections_analytiques ON t_budget_compte.section_analytique_code = t_sections_analytiques.code AND t_budget_compte.section_analytique_code <> '' + JOIN ( + SELECT generate_series(1,12) AS i + ) subview ON 1=1 + WHERE is_actif = '1' + ; + + -- Regénération écritures 'total' + DELETE FROM compta.p_historique_ecritures_total WHERE is_budget = '1' ; + INSERT INTO compta.p_historique_ecritures_total( + compte_id, mois_comptable, montant_credit, montant_debit, journal_id, + section_analytique_id, clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee, + is_budget, + compte_budget_id, + nombre_ecritures) + SELECT + compte_id, mois_comptable, montant_credit, montant_debit, journal_id, + section_analytique_id, clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee, + is_budget, + compte_budget_id, + 1 + FROM compta.p_historique_ecritures + WHERE is_budget = '1' + ; + + -- Ajout des oid des comptes budgetaires + INSERT INTO compta.p_oids (code_table, oid) + SELECT 'comptes_budget_c', compte_budget_id + FROM compta.p_historique_ecritures_total + WHERE clinique_honoraire = 'C' + AND compte_budget_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'comptes_budget_c') + GROUP BY 1,2; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_now~tx,tx.yaml b/db/schema2/functions/cti_now~tx,tx.yaml new file mode 100644 index 0000000..fbdb953 --- /dev/null +++ b/db/schema2/functions/cti_now~tx,tx.yaml @@ -0,0 +1,61 @@ +return: date +lang: plpgsql +parameters: + p0: + type: text + name: i_code + p1: + type: text + name: i_option +src: | + DECLARE + _code text; + _option text; + _now date; + BEGIN + _code = i_code; + IF _code NOT IN ('NOW', 'NOWCLOTURE') THEN + _code = 'NOW'; + END IF; + _option = i_option; + IF NOT EXISTS (SELECT * FROM compta.t_divers WHERE code = _code) THEN + _option = 'FORCE'; + END IF; + IF _option = 'FORCE' THEN + _now = + CASE _code + WHEN 'NOW' THEN + (SELECT MAX(date_ecriture) FROM compta.p_historique_ecritures WHERE date_ecriture <= date(now()) ) + WHEN 'NOWCLOTURE' THEN + (SELECT date(((MAX(mois_comptable))||'01')::date - interval '1 day') FROM compta.p_historique_ecritures WHERE (mois_comptable||'01')::date <= date(now()) ) + ELSE date(now()) + END; + UPDATE compta.t_divers SET + texte = CASE _code + WHEN 'NOW' THEN 'Date dernière écriture' + WHEN 'NOWCLOTURE' THEN 'Date clôture' + ELSE 'Date dernière écriture' + END, + valeur = _now::text, + valeur_date = _now, + show_info_module = true + WHERE code = _code; + INSERT INTO compta.t_divers (code, texte, valeur, valeur_date, description, show_info_module) + SELECT + _code, + CASE _code + WHEN 'NOW' THEN 'Date dernière écriture' + WHEN 'NOWCLOTURE' THEN 'Date clôture' + ELSE 'Date dernière écriture' + END, + _now::text, + _now, + 'Date non modifiable', + true + WHERE _code NOT IN (SELECT code FROM compta.t_divers); + ELSE + _now = (SELECT valeur_date FROM compta.t_divers WHERE code = _code); + END IF; + + RETURN _now; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_comptes_c.yaml b/db/schema2/functions/cti_reorganize_comptes_c.yaml new file mode 100644 index 0000000..a774f50 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_comptes_c.yaml @@ -0,0 +1,818 @@ +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; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml b/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml new file mode 100644 index 0000000..bf94482 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml @@ -0,0 +1,136 @@ +return: text +lang: plpgsql +src: | + DECLARE + _marge_erreur numeric; + _ignorer_reglements text; + result TEXT; + BEGIN + RAISE NOTICE 'Initialisations'; + + + + + + + RAISE NOTICE 'Lignes detaillees'; + + DROP TABLE IF EXISTS w_cumuls; + CREATE TEMP TABLE w_cumuls AS + SELECT site_id, 0::bigint AS provider_id, mois_comptable, clinique_honoraire, + round(SUM(montant_debit),2) AS montant_debit_d, + round(SUM(montant_credit),2) AS montant_credit_d, + 0::numeric AS montant_debit_t, + 0::numeric AS montant_credit_t, + 0::numeric AS montant_debit_c, + 0::numeric AS montant_credit_c + FROM compta.p_historique_ecritures + WHERE ajustement NOT IN ('1','2','3') AND ecriture_consolidee <= '0' AND + is_budget <> '1' + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4; + + RAISE NOTICE 'Lignes totalisées'; + + INSERT INTO w_cumuls + SELECT site_id, 0::bigint AS provider_id, mois_comptable, clinique_honoraire, + 0::numeric AS montant_debit_d, + 0::numeric AS montant_credit_d, + round(SUM(montant_debit),2) AS montant_debit_t, + round(SUM(montant_credit),2) AS montant_credit_t, + 0::numeric AS montant_debit_c, + 0::numeric AS montant_credit_c + FROM compta.p_historique_ecritures_total + WHERE ajustement NOT IN ('1','2','3') AND ecriture_consolidee <= '0' AND + is_budget <> '1' + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4; + + RAISE NOTICE 'Chiffrier production'; + + INSERT INTO w_cumuls + SELECT site_id, COALESCE(provider_id,0), mois_comptable, clinique_honoraire, + 0::numeric AS montant_debit_d, + 0::numeric AS montant_credit_d, + 0::numeric AS montant_debit_t, + 0::numeric AS montant_credit_t, + round(SUM(montant_debit),2) AS montant_debit_c, + round(SUM(montant_credit),2) AS montant_credit_c + FROM compta.p_chiffrier_comptable + WHERE mois_comptable >= (SELECT MIN(mois_comptable) FROM w_cumuls) + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4; + + RAISE NOTICE 'Controles'; + DROP TABLE IF EXISTS w_controle_chiffrier; + CREATE TEMP TABLE w_controle_chiffrier AS + SELECT site_id, provider_id, mois_comptable, clinique_honoraire, + SUM(montant_debit_d) AS montant_debit_d, + SUM(montant_credit_d) AS montant_credit_d, + SUM(montant_debit_t) AS montant_debit_t, + SUM(montant_credit_t) AS montant_credit_t, + SUM(montant_debit_c) AS montant_debit_c, + SUM(montant_credit_c) AS montant_credit_c, + CASE + WHEN SUM(montant_debit_d) = SUM(montant_debit_t) AND + SUM(montant_debit_c) = 0 AND + SUM(montant_credit_d) = SUM(montant_credit_t) AND + SUM(montant_credit_c) = 0 + THEN '1' + WHEN SUM(montant_debit_d) = SUM(montant_debit_t) AND + SUM(montant_debit_d) = SUM(montant_debit_c) AND + SUM(montant_credit_d) = SUM(montant_credit_t) AND + SUM(montant_credit_d) = SUM(montant_credit_c) + THEN '1' + ELSE '0' END AS valide + FROM w_cumuls + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4; + UPDATE w_controle_chiffrier + SET valide = '1' + FROM compta.t_controle_chiffrier + WHERE w_controle_chiffrier.site_id = t_controle_chiffrier.site_id AND + w_controle_chiffrier.provider_id = t_controle_chiffrier.provider_id AND + w_controle_chiffrier.mois_comptable = t_controle_chiffrier.mois_comptable AND + w_controle_chiffrier.clinique_honoraire = t_controle_chiffrier.clinique_honoraire AND + w_controle_chiffrier.valide = '0' AND + t_controle_chiffrier.valide = '1' AND + w_controle_chiffrier.montant_debit_d = t_controle_chiffrier.montant_debit_d AND + w_controle_chiffrier.montant_debit_t = t_controle_chiffrier.montant_debit_t AND + w_controle_chiffrier.montant_debit_c = t_controle_chiffrier.montant_debit_c AND + w_controle_chiffrier.montant_credit_d = t_controle_chiffrier.montant_credit_d AND + w_controle_chiffrier.montant_credit_t = t_controle_chiffrier.montant_credit_t AND + w_controle_chiffrier.montant_credit_c = t_controle_chiffrier.montant_credit_c; + -- Antérieur + UPDATE w_controle_chiffrier + SET valide = '1' + WHERE valide <> '1' AND + mois_comptable < (SELECT MIN(mois_comptable) AS mois_comptable_first FROM compta.p_historique_ecritures); + + TRUNCATE compta.t_controle_chiffrier; + + INSERT INTO compta.t_controle_chiffrier + ( + site_id, provider_id, mois_comptable, clinique_honoraire, + montant_debit_d, + montant_credit_d, + montant_debit_t, + montant_credit_t, + montant_debit_c, + montant_credit_c, + valide + ) + SELECT w_controle_chiffrier.site_id, w_controle_chiffrier.provider_id, w_controle_chiffrier.mois_comptable, w_controle_chiffrier.clinique_honoraire, + montant_debit_d, + montant_credit_d, + montant_debit_t, + montant_credit_t, + montant_debit_c, + montant_credit_c, + valide + FROM w_controle_chiffrier + ORDER BY 1,2,3,4; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_indicateur_condition.yaml b/db/schema2/functions/cti_reorganize_indicateur_condition.yaml new file mode 100644 index 0000000..237b1b3 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_indicateur_condition.yaml @@ -0,0 +1,570 @@ +return: text +lang: plpgsql +src: | + DECLARE + + sqlcmd text; + def_cursor refcursor; + _schemaname text; + result TEXT; + BEGIN + + -- Formes d'activité + DROP TABLE IF EXISTS w_indicateur_condition; + CREATE TEMP TABLE w_indicateur_condition AS + SELECT + 'CTI_COMPTE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Compte. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'compte_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'COMPTE_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + + ] AS arbre_texte + FROM compta.v_comptes_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid NOT LIKE 'CP%' AND + v_source.oid NOT LIKE 'CL%' AND + v_source.oid NOT LIKE 'LS09%' AND + v_source.oid <> '-1' + ; + + -- Journaux + INSERT INTO w_indicateur_condition + SELECT + 'CTI_JOURNAL#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Journal. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'journal_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'JOURNAL_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'JR%' THEN COALESCE('JR#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_journaux_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_journaux t_source ON v_source.oid LIKE 'JR%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- POLES + INSERT INTO w_indicateur_condition + SELECT + 'CTI_POLE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Pole. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'pole_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'POLE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'JR%' THEN COALESCE('JR#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_pole_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_journaux t_source ON v_source.oid LIKE 'JR%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Sites + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SITE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Site. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'site_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SITE_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SI%' THEN COALESCE('SI#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM compta.v_sites_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sites t_source ON v_source.oid LIKE 'SI%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'SI0' + ; + + + -- Sections analytiques + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SECANA#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Section. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'section_analytique_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SECTION_ANALYTIQUE_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SA%' THEN COALESCE('SA#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_sections_analytiques_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sections_analytiques t_source ON v_source.oid LIKE 'SA%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Sections analytiques + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SECANA2#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Section (2). ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'section_analytique_2_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SECTION_ANALYTIQUE_2_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SA%' THEN COALESCE('SA#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_sections_analytiques_2_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sections_analytiques t_source ON v_source.oid LIKE 'SA%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Sections analytiques + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SECANA3#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Section (3). ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'section_analytique_3_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SECTION_ANALYTIQUE_3_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SA%' THEN COALESCE('SA#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_sections_analytiques_3_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sections_analytiques t_source ON v_source.oid LIKE 'SA%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'SA%' OR (SELECT count(*) FROM compta.v_sections_analytiques_3_c_1) < 1000) AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Sections analytiques + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SECANA4#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Section (4). ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'section_analytique_4_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SECTION_ANALYTIQUE_4_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SA%' THEN COALESCE('SA#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_sections_analytiques_4_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sections_analytiques t_source ON v_source.oid LIKE 'SA%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Sections analytiques + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SECANA5#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Section (5). ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'section_analytique_5_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SECTION_ANALYTIQUE_5_C='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN COALESCE('LI#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SL%' THEN COALESCE('SL#'||t_listes.code,v_source.oid) + WHEN v_source.oid LIKE 'SA%' THEN COALESCE('SA#'||t_source.code,v_source.oid) + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM compta.v_sections_analytiques_5_c_1 v_source + LEFT JOIN compta.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN compta.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN compta.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN compta.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN compta.t_sections_analytiques t_source ON v_source.oid LIKE 'SA%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + + -- Ne pas garder les listes vides + -- DELETE FROM w_indicateur_condition + -- WHERE value LIKE 'LI%' AND + -- substr(value,3) NOT IN (SELECT liste_id::text FROM compta.t_listes_contenu) + -- ; + + INSERT INTO compta.t_indicateur_condition(code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte) + SELECT code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte + FROM w_indicateur_condition + WHERE code NOT IN (SELECT code FROM compta.t_indicateur_condition WHERE code IS NOT NULL) + ; + + UPDATE compta.t_indicateur_condition SET + texte = w_indicateur_condition.texte, + texte_court = w_indicateur_condition.texte_court, + column_name = w_indicateur_condition.column_name, + rule = w_indicateur_condition.rule, + value = w_indicateur_condition.value, + view_select_rule = w_indicateur_condition.view_select_rule, + arbre_code = w_indicateur_condition.arbre_code, + arbre_texte = w_indicateur_condition.arbre_texte + FROM w_indicateur_condition + WHERE w_indicateur_condition.code = t_indicateur_condition.code AND + ( + t_indicateur_condition.texte IS DISTINCT FROM w_indicateur_condition.texte OR + t_indicateur_condition.texte_court IS DISTINCT FROM w_indicateur_condition.texte_court OR + t_indicateur_condition.column_name IS DISTINCT FROM w_indicateur_condition.column_name OR + t_indicateur_condition.rule IS DISTINCT FROM w_indicateur_condition.rule OR + t_indicateur_condition.value IS DISTINCT FROM w_indicateur_condition.value OR + t_indicateur_condition.view_select_rule IS DISTINCT FROM w_indicateur_condition.view_select_rule OR + t_indicateur_condition.arbre_code IS DISTINCT FROM w_indicateur_condition.arbre_code OR + t_indicateur_condition.arbre_texte IS DISTINCT FROM w_indicateur_condition.arbre_texte + ) + ; + + DELETE FROM compta.t_indicateur_condition + WHERE code LIKE 'CTI%' AND + code NOT IN (SELECT code FROM w_indicateur_condition) + ; + + UPDATE compta.t_indicateur_condition SET + column_texte = CASE column_name + WHEN 'x' THEN 'x' + ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END + WHERE + column_texte IS DISTINCT FROM + CASE column_name + WHEN 'x' THEN 'x' + ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END + ; + + UPDATE compta.t_indicateur_condition + SET external_code = split_part(code,'#',1)||'#'||arbre_code[2] + WHERE external_code IS DISTINCT FROM (split_part(code,'#',1)||'#'||arbre_code[2]) + ; + + DROP TABLE IF EXISTS w_indicateur_condition_table; + CREATE TEMP TABLE w_indicateur_condition_table AS + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + ''::text As table_name, + t_indicateur_condition.column_name || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN '= ANY(ARRAY' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN '= ANY(ARRAY' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN '<> ALL(ARRAY' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM compta.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN ')' + ELSE '' + END AS check_where + FROM compta.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' + ; + + + + + + INSERT INTO compta.t_indicateur_condition_table(indicateur_condition_id, table_name, check_where) + SELECT indicateur_condition_id, table_name, check_where + FROM w_indicateur_condition_table + WHERE (indicateur_condition_id || '-' || table_name) NOT IN + (SELECT indicateur_condition_id || '-' || table_name FROM compta.t_indicateur_condition_table WHERE table_name IS NOT NULL) + ; + + UPDATE compta.t_indicateur_condition_table SET + check_where = w_indicateur_condition_table.check_where + FROM w_indicateur_condition_table + WHERE t_indicateur_condition_table.indicateur_condition_id = w_indicateur_condition_table.indicateur_condition_id AND + t_indicateur_condition_table.table_name = w_indicateur_condition_table.table_name AND + ( + t_indicateur_condition_table.check_where IS DISTINCT FROM w_indicateur_condition_table.check_where + ) + ; + + DELETE FROM compta.t_indicateur_condition_table + USING compta.t_indicateur_condition + WHERE t_indicateur_condition.oid = t_indicateur_condition_table.indicateur_condition_id AND + t_indicateur_condition.code LIKE 'CTI%' AND + (indicateur_condition_id || '-' || table_name) NOT IN + (SELECT indicateur_condition_id || '-' || table_name FROM w_indicateur_condition_table WHERE table_name IS NOT NULL) + ; + + + RETURN 'OK'; + + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs.yaml b/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs.yaml new file mode 100644 index 0000000..150b32e --- /dev/null +++ b/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs.yaml @@ -0,0 +1,15 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + PERFORM compta.cti_reorganize_lieux_cout_patient_shs_table('t_services_facturation_cout_patient_shs', 'service_facturation'); + PERFORM compta.cti_reorganize_lieux_cout_patient_shs_table('t_activites_cout_patient_shs', 'activite'); + PERFORM compta.cti_reorganize_lieux_cout_patient_shs_table('t_etages_cout_patient_shs', 'etage'); + PERFORM compta.cti_reorganize_lieux_cout_patient_shs_table('t_lits_cout_patient_shs', 'lit'); + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs_table~tx,tx.yaml b/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs_table~tx,tx.yaml new file mode 100644 index 0000000..aeda9b3 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_lieux_cout_patient_shs_table~tx,tx.yaml @@ -0,0 +1,42 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: tablename + p1: + type: text + name: field_prefix +src: | + DECLARE + w_tablename text; + w_field_prefix text; + result TEXT; + BEGIN + w_tablename = tablename; + IF w_tablename = '' THEN + w_tablename = 't_services_facturation_cout_patient_shs'; + END IF; + + w_field_prefix = field_prefix; + IF w_field_prefix = '' THEN + w_field_prefix = 'service_facturation'; + END IF; + + EXECUTE 'UPDATE compta.t_lieux_cout_patient_shs + SET ' || w_field_prefix || '_id = ' || w_tablename || '.oid + FROM compta.' || w_tablename || ' + WHERE ' || w_tablename || '.code_original = t_lieux_cout_patient_shs.' || w_field_prefix || '_code_original + AND ' || w_field_prefix || '_id IS DISTINCT FROM ' || w_tablename || '.oid;'; + EXECUTE 'UPDATE compta.t_lieux_cout_patient_shs SET ' || w_field_prefix || '_id = 0 WHERE ' || w_field_prefix || '_id IS NULL;'; + EXECUTE 'UPDATE compta.t_lieux_cout_patient_shs + SET + ' || w_field_prefix || '_code = ' || w_tablename || '.code, + ' || w_field_prefix || '_texte = ' || w_tablename || '.texte_court + FROM compta.' || w_tablename || ' + WHERE ' || w_tablename || '.oid = t_lieux_cout_patient_shs.' || w_field_prefix || '_id + AND (' || w_field_prefix || '_code IS DISTINCT FROM ' || w_tablename || '.code OR + ' || w_field_prefix || '_texte IS DISTINCT FROM ' || w_tablename || '.texte_court);'; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_pole.yaml b/db/schema2/functions/cti_reorganize_pole.yaml new file mode 100644 index 0000000..6fceb0f --- /dev/null +++ b/db/schema2/functions/cti_reorganize_pole.yaml @@ -0,0 +1,803 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _module_activite TEXT; + _module_eco TEXT; + _module_rh TEXT; + BEGIN + + RAISE NOTICE '%' , 'Initialisation poles'; + + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'activite' AND tablename = 't_pole') THEN + _module_activite = '1'; + ELSE + _module_activite = '0'; + END IF; + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'eco' AND tablename = 't_pole') THEN + _module_eco = '1'; + ELSE + _module_eco = '0'; + END IF; + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'rh' AND tablename = 't_pole') THEN + _module_rh = '1'; + ELSE + _module_rh = '0'; + END IF; + + + -- Contenu table + INSERT INTO base.t_pole (oid, code, texte, texte_court) + SELECT 0, '**', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_pole); + + -- replication dans compta + TRUNCATE compta.t_pole; + INSERT INTO compta.t_pole (oid, code, texte, texte_court, section_id, section_code, section_texte) + SELECT oid, code, texte, texte_court, section_id, section_code, section_texte + FROM base.t_pole + ; + + -- Pole par défaut + INSERT INTO compta.t_pole_rule( + code, + texte, + pole_id, + priorite, + liste_compte, + liste_sauf_compte, + liste_journal, + liste_sauf_journal, + liste_section_analytique, + liste_sauf_section_analytique, + liste_finess, + liste_site, + liste_exercice, + liste_mois_comptable, + special_calc, + special_calc_from, + from_rule_id + ) + SELECT + '*DFT'::text AS code, + 'Défaut'::text AS texte, + 0::bigint AS pole_id, + 99999::numeric AS priorite, + ''::text AS liste_compte, + ''::text AS liste_sauf_compte, + ''::text AS liste_journal, + ''::text AS liste_sauf_journal, + ''::text AS liste_section_analytique, + ''::text AS liste_sauf_section_analytique, + ''::text AS liste_finess, + ''::text AS liste_site, + ''::text AS liste_exercice, + ''::text AS liste_mois_comptable, + ''::text AS special_calc, + ''::text AS special_calc_from, + 0::bigint AS from_rule_id + WHERE '*DFT' NOT IN (SELECT code FROM compta.t_pole_rule WHERE code IS NOT NULL) + ; + + DELETE FROM compta.t_pole_rule_pole + WHERE pole_rule_id <> 0 AND + ( + pole_rule_id NOT IN (SELECT oid FROM compta.t_pole_rule) OR + pole_rule_id IS NULL + ) + + ; + + INSERT INTO compta.t_pole_rule_pole (pole_rule_id, pole_id, taux) + SELECT oid, pole_id, 1 + FROM compta.t_pole_rule + WHERE oid NOT IN (SELECT pole_rule_id FROM compta.t_pole_rule_pole WHERE pole_rule_id IS NOT NULL) + ; + + + + + -- Traduction des règles en oid + RAISE NOTICE '%' , 'Application des regles. Traduction en oid'; + DROP TABLE IF EXISTS w_pole_rule; + CREATE TEMP TABLE w_pole_rule AS + SELECT + t_pole_rule.oid, + pole_id AS default_pole_id, + special_calc, + priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(translate(liste_finess,'*,','% '),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + + CASE WHEN liste_site <> '' THEN '1' ELSE '0' END AS a_liste_site, + string_to_array(translate(liste_site,'*,','% '),' ') AS liste_site, + NULL::bigint[] AS liste_site_id , + + CASE WHEN liste_exercice <> '' THEN '1' ELSE '0' END AS a_liste_exercice, + string_to_array(translate(liste_exercice,'*,','% '),' ') AS liste_exercice, + NULL::bigint[] AS liste_exercice_id , + + CASE WHEN liste_mois_comptable <> '' THEN '1' ELSE '0' END AS a_liste_mois_comptable, + string_to_array(translate(liste_mois_comptable,'*,','% '),' ') AS liste_mois_comptable, + NULL::bigint[] AS liste_mois_comptable_id , + + CASE WHEN liste_compte <> '' THEN '1' ELSE '0' END AS a_liste_compte, + string_to_array(translate(liste_compte,'*,','% '),' ') AS liste_compte, + NULL::bigint[] AS liste_compte_id , + + CASE WHEN liste_sauf_compte <> '' THEN '1' ELSE '0' END AS a_liste_sauf_compte, + string_to_array(translate(liste_sauf_compte,'*,','% '),' ') AS liste_sauf_compte, + NULL::bigint[] AS liste_sauf_compte_id, + + CASE WHEN liste_journal <> '' THEN '1' ELSE '0' END AS a_liste_journal, + string_to_array(translate(liste_journal,'*,','% '),' ') AS liste_journal, + NULL::bigint[] AS liste_journal_id, + + CASE WHEN liste_sauf_journal <> '' THEN '1' ELSE '0' END AS a_liste_sauf_journal, + string_to_array(translate(liste_sauf_journal,'*,','% '),' ') AS liste_sauf_journal, + NULL::bigint[] AS liste_sauf_journal_id, + + CASE WHEN liste_section_analytique <> '' THEN '1' ELSE '0' END AS a_liste_section_analytique, + string_to_array(translate(liste_section_analytique,'*,','% '),' ') AS liste_section_analytique, + NULL::bigint[] AS liste_section_analytique_id, + + CASE WHEN liste_sauf_section_analytique <> '' THEN '1' ELSE '0' END AS a_liste_sauf_section_analytique, + string_to_array(translate(liste_sauf_section_analytique,'*,','% '),' ') AS liste_sauf_section_analytique, + NULL::bigint[] AS liste_sauf_section_analytique_id + + + FROM compta.t_pole_rule + JOIN compta.t_pole ON pole_id = t_pole.oid + WHERE special_calc_from = '' + ORDER BY priorite, pole_id; + + ANALYSE w_pole_rule + ; + + + + UPDATE w_pole_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE oid <> 0 AND code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + UPDATE w_pole_rule + SET liste_site_id = (SELECT base.cti_group_array3(oid) FROM compta.t_sites WHERE oid <> 0 AND code LIKE ANY (liste_site)) + WHERE a_liste_site = '1'; + + UPDATE w_pole_rule + SET liste_exercice_id = subview.liste_exercice_id + FROM + ( + SELECT oid, base.cti_array_accum(exercice) AS liste_exercice_id + FROM + ( + SELECT oid, base.cti_to_number(exercice)::bigint AS exercice + FROM + ( + SELECT oid, unnest(liste_exercice) AS exercice + FROM w_pole_rule + WHERE a_liste_exercice = '1' + ) subview + WHERE exercice > 0 + ) subview + GROUP BY 1 + ) subview + WHERE w_pole_rule.oid = subview.oid + ; + + UPDATE w_pole_rule + SET liste_mois_comptable_id = subview.liste_mois_comptable_id + FROM + ( + SELECT oid, base.cti_array_accum(mois_comptable) AS liste_mois_comptable_id + FROM + ( + SELECT oid, base.cti_to_number(mois_comptable)::bigint AS mois_comptable + FROM + ( + SELECT oid, unnest(liste_mois_comptable) AS mois_comptable + FROM w_pole_rule + WHERE a_liste_mois_comptable = '1' + ) subview + WHERE mois_comptable > 0 + ) subview + GROUP BY 1 + ) subview + WHERE w_pole_rule.oid = subview.oid + ; + + UPDATE w_pole_rule + SET liste_compte_id = (SELECT base.cti_group_array3(oid) FROM compta.t_comptes WHERE oid <> 0 AND numero LIKE ANY (liste_compte)) + WHERE a_liste_compte = '1'; + + UPDATE w_pole_rule + SET liste_sauf_compte_id = (SELECT base.cti_group_array3(oid) FROM compta.t_comptes WHERE oid <> 0 AND numero LIKE ANY (liste_sauf_compte)) + WHERE a_liste_sauf_compte = '1'; + + UPDATE w_pole_rule + SET liste_journal_id = (SELECT base.cti_group_array3(oid) FROM compta.t_journaux WHERE oid <> 0 AND code LIKE ANY (liste_journal)) + WHERE a_liste_journal = '1'; + + + UPDATE w_pole_rule + SET liste_sauf_journal_id = (SELECT base.cti_group_array3(oid) FROM compta.t_journaux WHERE oid <> 0 AND code LIKE ANY (liste_sauf_journal)) + WHERE a_liste_sauf_journal = '1'; + + UPDATE w_pole_rule + SET liste_section_analytique_id = (SELECT base.cti_group_array3(oid) FROM compta.t_sections_analytiques WHERE oid <> 0 AND code LIKE ANY (liste_section_analytique)) + WHERE a_liste_section_analytique = '1'; + + UPDATE w_pole_rule + SET liste_sauf_section_analytique_id = (SELECT base.cti_group_array3(oid) FROM compta.t_sections_analytiques WHERE oid <> 0 AND code LIKE ANY (liste_sauf_section_analytique)) + WHERE a_liste_sauf_section_analytique = '1'; + + -- oids selon listes + PERFORM base.cti_execute(' + UPDATE w_pole_rule + SET liste_'||item||'_id = array_cat( + liste_'||item||'_id + , + ( + SELECT base.cti_group_array3(to_id) + FROM compta.t_listes + JOIN compta.t_listes_contenu ON liste_id = t_listes.oid + WHERE (''[LISTE:''||t_listes.code||'']'') LIKE ANY (liste_'||item||') + ) + ) + WHERE a_liste_'||item||' = ''1'' AND + array_to_string(liste_'||item||','','') LIKE ''%[LISTE:%'' + ',1) + FROM + ( + SELECT 'compte'::text AS item + UNION + SELECT 'sauf_compte'::text AS item + UNION + SELECT 'journal'::text AS item + UNION + SELECT 'sauf_journal'::text AS item + UNION + SELECT 'section_analytique'::text AS item + UNION + SELECT 'sauf_section_analytique'::text AS item + ) subview + ; + + -- oids selon classes + PERFORM base.cti_execute(' + UPDATE w_pole_rule + SET liste_'||item||'_id = array_cat( + liste_'||item||'_id + , + ( + SELECT base.cti_group_array3(to_id) + FROM compta.t_classes + JOIN compta.t_classes_sections ON classe_id = t_classes.oid + JOIN compta.t_classes_sections_elements ON section_id = t_classes_sections.oid + WHERE (''[CLASSE:''||t_classes.code||'':''||t_classes_sections.code||'']'') LIKE ANY (liste_'||item||') + ) + ) + WHERE a_liste_'||item||' = ''1'' AND + array_to_string(liste_'||item||','','') LIKE ''%[CLASSE:%'' + ',1) + FROM + ( + SELECT 'compte'::text AS item + UNION + SELECT 'sauf_compte'::text AS item + UNION + SELECT 'journal'::text AS item + UNION + SELECT 'sauf_journal'::text AS item + UNION + SELECT 'section_analytique'::text AS item + UNION + SELECT 'sauf_section_analytique'::text AS item + ) subview + ; + + + -- Génération automatique des ventilations automatiques + DELETE FROM compta.t_pole_rule_pole + WHERE pole_rule_id IN + (SELECT oid + FROM compta.t_pole_rule + WHERE special_calc_from <> '' + ) + ; + + DELETE FROM compta.t_pole_rule + WHERE special_calc_from <> '' + ; + + + + DROP TABLE IF EXISTS w_pole_rule_pole; + CREATE TEMP TABLE w_pole_rule_pole( + pole_rule_id bigint, + exercice_comptable text, + mois_comptable text, + compte_code text, + pole_id bigint, + taux numeric, + subrule_index numeric + ) + ; + + -- Journal des ventes + IF _module_activite = '1' THEN + RAISE NOTICE '%' , 'Ventilations automatiques JVT.'; + INSERT INTO w_pole_rule_pole + SELECT pole_rule_id, + exercice_comptable, + mois_comptable, + compte_code, + pole_id, + base.cti_division(total_comptabilise,SUM(total_comptabilise) OVER (PARTITION BY pole_rule_id, exercice_comptable, mois_comptable, compte_code)) AS taux, + rank() OVER (PARTITION BY pole_rule_id ORDER BY exercice_comptable, mois_comptable, compte_code) AS subrule_index + FROM + ( + SELECT w_pole_rule.oid AS pole_rule_id, + to_char(date_vente,'YYYY') AS exercice_comptable, + CASE WHEN special_calc = 'JVTCPTMM' THEN to_char(date_vente,'YYYYMM') ELSE '' END AS mois_comptable, + CASE WHEN special_calc <> 'JVTALLEX' THEN t_compte.code ELSE '' END AS compte_code, + CASE WHEN p_factures_lignes_c.pole_id > 0 THEN p_factures_lignes_c.pole_id ELSE default_pole_id END AS pole_id, + SUM(montant_comptabilise) AS total_comptabilise + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_compte ON compte_produit_id = t_compte.oid + JOIN w_pole_rule ON + ( + special_calc = 'JVTCPTMM' OR + special_calc = 'JVTCPTEX' OR + special_calc = 'JVTALLEX' + ) + WHERE date_vente >= '20180101' AND + montant_comptabilise <> 0 AND + (a_liste_compte = '0' OR t_compte.code <> '' AND t_compte.code LIKE ANY (liste_compte)) AND + (a_liste_exercice = '0' OR date_part('year',date_vente) = ANY (liste_exercice)) + GROUP BY 1,2,3,4,5 + HAVING SUM(montant_comptabilise) > 0 + ) subview + ; + END IF ; + + + IF _module_eco = '1' THEN + RAISE NOTICE '%' , 'Ventilations automatiques Conso Eco.'; + INSERT INTO w_pole_rule_pole + SELECT pole_rule_id, + exercice_comptable, + mois_comptable, + compte_code, + CASE WHEN taux < 0.005 THEN default_pole_id ELSE pole_id END AS pole_id, + SUM(taux), + MIN(subrule_index) + FROM + ( + SELECT pole_rule_id, + exercice_comptable, + mois_comptable, + compte_code, + pole_id, + default_pole_id, + base.cti_division(total_sortie_montant_ht,SUM(total_sortie_montant_ht) OVER (PARTITION BY pole_rule_id, exercice_comptable, mois_comptable, compte_code)) AS taux, + rank() OVER (PARTITION BY pole_rule_id ORDER BY exercice_comptable, mois_comptable, compte_code) AS subrule_index + FROM + ( + SELECT w_pole_rule.oid AS pole_rule_id, + to_char(p_mouvements_articles.date,'YYYY') AS exercice_comptable, + CASE WHEN special_calc = 'ECOCPTMM' THEN to_char(p_mouvements_articles.date,'YYYYMM') ELSE '' END AS mois_comptable, + CASE WHEN special_calc <> 'ECOALLEX' THEN t_compte.code ELSE '' END AS compte_code, + CASE WHEN p_mouvements_articles.pole_id > 0 THEN p_mouvements_articles.pole_id ELSE default_pole_id END AS pole_id, + default_pole_id, + SUM(sortie_montant_ht) AS total_sortie_montant_ht + FROM eco.p_mouvements_articles + JOIN eco.t_compte ON p_mouvements_articles.compte_id = t_compte.oid + JOIN w_pole_rule ON + ( + special_calc = 'ECOCPTEX' OR + special_calc = 'ECOALLEX' + ) + WHERE p_mouvements_articles.date >= '20180101' AND + sortie_montant_ht <> 0 AND + p_mouvements_articles.unite_fonctionnelle_id <> 0 AND + (a_liste_compte = '0' OR t_compte.code <> '' AND t_compte.code LIKE ANY (liste_compte)) AND + (a_liste_exercice = '0' OR date_part('year',p_mouvements_articles.date) = ANY (liste_exercice)) + GROUP BY 1,2,3,4,5,6 + HAVING SUM(sortie_montant_ht) > 0 + ) subview + ) subview + GROUP BY 1,2,3,4,5 + ; + END IF; + + + + + IF _module_rh = '1' THEN + RAISE NOTICE '%' , 'Ventilations automatiques PAIE'; + INSERT INTO w_pole_rule_pole + SELECT pole_rule_id, + exercice_comptable, + mois_comptable, + compte_code, + pole_id, + base.cti_division(total_montant_masse_salariale,SUM(total_montant_masse_salariale) OVER (PARTITION BY pole_rule_id, exercice_comptable, mois_comptable, compte_code)) AS taux, + rank() OVER (PARTITION BY pole_rule_id ORDER BY exercice_comptable, mois_comptable, compte_code) AS subrule_index + FROM + ( + SELECT w_pole_rule.oid AS pole_rule_id, + to_char(p_historique_paie.date_paie,'YYYY') AS exercice_comptable, + CASE WHEN special_calc = 'PAICPTMM' THEN to_char(p_historique_paie.date_paie,'YYYYMM') ELSE '' END AS mois_comptable, + CASE WHEN special_calc <> 'PAIALLEX' THEN t_compte.code ELSE '' END AS compte_code, + CASE WHEN p_profil_contrat_mois.pole_id > 0 THEN p_profil_contrat_mois.pole_id ELSE default_pole_id END AS pole_id, + SUM(montant_masse_salariale) AS total_montant_masse_salariale + FROM rh.p_historique_paie + JOIN rh.p_profil_contrat_mois ON p_profil_contrat_mois.contrat_mois_id = p_historique_paie.contrat_mois_id + JOIN rh.t_compte ON p_historique_paie.compte_id = t_compte.oid + JOIN w_pole_rule ON + ( + special_calc = 'PAICPTEX' OR + special_calc = 'PAIALLEX' + ) + WHERE p_historique_paie.date_paie >= '20180101' AND + montant_masse_salariale <> 0 AND + (a_liste_compte = '0' OR t_compte.code <> '' AND t_compte.code LIKE ANY (liste_compte)) AND + (a_liste_exercice = '0' OR date_part('year',p_historique_paie.date_paie) = ANY (liste_exercice)) + GROUP BY 1,2,3,4,5 + HAVING SUM(montant_masse_salariale) > 0 + ) subview + ; + END IF; + + + -- Génération des sous regles + UPDATE w_pole_rule_pole SET + exercice_comptable = '', + mois_comptable = '' + FROM + ( + SELECT pole_rule_id, + compte_code + FROM w_pole_rule_pole + GROUP BY 1,2 + HAVING count(DISTINCT pole_id) = 1 + ) subview + WHERE w_pole_rule_pole.pole_rule_id = subview.pole_rule_id AND + w_pole_rule_pole.compte_code = subview.compte_code + ; + + UPDATE w_pole_rule_pole SET + mois_comptable = '' + FROM + ( + SELECT pole_rule_id, + compte_code, + exercice_comptable + FROM w_pole_rule_pole + WHERE exercice_comptable <> '' + GROUP BY 1,2,3 + HAVING count(DISTINCT pole_id) = 1 + ) subview + WHERE w_pole_rule_pole.pole_rule_id = subview.pole_rule_id AND + w_pole_rule_pole.compte_code = subview.compte_code AND + w_pole_rule_pole.exercice_comptable = subview.exercice_comptable + ; + + DELETE FROM w_pole_rule_pole + USING + ( + SELECT pole_rule_id, + compte_code, + exercice_comptable, + mois_comptable, + pole_id, + MIN(w_pole_rule_pole.CTID) AS CTID_keep + FROM w_pole_rule_pole + GROUP BY 1,2,3,4,5 + HAVING count(*) > 1 + ) subview + WHERE w_pole_rule_pole.pole_rule_id = subview.pole_rule_id AND + w_pole_rule_pole.compte_code = subview.compte_code AND + w_pole_rule_pole.exercice_comptable = subview.exercice_comptable AND + w_pole_rule_pole.mois_comptable = subview.mois_comptable AND + w_pole_rule_pole.pole_id = subview.pole_id AND + w_pole_rule_pole.CTID <> CTID_keep + ; + + UPDATE w_pole_rule_pole + SET compte_code = liste_compte + FROM compta.t_pole_rule + WHERE w_pole_rule_pole.pole_rule_id = t_pole_rule.oid AND + w_pole_rule_pole.compte_code = '' + ; + + + INSERT INTO compta.t_pole_rule( + oid, + code, + texte, + priorite, + liste_finess, + liste_site, + liste_exercice, + liste_mois_comptable, + liste_compte, + liste_sauf_compte, + liste_journal, + liste_sauf_journal, + liste_section_analytique, + liste_sauf_section_analytique, + special_calc, + special_calc_from, + from_rule_id + ) + SELECT + 0 - (pole_rule_id * 1000000 + subrule_index) AS oid, + MAX(t_pole_rule.code || compte_code || w_pole_rule_pole.mois_comptable), + MAX(t_pole_rule.texte || ' ' || compte_code || ' ' || w_pole_rule_pole.mois_comptable), + MAX(t_pole_rule.priorite), + MAX(t_pole_rule.liste_finess), + MAX(t_pole_rule.liste_site), + MAX(CASE WHEN w_pole_rule_pole.mois_comptable = '' THEN w_pole_rule_pole.exercice_comptable ELSE '' END) AS liste_exercice, + MAX(w_pole_rule_pole.mois_comptable) AS liste_mois_comptable, + MAX(w_pole_rule_pole.compte_code) AS liste_compte, + ''::text AS liste_sauf_compte, + MAX(t_pole_rule.liste_journal), + MAX(t_pole_rule.liste_sauf_journal), + MAX(t_pole_rule.liste_section_analytique), + MAX(t_pole_rule.liste_sauf_section_analytique), + ''::text AS special_calc, + MAX(t_pole_rule.special_calc) AS special_calc_from, + MAX(pole_rule_id) + FROM w_pole_rule_pole + JOIN compta.t_pole_rule ON pole_rule_id = t_pole_rule.oid + GROUP BY 1 + ; + + INSERT INTO compta.t_pole_rule_pole (pole_rule_id, pole_id, taux) + SELECT t_pole_rule.oid AS pole_rule_id, w_pole_rule_pole.pole_id, w_pole_rule_pole.taux + FROM w_pole_rule_pole + JOIN compta.t_pole_rule ON + t_pole_rule.from_rule_id = w_pole_rule_pole.pole_rule_id AND + ( + t_pole_rule.special_calc_from = 'JVTCPTMM' OR + t_pole_rule.special_calc_from = 'JVTCPTEX' OR + t_pole_rule.special_calc_from = 'JVTALLEX' OR + t_pole_rule.special_calc_from = 'ECOCPTEX' OR + t_pole_rule.special_calc_from = 'ECOALLEX' OR + t_pole_rule.special_calc_from = 'PAICPTEX' OR + t_pole_rule.special_calc_from = 'PAIALLEX' + ) AND + t_pole_rule.liste_compte = w_pole_rule_pole.compte_code AND + t_pole_rule.liste_exercice = CASE WHEN w_pole_rule_pole.mois_comptable = '' THEN w_pole_rule_pole.exercice_comptable ELSE '' END AND + t_pole_rule.liste_mois_comptable = w_pole_rule_pole.mois_comptable + ; + + + INSERT INTO w_pole_rule + SELECT t_pole_rule.oid, + w_pole_rule.default_pole_id, + t_pole_rule.special_calc, + w_pole_rule.priorite, + w_pole_rule.a_liste_finess, + w_pole_rule.liste_finess, + w_pole_rule.liste_finess_id, + w_pole_rule.a_liste_site, + w_pole_rule.liste_site, + w_pole_rule.liste_site_id, + CASE WHEN t_pole_rule.liste_exercice <> '' THEN '1' ELSE '0' END AS a_liste_exercice, + string_to_array(translate(t_pole_rule.liste_exercice,'*,','% '),' ') AS liste_exercice, + NULL::bigint[] AS liste_exercice_id , + CASE WHEN t_pole_rule.liste_mois_comptable <> '' THEN '1' ELSE '0' END AS a_liste_mois_comptable, + string_to_array(translate(t_pole_rule.liste_mois_comptable,'*,','% '),' ') AS liste_mois_comptable, + NULL::bigint[] AS liste_mois_comptable_id , + CASE WHEN t_pole_rule.liste_compte <> '' THEN '1' ELSE '0' END AS a_liste_compte, + string_to_array(translate(t_pole_rule.liste_compte,'*,','% '),' ') AS liste_compte, + NULL::bigint[] AS liste_compte_id , + '0'::text AS a_liste_sauf_compte, + NULL::text[] AS liste_sauf_compte, + NULL::bigint[] AS liste_sauf_compte_id, + w_pole_rule.a_liste_journal, + w_pole_rule.liste_journal, + w_pole_rule.liste_journal_id, + w_pole_rule.a_liste_sauf_journal, + w_pole_rule.liste_sauf_journal, + w_pole_rule.liste_sauf_journal_id, + w_pole_rule.a_liste_section_analytique, + w_pole_rule.liste_section_analytique, + w_pole_rule.liste_section_analytique_id, + a_liste_sauf_section_analytique, + w_pole_rule.liste_sauf_section_analytique, + w_pole_rule.liste_sauf_section_analytique_id + FROM w_pole_rule + JOIN compta.t_pole_rule ON + w_pole_rule.special_calc <> '' AND + w_pole_rule.special_calc = t_pole_rule.special_calc_from AND + w_pole_rule.oid = t_pole_rule.from_rule_id + ; + + ANALYSE w_pole_rule + ; + + + UPDATE w_pole_rule + SET liste_exercice_id = subview.liste_exercice_id + FROM + ( + SELECT oid, base.cti_array_accum(exercice) AS liste_exercice_id + FROM + ( + SELECT oid, base.cti_to_number(exercice)::bigint AS exercice + FROM + ( + SELECT oid, unnest(liste_exercice) AS exercice + FROM w_pole_rule + WHERE a_liste_exercice = '1' + ) subview + WHERE exercice > 0 + ) subview + GROUP BY 1 + ) subview + WHERE w_pole_rule.oid = subview.oid + ; + + UPDATE w_pole_rule + SET liste_mois_comptable_id = subview.liste_mois_comptable_id + FROM + ( + SELECT oid, base.cti_array_accum(mois_comptable) AS liste_mois_comptable_id + FROM + ( + SELECT oid, base.cti_to_number(mois_comptable)::bigint AS mois_comptable + FROM + ( + SELECT oid, unnest(liste_mois_comptable) AS mois_comptable + FROM w_pole_rule + WHERE a_liste_mois_comptable = '1' + ) subview + WHERE mois_comptable > 0 + ) subview + GROUP BY 1 + ) subview + WHERE w_pole_rule.oid = subview.oid + ; + + UPDATE w_pole_rule + SET liste_compte_id = (SELECT base.cti_group_array3(oid) FROM compta.t_comptes WHERE oid <> 0 AND numero LIKE ANY (liste_compte)) + WHERE a_liste_compte = '1'; + + + + + RAISE NOTICE '%' , 'Application des regles.'; + + + PERFORM base.cti_execute(' + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT p_historique_ecritures.CTID AS from_CTID, + COALESCE((MIN(ARRAY[priorite,w_pole_rule.oid]))[2],0) AS pole_rule_id + FROM compta.p_historique_ecritures_total p_historique_ecritures + ' || CASE WHEN a_liste_finess = '1' THEN 'JOIN compta.t_sites ON t_sites.oid = site_id' ELSE '' END || ' + LEFT JOIN w_pole_rule ON + special_calc = '''' + ' || CASE WHEN a_liste_finess = '1' THEN 'AND (a_liste_finess = ''0'' OR finess_id = ANY (liste_finess_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_site = '1' THEN 'AND (a_liste_site = ''0'' OR site_id = ANY (liste_site_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_exercice = '1' THEN 'AND (a_liste_exercice = ''0'' OR exercice_comptable = ANY (liste_exercice))' ELSE '' END || ' + ' || CASE WHEN a_liste_mois_comptable = '1' THEN 'AND (a_liste_mois_comptable = ''0'' OR mois_comptable = ANY (liste_mois_comptable))' ELSE '' END || ' + ' || CASE WHEN a_liste_compte = '1' THEN 'AND (a_liste_compte = ''0'' OR compte_id = ANY (liste_compte_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_sauf_compte = '1' THEN 'AND (a_liste_sauf_compte = ''0'' OR compte_id <> ALL (liste_sauf_compte_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_journal = '1' THEN 'AND (a_liste_journal = ''0'' OR journal_id = ANY (liste_journal_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_sauf_journal = '1' THEN 'AND ((a_liste_sauf_journal = ''0'' OR compte_id <> ALL (liste_sauf_journal_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_section_analytique = '1' THEN 'AND (a_liste_section_analytique = ''0'' OR section_analytique_id = ANY (liste_section_analytique_id))' ELSE '' END || ' + ' || CASE WHEN a_liste_sauf_section_analytique = '1' THEN 'AND (a_liste_sauf_section_analytique = ''0'' OR compte_id <> ALL (liste_sauf_section_analytique_id)) ' ELSE '' END || ' + WHERE mois_comptable >= 201801 AND + clinique_honoraire <> ''H'' + GROUP BY 1 + HAVING COALESCE((MIN(ARRAY[priorite,w_pole_rule.oid]))[2],0) IS DISTINCT FROM MAX(COALESCE(p_historique_ecritures.pole_rule_id,0)) + ',1) + FROM ( + SELECT + MAX(a_liste_finess) AS a_liste_finess, + MAX(a_liste_site) AS a_liste_site, + MAX(a_liste_exercice) AS a_liste_exercice, + MAX(a_liste_mois_comptable) AS a_liste_mois_comptable, + MAX(a_liste_compte) AS a_liste_compte, + MAX(a_liste_sauf_compte) AS a_liste_sauf_compte, + MAX(a_liste_journal) AS a_liste_journal, + MAX(a_liste_sauf_journal) AS a_liste_sauf_journal, + MAX(a_liste_section_analytique) AS a_liste_section_analytique, + MAX(a_liste_sauf_section_analytique) AS a_liste_sauf_section_analytique + FROM w_pole_rule + ) subview + ; + + + + + ANALYSE w_historique_ecritures_total + ; + + + + RAISE NOTICE '%' , 'Application des regles. Validation des poles'; + + UPDATE compta.p_historique_ecritures_total p_historique_ecritures SET + pole_rule_id = w_historique_ecritures.pole_rule_id + FROM w_historique_ecritures_total w_historique_ecritures + WHERE + p_historique_ecritures.CTID = w_historique_ecritures.from_CTID AND + p_historique_ecritures.pole_rule_id IS DISTINCT FROM w_historique_ecritures.pole_rule_id + ; + + ANALYSE compta.p_historique_ecritures_total + ; + + -- Réplication sur détail + DROP TABLE IF EXISTS w_ecriture_pole; + CREATE TEMP TABLE w_ecriture_pole AS + SELECT site_id, mois_comptable, compte_id, journal_id, section_analytique_id, MAX(pole_rule_id) AS pole_rule_id + FROM compta.p_historique_ecritures_total + WHERE mois_comptable >= 201801 AND + clinique_honoraire <> 'H' + GROUP BY 1,2,3,4,5 + ; + + ANALYSE w_ecriture_pole; + + CREATE INDEX iw_ecriture_pole_2 ON w_ecriture_pole USING btree (compte_id); + + UPDATE compta.p_historique_ecritures + SET pole_rule_id = w_ecriture_pole.pole_rule_id + FROM w_ecriture_pole + WHERE p_historique_ecritures.compte_id = w_ecriture_pole.compte_id AND + p_historique_ecritures.mois_comptable >= '201801' AND + clinique_honoraire <> 'H' AND + p_historique_ecritures.site_id = w_ecriture_pole.site_id AND + p_historique_ecritures.mois_comptable = w_ecriture_pole.mois_comptable AND + p_historique_ecritures.journal_id = w_ecriture_pole.journal_id AND + p_historique_ecritures.section_analytique_id = w_ecriture_pole.section_analytique_id AND + p_historique_ecritures.pole_rule_id IS DISTINCT FROM w_ecriture_pole.pole_rule_id + ; + + + + + + INSERT INTO compta.t_pole_rule_pole(pole_rule_id, pole_id, taux) + SELECT 0,0,1 + WHERE 0 NOT IN (SELECT pole_rule_id FROM compta.t_pole_rule_pole) + ; + + + UPDATE compta.t_pole_rule_pole SET + pole_code = t_pole.code, + pole_texte = t_pole.texte, + pole_section_id = t_pole.section_id, + pole_section_code = t_pole.section_code, + pole_section_texte = t_pole.section_texte + FROM compta.t_pole + WHERE t_pole_rule_pole.pole_id = t_pole.oid AND + ( + t_pole_rule_pole.pole_code IS DISTINCT FROM t_pole.code OR + t_pole_rule_pole.pole_texte IS DISTINCT FROM t_pole.texte OR + t_pole_rule_pole.pole_section_id IS DISTINCT FROM t_pole.section_id OR + t_pole_rule_pole.pole_section_code IS DISTINCT FROM t_pole.section_code OR + t_pole_rule_pole.pole_section_texte IS DISTINCT FROM t_pole.section_texte + ) + ; + + INSERT INTO compta.p_oids (code_table, oid) + SELECT 'pole', t_pole_rule_pole.pole_id + FROM compta.p_historique_ecritures_total + JOIN compta.t_pole_rule_pole ON t_pole_rule_pole.pole_rule_id = p_historique_ecritures_total.pole_rule_id + WHERE t_pole_rule_pole.pole_id NOT IN (SELECT oid FROM compta.p_oids WHERE code_table = 'pole') + GROUP BY 2; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_update_schema_classes~tx.yaml b/db/schema2/functions/cti_update_schema_classes~tx.yaml new file mode 100644 index 0000000..fc15bb6 --- /dev/null +++ b/db/schema2/functions/cti_update_schema_classes~tx.yaml @@ -0,0 +1,128 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_table_code +src: | + DECLARE + + + + result TEXT; + BEGIN + -- Si Toutes les tables, mettre à jour oid par codes + IF (i_table_code = '*ALL' OR i_table_code = 'CPT') THEN + PERFORM base.cti_initialize_classes_by_code('compta'); + PERFORM base.cti_initialize_listes_by_code('compta'); + END IF; + + -- Tables par tables + IF (i_table_code = 'CPT' OR i_table_code = '*ALL') THEN + INSERT INTO compta.t_classes(code, texte, table_id, is_cti, sequence) + SELECT 'REGCPT', 'Regroupement de comptes', t_listes_tables.oid, '0', 9 + FROM compta.t_listes_tables + WHERE t_listes_tables.code = 'CPT' AND 9 NOT IN (SELECT sequence FROM compta.t_classes WHERE table_id IN (SELECT oid FROM compta.t_listes_tables WHERE code ='CPT')); + INSERT INTO compta.t_classes_sections(code, texte, classe_id) + SELECT DISTINCT t_comptes_generaux.numero, t_comptes_generaux.texte, t_classes.oid + FROM compta.t_comptes JOIN compta.t_comptes t_comptes_generaux ON (t_comptes.compte_general_id = t_comptes_generaux.oid), + compta.t_classes JOIN compta.t_listes_tables ON (t_listes_tables.oid = t_classes.table_id) + WHERE t_listes_tables.code = 'CPT' AND t_classes.sequence = 9 AND t_classes.code = 'REGCPT' + AND t_comptes_generaux.oid IN + (SELECT oid FROM compta.p_oids WHERE code_table IN ('comptes_c', 'comptes_h')) + AND t_comptes_generaux.numero NOT IN + (SELECT t_classes_sections.code + FROM compta.t_classes + JOIN compta.t_listes_tables ON (t_listes_tables.oid = t_classes.table_id) + JOIN compta.t_classes_sections ON (t_classes_sections.classe_id = t_classes.oid) + WHERE t_listes_tables.code = 'CPT' AND t_classes.sequence = 9 AND t_classes_sections.classe_id = t_classes.oid + ); + INSERT INTO compta.t_classes_sections_elements(section_id, to_id) + SELECT t_classes_sections.oid, t_comptes.oid + FROM compta.t_comptes + JOIN compta.t_comptes t_comptes_generaux ON (t_comptes.compte_general_id = t_comptes_generaux.oid), + compta.t_classes + JOIN compta.t_listes_tables ON (t_listes_tables.oid = t_classes.table_id) + JOIN compta.t_classes_sections ON (t_classes_sections.classe_id = t_classes.oid) + WHERE t_listes_tables.code = 'CPT' AND + t_classes.sequence = 9 AND t_classes.code = 'REGCPT' AND + t_comptes_generaux.numero = t_classes_sections.code AND + t_classes_sections.oid::text || '|' || t_comptes.oid::text NOT IN (SELECT section_id::text || '|' || to_id::text FROM compta.t_classes_sections_elements ) AND + t_comptes.oid IN (SELECT oid FROM compta.p_oids WHERE code_table IN ('comptes_c', 'comptes_h', 'comptes_extra_c', 'comptes_extra_h')) AND + t_comptes.oid NOT IN (SELECT to_id + FROM compta.t_classes + JOIN compta.t_classes_sections ON (t_classes_sections.classe_id = t_classes.oid) + JOIN compta.t_classes_sections_elements ON (t_classes_sections_elements.section_id = t_classes_sections.oid) + WHERE t_classes.sequence = 9 ); + + -- Si compte sans signe et pas compte signé dans classe, compte signé a la section de compte sans signe + DROP TABLE IF EXISTS w_comptes_section; + CREATE TEMP TABLE w_comptes_section AS + SELECT t_classes_sections.oid AS classe_id, + t_classes_sections.oid AS section_id, + t_comptes.numero AS compte_numero, + COALESCE(t_comptes_signes.numero, t_comptes.numero) AS compte_signe_numero, + t_comptes.oid AS compte_id, COALESCE(t_comptes_signes.oid,t_comptes.oid) AS compte_signe_id + FROM compta.t_classes_sections_elements + JOIN compta.t_classes_sections ON section_id = t_classes_sections.oid + JOIN compta.t_classes ON classe_id = t_classes.oid + JOIN compta.t_listes_tables ON table_id = t_listes_tables.oid AND + t_listes_tables.code = 'CPT' + JOIN compta.t_comptes ON to_id = t_comptes.oid + LEFT JOIN compta.t_comptes t_comptes_signes ON t_comptes_signes.compte_nonsigne_id = t_comptes.oid + ; + ANALYSE w_comptes_section + ; + + INSERT INTO compta.t_classes_sections_elements (section_id, to_id) + SELECT w_comptes_section.section_id, w_comptes_section.compte_signe_id AS to_id + FROM w_comptes_section + LEFT JOIN w_comptes_section w_comptes_section_signe ON + w_comptes_section.classe_id = w_comptes_section_signe.classe_id AND + w_comptes_section.compte_signe_id = w_comptes_section_signe.compte_id + where w_comptes_section.compte_id <> w_comptes_section.compte_signe_id AND + w_comptes_section_signe.section_id IS NULL + GROUP BY 1,2 + ; + + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_comptes_c'', ''CPT'','''');'; + END IF; + IF (i_table_code = 'JRN' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_journaux'', ''JRN'','''');'; + END IF; + IF (i_table_code = 'SIT' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_sites'', ''SIT'','''');'; + END IF; + IF (i_table_code = 'PAR' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_partenaires'', ''PAR'','''');'; + END IF; + IF (i_table_code = 'ANA' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_sections_analytiques'', ''ANA'','''');'; + END IF; + IF (i_table_code = 'CSF' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_lieux_cout_patient_shs'', ''CSF'',''service_facturation_section'');'; + END IF; + IF (i_table_code = 'CSA' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_lieux_cout_patient_shs'', ''CSA'',''activite_section'');'; + END IF; + IF (i_table_code = 'CSE' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_lieux_cout_patient_shs'', ''CSE'',''etage_section'');'; + END IF; + IF (i_table_code = 'CSM' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_medecins_cout_patient_shs'', ''CSM'','''');'; + END IF; + IF (i_table_code = 'CSG' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_ghm_cout_patient_shs'', ''CSG'','''');'; + END IF; + IF (i_table_code = 'CSH' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_ghs_cout_patient_shs'', ''CSH'','''');'; + END IF; + IF (i_table_code = 'CSC' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_elements_cout_patient_shs'', ''CSC'','''');'; + END IF; + IF (i_table_code = 'CSU' OR i_table_code = '*ALL') THEN + EXECUTE 'SELECT base.cti_update_classes(''compta'', ''t_unites_oeuvre_shs'', ''CSU'','''');'; + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_formule_indicateur~bi,in.yaml b/db/schema2/functions/get_formule_indicateur~bi,in.yaml new file mode 100644 index 0000000..b9e7529 --- /dev/null +++ b/db/schema2/functions/get_formule_indicateur~bi,in.yaml @@ -0,0 +1,263 @@ +return: text +lang: plpgsql +parameters: + p0: + type: bigint + name: i_indicateur_id + p1: + type: integer + name: i_level +strict: STRICT +src: | + DECLARE + formule_indicateur TEXT; + rapports_cursor refcursor; + column_name TEXT; + table_name TEXT; + total_function TEXT; + liste_code_start integer; + to_column_name TEXT; + o_level INTEGER; + column_name_a1 TEXT; + column_name_a2 TEXT; + column_name_a3 TEXT; + column_name_a4 TEXT; + column_name_a5 TEXT; + column_name_a6 TEXT; + column_name_a7 TEXT; + column_name_a8 TEXT; + column_name_a9 TEXT; + column_name_a10 TEXT; + column_name_a11 TEXT; + column_name_a12 TEXT; + column_name_a13 TEXT; + column_name_a14 TEXT; + column_name_a15 TEXT; + column_name_a16 TEXT; + column_name_a17 TEXT; + column_name_a18 TEXT; + column_name_a19 TEXT; + column_name_a20 TEXT; + table_name_a1 TEXT; + table_name_a2 TEXT; + table_name_a3 TEXT; + table_name_a4 TEXT; + table_name_a5 TEXT; + table_name_a6 TEXT; + table_name_a7 TEXT; + table_name_a8 TEXT; + table_name_a9 TEXT; + table_name_a10 TEXT; + table_name_a11 TEXT; + table_name_a12 TEXT; + table_name_a13 TEXT; + table_name_a14 TEXT; + table_name_a15 TEXT; + table_name_a16 TEXT; + table_name_a17 TEXT; + table_name_a18 TEXT; + table_name_a19 TEXT; + table_name_a20 TEXT; + total_function_a1 TEXT; + total_function_a2 TEXT; + total_function_a3 TEXT; + total_function_a4 TEXT; + total_function_a5 TEXT; + total_function_a6 TEXT; + total_function_a7 TEXT; + total_function_a8 TEXT; + total_function_a9 TEXT; + total_function_a10 TEXT; + total_function_a11 TEXT; + total_function_a12 TEXT; + total_function_a13 TEXT; + total_function_a14 TEXT; + total_function_a15 TEXT; + total_function_a16 TEXT; + total_function_a17 TEXT; + total_function_a18 TEXT; + total_function_a19 TEXT; + total_function_a20 TEXT; + + champ_associe_1 TEXT; + champ_associe_2 TEXT; + champ_associe_3 TEXT; + champ_associe_4 TEXT; + champ_associe_5 TEXT; + champ_associe_6 TEXT; + champ_associe_7 TEXT; + champ_associe_8 TEXT; + champ_associe_9 TEXT; + champ_associe_10 TEXT; + champ_associe_11 TEXT; + champ_associe_12 TEXT; + champ_associe_13 TEXT; + champ_associe_14 TEXT; + champ_associe_15 TEXT; + champ_associe_16 TEXT; + champ_associe_17 TEXT; + champ_associe_18 TEXT; + champ_associe_19 TEXT; + champ_associe_20 TEXT; + champ_calcule TEXT; + i int2; + ch TEXT; + BEGIN + + formule_indicateur = '0'; + IF (i_indicateur_id = 0) THEN + return formule_indicateur; + END IF; + IF (i_indicateur_id IS NULL) THEN + return formule_indicateur; + END IF; + IF (i_level > 10) THEN + return formule_indicateur; + END IF; + + o_level = i_level + 1; + OPEN rapports_cursor FOR + SELECT + t_indicateurs.column_name, t_indicateurs.table_name, t_indicateurs.total_function, + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_1_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_2_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_3_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_4_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_5_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_6_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_7_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_8_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_9_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_10_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_11_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_12_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_13_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_14_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_15_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_16_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_17_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_18_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_19_id,0), o_level), + compta.get_formule_indicateur(COALESCE(t_indicateurs.indicateur_associe_20_id,0), o_level) + FROM compta.t_indicateurs + + WHERE t_indicateurs.oid = i_indicateur_id ; + FETCH rapports_cursor INTO column_name , table_name, total_function, + column_name_a1, + column_name_a2, + column_name_a3, + column_name_a4, + column_name_a5, + column_name_a6, + column_name_a7, + column_name_a8, + column_name_a9, + column_name_a10, + column_name_a11, + column_name_a12, + column_name_a13, + column_name_a14, + column_name_a15, + column_name_a16, + column_name_a17, + column_name_a18, + column_name_a19, + column_name_a20 ; + IF (table_name != 'SEP') THEN + IF (table_name != '*CALC' AND table_name != '*CALC_SUM') THEN + to_column_name = ''; + liste_code_start = 0; + FOR i IN 1..length(column_name) LOOP + IF (liste_code_start = 0) THEN + IF(substring(column_name,i,7)='[LISTE:') THEN + liste_code_start = i + 7; + ELSE + to_column_name = to_column_name || substring(column_name,i,1); + END IF; + ELSE + IF(substring(column_name,i,1)=']') THEN + to_column_name = to_column_name || '(SELECT to_id FROM compta.t_listes, compta.t_listes_contenu WHERE t_listes.oid = t_listes_contenu.liste_id AND t_listes.code = ''' || substring(column_name,liste_code_start,i - liste_code_start) || ''')'; + liste_code_start = 0; + END IF; + END IF; + END LOOP; + liste_code_start = 0; + column_name = to_column_name; + to_column_name = ''; + FOR i IN 1..length(column_name) LOOP + IF (liste_code_start = 0) THEN + IF(substring(column_name,i,8)='[CLASSE:') THEN + liste_code_start = i + 8; + ELSE + to_column_name = to_column_name || substring(column_name,i,1); + END IF; + ELSE + IF(substring(column_name,i,1)=']') THEN + to_column_name = to_column_name || '(SELECT to_id FROM compta.t_classes JOIN compta.t_classes_sections ON classe_id = t_classes.oid JOIN compta.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code || '':'' || t_classes_sections.code = ''' || substring(column_name,liste_code_start,i - liste_code_start) || ''')'; + liste_code_start = 0; + END IF; + END IF; + END LOOP; + IF (to_column_name = '') THEN + to_column_name = '0'; + END IF; + formule_indicateur = total_function || '(' || to_column_name || ') ' ; + ELSE + + IF (table_name != '*CALC_SUM') THEN + + champ_calcule = column_name; + champ_calcule = replace(champ_calcule,'[1]','(' || column_name_a1 || ')'); + champ_calcule = replace(champ_calcule,'[2]','(' || column_name_a2 || ')'); + champ_calcule = replace(champ_calcule,'[3]','(' || column_name_a3 || ')'); + champ_calcule = replace(champ_calcule,'[4]','(' || column_name_a4 || ')'); + champ_calcule = replace(champ_calcule,'[5]','(' || column_name_a5 || ')'); + champ_calcule = replace(champ_calcule,'[6]','(' || column_name_a6 || ')'); + champ_calcule = replace(champ_calcule,'[7]','(' || column_name_a7 || ')'); + champ_calcule = replace(champ_calcule,'[8]','(' || column_name_a8 || ')'); + champ_calcule = replace(champ_calcule,'[9]','(' || column_name_a9 || ')'); + champ_calcule = replace(champ_calcule,'[10]','(' || column_name_a10 || ')'); + champ_calcule = replace(champ_calcule,'[11]','(' || column_name_a11 || ')'); + champ_calcule = replace(champ_calcule,'[12]','(' || column_name_a12 || ')'); + champ_calcule = replace(champ_calcule,'[13]','(' || column_name_a13 || ')'); + champ_calcule = replace(champ_calcule,'[14]','(' || column_name_a14 || ')'); + champ_calcule = replace(champ_calcule,'[15]','(' || column_name_a15 || ')'); + champ_calcule = replace(champ_calcule,'[16]','(' || column_name_a16 || ')'); + champ_calcule = replace(champ_calcule,'[17]','(' || column_name_a17 || ')'); + champ_calcule = replace(champ_calcule,'[18]','(' || column_name_a18 || ')'); + champ_calcule = replace(champ_calcule,'[19]','(' || column_name_a19 || ')'); + champ_calcule = replace(champ_calcule,'[20]','(' || column_name_a20 || ')'); + ELSE + champ_calcule = '(' || column_name_a1 || ') + ' || + '(' || column_name_a2 || ') + ' || + '(' || column_name_a3 || ') + ' || + '(' || column_name_a4 || ') + ' || + '(' || column_name_a5 || ') + ' || + '(' || column_name_a6 || ') + ' || + '(' || column_name_a7 || ') + ' || + '(' || column_name_a8 || ') + ' || + '(' || column_name_a9 || ') + ' || + '(' || column_name_a10 || ') + ' || + '(' || column_name_a11 || ') + ' || + '(' || column_name_a12 || ') + ' || + '(' || column_name_a13 || ') + ' || + '(' || column_name_a14 || ') + ' || + '(' || column_name_a15 || ') + ' || + '(' || column_name_a16 || ') + ' || + '(' || column_name_a17 || ') + ' || + '(' || column_name_a18 || ') + ' || + '(' || column_name_a19 || ') + ' || + '(' || column_name_a20 || ')'; + END IF; + + formule_indicateur = champ_calcule; + END IF; + ELSE + formule_indicateur = '0'; + END IF; + IF formule_indicateur = '' THEN + formule_indicateur = '0'; + END IF; + + RETURN formule_indicateur ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_rapport_indicateurs~in.yaml b/db/schema2/functions/get_rapport_indicateurs~in.yaml new file mode 100644 index 0000000..2341359 --- /dev/null +++ b/db/schema2/functions/get_rapport_indicateurs~in.yaml @@ -0,0 +1,48 @@ +return: text +lang: plpgsql +parameters: + p0: + type: integer + name: i_rapport_id +strict: STRICT +src: | + DECLARE + rapport_columns TEXT; + rapports_cursor refcursor; + numero_rubrique INTEGER; + column_name TEXT; + table_name TEXT; + total_function TEXT; + liste_code_start integer; + to_column_name TEXT; + + champ_calcule TEXT; + i int2; + ch TEXT; + last_rubrique INTEGER; + BEGIN + rapport_columns = ''; + last_rubrique = 0; + OPEN rapports_cursor FOR + SELECT t_rapports_rubriques.numero_rubrique, + compta.get_formule_indicateur(t_indicateurs.oid, 1) + FROM compta.t_rapports_rubriques, compta.t_indicateurs + WHERE rapport_id = i_rapport_id AND indicateur_id = t_indicateurs.oid ORDER BY t_rapports_rubriques.numero_rubrique; + FETCH rapports_cursor INTO numero_rubrique, column_name ; + WHILE FOUND LOOP + last_rubrique = last_rubrique + 1; + FOR i IN last_rubrique..numero_rubrique - 1 LOOP + rapport_columns = rapport_columns || ', 0 ' ; + last_rubrique = last_rubrique + 1; + END LOOP; + IF (rapport_columns != '') THEN + rapport_columns = rapport_columns || ', '; + END IF; + rapport_columns = rapport_columns || column_name; + + FETCH rapports_cursor INTO numero_rubrique, column_name ; + END LOOP; + CLOSE rapports_cursor; + rapport_columns = 'ARRAY[' || rapport_columns || ']::text[] as indicateurs ' ; + RETURN rapport_columns ; + END; \ No newline at end of file diff --git a/db/schema2/sequences/s_activites_cout_patient_shs.yaml b/db/schema2/sequences/s_activites_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_activites_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_arbre_comptes.yaml b/db/schema2/sequences/s_arbre_comptes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_arbre_comptes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget.yaml b/db/schema2/sequences/s_budget.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget_compte.yaml b/db/schema2/sequences/s_budget_compte.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget_compte.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget_compte_compte.yaml b/db/schema2/sequences/s_budget_compte_compte.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget_compte_compte.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_chart.yaml b/db/schema2/sequences/s_chart.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_chart.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_classes.yaml b/db/schema2/sequences/s_classes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_classes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_classes_comptes.yaml b/db/schema2/sequences/s_classes_comptes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_classes_comptes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_classes_sections.yaml b/db/schema2/sequences/s_classes_sections.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_classes_sections.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_collectifs.yaml b/db/schema2/sequences/s_collectifs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_collectifs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_comptes.yaml b/db/schema2/sequences/s_comptes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_comptes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard.yaml b/db/schema2/sequences/s_dashboard.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_filter.yaml b/db/schema2/sequences/s_dashboard_filter.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_filter.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_onglet.yaml b/db/schema2/sequences/s_dashboard_onglet.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_onglet.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_widget.yaml b/db/schema2/sequences/s_dashboard_widget.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_widget.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_ecritures_ajustement.yaml b/db/schema2/sequences/s_ecritures_ajustement.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_ecritures_ajustement.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_elements_cout_patient_shs.yaml b/db/schema2/sequences/s_elements_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_elements_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_etages_cout_patient_shs.yaml b/db/schema2/sequences/s_etages_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_etages_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_condition.yaml b/db/schema2/sequences/s_indicateur_condition.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_condition.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_condition_table.yaml b/db/schema2/sequences/s_indicateur_condition_table.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_condition_table.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_serie.yaml b/db/schema2/sequences/s_indicateur_serie.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_serie.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_theme.yaml b/db/schema2/sequences/s_indicateur_theme.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_theme.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateurs.yaml b/db/schema2/sequences/s_indicateurs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateurs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_journaux.yaml b/db/schema2/sequences/s_journaux.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_journaux.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_lieux_cout_patient_shs.yaml b/db/schema2/sequences/s_lieux_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_lieux_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_listes.yaml b/db/schema2/sequences/s_listes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_listes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_listes_tables.yaml b/db/schema2/sequences/s_listes_tables.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_listes_tables.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_lits_cout_patient_shs.yaml b/db/schema2/sequences/s_lits_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_lits_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_medecins_cout_patient_shs.yaml b/db/schema2/sequences/s_medecins_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_medecins_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_mode_paiement.yaml b/db/schema2/sequences/s_mode_paiement.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_mode_paiement.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_partenaires.yaml b/db/schema2/sequences/s_partenaires.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_partenaires.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_pole_rule.yaml b/db/schema2/sequences/s_pole_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_pole_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rapports.yaml b/db/schema2/sequences/s_rapports.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rapports.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rapports_rapports.yaml b/db/schema2/sequences/s_rapports_rapports.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rapports_rapports.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_sections_analytiques.yaml b/db/schema2/sequences/s_sections_analytiques.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_sections_analytiques.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_services_facturation_cout_patient_shs.yaml b/db/schema2/sequences/s_services_facturation_cout_patient_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_services_facturation_cout_patient_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_sites.yaml b/db/schema2/sequences/s_sites.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_sites.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_types_compta.yaml b/db/schema2/sequences/s_types_compta.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_types_compta.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_unites_oeuvre_shs.yaml b/db/schema2/sequences/s_unites_oeuvre_shs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_unites_oeuvre_shs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_validation_parametre.yaml b/db/schema2/sequences/s_validation_parametre.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_validation_parametre.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_comptable.yaml b/db/schema2/tables/p_chiffrier_comptable.yaml new file mode 100644 index 0000000..97d75f3 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_comptable.yaml @@ -0,0 +1,18 @@ +columns: + clinique_honoraire: + type: character(1) + mois_comptable: + type: integer + montant_credit: + type: numeric(13,2) + montant_debit: + type: numeric(13,2) + provider_id: + type: bigint + default: "0" + site_id: + type: bigint +indexes: + i_chiffrier_comptable_1: + column: mois_comptable + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_comptable_compte.yaml b/db/schema2/tables/p_chiffrier_comptable_compte.yaml new file mode 100644 index 0000000..1c9bb41 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_comptable_compte.yaml @@ -0,0 +1,23 @@ +columns: + clinique_honoraire: + type: character(1) + compte_id: + type: bigint + mois_comptable: + type: integer + montant_credit: + type: numeric(13,2) + montant_debit: + type: numeric(13,2) + provider_id: + type: bigint + default: "0" + site_id: + type: bigint +indexes: + i_chiffrier_comptable_compte_compte_id: + column: compte_id + method: btree + i_chiffrier_comptable_compte_mois_comptable: + column: mois_comptable + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_sagex3.yaml b/db/schema2/tables/p_chiffrier_sagex3.yaml new file mode 100644 index 0000000..213befd --- /dev/null +++ b/db/schema2/tables/p_chiffrier_sagex3.yaml @@ -0,0 +1,19 @@ +columns: + clinique_honoraire: + type: character(1) + mois_comptable: + type: integer + montant_credit: + type: numeric(13,2) + montant_credit_13: + type: numeric(13,2) + montant_debit: + type: numeric(13,2) + montant_debit_13: + type: numeric(13,2) + site_id: + type: bigint +indexes: + i_chiffrier_sagex3_1: + column: mois_comptable + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_shs.yaml b/db/schema2/tables/p_chiffrier_shs.yaml new file mode 100644 index 0000000..e723ad5 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_shs.yaml @@ -0,0 +1,19 @@ +columns: + clinique_honoraire: + type: character(1) + mois_comptable: + type: integer + montant_journaux: + type: numeric(13,2) + montant_journaux_13: + type: numeric(13,2) + montant_reglements: + type: numeric(13,2) + montant_solde_client: + type: numeric(13,2) + montant_ventes: + type: numeric(13,2) +indexes: + i_chiffrier_shs_1: + column: clinique_honoraire, mois_comptable + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_consolidation_translation.yaml b/db/schema2/tables/p_consolidation_translation.yaml new file mode 100644 index 0000000..3ca5ada --- /dev/null +++ b/db/schema2/tables/p_consolidation_translation.yaml @@ -0,0 +1,30 @@ +columns: + from_code: + type: text + default: "''::text" + from_database: + type: text + from_id: + type: bigint + default: "0" + table_code: + type: text + to_code: + type: text + default: "''::text" + to_id: + type: bigint + default: "0" +indexes: + i_consolidation_translation_1: + column: from_database + method: btree + i_consolidation_translation_2: + column: table_code + method: btree + i_consolidation_translation_3: + column: from_id + method: btree + i_consolidation_translation_4: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_couts_patient_shs.yaml b/db/schema2/tables/p_couts_patient_shs.yaml new file mode 100644 index 0000000..0d06600 --- /dev/null +++ b/db/schema2/tables/p_couts_patient_shs.yaml @@ -0,0 +1,67 @@ +columns: + cout: + type: numeric(13,2) + default: "0" + date_entree: + type: date + date_sortie: + type: date + element_cout_id: + type: bigint + exercice_comptable: + type: numeric(4,0) + default: "0" + ghm_id: + type: bigint + ghs_id: + type: bigint + lieu_id: + type: bigint + medecin_administratif_id: + type: bigint + mois_comptable: + type: numeric(6,0) + not_null: NOT NULL + default: "0" + montant_facture: + type: numeric(13,2) + default: "0" + no_facture: + type: character varying(20) + not_null: NOT NULL + no_sejour: + type: character(10) + not_null: NOT NULL + prix_unitaire: + type: numeric(13,4) + default: "0" + quantite_consommee: + type: numeric(20,6) + default: "0" + unite_oeuvre_id: + type: bigint +indexes: + i_couts_patient_shs_1: + column: mois_comptable + method: btree + i_couts_patient_shs_2: + column: lieu_id + method: btree + i_couts_patient_shs_3: + column: medecin_administratif_id + method: btree + i_couts_patient_shs_4: + column: ghs_id + method: btree + i_couts_patient_shs_5: + column: element_cout_id + method: btree + i_couts_patient_shs_6: + column: unite_oeuvre_id + method: btree + i_couts_patient_shs_7: + column: ghm_id + method: btree + i_couts_patient_shs_8: + column: medecin_administratif_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_ecriture_fournisseur.yaml b/db/schema2/tables/p_ecriture_fournisseur.yaml new file mode 100644 index 0000000..51c5879 --- /dev/null +++ b/db/schema2/tables/p_ecriture_fournisseur.yaml @@ -0,0 +1,121 @@ +columns: + ajustement: + type: character(1) + default: "'0'::bpchar" + cle_originale: + type: text + default: "''::text" + clinique_honoraire: + type: character(1) + comptabilisee: + type: character(1) + default: "'1'::bpchar" + compte_contrepartie_id: + type: bigint + default: "0" + compte_extra_id: + type: bigint + compte_id: + type: bigint + not_null: NOT NULL + date_echeance: + type: date + date_ecriture: + type: date + not_null: NOT NULL + date_facture_fournisseur: + type: date + dossier: + type: text + default: "''::text" + ecriture_consolidee: + type: character(1) + default: "'0'::bpchar" + ecriture_exclue: + type: character(1) + default: "'0'::bpchar" + exercice_comptable: + type: numeric + facture_soldee: + type: character(1) + default: "'0'::bpchar" + fin_exercice: + type: character(1) + default: "'0'::bpchar" + identifiant_operation: + type: text + default: "''::text" + inter_site: + type: character(1) + default: "'0'::bpchar" + journal_id: + type: bigint + journal_paiement_id: + type: bigint + default: "0" + mode_paiement_id: + type: bigint + default: "0" + mois_comptable: + type: numeric + montant_credit: + type: numeric + montant_debit: + type: numeric + numero_cheque: + type: text + partenaire_id: + type: bigint + default: "0" + piece: + type: text + default: "''::text" + section_analytique_id: + type: bigint + site_id: + type: bigint + default: "0" + texte: + type: text + type_compta_id: + type: bigint +indexes: + i_ecriture_fournisseur_1: + column: mois_comptable + method: btree + i_ecriture_fournisseur_10: + column: fin_exercice + method: btree + i_ecriture_fournisseur_11: + column: ajustement + method: btree + i_ecriture_fournisseur_12: + column: partenaire_id + method: btree + i_ecriture_fournisseur_13: + column: identifiant_operation + method: btree + i_ecriture_fournisseur_2: + column: compte_id + method: btree + i_ecriture_fournisseur_3: + column: comptabilisee + method: btree + i_ecriture_fournisseur_4: + column: compte_extra_id + method: btree + i_ecriture_fournisseur_5: + column: cle_originale + method: btree + i_ecriture_fournisseur_6: + column: journal_id + method: btree + i_ecriture_fournisseur_7: + column: date_ecriture + method: btree + i_ecriture_fournisseur_8: + column: dossier + method: btree + i_ecriture_fournisseur_9: + column: site_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_historique_ecritures.yaml b/db/schema2/tables/p_historique_ecritures.yaml new file mode 100644 index 0000000..20c7da3 --- /dev/null +++ b/db/schema2/tables/p_historique_ecritures.yaml @@ -0,0 +1,157 @@ +columns: + ajustement: + type: character(1) + default: "'0'::bpchar" + cle_originale: + type: character varying(255) + default: "''::character varying" + clinique_honoraire: + type: character(1) + comptabilisee: + type: character(1) + default: "'1'::bpchar" + compte_budget_id: + type: bigint + default: "0" + compte_contrepartie_id: + type: bigint + default: "0" + compte_extra_id: + type: bigint + compte_id: + type: bigint + not_null: NOT NULL + date_echeance: + type: date + date_ecriture: + type: date + not_null: NOT NULL + date_facture_fournisseur: + type: date + dossier: + type: character varying(255) + default: "''::character varying" + ecriture_consolidee: + type: character(1) + default: "'0'::bpchar" + exercice_comptable: + type: numeric(4,0) + fin_exercice: + type: character(1) + default: "'0'::bpchar" + identifiant_operation: + type: character varying(255) + default: "''::character varying" + inter_site: + type: character(1) + default: "'0'::bpchar" + is_budget: + type: text + default: "'0'::text" + journal_id: + type: bigint + journal_paiement_id: + type: bigint + default: "0" + mode_paiement_id: + type: bigint + default: "0" + mois_comptable: + type: numeric(6,0) + montant_credit: + type: numeric + montant_debit: + type: numeric + numero_cheque: + type: character varying(10) + partenaire_id: + type: bigint + default: "0" + piece: + type: character varying(255) + default: "''::character varying" + pole_id: + type: bigint + default: "0" + pole_rule_id: + type: bigint + default: "0" + section_analytique_2_id: + type: bigint + default: (0)::bigint + section_analytique_3_id: + type: bigint + default: (0)::bigint + section_analytique_4_id: + type: bigint + default: (0)::bigint + section_analytique_5_id: + type: bigint + default: (0)::bigint + section_analytique_6_id: + type: bigint + default: (0)::bigint + section_analytique_7_id: + type: bigint + default: (0)::bigint + section_analytique_8_id: + type: bigint + default: (0)::bigint + section_analytique_9_id: + type: bigint + default: (0)::bigint + section_analytique_id: + type: bigint + site_id: + type: bigint + default: "0" + texte: + type: character varying(255) + type_compta_id: + type: bigint +indexes: + i_historique_ecritures_1: + column: mois_comptable + method: btree + i_historique_ecritures_10: + column: fin_exercice + method: btree + i_historique_ecritures_11: + column: ajustement + method: btree + i_historique_ecritures_12: + column: partenaire_id + method: btree + i_historique_ecritures_13: + column: identifiant_operation + method: btree + i_historique_ecritures_2: + column: compte_id + method: btree + i_historique_ecritures_3: + column: comptabilisee + method: btree + i_historique_ecritures_4: + column: compte_extra_id + method: btree + i_historique_ecritures_5: + column: cle_originale + method: btree + i_historique_ecritures_6: + column: journal_id + method: btree + i_historique_ecritures_7: + column: date_ecriture + method: btree + i_historique_ecritures_8: + column: dossier + method: btree + i_historique_ecritures_9: + column: site_id + method: btree + i_historique_ecritures_compte_budget_id: + column: compte_budget_id + method: btree + i_historique_ecritures_pole_id: + column: pole_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_historique_ecritures_total.yaml b/db/schema2/tables/p_historique_ecritures_total.yaml new file mode 100644 index 0000000..f068ca5 --- /dev/null +++ b/db/schema2/tables/p_historique_ecritures_total.yaml @@ -0,0 +1,137 @@ +columns: + ajustement: + type: character(1) + default: "'0'::bpchar" + clinique_honoraire: + type: character(1) + comptabilisee: + type: character(1) + default: "'1'::bpchar" + compte_budget_id: + type: bigint + default: "0" + compte_extra_id: + type: bigint + compte_id: + type: bigint + not_null: NOT NULL + ecriture_consolidee: + type: character(1) + default: "'0'::bpchar" + exercice_comptable: + type: numeric(4,0) + fin_exercice: + type: character(1) + default: "'0'::bpchar" + inter_site: + type: character(1) + default: "0" + is_budget: + type: text + default: "'0'::text" + journal_id: + type: bigint + mois_comptable: + type: numeric(6,0) + montant_credit: + type: numeric + montant_debit: + type: numeric + nombre_ecritures: + type: bigint + default: "0" + partenaire_id: + type: bigint + default: "0" + pole_id: + type: bigint + default: "0" + pole_rule_id: + type: bigint + default: "0" + section_analytique_2_id: + type: bigint + default: (0)::bigint + section_analytique_3_id: + type: bigint + default: (0)::bigint + section_analytique_4_id: + type: bigint + default: (0)::bigint + section_analytique_5_id: + type: bigint + default: (0)::bigint + section_analytique_6_id: + type: bigint + default: (0)::bigint + section_analytique_7_id: + type: bigint + default: (0)::bigint + section_analytique_8_id: + type: bigint + default: (0)::bigint + section_analytique_9_id: + type: bigint + default: (0)::bigint + section_analytique_id: + type: bigint + site_id: + type: bigint + default: "0" + type_compta_id: + type: bigint +indexes: + i_historique_ecritures_total_1: + column: clinique_honoraire, compte_extra_id, compte_id, journal_id, mois_comptable, section_analytique_id + method: btree + i_historique_ecritures_total_10: + column: fin_exercice + method: btree + i_historique_ecritures_total_11: + column: ajustement + method: btree + i_historique_ecritures_total_2: + column: compte_id + method: btree + i_historique_ecritures_total_3: + column: comptabilisee + method: btree + i_historique_ecritures_total_4: + column: compte_extra_id + method: btree + i_historique_ecritures_total_5: + column: partenaire_id + method: btree + i_historique_ecritures_total_6: + column: journal_id + method: btree + i_historique_ecritures_total_7: + column: site_id + method: btree + i_historique_ecritures_total_9: + column: inter_site + method: btree + i_historique_ecritures_total_compte_budget_id: + column: compte_budget_id + method: btree + i_historique_ecritures_total_pole_id: + column: pole_id + method: btree + i_historique_ecritures_total_section_analytique_2_id: + column: section_analytique_2_id + method: btree + i_historique_ecritures_total_section_analytique_3_id: + column: section_analytique_3_id + method: btree + i_historique_ecritures_total_section_analytique_4_id: + column: section_analytique_4_id + method: btree + i_historique_ecritures_total_section_analytique_5_id: + column: section_analytique_5_id + method: btree + i_historique_ecritures_total_section_analytique_6_id: + column: section_analytique_6_id + method: btree + i_historique_ecritures_total_section_analytique_id: + column: section_analytique_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_indicateurs_cumules.yaml b/db/schema2/tables/p_indicateurs_cumules.yaml new file mode 100644 index 0000000..db7f991 --- /dev/null +++ b/db/schema2/tables/p_indicateurs_cumules.yaml @@ -0,0 +1,37 @@ +columns: + date_reference: + type: date + finess_id: + type: bigint + default: "0" + indicateur_condition_id: + type: 'bigint[]' + indicateur_id: + type: bigint + periode_type: + type: text + pole_id: + type: bigint + default: "0" + value: + type: numeric + value_cum: + type: numeric + value_cum12: + type: numeric + value_cum4t: + type: numeric + default: "0" + value_exercice: + type: numeric + default: "0" + value_trimestre: + type: numeric + default: "0" +indexes: + i_indicateurs_cumules_1: + column: indicateur_id + method: btree + i_indicateurs_cumules_2: + column: date_reference + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_mois_comptables.yaml b/db/schema2/tables/p_mois_comptables.yaml new file mode 100644 index 0000000..86e3f38 --- /dev/null +++ b/db/schema2/tables/p_mois_comptables.yaml @@ -0,0 +1,19 @@ +columns: + annee: + type: numeric(4,0) + exercice_comptable: + type: numeric(4,0) + exercice_mois_comptable_1: + type: numeric(6,0) + mois: + type: numeric(2,0) + mois_comptable: + type: numeric(6,0) + texte: + type: character varying(50) + texte_court: + type: character varying(10) +indexes: + i_mois_comptables_1: + column: mois_comptable + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_oids.yaml b/db/schema2/tables/p_oids.yaml new file mode 100644 index 0000000..0371279 --- /dev/null +++ b/db/schema2/tables/p_oids.yaml @@ -0,0 +1,24 @@ +columns: + code: + type: character varying(10) + not_null: NOT NULL + default: "''::character varying" + code_table: + type: character varying(255) + oid: + type: bigint + default: "0" +constraints: + p_oids_code_table_key: + type: UNIQUE + column: code, code_table, oid +indexes: + i_oids_1: + column: code_table + method: btree + i_oids_2: + column: oid + method: btree + i_oids_3: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_repartitions_analytiques_shs.yaml b/db/schema2/tables/p_repartitions_analytiques_shs.yaml new file mode 100644 index 0000000..6134e07 --- /dev/null +++ b/db/schema2/tables/p_repartitions_analytiques_shs.yaml @@ -0,0 +1,46 @@ +columns: + code_prevision_realisation: + type: character(1) + default: "'R'::bpchar" + compte_id: + type: bigint + not_null: NOT NULL + default: "0" + etape_id: + type: bigint + default: "0" + exercice_comptable: + type: numeric(4,0) + default: "0" + mois_comptable: + type: numeric(6,0) + not_null: NOT NULL + default: "0" + montant: + type: numeric(13,2) + default: "0" + section_analytique_id: + type: bigint + default: "0" + section_analytique_origine_id: + type: bigint + default: "0" +indexes: + i_repartitions_analytiques_shs_1: + column: mois_comptable + method: btree + i_repartitions_analytiques_shs_2: + column: compte_id + method: btree + i_repartitions_analytiques_shs_3: + column: section_analytique_id + method: btree + i_repartitions_analytiques_shs_4: + column: etape_id + method: btree + i_repartitions_analytiques_shs_5: + column: code_prevision_realisation + method: btree + i_repartitions_analytiques_shs_6: + column: section_analytique_origine_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_activites_cout_patient_shs.yaml b/db/schema2/tables/t_activites_cout_patient_shs.yaml new file mode 100644 index 0000000..36e9b29 --- /dev/null +++ b/db/schema2/tables/t_activites_cout_patient_shs.yaml @@ -0,0 +1,17 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_activites_cout_patient_shs'::regclass)" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_activites_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_budget.yaml b/db/schema2/tables/t_budget.yaml new file mode 100644 index 0000000..816a27c --- /dev/null +++ b/db/schema2/tables/t_budget.yaml @@ -0,0 +1,30 @@ +columns: + code: + type: text + exercice_comptable: + type: numeric(4,0) + import_data: + type: text + default: "''::text" + is_actif: + type: text + default: "'1'::text" + mois: + type: 'numeric[]' + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget'::regclass)" + site_id: + type: bigint + default: "0" + texte: + type: text +constraints: + t_budget_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budget_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_budget_compte.yaml b/db/schema2/tables/t_budget_compte.yaml new file mode 100644 index 0000000..1b3c5ac --- /dev/null +++ b/db/schema2/tables/t_budget_compte.yaml @@ -0,0 +1,50 @@ +columns: + budget_id: + type: bigint + not_null: NOT NULL + clinique_honoraire: + type: text + default: "'C'::text" + compte_budget_id: + type: bigint + default: "0" + exclude_numero: + type: text + default: "''::text" + include_numero: + type: text + default: "''::text" + mode_ventilation: + type: text + default: "'1'::text" + montant_budget_exercice: + type: numeric + default: "0" + montant_budget_mensuel: + type: 'numeric[]' + numero: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget_compte'::regclass)" + section_analytique_code: + type: text + default: "''::text" + taux_budget_mensuel: + type: 'numeric[]' + texte: + type: text + default: "''::text" +constraints: + t_budget_compte_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budget_compte_1: + column: numero + method: btree + i_budget_compte_2: + column: compte_budget_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_budget_compte_compte.yaml b/db/schema2/tables/t_budget_compte_compte.yaml new file mode 100644 index 0000000..4b5d442 --- /dev/null +++ b/db/schema2/tables/t_budget_compte_compte.yaml @@ -0,0 +1,22 @@ +columns: + budget_compte_id: + type: bigint + not_null: NOT NULL + compte_id: + type: bigint + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget_compte_compte'::regclass)" +constraints: + t_budget_compte_compte_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budget_compte_compte_1: + column: budget_compte_id + method: btree + i_budget_compte_compte_2: + column: compte_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_chart.yaml b/db/schema2/tables/t_chart.yaml new file mode 100644 index 0000000..b4cfac5 --- /dev/null +++ b/db/schema2/tables/t_chart.yaml @@ -0,0 +1,26 @@ +columns: + category: + type: text + code: + type: text + default_time_calc: + type: text + drilldown: + type: jsonb + label_view_code: + type: numeric + default: "0" + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_chart'::regclass)" + serie_id: + type: 'bigint[]' + type: + type: text +constraints: + t_chart_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_classes.yaml b/db/schema2/tables/t_classes.yaml new file mode 100644 index 0000000..36ee41a --- /dev/null +++ b/db/schema2/tables/t_classes.yaml @@ -0,0 +1,36 @@ +columns: + code: + type: text + contenu_by_code: + type: text + default: "'0'::text" + contenu_non_replicable_ailleurs: + type: character(1) + default: "'0'::bpchar" + is_cti: + type: character(1) + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_classes'::regclass)" + sequence: + type: integer + default: "1" + table_id: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: text +constraints: + t_classes_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_classes_1: + column: code + method: btree + i_classes_classes_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_classes_comptes.yaml b/db/schema2/tables/t_classes_comptes.yaml new file mode 100644 index 0000000..650dc04 --- /dev/null +++ b/db/schema2/tables/t_classes_comptes.yaml @@ -0,0 +1,23 @@ +columns: + clinique: + type: character(1) + default: "'0'::bpchar" + code: + type: text + honoraire: + type: character(1) + default: "'0'::bpchar" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_classes_comptes'::regclass)" + texte: + type: text +constraints: + t_classes_comptes_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_classes_comptes_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_classes_sections.yaml b/db/schema2/tables/t_classes_sections.yaml new file mode 100644 index 0000000..d92b56c --- /dev/null +++ b/db/schema2/tables/t_classes_sections.yaml @@ -0,0 +1,26 @@ +columns: + classe_id: + type: bigint + not_null: NOT NULL + default: "0" + code: + type: text + condition: + type: text + default: "''::text" + exclude_code: + type: text + default: "''::text" + include_code: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_classes_sections'::regclass)" + texte: + type: text +constraints: + t_classes_sections_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_classes_sections_elements.yaml b/db/schema2/tables/t_classes_sections_elements.yaml new file mode 100644 index 0000000..f336934 --- /dev/null +++ b/db/schema2/tables/t_classes_sections_elements.yaml @@ -0,0 +1,20 @@ +columns: + section_id: + type: bigint + not_null: NOT NULL + default: "0" + to_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_classes_sections_elements_ukey: + type: UNIQUE + column: section_id, to_id +indexes: + i_classes_sections_elements_1: + column: section_id + method: btree + i_classes_sections_elements_2: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_collectifs.yaml b/db/schema2/tables/t_collectifs.yaml new file mode 100644 index 0000000..08ab992 --- /dev/null +++ b/db/schema2/tables/t_collectifs.yaml @@ -0,0 +1,24 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + compte_general_id: + type: bigint + etat: + type: character(1) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_collectifs'::regclass)" + texte: + type: character varying(100) + type_compta_id: + type: bigint +constraints: + t_collectifs_pkey: + type: PRIMARY KEY + column: oid + t_collectifs_ukey1: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_comptes.yaml b/db/schema2/tables/t_comptes.yaml new file mode 100644 index 0000000..b673d9b --- /dev/null +++ b/db/schema2/tables/t_comptes.yaml @@ -0,0 +1,108 @@ +columns: + banque: + type: character(1) + default: "'0'::bpchar" + classe_1_id: + type: bigint + default: "0" + classe_2_id: + type: bigint + default: "0" + classe_3_id: + type: bigint + default: "0" + classe_4_id: + type: bigint + default: "0" + classe_5_id: + type: bigint + default: "0" + classe_6_id: + type: bigint + default: "0" + clinique_honoraire: + type: character(1) + collectif: + type: character(1) + default: "'0'::bpchar" + compte_general_id: + type: bigint + compte_nonsigne_id: + type: bigint + compte_nonsigne_numero: + type: text + default: "''::text" + etat: + type: character(1) + default: "0" + inter_site: + type: character(1) + default: "'0'::bpchar" + numero: + type: text + not_null: NOT NULL + numero_extra: + type: text + default: "''::bpchar" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_comptes'::regclass)" + partenaire_id: + type: bigint + default: "0" + sens: + type: character(1) + default: "''::bpchar" + solde_initial: + type: numeric(13,2) + default: "0" + texte: + type: text + texte_extra: + type: text + default: "''::bpchar" + type_compta_extra_id: + type: bigint + default: "0" + type_compta_id: + type: bigint + not_null: NOT NULL +constraints: + t_comptes_pkey: + type: PRIMARY KEY + column: oid + t_comptes_ukey1: + type: UNIQUE + column: numero, type_compta_id +indexes: + i_comptes_1: + column: numero + method: btree + i_comptes_10: + column: compte_nonsigne_id + method: btree + i_comptes_2: + column: clinique_honoraire, numero + method: btree + i_comptes_3: + column: type_compta_id + method: btree + i_comptes_4: + column: classe_1_id + method: btree + i_comptes_5: + column: classe_2_id + method: btree + i_comptes_6: + column: classe_3_id + method: btree + i_comptes_7: + column: classe_4_id + method: btree + i_comptes_8: + column: classe_5_id + method: btree + i_comptes_9: + column: classe_6_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_comptes_c.yaml b/db/schema2/tables/t_comptes_c.yaml new file mode 100644 index 0000000..32f1229 --- /dev/null +++ b/db/schema2/tables/t_comptes_c.yaml @@ -0,0 +1,233 @@ +columns: + arbre_classe_1_code: + type: text + default: "''::bpchar" + arbre_classe_1_id: + type: bigint + default: "0" + arbre_classe_1_texte: + type: text + default: "''::character varying" + arbre_classe_2_code: + type: text + default: "''::bpchar" + arbre_classe_2_id: + type: bigint + default: "0" + arbre_classe_2_texte: + type: text + default: "''::character varying" + arbre_classe_3_code: + type: text + default: "''::bpchar" + arbre_classe_3_id: + type: bigint + default: "0" + arbre_classe_3_texte: + type: text + default: "''::character varying" + arbre_classe_4_code: + type: text + default: "''::bpchar" + arbre_classe_4_id: + type: bigint + default: "0" + arbre_classe_4_texte: + type: text + default: "''::character varying" + arbre_classe_5_code: + type: text + default: "''::bpchar" + arbre_classe_5_id: + type: bigint + default: "0" + arbre_classe_5_texte: + type: text + default: "''::character varying" + arbre_classe_6_code: + type: text + default: "''::bpchar" + arbre_classe_6_id: + type: bigint + default: "0" + arbre_classe_6_texte: + type: text + default: "''::character varying" + arbre_classe_7_code: + type: text + default: "''::bpchar" + arbre_classe_7_id: + type: bigint + default: "0" + arbre_classe_7_texte: + type: text + default: "''::character varying" + banque: + type: character(1) + default: "0" + classe_1_code: + type: character(1) + classe_1_id: + type: bigint + default: "0" + classe_1_texte: + type: text + classe_2_code: + type: character(2) + classe_2_id: + type: bigint + default: "0" + classe_2_texte: + type: text + classe_3_code: + type: character(3) + classe_3_id: + type: bigint + default: "0" + classe_3_texte: + type: text + classe_4_code: + type: character(4) + default: "''::bpchar" + classe_4_id: + type: bigint + default: "0" + classe_4_texte: + type: text + default: "''::character varying" + classe_5_code: + type: character(5) + default: "''::bpchar" + classe_5_id: + type: bigint + default: "0" + classe_5_texte: + type: text + default: "''::character varying" + classe_6_code: + type: character(6) + default: "''::bpchar" + classe_6_id: + type: bigint + default: "0" + classe_6_texte: + type: text + default: "''::character varying" + clinique_honoraire: + type: character(1) + compte_general_id: + type: bigint + default: "0" + compte_general_numero: + type: text + default: "''::character varying" + compte_general_texte: + type: text + default: "''::character varying" + compte_nonsigne_id: + type: bigint + compte_nonsigne_numero: + type: text + default: "''::text" + numero: + type: text + oid: + type: bigint + not_null: NOT NULL + section1_code: + type: text + default: "''::character varying" + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "''::character varying" + section2_code: + type: text + default: "''::character varying" + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "''::character varying" + section3_code: + type: text + default: "''::character varying" + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "''::character varying" + section9_code: + type: text + default: "''::character varying" + section9_id: + type: bigint + default: "0" + section9_texte: + type: character varying(255) + default: "''::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + sens: + type: character(1) + default: "''::bpchar" + texte: + type: text + type_compta_code: + type: text + type_compta_id: + type: bigint + type_compta_texte: + type: text +constraints: + t_comptes_c_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_comptes_c_1: + column: numero + method: btree + i_comptes_c_10: + column: banque + method: btree + i_comptes_c_11: + column: '(section_id[1])' + method: btree + i_comptes_c_12: + column: '(section_id[2])' + method: btree + i_comptes_c_13: + column: '(section_id[3])' + method: btree + i_comptes_c_2: + column: clinique_honoraire + method: btree + i_comptes_c_3: + column: type_compta_id + method: btree + i_comptes_c_4: + column: classe_1_id + method: btree + i_comptes_c_5: + column: classe_2_id + method: btree + i_comptes_c_6: + column: classe_3_id + method: btree + i_comptes_c_7: + column: classe_4_id + method: btree + i_comptes_c_8: + column: classe_5_id + method: btree + i_comptes_c_9: + column: classe_6_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_controle_chiffrier.yaml b/db/schema2/tables/t_controle_chiffrier.yaml new file mode 100644 index 0000000..0614590 --- /dev/null +++ b/db/schema2/tables/t_controle_chiffrier.yaml @@ -0,0 +1,42 @@ +columns: + clinique_honoraire: + type: character(1) + not_null: NOT NULL + commentaire: + type: text + default: "''::text" + mois_comptable: + type: integer + not_null: NOT NULL + montant_credit_c: + type: numeric + default: "0" + montant_credit_d: + type: numeric + default: "0" + montant_credit_t: + type: numeric + default: "0" + montant_debit_c: + type: numeric + default: "0" + montant_debit_d: + type: numeric + default: "0" + montant_debit_t: + type: numeric + default: "0" + provider_id: + type: bigint + not_null: NOT NULL + default: "0" + site_id: + type: bigint + not_null: NOT NULL + valide: + type: character(1) + default: "'0'::bpchar" +constraints: + t_controle_chiffrier_ukey: + type: PRIMARY KEY + column: clinique_honoraire, mois_comptable, provider_id, site_id \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard.yaml b/db/schema2/tables/t_dashboard.yaml new file mode 100644 index 0000000..4b47a3c --- /dev/null +++ b/db/schema2/tables/t_dashboard.yaml @@ -0,0 +1,14 @@ +columns: + code: + type: text + label: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard'::regclass)" +constraints: + t_dashboard_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_filter.yaml b/db/schema2/tables/t_dashboard_filter.yaml new file mode 100644 index 0000000..380d3e7 --- /dev/null +++ b/db/schema2/tables/t_dashboard_filter.yaml @@ -0,0 +1,13 @@ +columns: + condition_id: + type: bigint + dashboard_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_filter'::regclass)" +constraints: + t_dashboard_filter_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_onglet.yaml b/db/schema2/tables/t_dashboard_onglet.yaml new file mode 100644 index 0000000..f2771ed --- /dev/null +++ b/db/schema2/tables/t_dashboard_onglet.yaml @@ -0,0 +1,15 @@ +columns: + dashboard_id: + type: bigint + index: + type: bigint + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_onglet'::regclass)" +constraints: + t_dashboard_onglet_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_widget.yaml b/db/schema2/tables/t_dashboard_widget.yaml new file mode 100644 index 0000000..602ad66 --- /dev/null +++ b/db/schema2/tables/t_dashboard_widget.yaml @@ -0,0 +1,15 @@ +columns: + chart_id: + type: bigint + dashboard_id: + type: bigint + deprecated: + type: boolean + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_widget'::regclass)" +constraints: + t_dashboard_widget_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_divers.yaml b/db/schema2/tables/t_divers.yaml new file mode 100644 index 0000000..2a1d292 --- /dev/null +++ b/db/schema2/tables/t_divers.yaml @@ -0,0 +1,19 @@ +columns: + code: + type: text + not_null: NOT NULL + description: + type: text + show_info_module: + type: boolean + default: 'false' + texte: + type: text + valeur: + type: text + valeur_date: + type: date +constraints: + t_divers_pkey: + type: PRIMARY KEY + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_ecritures_ajustement.yaml b/db/schema2/tables/t_ecritures_ajustement.yaml new file mode 100644 index 0000000..1b3c20e --- /dev/null +++ b/db/schema2/tables/t_ecritures_ajustement.yaml @@ -0,0 +1,52 @@ +columns: + clinique_honoraire: + type: character(1) + compte_numero: + type: character(10) + default: "''::character varying" + date_ecriture: + type: date + not_null: NOT NULL + ecriture_maitre_id: + type: bigint + default: "0" + est_balance: + type: character(1) + default: "'0'::bpchar" + est_import_data: + type: character(1) + default: "'0'::bpchar" + groupe_ecriture_id: + type: bigint + default: "0" + import_data: + type: text + default: "''::text" + journal_code: + type: character(10) + default: "''::bpchar" + mois_comptable: + type: numeric(6,0) + montant_credit: + type: numeric(13,2) + montant_debit: + type: numeric(13,2) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_ecritures_ajustement'::regclass)" + report_automatique_mois_suivant: + type: character(1) + default: "'0'::bpchar" + section_analytique_code: + type: character(10) + default: "''::bpchar" + site_id: + type: bigint + default: "0" + texte: + type: character varying(255) +constraints: + t_ecritures_ajustement_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_elements_cout_patient_shs.yaml b/db/schema2/tables/t_elements_cout_patient_shs.yaml new file mode 100644 index 0000000..ef1b8d5 --- /dev/null +++ b/db/schema2/tables/t_elements_cout_patient_shs.yaml @@ -0,0 +1,53 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_elements_cout_patient_shs'::regclass)" + section1_code: + type: character varying(10) + default: chr(127) + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + section2_code: + type: character varying(10) + default: chr(127) + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + section3_code: + type: character varying(10) + default: chr(127) + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_elements_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid + t_elements_cout_patient_shs_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_etages_cout_patient_shs.yaml b/db/schema2/tables/t_etages_cout_patient_shs.yaml new file mode 100644 index 0000000..434d916 --- /dev/null +++ b/db/schema2/tables/t_etages_cout_patient_shs.yaml @@ -0,0 +1,17 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_etages_cout_patient_shs'::regclass)" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_etages_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_etapes_analytiques.yaml b/db/schema2/tables/t_etapes_analytiques.yaml new file mode 100644 index 0000000..fc0b0cf --- /dev/null +++ b/db/schema2/tables/t_etapes_analytiques.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + est_derniere_etape: + type: character(1) + default: "'0'::bpchar" + oid: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_etapes_analytiques_pkey: + type: PRIMARY KEY + column: oid + t_etapes_analytiques_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_ghm_cout_patient_shs.yaml b/db/schema2/tables/t_ghm_cout_patient_shs.yaml new file mode 100644 index 0000000..c10b255 --- /dev/null +++ b/db/schema2/tables/t_ghm_cout_patient_shs.yaml @@ -0,0 +1,123 @@ +columns: + code: + type: character varying(10) + ghm5_code: + type: character varying(10) + default: "''::character varying" + ghm5_id: + type: bigint + default: "0" + ghm5_texte: + type: character varying(255) + default: "''::character varying" + ligne_oap_code: + type: character varying(10) + default: "''::character varying" + ligne_oap_id: + type: bigint + default: "0" + ligne_oap_texte: + type: character varying(255) + default: "''::character varying" + oid: + type: bigint + not_null: NOT NULL + default: "0" + pole_oap_code: + type: character varying(10) + default: "''::character varying" + pole_oap_id: + type: bigint + default: "0" + pole_oap_texte: + type: character varying(255) + default: "''::character varying" + section1_code: + type: character varying(10) + default: chr(127) + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + section2_code: + type: character varying(10) + default: chr(127) + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + section3_code: + type: character varying(10) + default: chr(127) + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + section6_code: + type: character varying(10) + default: chr(127) + section6_id: + type: bigint + default: "0" + section6_texte: + type: character varying(255) + default: "'Autres'::character varying" + section7_code: + type: character varying(10) + default: chr(127) + section7_id: + type: bigint + default: "0" + section7_texte: + type: character varying(255) + default: "'Autres'::character varying" + section8_code: + type: character varying(10) + default: chr(127) + section8_id: + type: bigint + default: "0" + section8_texte: + type: character varying(255) + default: "'Autres'::character varying" + section9_code: + type: character varying(10) + default: chr(127) + section9_id: + type: bigint + default: "0" + section9_texte: + type: character varying(255) + default: "'Autres'::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + severite_code: + type: character varying(10) + default: "''::character varying" + severite_id: + type: bigint + default: "0" + severite_texte: + type: character varying(255) + default: "''::character varying" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_ghm_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid + t_ghm_cout_patient_shs_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_ghs_cout_patient_shs.yaml b/db/schema2/tables/t_ghs_cout_patient_shs.yaml new file mode 100644 index 0000000..75fa590 --- /dev/null +++ b/db/schema2/tables/t_ghs_cout_patient_shs.yaml @@ -0,0 +1,87 @@ +columns: + code: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "0" + section1_code: + type: character varying(10) + default: chr(127) + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + section2_code: + type: character varying(10) + default: chr(127) + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + section3_code: + type: character varying(10) + default: chr(127) + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + section6_code: + type: character varying(10) + default: chr(127) + section6_id: + type: bigint + default: "0" + section6_texte: + type: character varying(255) + default: "'Autres'::character varying" + section7_code: + type: character varying(10) + default: chr(127) + section7_id: + type: bigint + default: "0" + section7_texte: + type: character varying(255) + default: "'Autres'::character varying" + section8_code: + type: character varying(10) + default: chr(127) + section8_id: + type: bigint + default: "0" + section8_texte: + type: character varying(255) + default: "'Autres'::character varying" + section9_code: + type: character varying(10) + default: chr(127) + section9_id: + type: bigint + default: "0" + section9_texte: + type: character varying(255) + default: "'Autres'::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_ghs_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid + t_ghs_cout_patient_shs_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_condition.yaml b/db/schema2/tables/t_indicateur_condition.yaml new file mode 100644 index 0000000..b7962c5 --- /dev/null +++ b/db/schema2/tables/t_indicateur_condition.yaml @@ -0,0 +1,39 @@ +columns: + arbre_code: + type: 'text[]' + arbre_texte: + type: 'text[]' + code: + type: text + default: "''::text" + column_name: + type: text + default: "''::text" + column_texte: + type: text + default: "''::text" + external_code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_condition'::regclass)" + rule: + type: text + default: "''::text" + texte: + type: text + default: "''::text" + texte_court: + type: text + default: "''::text" + value: + type: text + default: "''::text" + view_select_rule: + type: text + default: "''::text" +constraints: + t_indicateur_condition_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_condition_table.yaml b/db/schema2/tables/t_indicateur_condition_table.yaml new file mode 100644 index 0000000..7fcbfa5 --- /dev/null +++ b/db/schema2/tables/t_indicateur_condition_table.yaml @@ -0,0 +1,17 @@ +columns: + check_where: + type: text + default: "''::text" + indicateur_condition_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_condition_table'::regclass)" + table_name: + type: text + default: "''::text" +constraints: + t_indicateur_condition_table_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_serie.yaml b/db/schema2/tables/t_indicateur_serie.yaml new file mode 100644 index 0000000..e5c74d3 --- /dev/null +++ b/db/schema2/tables/t_indicateur_serie.yaml @@ -0,0 +1,33 @@ +columns: + calc: + type: boolean + code: + type: text + color: + type: text + condition_id: + type: 'bigint[]' + drilldown: + type: jsonb + format: + type: text + formula: + type: text + indicateur_id: + type: bigint + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_serie'::regclass)" + serie_id: + type: text + default: "''::text" + total: + type: boolean + default: 'false' +constraints: + t_indicateur_serie_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_theme.yaml b/db/schema2/tables/t_indicateur_theme.yaml new file mode 100644 index 0000000..1bca744 --- /dev/null +++ b/db/schema2/tables/t_indicateur_theme.yaml @@ -0,0 +1,29 @@ +columns: + children_id: + type: 'bigint[]' + code: + type: text + default: "''::text" + level: + type: numeric + default: "1" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_theme'::regclass)" + parent_id: + type: bigint + default: "0" + parent_tree_code: + type: 'text[]' + parent_tree_id: + type: 'bigint[]' + parent_tree_texte: + type: 'text[]' + texte: + type: text + default: "''::text" +constraints: + t_indicateur_theme_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateurs.yaml b/db/schema2/tables/t_indicateurs.yaml new file mode 100644 index 0000000..ed96c2f --- /dev/null +++ b/db/schema2/tables/t_indicateurs.yaml @@ -0,0 +1,140 @@ +columns: + code: + type: text + column_name: + type: text + default: "''::character varying" + description: + type: text + default: "''::text" + dimension_date: + type: character(1) + default: "''::bpchar" + dimension_date_1: + type: character(1) + default: "'0'::bpchar" + dimension_date_2: + type: character(1) + default: "''::bpchar" + dimension_date_3: + type: character(1) + default: "''::bpchar" + dimension_date_4: + type: character(1) + default: "''::bpchar" + dimension_date_5: + type: character(1) + default: "''::bpchar" + entete: + type: character varying(255) + entete_etendue: + type: character varying(255) + external_code: + type: text + default: "''::text" + indicateur_associe_10_id: + type: bigint + default: "0" + indicateur_associe_11_id: + type: bigint + default: "0" + indicateur_associe_12_id: + type: bigint + default: "0" + indicateur_associe_13_id: + type: bigint + default: "0" + indicateur_associe_14_id: + type: bigint + default: "0" + indicateur_associe_15_id: + type: bigint + default: "0" + indicateur_associe_16_id: + type: bigint + default: "0" + indicateur_associe_17_id: + type: bigint + default: "0" + indicateur_associe_18_id: + type: bigint + default: "0" + indicateur_associe_19_id: + type: bigint + default: "0" + indicateur_associe_1_id: + type: bigint + default: "0" + indicateur_associe_20_id: + type: bigint + default: "0" + indicateur_associe_2_id: + type: bigint + default: "0" + indicateur_associe_3_id: + type: bigint + default: "0" + indicateur_associe_4_id: + type: bigint + default: "0" + indicateur_associe_5_id: + type: bigint + default: "0" + indicateur_associe_6_id: + type: bigint + default: "0" + indicateur_associe_7_id: + type: bigint + default: "0" + indicateur_associe_8_id: + type: bigint + default: "0" + indicateur_associe_9_id: + type: bigint + default: "0" + indicateur_reference_id: + type: bigint + default: "0" + indicateur_template_id: + type: bigint + default: "0" + is_cti: + type: character(1) + default: "0" + is_hide: + type: character(1) + is_template: + type: text + default: "'0'::text" + last_error: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateurs'::regclass)" + output_format: + type: character varying(10) + default: "'#'::character varying" + table_name: + type: character varying(255) + texte: + type: character varying(255) + theme_id: + type: 'bigint[]' + total_function: + type: character varying(10) + default: "'sum'::character varying" + variable_definition: + type: 'text[]' + variable_value: + type: 'text[]' + variable_value_text: + type: 'text[]' + width: + type: numeric(3,0) + default: "0" +constraints: + t_indicateurs_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_journaux.yaml b/db/schema2/tables/t_journaux.yaml new file mode 100644 index 0000000..04fdab6 --- /dev/null +++ b/db/schema2/tables/t_journaux.yaml @@ -0,0 +1,77 @@ +columns: + a_nouveaux: + type: character(1) + default: "'0'::bpchar" + clinique_honoraire: + type: character(1) + code: + type: text + code_original: + type: text + etat: + type: character(1) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_journaux'::regclass)" + report_automatique_mois_suivant: + type: character(1) + default: "'0'::bpchar" + section1_code: + type: text + default: "''::text" + section1_id: + type: bigint + default: "0" + section1_texte: + type: text + default: "''::text" + section2_code: + type: text + default: "''::text" + section2_id: + type: bigint + default: "0" + section2_texte: + type: text + default: "''::text" + section3_code: + type: text + default: "''::text" + section3_id: + type: bigint + default: "0" + section3_texte: + type: text + default: "''::text" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_journaux_pkey: + type: PRIMARY KEY + column: oid + t_journaux_ukey1: + type: UNIQUE + column: code_original +indexes: + i_journaux_1: + column: clinique_honoraire, code + method: btree + i_journaux_2: + column: code + method: btree + i_journaux_3: + column: '(section_id[1])' + method: btree + i_journaux_4: + column: '(section_id[2])' + method: btree + i_journaux_5: + column: '(section_id[3])' + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_lieux_cout_patient_shs.yaml b/db/schema2/tables/t_lieux_cout_patient_shs.yaml new file mode 100644 index 0000000..ef5ddc1 --- /dev/null +++ b/db/schema2/tables/t_lieux_cout_patient_shs.yaml @@ -0,0 +1,253 @@ +columns: + activite_code: + type: character varying(10) + default: "''::character varying" + activite_code_original: + type: character varying(10) + default: "''::character varying" + activite_id: + type: bigint + default: "0" + activite_section1_code: + type: character varying(10) + default: chr(127) + activite_section1_id: + type: bigint + default: "0" + activite_section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + activite_section2_code: + type: character varying(10) + default: chr(127) + activite_section2_id: + type: bigint + default: "0" + activite_section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + activite_section3_code: + type: character varying(10) + default: chr(127) + activite_section3_id: + type: bigint + default: "0" + activite_section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + activite_section_code: + type: 'text[]' + activite_section_id: + type: 'bigint[]' + activite_section_texte: + type: 'text[]' + activite_texte: + type: character varying(255) + default: "''::character varying" + code_original_5: + type: character varying(10) + default: "''::character varying" + code_original_6: + type: character varying(10) + default: "''::character varying" + code_original_7: + type: character varying(10) + default: "''::character varying" + etage_code: + type: character varying(10) + default: "''::character varying" + etage_code_original: + type: character varying(10) + default: "''::character varying" + etage_id: + type: bigint + default: "0" + etage_section1_code: + type: character varying(10) + default: chr(127) + etage_section1_id: + type: bigint + default: "0" + etage_section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + etage_section2_code: + type: character varying(10) + default: chr(127) + etage_section2_id: + type: bigint + default: "0" + etage_section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + etage_section3_code: + type: character varying(10) + default: chr(127) + etage_section3_id: + type: bigint + default: "0" + etage_section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + etage_section_code: + type: 'text[]' + etage_section_id: + type: 'bigint[]' + etage_section_texte: + type: 'text[]' + etage_texte: + type: character varying(255) + default: "''::character varying" + lit_code: + type: character varying(10) + default: "''::character varying" + lit_code_original: + type: character varying(10) + default: "''::character varying" + lit_id: + type: bigint + default: "0" + lit_section1_code: + type: character varying(10) + default: chr(127) + lit_section1_id: + type: bigint + default: "0" + lit_section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + lit_section2_code: + type: character varying(10) + default: chr(127) + lit_section2_id: + type: bigint + default: "0" + lit_section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + lit_section3_code: + type: character varying(10) + default: chr(127) + lit_section3_id: + type: bigint + default: "0" + lit_section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + lit_section_code: + type: 'text[]' + lit_section_id: + type: 'bigint[]' + lit_section_texte: + type: 'text[]' + lit_texte: + type: character varying(255) + default: "''::character varying" + mode_traitement_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_lieux_cout_patient_shs'::regclass)" + service_facturation_code: + type: character varying(10) + default: "''::character varying" + service_facturation_code_original: + type: character varying(10) + default: "''::character varying" + service_facturation_id: + type: bigint + default: "0" + service_facturation_section1_code: + type: character varying(10) + default: chr(127) + service_facturation_section1_id: + type: bigint + default: "0" + service_facturation_section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + service_facturation_section2_code: + type: character varying(10) + default: chr(127) + service_facturation_section2_id: + type: bigint + default: "0" + service_facturation_section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + service_facturation_section3_code: + type: character varying(10) + default: chr(127) + service_facturation_section3_id: + type: bigint + default: "0" + service_facturation_section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + service_facturation_section_code: + type: 'text[]' + service_facturation_section_id: + type: 'bigint[]' + service_facturation_section_texte: + type: 'text[]' + service_facturation_texte: + type: character varying(255) + default: "''::character varying" + unite_fonctionnelle_id: + type: bigint + default: "0" + unite_medicale_id: + type: bigint + default: "0" +constraints: + t_lieux_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_lieux_cout_patient_shs_1: + column: service_facturation_code_original + method: btree + i_lieux_cout_patient_shs_10: + column: code_original_5 + method: btree + i_lieux_cout_patient_shs_11: + column: code_original_6 + method: btree + i_lieux_cout_patient_shs_12: + column: code_original_7 + method: btree + i_lieux_cout_patient_shs_13: + column: unite_medicale_id + method: btree + i_lieux_cout_patient_shs_14: + column: unite_fonctionnelle_id + method: btree + i_lieux_cout_patient_shs_15: + column: mode_traitement_id + method: btree + i_lieux_cout_patient_shs_2: + column: activite_code_original + method: btree + i_lieux_cout_patient_shs_3: + column: etage_code_original + method: btree + i_lieux_cout_patient_shs_4: + column: lit_code_original + method: btree + i_lieux_cout_patient_shs_5: + column: lit_id + method: btree + i_lieux_cout_patient_shs_6: + column: service_facturation_id + method: btree + i_lieux_cout_patient_shs_7: + column: activite_id + method: btree + i_lieux_cout_patient_shs_8: + column: unite_medicale_id + method: btree + i_lieux_cout_patient_shs_9: + column: unite_fonctionnelle_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes.yaml b/db/schema2/tables/t_listes.yaml new file mode 100644 index 0000000..febdd35 --- /dev/null +++ b/db/schema2/tables/t_listes.yaml @@ -0,0 +1,48 @@ +columns: + chapitre: + type: text + default: "''::text" + code: + type: text + contenu_by_code: + type: text + default: "'0'::text" + contenu_non_replicable_ailleurs: + type: character(1) + default: "'0'::bpchar" + est_partagee_modification: + type: character(1) + default: "'1'::bpchar" + exclude_code: + type: text + default: "''::text" + include_code: + type: text + default: "''::text" + is_cti: + type: character(1) + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_listes'::regclass)" + show_omit: + type: character(1) + default: "'1'::bpchar" + table_id: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: text + utilisateur_createur: + type: text + default: "''::text" +constraints: + t_listes_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_listes_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes_contenu.yaml b/db/schema2/tables/t_listes_contenu.yaml new file mode 100644 index 0000000..450c5ee --- /dev/null +++ b/db/schema2/tables/t_listes_contenu.yaml @@ -0,0 +1,20 @@ +columns: + liste_id: + type: bigint + not_null: NOT NULL + default: "0" + to_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_listes_contenu_ukey: + type: UNIQUE + column: liste_id, to_id +indexes: + i_listes_contenu_1: + column: liste_id + method: btree + i_listes_contenu_2: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes_tables.yaml b/db/schema2/tables/t_listes_tables.yaml new file mode 100644 index 0000000..2e1f86f --- /dev/null +++ b/db/schema2/tables/t_listes_tables.yaml @@ -0,0 +1,21 @@ +columns: + code: + type: text + default: "''::text" + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_listes_tables'::regclass)" + select_cmd: + type: text + texte: + type: text +constraints: + t_listes_tables_pkey: + type: PRIMARY KEY + column: oid + t_listes_tables_ukey: + type: UNIQUE + column: name \ No newline at end of file diff --git a/db/schema2/tables/t_lits_cout_patient_shs.yaml b/db/schema2/tables/t_lits_cout_patient_shs.yaml new file mode 100644 index 0000000..be078f3 --- /dev/null +++ b/db/schema2/tables/t_lits_cout_patient_shs.yaml @@ -0,0 +1,26 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(30) + etage_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_lits_cout_patient_shs'::regclass)" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_lits_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid + t_lits_cout_patient_shs_etage_id_key: + type: UNIQUE + column: code, etage_id +indexes: + i_lits_cout_patient_shs_1: + column: etage_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_medecins_cout_patient_shs.yaml b/db/schema2/tables/t_medecins_cout_patient_shs.yaml new file mode 100644 index 0000000..8ec3789 --- /dev/null +++ b/db/schema2/tables/t_medecins_cout_patient_shs.yaml @@ -0,0 +1,64 @@ +columns: + code: + type: character varying(20) + code_original: + type: character varying(20) + medecin_id: + type: bigint + nom: + type: character varying(255) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_medecins_cout_patient_shs'::regclass)" + prenom: + type: character varying(255) + section1_code: + type: character varying(10) + default: chr(127) + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + section2_code: + type: character varying(10) + default: chr(127) + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + section3_code: + type: character varying(10) + default: chr(127) + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + specialite_id: + type: bigint +constraints: + t_medecins_pkey: + type: PRIMARY KEY + column: oid + t_medecins_ukey: + type: UNIQUE + column: code +indexes: + i_medecins_cout_patient_shs_1: + column: specialite_id + method: btree + i_medecins_cout_patient_shs_2: + column: medecin_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_mode_paiement.yaml b/db/schema2/tables/t_mode_paiement.yaml new file mode 100644 index 0000000..6a361d6 --- /dev/null +++ b/db/schema2/tables/t_mode_paiement.yaml @@ -0,0 +1,64 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_mode_paiement'::regclass)" + section1_code: + type: character varying(10) + default: "''::character varying" + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "''::character varying" + section2_code: + type: character varying(10) + default: "''::character varying" + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "''::character varying" + section3_code: + type: character varying(10) + default: "''::character varying" + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "''::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_mode_paiement_pkey: + type: PRIMARY KEY + column: oid + t_mode_paiement_ukey1: + type: UNIQUE + column: code_original +indexes: + i_mode_paiement_2: + column: code + method: btree + i_mode_paiement_3: + column: '(section_id[1])' + method: btree + i_mode_paiement_4: + column: '(section_id[2])' + method: btree + i_mode_paiement_5: + column: '(section_id[3])' + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_parametres_generaux.yaml b/db/schema2/tables/t_parametres_generaux.yaml new file mode 100644 index 0000000..1286ff6 --- /dev/null +++ b/db/schema2/tables/t_parametres_generaux.yaml @@ -0,0 +1,3 @@ +columns: + mois_fin_exercice: + type: numeric(2,0) \ No newline at end of file diff --git a/db/schema2/tables/t_partenaires.yaml b/db/schema2/tables/t_partenaires.yaml new file mode 100644 index 0000000..9ecdcf1 --- /dev/null +++ b/db/schema2/tables/t_partenaires.yaml @@ -0,0 +1,74 @@ +columns: + code: + type: character varying(30) + default: "''::character varying" + code_original: + type: text + not_null: NOT NULL + intra_groupe: + type: character(1) + default: "'0'::bpchar" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_partenaires'::regclass)" + section1_code: + type: character varying(10) + default: "''::character varying" + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "''::character varying" + section2_code: + type: character varying(10) + default: "''::character varying" + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "''::character varying" + section3_code: + type: character varying(10) + default: "''::character varying" + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "''::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(255) + texte_court: + type: character varying(50) +constraints: + t_partenaires_pkey: + type: PRIMARY KEY + column: oid + t_partenaires_ukey1: + type: UNIQUE + column: code_original +indexes: + i_partenaires_1: + column: '(section_id[1])' + method: btree + i_partenaires_2: + column: '(section_id[2])' + method: btree + i_partenaires_3: + column: '(section_id[3])' + method: btree + i_partenaires_4: + column: code + method: btree + i_partenaires_5: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_pole.yaml b/db/schema2/tables/t_pole.yaml new file mode 100644 index 0000000..c15e0db --- /dev/null +++ b/db/schema2/tables/t_pole.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + default: "''::text" + texte_court: + type: text + default: "''::text" +constraints: + t_pole_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_pole_rule.yaml b/db/schema2/tables/t_pole_rule.yaml new file mode 100644 index 0000000..f4f539c --- /dev/null +++ b/db/schema2/tables/t_pole_rule.yaml @@ -0,0 +1,59 @@ +columns: + code: + type: text + from_rule_id: + type: bigint + not_null: NOT NULL + default: "0" + liste_compte: + type: text + default: "''::text" + liste_exercice: + type: text + default: "''::text" + liste_finess: + type: text + default: "''::text" + liste_journal: + type: text + default: "''::text" + liste_mois_comptable: + type: text + default: "''::text" + liste_sauf_compte: + type: text + default: "''::text" + liste_sauf_journal: + type: text + default: "''::text" + liste_sauf_section_analytique: + type: text + default: "''::text" + liste_section_analytique: + type: text + default: "''::text" + liste_site: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_pole_rule'::regclass)" + pole_id: + type: bigint + not_null: NOT NULL + default: "0" + priorite: + type: numeric(5,0) + special_calc: + type: text + default: "''::text" + special_calc_from: + type: text + default: "''::text" + texte: + type: text +constraints: + t_pole_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_pole_rule_pole.yaml b/db/schema2/tables/t_pole_rule_pole.yaml new file mode 100644 index 0000000..92c5ed6 --- /dev/null +++ b/db/schema2/tables/t_pole_rule_pole.yaml @@ -0,0 +1,30 @@ +columns: + pole_code: + type: text + default: "''::text" + pole_id: + type: bigint + not_null: NOT NULL + default: "0" + pole_rule_id: + type: bigint + default: "0" + pole_section_code: + type: 'text[]' + pole_section_id: + type: 'bigint[]' + pole_section_texte: + type: 'text[]' + pole_texte: + type: text + default: "''::text" + taux: + type: numeric + default: "0" +indexes: + i_pole_rule_pole_pole_id: + column: pole_id + method: btree + i_pole_rule_pole_pole_rule_id: + column: pole_rule_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_rapport_group.yaml b/db/schema2/tables/t_rapport_group.yaml new file mode 100644 index 0000000..7dd9942 --- /dev/null +++ b/db/schema2/tables/t_rapport_group.yaml @@ -0,0 +1,15 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + one_click: + type: text + default: "''::text" + texte: + type: text +constraints: + t_rapport_group_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_rapports.yaml b/db/schema2/tables/t_rapports.yaml new file mode 100644 index 0000000..847fff8 --- /dev/null +++ b/db/schema2/tables/t_rapports.yaml @@ -0,0 +1,65 @@ +columns: + code: + type: text + colonnes_essentiel: + type: text + default: "''::text" + colonnes_essentiel_style: + type: text + default: "''::text" + contexte: + type: text + default: "''::text" + entete: + type: text + default: "''::text" + entete_2: + type: text + default: "''::text" + essentiel_date_level: + type: character(1) + default: "'M'::bpchar" + group_id: + type: bigint + default: "0" + is_cti: + type: character(1) + default: "0" + is_essentiel: + type: character(1) + default: "'0'::bpchar" + is_hide: + type: text + default: "'0'::text" + is_template_updatable: + type: text + default: "'0'::text" + label: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_rapports'::regclass)" + rapport_indicateur_condition_id: + type: 'bigint[]' + rapport_lie_id: + type: 'bigint[]' + rapport_template_id: + type: bigint + default: "0" + serie_entete: + type: 'text[]' + texte: + type: text + type_rapport: + type: text + default: "''::text" +constraints: + t_rapports_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_rapports_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_rapports_rubriques.yaml b/db/schema2/tables/t_rapports_rubriques.yaml new file mode 100644 index 0000000..4565059 --- /dev/null +++ b/db/schema2/tables/t_rapports_rubriques.yaml @@ -0,0 +1,147 @@ +columns: + background_color: + type: character(10) + default: "''::bpchar" + base_nationale: + type: character(1) + default: "'0'::bpchar" + base_nationale_qualifiee: + type: character(1) + default: "'0'::bpchar" + border_thickness: + type: integer + default: "0" + calc_formula: + type: text + default: "''::text" + color: + type: character(10) + default: "''::bpchar" + compared_indicator_id: + type: bigint + default: "0" + description: + type: text + default: "''::text" + description_2: + type: text + default: "''::text" + entete: + type: character varying(255) + default: "''::character varying" + entete_etendue: + type: character varying(255) + default: "''::character varying" + entete_etendue_2: + type: text + default: "''::text" + erase_rapport_indicateur_condition: + type: text + default: "'0'::text" + field_tag: + type: text + default: "''::text" + font_size: + type: integer + default: "0" + font_weight: + type: character(10) + default: "'normal'::bpchar" + hide_on_zero_field: + type: text + default: "''::text" + indicateur_associe_id: + type: bigint + default: "0" + indicateur_condition_id: + type: 'bigint[]' + indicateur_id: + type: bigint + default: "0" + is_hide: + type: text + default: "'0'::text" + last_sql: + type: text + default: "''::text" + last_sql_error: + type: text + default: "''::text" + numero_rubrique: + type: integer + not_null: NOT NULL + option: + type: text + default: "''::text" + output_format: + type: text + default: "''::text" + output_format_2: + type: text + default: "''::text" + padding: + type: integer + default: "0" + periode_reference: + type: character(3) + picto_enabled: + type: character(1) + default: "'1'::bpchar" + comment: "Affiche ou non le pictogramme selon la tendance de l''indicateur (par défaut oui)" + picto_enabled_2: + type: text + default: "''::text" + positif_is_good: + type: character(1) + default: "'1'::bpchar" + comment: Indique si une tendance positive est une bonne chose ou non (par défaut oui) + positif_is_good_2: + type: text + default: "''::text" + rapport_id: + type: bigint + not_null: NOT NULL + default: "0" + row_height: + type: integer + default: "0" + serie_description: + type: 'text[]' + serie_entete_etendue: + type: 'text[]' + serie_indicateur_id: + type: 'bigint[]' + serie_output_format: + type: 'text[]' + serie_picto_enabled: + type: 'text[]' + serie_positif_is_good: + type: 'text[]' + specific_viewlink: + type: text + default: "''::text" + specific_viewlink_label: + type: text + default: "''::text" + specific_viewlink_param: + type: text + default: "''::text" + viewlink: + type: text + default: "''::text" + comment: "Nom de la vue à ouvrir à partir des Essentiels pour l''accès aux détails de l''indicateur" + viewlink_label: + type: text + default: "''::text" + comment: Texte du lien vers la vue de détails + viewlink_param: + type: text + default: "''::text" + comment: Paramétrage des regroupements et des filtres pour les Viewlinks des Essentiels + width: + type: numeric(3,0) + default: "0" +constraints: + t_rapports_rubriques_pkey: + type: PRIMARY KEY + column: numero_rubrique, rapport_id \ No newline at end of file diff --git a/db/schema2/tables/t_sections_analytiques.yaml b/db/schema2/tables/t_sections_analytiques.yaml new file mode 100644 index 0000000..b8237c7 --- /dev/null +++ b/db/schema2/tables/t_sections_analytiques.yaml @@ -0,0 +1,107 @@ +columns: + code: + type: character varying(20) + code_original: + type: text + etat: + type: character(1) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_sections_analytiques'::regclass)" + section1_code: + type: character varying(10) + default: "''::character varying" + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "''::character varying" + section2_code: + type: character varying(10) + default: "''::character varying" + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "''::character varying" + section3_code: + type: character varying(10) + default: "''::character varying" + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "''::character varying" + section4_code: + type: character varying(10) + default: "''::character varying" + section4_id: + type: bigint + default: "0" + section4_texte: + type: character varying(255) + default: "''::character varying" + section5_code: + type: character varying(10) + default: "''::character varying" + section5_id: + type: bigint + default: "0" + section5_texte: + type: character varying(255) + default: "''::character varying" + section6_code: + type: character varying(10) + default: "''::character varying" + section6_id: + type: bigint + default: "0" + section6_texte: + type: character varying(255) + default: "''::character varying" + section7_code: + type: character varying(10) + default: "''::character varying" + section7_id: + type: bigint + default: "0" + section7_texte: + type: character varying(255) + default: "''::character varying" + section8_code: + type: character varying(10) + default: "''::character varying" + section8_id: + type: bigint + default: "0" + section8_texte: + type: character varying(255) + default: "''::character varying" + section9_code: + type: character varying(10) + default: "''::character varying" + section9_id: + type: bigint + default: "0" + section9_texte: + type: character varying(255) + default: "''::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(255) +constraints: + t_sections_analytiques_pkey: + type: PRIMARY KEY + column: oid + t_sections_analytiques_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_services_facturation_cout_patient_shs.yaml b/db/schema2/tables/t_services_facturation_cout_patient_shs.yaml new file mode 100644 index 0000000..2a167db --- /dev/null +++ b/db/schema2/tables/t_services_facturation_cout_patient_shs.yaml @@ -0,0 +1,17 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_services_facturation_cout_patient_shs'::regclass)" + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_services_facturation_cout_patient_shs_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_sites.yaml b/db/schema2/tables/t_sites.yaml new file mode 100644 index 0000000..68db09f --- /dev/null +++ b/db/schema2/tables/t_sites.yaml @@ -0,0 +1,74 @@ +columns: + clinique_honoraire: + type: character(1) + default: "'C'" + code: + type: character varying(10) + code_original: + type: text + not_null: NOT NULL + finess_code: + type: text + default: "''::character varying" + finess_id: + type: bigint + default: "0" + finess_texte: + type: text + default: "''::character varying" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_sites'::regclass)" + section1_code: + type: character varying(10) + default: "''::character varying" + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "''::character varying" + section2_code: + type: character varying(10) + default: "''::character varying" + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "''::character varying" + section3_code: + type: character varying(10) + default: "''::character varying" + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "''::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(50) +constraints: + t_sites_pkey: + type: PRIMARY KEY + column: oid + t_sites_ukey1: + type: UNIQUE + column: code_original +indexes: + i_sites_3: + column: '(section_id[1])' + method: btree + i_sites_4: + column: '(section_id[2])' + method: btree + i_sites_5: + column: '(section_id[3])' + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_types_compta.yaml b/db/schema2/tables/t_types_compta.yaml new file mode 100644 index 0000000..dda7296 --- /dev/null +++ b/db/schema2/tables/t_types_compta.yaml @@ -0,0 +1,21 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_types_compta'::regclass)" + specialite: + type: character(3) + texte: + type: character varying(50) +constraints: + t_types_compta_pkey: + type: PRIMARY KEY + column: oid + t_types_compta_ukey1: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_unites_oeuvre_shs.yaml b/db/schema2/tables/t_unites_oeuvre_shs.yaml new file mode 100644 index 0000000..e5a7c76 --- /dev/null +++ b/db/schema2/tables/t_unites_oeuvre_shs.yaml @@ -0,0 +1,53 @@ +columns: + code: + type: character varying(10) + code_original: + type: character varying(10) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_unites_oeuvre_shs'::regclass)" + section1_code: + type: character varying(10) + default: chr(127) + section1_id: + type: bigint + default: "0" + section1_texte: + type: character varying(255) + default: "'Autres'::character varying" + section2_code: + type: character varying(10) + default: chr(127) + section2_id: + type: bigint + default: "0" + section2_texte: + type: character varying(255) + default: "'Autres'::character varying" + section3_code: + type: character varying(10) + default: chr(127) + section3_id: + type: bigint + default: "0" + section3_texte: + type: character varying(255) + default: "'Autres'::character varying" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: character varying(255) + texte_court: + type: character varying(255) +constraints: + t_unites_oeuvre_shs_pkey: + type: PRIMARY KEY + column: oid + t_unites_oeuvre_shs_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_validation_parametre.yaml b/db/schema2/tables/t_validation_parametre.yaml new file mode 100644 index 0000000..1a777c3 --- /dev/null +++ b/db/schema2/tables/t_validation_parametre.yaml @@ -0,0 +1,30 @@ +columns: + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_validation_parametre'::regclass)" + parametre_code: + type: text + parametre_date: + type: date + default: now() + parametre_id: + type: bigint + default: "0" + parametre_texte: + type: text + parametre_valide: + type: text + default: "'0'::text" + table_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_validation_parametre_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_validation_parametre_table_id: + column: table_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_widget_user_parameter.yaml b/db/schema2/tables/t_widget_user_parameter.yaml new file mode 100644 index 0000000..402e2c2 --- /dev/null +++ b/db/schema2/tables/t_widget_user_parameter.yaml @@ -0,0 +1,34 @@ +columns: + dashboard_widget_id: + type: bigint + h: + type: numeric + include_series_id: + type: 'bigint[]' + max_cat: + type: bigint + default: "0" + oid: + type: text + not_null: NOT NULL + tab_id: + type: bigint + time_calc: + type: text + title: + type: text + username: + type: text + visible: + type: boolean + default: 'false' + w: + type: numeric + x: + type: numeric + y: + type: numeric +constraints: + _widget_user_parameter_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/views/v_activites_cout_patient_shs_1.yaml b/db/schema2/views/v_activites_cout_patient_shs_1.yaml new file mode 100644 index 0000000..04fc528 --- /dev/null +++ b/db/schema2/views/v_activites_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSA'::text + UNION ALL + SELECT 'DT'::text || t_activites_cout_patient_shs.oid::text AS oid, + (t_activites_cout_patient_shs.code::text || ' '::text) || t_activites_cout_patient_shs.texte_court::text AS texte, + t_activites_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_activites_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_activites_cout_patient_shs + WHERE (t_activites_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'activites_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_1.yaml b/db/schema2/views/v_calendrier_1.yaml new file mode 100644 index 0000000..79ccf4a --- /dev/null +++ b/db/schema2/views/v_calendrier_1.yaml @@ -0,0 +1,43 @@ +src: | + SELECT min(p_calendrier.date) AS date, + p_calendrier_mois.annee::text AS texte, + min(p_calendrier.mois::text) AS alias, + min(p_calendrier.mois)::numeric(6,0) AS mois, + '1'::text AS level, + max(p_calendrier.mois)::numeric(6,0) AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois + GROUP BY p_calendrier_mois.annee + UNION ALL + SELECT p_calendrier.date, + p_calendrier_mois.texte_court AS texte, + p_calendrier.mois::text AS alias, + p_calendrier.mois, + '2'::text AS level, + p_calendrier.mois AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois AND substr(p_calendrier.date::text, 9, 2) = '01'::bpchar::text + UNION ALL + SELECT p_calendrier.date, + p_calendrier.texte_court AS texte, + ''::text AS alias, + p_calendrier.mois, + '3'::text AS level, + p_calendrier.mois AS tri1, + p_calendrier.date AS tri2 + FROM base.p_calendrier, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois + ORDER BY 6 DESC, 7, 5; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_2.yaml b/db/schema2/views/v_calendrier_2.yaml new file mode 100644 index 0000000..add3f3d --- /dev/null +++ b/db/schema2/views/v_calendrier_2.yaml @@ -0,0 +1,43 @@ +src: | + SELECT max(p_calendrier.date) AS date, + p_calendrier_mois.annee::text AS texte, + max(p_calendrier.mois::text) AS alias, + max(p_calendrier.mois)::numeric(6,0) AS mois, + '1'::text AS level, + max(p_calendrier.mois)::numeric(6,0) AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois + GROUP BY p_calendrier_mois.annee + UNION ALL + SELECT p_calendrier.date, + p_calendrier_mois.texte_court AS texte, + p_calendrier.mois::text AS alias, + p_calendrier.mois, + '2'::text AS level, + p_calendrier.mois AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois AND p_calendrier.dernier_jour = '1'::bpchar + UNION ALL + SELECT p_calendrier.date, + p_calendrier.texte_court AS texte, + ''::text AS alias, + p_calendrier.mois, + '3'::text AS level, + p_calendrier.mois AS tri1, + p_calendrier.date AS tri2 + FROM base.p_calendrier, + ( SELECT to_number(substr(max(p_mois_comptables.mois_comptable)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_mois_comptables.mois_comptable)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM compta.p_mois_comptables) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois + ORDER BY 6 DESC, 7, 5; \ No newline at end of file diff --git a/db/schema2/views/v_classes_1.yaml b/db/schema2/views/v_classes_1.yaml new file mode 100644 index 0000000..54474ae --- /dev/null +++ b/db/schema2/views/v_classes_1.yaml @@ -0,0 +1,44 @@ +src: | + SELECT t_listes_tables.oid AS table_id, + 0 AS sequence, + t_listes_tables.texte || + CASE + WHEN count(DISTINCT t_classes.oid) > 0 THEN (' ('::text || count(DISTINCT t_classes.oid)::text) || ')'::text + ELSE ''::text + END AS texte, + t_listes_tables.texte AS sort_1, + (-1) AS sort_2, + 0::bigint AS classe_id, + '1'::text AS lvl, + ''::text AS code, + 'compta'::text AS schema + FROM compta.t_listes_tables + LEFT JOIN compta.t_classes ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = ANY (ARRAY['CPT'::text, 'JRN'::text, 'PAR'::text, 'SIT'::text, 'ANA'::text, 'CSF'::text, 'CSA'::text, 'CSE'::text, 'CSU'::text, 'CSC'::text, 'CSM'::text, 'CSG'::text, 'CSH'::text]) + GROUP BY t_listes_tables.oid, t_listes_tables.texte + UNION + SELECT t_classes.table_id, + t_classes.sequence, + t_classes.texte, + t_listes_tables.texte AS sort_1, + t_classes.sequence AS sort_2, + t_classes.oid AS classe_id, + '2'::text AS lvl, + t_classes.code, + 'compta'::text AS schema + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND (t_listes_tables.code = ANY (ARRAY['CPT'::text, 'JRN'::text, 'PAR'::text, 'SIT'::text, 'ANA'::text, 'CSF'::text, 'CSA'::text, 'CSE'::text, 'CSU'::text, 'CSC'::text, 'CSM'::text, 'CSG'::text, 'CSH'::text])) AND t_classes.sequence >= 1 + UNION + SELECT t_listes_tables.oid AS table_id, + (-1) AS sequence, + 'Nouvelle classe'::text AS texte, + t_listes_tables.texte AS sort_1, + 0 AS sort_2, + (-1)::bigint AS classe_id, + '2'::text AS lvl, + ''::text AS code, + 'compta'::text AS schema + FROM compta.t_listes_tables + WHERE t_listes_tables.code = ANY (ARRAY['CPT'::text, 'JRN'::text, 'PAR'::text, 'SIT'::text, 'ANA'::text, 'CSF'::text, 'CSA'::text, 'CSE'::text, 'CSU'::text, 'CSC'::text, 'CSM'::text, 'CSG'::text, 'CSH'::text]) + ORDER BY 4, 5; \ No newline at end of file diff --git a/db/schema2/views/v_comptes_c_1.yaml b/db/schema2/views/v_comptes_c_1.yaml new file mode 100644 index 0000000..59541bf --- /dev/null +++ b/db/schema2/views/v_comptes_c_1.yaml @@ -0,0 +1,81 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + ''::text AS alias, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CPT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + ''::text AS alias, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte::text AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + (('#LS'::text || t_classes.code) || ':'::text) || t_classes_sections.code AS alias, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + ''::text AS alias, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT 'CL'::text || t_classes_comptes.oid::text AS oid, + (t_classes_comptes.code || ' '::text) || t_classes_comptes.texte AS texte, + t_classes_comptes.code, + '1'::text AS level, + '9'::text || t_classes_comptes.code AS tri, + ''::text AS alias, + '0'::character(1) AS is_cti + FROM compta.t_classes_comptes + WHERE t_classes_comptes.texte <> ''::text AND t_classes_comptes.clinique = '1'::bpchar + UNION ALL + SELECT 'CP'::text || t_comptes.oid::text AS oid, + (t_comptes.numero || ' '::text) || t_comptes.texte AS texte, + t_comptes.numero AS code, + '1'::text AS level, + '9'::text || t_comptes.numero AS tri, + ''::text AS alias, + '0'::character(1) AS is_cti + FROM compta.t_comptes + WHERE t_comptes.compte_general_id = t_comptes.oid AND (t_comptes.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'comptes_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_comptes_c_2.yaml b/db/schema2/views/v_comptes_c_2.yaml new file mode 100644 index 0000000..936651f --- /dev/null +++ b/db/schema2/views/v_comptes_c_2.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CPT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte::text AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT 'CP'::text || t_comptes.oid::text AS oid, + (t_comptes.numero || ' '::text) || t_comptes.texte AS texte, + t_comptes.numero AS code, + '1'::text AS level, + '9'::text || t_comptes.numero AS tri, + '0'::character(1) AS is_cti + FROM compta.t_comptes + WHERE (t_comptes.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'comptes_extra_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_comptes_c_3.yaml b/db/schema2/views/v_comptes_c_3.yaml new file mode 100644 index 0000000..ac4da6d --- /dev/null +++ b/db/schema2/views/v_comptes_c_3.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CPT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte::text AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT 'CP'::text || t_comptes.oid::text AS oid, + (t_comptes.numero || ' '::text) || t_comptes.texte AS texte, + t_comptes.numero AS code, + '1'::text AS level, + '9'::text || t_comptes.numero AS tri, + '0'::character(1) AS is_cti + FROM compta.t_comptes + WHERE (t_comptes.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'comptes_budget_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_comptes_h_1.yaml b/db/schema2/views/v_comptes_h_1.yaml new file mode 100644 index 0000000..21e1888 --- /dev/null +++ b/db/schema2/views/v_comptes_h_1.yaml @@ -0,0 +1,75 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CPT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte::text AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT 'CL'::text || t_classes_comptes.oid::text AS oid, + (t_classes_comptes.code || ' '::text) || t_classes_comptes.texte AS texte, + t_classes_comptes.code, + '1'::text AS level, + '9'::text || t_classes_comptes.code AS tri, + '0'::character(1) AS is_cti + FROM compta.t_classes_comptes + WHERE t_classes_comptes.texte <> ''::text AND t_classes_comptes.honoraire = '1'::bpchar + UNION ALL + SELECT 'CP'::text || t_comptes.oid::text AS oid, + (t_comptes.numero || ' '::text) || t_comptes.texte AS texte, + t_comptes.numero AS code, + '1'::text AS level, + '9'::text || t_comptes.numero AS tri, + '0'::character(1) AS is_cti + FROM compta.t_comptes + WHERE t_comptes.compte_general_id = t_comptes.oid AND (t_comptes.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'comptes_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_comptes_h_2.yaml b/db/schema2/views/v_comptes_h_2.yaml new file mode 100644 index 0000000..f3407ec --- /dev/null +++ b/db/schema2/views/v_comptes_h_2.yaml @@ -0,0 +1,67 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CPT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte::text AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CPT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CPT'::text + ) UNION + SELECT 'CP'::text || t_comptes.oid::text AS oid, + (t_comptes.numero || ' '::text) || t_comptes.texte AS texte, + t_comptes.numero AS code, + '1'::text AS level, + '9'::text || t_comptes.numero AS tri, + '0'::character(1) AS is_cti + FROM compta.t_comptes + WHERE (t_comptes.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'comptes_extra_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_cout_bloc_operatoire.yaml b/db/schema2/views/v_cout_bloc_operatoire.yaml new file mode 100644 index 0000000..903a706 --- /dev/null +++ b/db/schema2/views/v_cout_bloc_operatoire.yaml @@ -0,0 +1,41 @@ +src: | + WITH montant_masse_salariale AS ( + SELECT date_part('YEAR'::text, p_croisement_paie_planning.date)::numeric AS annee, + sum(p_croisement_paie_planning.mont_mass_sala_inte_pror_temp_vali) AS masse_salariale_bloc + FROM rh.p_croisement_paie_planning + JOIN rh.t_classes ON t_classes.code = 'CTI_CONTRIBUTION_BLOC_OPERATOIRE'::text + JOIN rh.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN rh.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN rh.p_planning_mouvement ON p_planning_mouvement.oid = p_croisement_paie_planning.planning_id AND p_planning_mouvement.service_id = t_classes_sections_elements.to_id + GROUP BY (date_part('YEAR'::text, p_croisement_paie_planning.date)::numeric) + ), comptes AS ( + SELECT comptes_1.annee, + comptes_1.cout_consommable, + comptes_1.cout_energie, + comptes_1.cout_structure + FROM crosstab('SELECT date_part(''YEAR''::text, p_historique_ecritures.date_ecriture)::numeric AS annee, + t_classes_sections.texte, + sum(p_historique_ecritures.montant_debit) AS montant_debit + FROM compta.p_historique_ecritures + JOIN compta.t_journaux ON p_historique_ecritures.journal_id = t_journaux.oid + JOIN compta.t_comptes_c ON p_historique_ecritures.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_comptes_c t_comptes_c_contrepartie ON p_historique_ecritures.compte_contrepartie_id = t_comptes_c_contrepartie.oid + JOIN compta.t_sites ON p_historique_ecritures.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_historique_ecritures.section_analytique_id = t_sections_analytiques.oid + JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures.compte_budget_id = t_comptes_c_budget.oid + JOIN compta.t_classes ON t_classes.code = ''CTI_CONTRIBUTION_BLOC_OPERATOIRE''::text + JOIN compta.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN compta.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid AND t_classes_sections_elements.to_id = p_historique_ecritures.compte_id + WHERE p_historique_ecritures.journal_id = 2 + GROUP BY 1,2 ORDER BY 1,2'::text) comptes_1(annee numeric, cout_consommable numeric, cout_energie numeric, cout_structure numeric) + ) + SELECT annees.annees AS annee, + montant_masse_salariale.masse_salariale_bloc, + comptes.cout_consommable, + comptes.cout_energie, + comptes.cout_structure + FROM generate_series(date_part('YEAR'::text, now() - '5 years'::interval)::numeric, date_part('YEAR'::text, now())::numeric) annees(annees) + LEFT JOIN montant_masse_salariale ON montant_masse_salariale.annee = annees.annees + LEFT JOIN comptes ON comptes.annee = annees.annees; \ No newline at end of file diff --git a/db/schema2/views/v_couts_patient_shs_1.yaml b/db/schema2/views/v_couts_patient_shs_1.yaml new file mode 100644 index 0000000..f659149 --- /dev/null +++ b/db/schema2/views/v_couts_patient_shs_1.yaml @@ -0,0 +1,203 @@ +src: | + SELECT p_couts_patient_shs.exercice_comptable, + p_couts_patient_shs.exercice_comptable::bigint AS exercice_comptable_id, + p_couts_patient_shs.exercice_comptable::text AS exercice_comptable_code, + p_couts_patient_shs.exercice_comptable::text AS exercice_comptable_texte, + p_couts_patient_shs.mois_comptable, + p_couts_patient_shs.mois_comptable::bigint AS mois_comptable_id, + p_couts_patient_shs.mois_comptable::text AS mois_comptable_code, + p_couts_patient_shs.mois_comptable::text AS mois_comptable_texte, + p_couts_patient_shs.no_sejour, + p_couts_patient_shs.no_facture, + p_couts_patient_shs.date_entree, + p_couts_patient_shs.date_sortie, + p_couts_patient_shs.lieu_id, + t_lieux_cout_patient_shs.service_facturation_code_original, + t_lieux_cout_patient_shs.service_facturation_id, + t_lieux_cout_patient_shs.service_facturation_code, + t_lieux_cout_patient_shs.service_facturation_texte, + t_lieux_cout_patient_shs.service_facturation_section1_id, + t_lieux_cout_patient_shs.service_facturation_section1_code, + t_lieux_cout_patient_shs.service_facturation_section1_texte, + t_lieux_cout_patient_shs.service_facturation_section2_id, + t_lieux_cout_patient_shs.service_facturation_section2_code, + t_lieux_cout_patient_shs.service_facturation_section2_texte, + t_lieux_cout_patient_shs.service_facturation_section3_id, + t_lieux_cout_patient_shs.service_facturation_section3_code, + t_lieux_cout_patient_shs.service_facturation_section3_texte, + t_lieux_cout_patient_shs.activite_code_original, + t_lieux_cout_patient_shs.activite_id, + t_lieux_cout_patient_shs.activite_code, + t_lieux_cout_patient_shs.activite_texte, + t_lieux_cout_patient_shs.activite_section1_id, + t_lieux_cout_patient_shs.activite_section1_code, + t_lieux_cout_patient_shs.activite_section1_texte, + t_lieux_cout_patient_shs.activite_section2_id, + t_lieux_cout_patient_shs.activite_section2_code, + t_lieux_cout_patient_shs.activite_section2_texte, + t_lieux_cout_patient_shs.activite_section3_id, + t_lieux_cout_patient_shs.activite_section3_code, + t_lieux_cout_patient_shs.activite_section3_texte, + t_lieux_cout_patient_shs.etage_code_original, + t_lieux_cout_patient_shs.etage_id, + t_lieux_cout_patient_shs.etage_code, + t_lieux_cout_patient_shs.etage_texte, + t_lieux_cout_patient_shs.etage_section1_id, + t_lieux_cout_patient_shs.etage_section1_code, + t_lieux_cout_patient_shs.etage_section1_texte, + t_lieux_cout_patient_shs.etage_section2_id, + t_lieux_cout_patient_shs.etage_section2_code, + t_lieux_cout_patient_shs.etage_section2_texte, + t_lieux_cout_patient_shs.etage_section3_id, + t_lieux_cout_patient_shs.etage_section3_code, + t_lieux_cout_patient_shs.etage_section3_texte, + t_lieux_cout_patient_shs.lit_code_original, + t_lieux_cout_patient_shs.lit_id, + t_lieux_cout_patient_shs.lit_code, + t_lieux_cout_patient_shs.lit_texte, + t_lieux_cout_patient_shs.lit_section1_id, + t_lieux_cout_patient_shs.lit_section1_code, + t_lieux_cout_patient_shs.lit_section1_texte, + t_lieux_cout_patient_shs.lit_section2_id, + t_lieux_cout_patient_shs.lit_section2_code, + t_lieux_cout_patient_shs.lit_section2_texte, + t_lieux_cout_patient_shs.lit_section3_id, + t_lieux_cout_patient_shs.lit_section3_code, + t_lieux_cout_patient_shs.lit_section3_texte, + p_couts_patient_shs.medecin_administratif_id, + t_medecins_cout_patient_shs.code AS medecin_administratif_code, + t_medecins_cout_patient_shs.code_original AS medecin_administratif_code_original, + (t_medecins_cout_patient_shs.nom::text || ' '::text) || t_medecins_cout_patient_shs.prenom::text AS medecin_administratif_texte, + t_medecins_cout_patient_shs.section1_id AS medecin_administratif_section1_id, + t_medecins_cout_patient_shs.section1_code AS medecin_administratif_section1_code, + t_medecins_cout_patient_shs.section1_texte AS medecin_administratif_section1_texte, + t_medecins_cout_patient_shs.section2_id AS medecin_administratif_section2_id, + t_medecins_cout_patient_shs.section2_code AS medecin_administratif_section2_code, + t_medecins_cout_patient_shs.section2_texte AS medecin_administratif_section2_texte, + t_medecins_cout_patient_shs.section3_id AS medecin_administratif_section3_id, + t_medecins_cout_patient_shs.section3_code AS medecin_administratif_section3_code, + t_medecins_cout_patient_shs.section3_texte AS medecin_administratif_section3_texte, + p_couts_patient_shs.ghs_id, + t_ghs_cout_patient_shs.code AS ghs_code, + t_ghs_cout_patient_shs.texte_court AS ghs_texte, + t_ghs_cout_patient_shs.section1_id AS ghs_section1_id, + t_ghs_cout_patient_shs.section1_code AS ghs_section1_code, + t_ghs_cout_patient_shs.section1_texte AS ghs_section1_texte, + t_ghs_cout_patient_shs.section2_id AS ghs_section2_id, + t_ghs_cout_patient_shs.section2_code AS ghs_section2_code, + t_ghs_cout_patient_shs.section2_texte AS ghs_section2_texte, + t_ghs_cout_patient_shs.section3_id AS ghs_section3_id, + t_ghs_cout_patient_shs.section3_code AS ghs_section3_code, + t_ghs_cout_patient_shs.section3_texte AS ghs_section3_texte, + t_ghs_cout_patient_shs.section6_id AS ghs_section6_id, + t_ghs_cout_patient_shs.section6_code AS ghs_section6_code, + t_ghs_cout_patient_shs.section6_texte AS ghs_section6_texte, + t_ghs_cout_patient_shs.section7_id AS ghs_section7_id, + t_ghs_cout_patient_shs.section7_code AS ghs_section7_code, + t_ghs_cout_patient_shs.section7_texte AS ghs_section7_texte, + t_ghs_cout_patient_shs.section8_id AS ghs_section8_id, + t_ghs_cout_patient_shs.section8_code AS ghs_section8_code, + t_ghs_cout_patient_shs.section8_texte AS ghs_section8_texte, + t_ghs_cout_patient_shs.section9_id AS ghs_section9_id, + t_ghs_cout_patient_shs.section9_code AS ghs_section9_code, + t_ghs_cout_patient_shs.section9_texte AS ghs_section9_texte, + p_couts_patient_shs.element_cout_id, + t_elements_cout_patient_shs.code_original AS element_cout_code_original, + t_elements_cout_patient_shs.code AS element_cout_code, + t_elements_cout_patient_shs.texte_court AS element_cout_texte, + t_elements_cout_patient_shs.section1_id AS element_cout_section1_id, + t_elements_cout_patient_shs.section1_code AS element_cout_section1_code, + t_elements_cout_patient_shs.section1_texte AS element_cout_section1_texte, + t_elements_cout_patient_shs.section2_id AS element_cout_section2_id, + t_elements_cout_patient_shs.section2_code AS element_cout_section2_code, + t_elements_cout_patient_shs.section2_texte AS element_cout_section2_texte, + t_elements_cout_patient_shs.section3_id AS element_cout_section3_id, + t_elements_cout_patient_shs.section3_code AS element_cout_section3_code, + t_elements_cout_patient_shs.section3_texte AS element_cout_section3_texte, + p_couts_patient_shs.unite_oeuvre_id, + t_unites_oeuvre_shs.code_original AS unite_oeuvre_code_original, + t_unites_oeuvre_shs.code AS unite_oeuvre_code, + t_unites_oeuvre_shs.texte_court AS unite_oeuvre_texte, + t_unites_oeuvre_shs.section1_id AS unite_oeuvre_section1_id, + t_unites_oeuvre_shs.section1_code AS unite_oeuvre_section1_code, + t_unites_oeuvre_shs.section1_texte AS unite_oeuvre_section1_texte, + t_unites_oeuvre_shs.section2_id AS unite_oeuvre_section2_id, + t_unites_oeuvre_shs.section2_code AS unite_oeuvre_section2_code, + t_unites_oeuvre_shs.section2_texte AS unite_oeuvre_section2_texte, + t_unites_oeuvre_shs.section3_id AS unite_oeuvre_section3_id, + t_unites_oeuvre_shs.section3_code AS unite_oeuvre_section3_code, + t_unites_oeuvre_shs.section3_texte AS unite_oeuvre_section3_texte, + p_couts_patient_shs.quantite_consommee, + p_couts_patient_shs.prix_unitaire, + p_couts_patient_shs.cout, + p_couts_patient_shs.montant_facture, + p_couts_patient_shs.ghm_id, + t_ghm_cout_patient_shs.code AS ghm_code, + t_ghm_cout_patient_shs.texte_court AS ghm_texte, + t_ghm_cout_patient_shs.section1_id AS ghm_section1_id, + t_ghm_cout_patient_shs.section1_code AS ghm_section1_code, + t_ghm_cout_patient_shs.section1_texte AS ghm_section1_texte, + t_ghm_cout_patient_shs.section2_id AS ghm_section2_id, + t_ghm_cout_patient_shs.section2_code AS ghm_section2_code, + t_ghm_cout_patient_shs.section2_texte AS ghm_section2_texte, + t_ghm_cout_patient_shs.section3_id AS ghm_section3_id, + t_ghm_cout_patient_shs.section3_code AS ghm_section3_code, + t_ghm_cout_patient_shs.section3_texte AS ghm_section3_texte, + t_ghm_cout_patient_shs.section6_id AS ghm_section6_id, + t_ghm_cout_patient_shs.section6_code AS ghm_section6_code, + t_ghm_cout_patient_shs.section6_texte AS ghm_section6_texte, + t_ghm_cout_patient_shs.section7_id AS ghm_section7_id, + t_ghm_cout_patient_shs.section7_code AS ghm_section7_code, + t_ghm_cout_patient_shs.section7_texte AS ghm_section7_texte, + t_ghm_cout_patient_shs.section8_id AS ghm_section8_id, + t_ghm_cout_patient_shs.section8_code AS ghm_section8_code, + t_ghm_cout_patient_shs.section8_texte AS ghm_section8_texte, + t_ghm_cout_patient_shs.section9_id AS ghm_section9_id, + t_ghm_cout_patient_shs.section9_code AS ghm_section9_code, + t_ghm_cout_patient_shs.section9_texte AS ghm_section9_texte, + t_ghm_cout_patient_shs.severite_id AS ghm_severite_id, + t_ghm_cout_patient_shs.severite_code AS ghm_severite_code, + t_ghm_cout_patient_shs.severite_texte AS ghm_severite_texte, + t_ghm_cout_patient_shs.ghm5_id, + t_ghm_cout_patient_shs.ghm5_code, + t_ghm_cout_patient_shs.ghm5_texte, + t_ghm_cout_patient_shs.pole_oap_id, + t_ghm_cout_patient_shs.pole_oap_code, + t_ghm_cout_patient_shs.pole_oap_texte, + t_ghm_cout_patient_shs.ligne_oap_id, + t_ghm_cout_patient_shs.ligne_oap_code, + t_ghm_cout_patient_shs.ligne_oap_texte, + t_lieux_cout_patient_shs.service_facturation_section_id, + t_lieux_cout_patient_shs.service_facturation_section_code, + t_lieux_cout_patient_shs.service_facturation_section_texte, + t_lieux_cout_patient_shs.activite_section_id, + t_lieux_cout_patient_shs.activite_section_code, + t_lieux_cout_patient_shs.activite_section_texte, + t_lieux_cout_patient_shs.etage_section_id, + t_lieux_cout_patient_shs.etage_section_code, + t_lieux_cout_patient_shs.etage_section_texte, + t_lieux_cout_patient_shs.lit_section_id, + t_lieux_cout_patient_shs.lit_section_code, + t_lieux_cout_patient_shs.lit_section_texte, + t_medecins_cout_patient_shs.section_id AS medecin_administratif_section_id, + t_medecins_cout_patient_shs.section_code AS medecin_administratif_section_code, + t_medecins_cout_patient_shs.section_texte AS medecin_administratif_section_texte, + t_ghs_cout_patient_shs.section_id AS ghs_section_id, + t_ghs_cout_patient_shs.section_code AS ghs_section_code, + t_ghs_cout_patient_shs.section_texte AS ghs_section_texte, + t_elements_cout_patient_shs.section_id AS element_cout_section_id, + t_elements_cout_patient_shs.section_code AS element_cout_section_code, + t_elements_cout_patient_shs.section_texte AS element_cout_section_texte, + t_unites_oeuvre_shs.section_id AS unite_oeuvre_section_id, + t_unites_oeuvre_shs.section_code AS unite_oeuvre_section_code, + t_unites_oeuvre_shs.section_texte AS unite_oeuvre_section_texte, + t_ghm_cout_patient_shs.section_id AS ghm_section_id, + t_ghm_cout_patient_shs.section_code AS ghm_section_code, + t_ghm_cout_patient_shs.section_texte AS ghm_section_texte + FROM compta.p_couts_patient_shs + JOIN compta.t_lieux_cout_patient_shs ON p_couts_patient_shs.lieu_id = t_lieux_cout_patient_shs.oid + JOIN compta.t_medecins_cout_patient_shs ON p_couts_patient_shs.medecin_administratif_id = t_medecins_cout_patient_shs.oid + JOIN compta.t_elements_cout_patient_shs ON p_couts_patient_shs.element_cout_id = t_elements_cout_patient_shs.oid + JOIN compta.t_unites_oeuvre_shs ON p_couts_patient_shs.unite_oeuvre_id = t_unites_oeuvre_shs.oid + JOIN compta.t_ghm_cout_patient_shs ON p_couts_patient_shs.ghm_id = t_ghm_cout_patient_shs.oid + JOIN compta.t_ghs_cout_patient_shs ON p_couts_patient_shs.ghs_id = t_ghs_cout_patient_shs.oid; \ No newline at end of file diff --git a/db/schema2/views/v_ecriture_fournisseur_1.yaml b/db/schema2/views/v_ecriture_fournisseur_1.yaml new file mode 100644 index 0000000..d9dfb97 --- /dev/null +++ b/db/schema2/views/v_ecriture_fournisseur_1.yaml @@ -0,0 +1,235 @@ +src: | + SELECT p_ecriture_fournisseur.compte_id, + t_comptes_c.numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section1_id AS compte_section1_id, + t_comptes_c.section1_code AS compte_section1_code, + t_comptes_c.section1_texte AS compte_section1_texte, + t_comptes_c.section2_id AS compte_section2_id, + t_comptes_c.section2_code AS compte_section2_code, + t_comptes_c.section2_texte AS compte_section2_texte, + t_comptes_c.section3_id AS compte_section3_id, + t_comptes_c.section3_code AS compte_section3_code, + t_comptes_c.section3_texte AS compte_section3_texte, + t_comptes_c.section9_id AS compte_section9_id, + t_comptes_c.section9_code AS compte_section9_code, + t_comptes_c.section9_texte AS compte_section9_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.banque AS compte_banque, + p_ecriture_fournisseur.mois_comptable, + p_ecriture_fournisseur.journal_id, + t_journaux.code AS journal_code, + t_journaux.texte AS journal_texte, + t_journaux.a_nouveaux AS journal_a_nouveaux, + t_journaux.section1_id AS journal_section1_id, + t_journaux.section1_code AS journal_section1_code, + t_journaux.section1_texte AS journal_section1_texte, + t_journaux.section2_id AS journal_section2_id, + t_journaux.section2_code AS journal_section2_code, + t_journaux.section2_texte AS journal_section2_texte, + t_journaux.section3_id AS journal_section3_id, + t_journaux.section3_code AS journal_section3_code, + t_journaux.section3_texte AS journal_section3_texte, + p_ecriture_fournisseur.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_ecriture_fournisseur.clinique_honoraire, + p_ecriture_fournisseur.exercice_comptable, + p_ecriture_fournisseur.site_id, + t_sites.code AS site_code, + t_sites.texte AS site_texte, + t_sites.section1_id AS site_section1_id, + t_sites.section1_code AS site_section1_code, + t_sites.section1_texte AS site_section1_texte, + t_sites.section2_id AS site_section2_id, + t_sites.section2_code AS site_section2_code, + t_sites.section2_texte AS site_section2_texte, + t_sites.section3_id AS site_section3_id, + t_sites.section3_code AS site_section3_code, + t_sites.section3_texte AS site_section3_texte, + p_ecriture_fournisseur.partenaire_id, + t_partenaires.code AS partenaire_code, + t_partenaires.texte AS partenaire_texte, + t_partenaires.section1_id AS partenaire_section1_id, + t_partenaires.section1_code AS partenaire_section1_code, + t_partenaires.section1_texte AS partenaire_section1_texte, + t_partenaires.section2_id AS partenaire_section2_id, + t_partenaires.section2_code AS partenaire_section2_code, + t_partenaires.section2_texte AS partenaire_section2_texte, + t_partenaires.section3_id AS partenaire_section3_id, + t_partenaires.section3_code AS partenaire_section3_code, + t_partenaires.section3_texte AS partenaire_section3_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + t_comptes_c_extra.type_compta_id AS type_compta_extra_id, + t_comptes_c_extra.type_compta_code AS type_compta_extra_code, + t_comptes_c_extra.type_compta_texte AS type_compta_extra_texte, + p_ecriture_fournisseur.compte_extra_id, + t_comptes_c_extra.numero AS compte_extra_numero, + t_comptes_c_extra.texte AS compte_extra_texte, + t_comptes_c_extra.section1_id AS compte_extra_section1_id, + t_comptes_c_extra.section1_code AS compte_extra_section1_code, + t_comptes_c_extra.section1_texte AS compte_extra_section1_texte, + t_comptes_c_extra.section2_id AS compte_extra_section2_id, + t_comptes_c_extra.section2_code AS compte_extra_section2_code, + t_comptes_c_extra.section2_texte AS compte_extra_section2_texte, + t_comptes_c_extra.section3_id AS compte_extra_section3_id, + t_comptes_c_extra.section3_code AS compte_extra_section3_code, + t_comptes_c_extra.section3_texte AS compte_extra_section3_texte, + t_comptes_c_extra.section9_id AS compte_extra_section9_id, + t_comptes_c_extra.section9_code AS compte_extra_section9_code, + t_comptes_c_extra.section9_texte AS compte_extra_section9_texte, + p_ecriture_fournisseur.comptabilisee, + p_ecriture_fournisseur.fin_exercice, + p_ecriture_fournisseur.ecriture_consolidee, + p_ecriture_fournisseur.ajustement, + p_ecriture_fournisseur.inter_site, + p_ecriture_fournisseur.date_ecriture, + p_ecriture_fournisseur.identifiant_operation, + p_ecriture_fournisseur.cle_originale, + p_ecriture_fournisseur.compte_contrepartie_id, + p_ecriture_fournisseur.texte, + p_ecriture_fournisseur.date_facture_fournisseur, + p_ecriture_fournisseur.piece, + p_ecriture_fournisseur.dossier, + p_ecriture_fournisseur.date_echeance, + p_ecriture_fournisseur.journal_paiement_id, + t_journaux_paiement.code AS journal_paiement_code, + t_journaux_paiement.texte AS journal_paiement_texte, + t_journaux_paiement.a_nouveaux AS journal_paiement_a_nouveaux, + t_journaux_paiement.section1_id AS journal_paiement_section1_id, + t_journaux_paiement.section1_code AS journal_paiement_section1_code, + t_journaux_paiement.section1_texte AS journal_paiement_section1_texte, + t_journaux_paiement.section2_id AS journal_paiement_section2_id, + t_journaux_paiement.section2_code AS journal_paiement_section2_code, + t_journaux_paiement.section2_texte AS journal_paiement_section2_texte, + t_journaux_paiement.section3_id AS journal_paiement_section3_id, + t_journaux_paiement.section3_code AS journal_paiement_section3_code, + t_journaux_paiement.section3_texte AS journal_paiement_section3_texte, + t_mode_paiement.code AS mode_paiement_code, + t_mode_paiement.texte AS mode_paiement_texte, + t_mode_paiement.section1_id AS mode_paiement_section1_id, + t_mode_paiement.section1_code AS mode_paiement_section1_code, + t_mode_paiement.section1_texte AS mode_paiement_section1_texte, + t_mode_paiement.section2_id AS mode_paiement_section2_id, + t_mode_paiement.section2_code AS mode_paiement_section2_code, + t_mode_paiement.section2_texte AS mode_paiement_section2_texte, + t_mode_paiement.section3_id AS mode_paiement_section3_id, + t_mode_paiement.section3_code AS mode_paiement_section3_code, + t_mode_paiement.section3_texte AS mode_paiement_section3_texte, + p_ecriture_fournisseur.mode_paiement_id, + p_ecriture_fournisseur.numero_cheque, + p_ecriture_fournisseur.montant_credit, + p_ecriture_fournisseur.montant_debit, + p_ecriture_fournisseur.montant_debit - p_ecriture_fournisseur.montant_credit AS montant_solde_debit, + p_ecriture_fournisseur.montant_credit - p_ecriture_fournisseur.montant_debit AS montant_solde_credit, + 1 AS nombre_ecritures, + CASE + WHEN p_ecriture_fournisseur.montant_debit <> 0::numeric THEN floor(abs(p_ecriture_fournisseur.montant_debit)) + ELSE floor(abs(p_ecriture_fournisseur.montant_credit)) + END AS montant_absolu_ecriture, + p_ecriture_fournisseur.facture_soldee, + p_ecriture_fournisseur.ecriture_exclue, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_journaux.section_id AS journal_section_id, + t_journaux.section_code AS journal_section_code, + t_journaux.section_texte AS journal_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sites.section_id AS site_section_id, + t_sites.section_code AS site_section_code, + t_sites.section_texte AS site_section_texte, + t_partenaires.section_id AS partenaire_section_id, + t_partenaires.section_code AS partenaire_section_code, + t_partenaires.section_texte AS partenaire_section_texte, + t_comptes_c_extra.section_id AS compte_extra_section_id, + t_comptes_c_extra.section_code AS compte_extra_section_code, + t_comptes_c_extra.section_texte AS compte_extra_section_texte, + t_journaux_paiement.section_id AS journal_paiement_section_id, + t_journaux_paiement.section_code AS journal_paiement_section_code, + t_journaux_paiement.section_texte AS journal_paiement_section_texte, + t_mode_paiement.section_id AS mode_paiement_section_id, + t_mode_paiement.section_code AS mode_paiement_section_code, + t_mode_paiement.section_texte AS mode_paiement_section_texte + FROM compta.p_ecriture_fournisseur + JOIN compta.t_journaux ON p_ecriture_fournisseur.journal_id = t_journaux.oid + JOIN compta.t_journaux t_journaux_paiement ON p_ecriture_fournisseur.journal_paiement_id = t_journaux_paiement.oid + JOIN compta.t_mode_paiement ON p_ecriture_fournisseur.mode_paiement_id = t_mode_paiement.oid + JOIN compta.t_comptes_c ON p_ecriture_fournisseur.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_ecriture_fournisseur.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_types_compta ON p_ecriture_fournisseur.type_compta_id = t_types_compta.oid + JOIN compta.t_sites ON p_ecriture_fournisseur.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_ecriture_fournisseur.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_ecriture_fournisseur.section_analytique_id = t_sections_analytiques.oid; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_2_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_2_1.yaml new file mode 100644 index 0000000..aafb6f1 --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_2_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_2_id, + t_sections_analytiques.code AS section_analytique_2_code, + t_sections_analytiques.texte AS section_analytique_2_texte, + t_sections_analytiques.section1_id AS section_analytique_2_section1_id, + t_sections_analytiques.section1_code AS section_analytique_2_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_2_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_2_section2_id, + t_sections_analytiques.section2_code AS section_analytique_2_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_2_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_2_section3_id, + t_sections_analytiques.section3_code AS section_analytique_2_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_2_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_2_section4_id, + t_sections_analytiques.section4_code AS section_analytique_2_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_2_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_2_section5_id, + t_sections_analytiques.section5_code AS section_analytique_2_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_2_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_2_section6_id, + t_sections_analytiques.section6_code AS section_analytique_2_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_2_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_2_section7_id, + t_sections_analytiques.section7_code AS section_analytique_2_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_2_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_2_section8_id, + t_sections_analytiques.section8_code AS section_analytique_2_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_2_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_2_section9_id, + t_sections_analytiques.section9_code AS section_analytique_2_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_2_section9_texte, + t_sections_analytiques.section_id AS section_analytique_2_section_id, + t_sections_analytiques.section_code AS section_analytique_2_section_code, + t_sections_analytiques.section_texte AS section_analytique_2_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_3_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_3_1.yaml new file mode 100644 index 0000000..c2c5db8 --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_3_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_3_id, + t_sections_analytiques.code AS section_analytique_3_code, + t_sections_analytiques.texte AS section_analytique_3_texte, + t_sections_analytiques.section1_id AS section_analytique_3_section1_id, + t_sections_analytiques.section1_code AS section_analytique_3_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_3_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_3_section2_id, + t_sections_analytiques.section2_code AS section_analytique_3_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_3_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_3_section3_id, + t_sections_analytiques.section3_code AS section_analytique_3_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_3_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_3_section4_id, + t_sections_analytiques.section4_code AS section_analytique_3_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_3_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_3_section5_id, + t_sections_analytiques.section5_code AS section_analytique_3_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_3_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_3_section6_id, + t_sections_analytiques.section6_code AS section_analytique_3_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_3_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_3_section7_id, + t_sections_analytiques.section7_code AS section_analytique_3_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_3_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_3_section8_id, + t_sections_analytiques.section8_code AS section_analytique_3_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_3_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_3_section9_id, + t_sections_analytiques.section9_code AS section_analytique_3_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_3_section9_texte, + t_sections_analytiques.section_id AS section_analytique_3_section_id, + t_sections_analytiques.section_code AS section_analytique_3_section_code, + t_sections_analytiques.section_texte AS section_analytique_3_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_4_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_4_1.yaml new file mode 100644 index 0000000..342fc9c --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_4_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_4_id, + t_sections_analytiques.code AS section_analytique_4_code, + t_sections_analytiques.texte AS section_analytique_4_texte, + t_sections_analytiques.section1_id AS section_analytique_4_section1_id, + t_sections_analytiques.section1_code AS section_analytique_4_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_4_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_4_section2_id, + t_sections_analytiques.section2_code AS section_analytique_4_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_4_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_4_section3_id, + t_sections_analytiques.section3_code AS section_analytique_4_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_4_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_4_section4_id, + t_sections_analytiques.section4_code AS section_analytique_4_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_4_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_4_section5_id, + t_sections_analytiques.section5_code AS section_analytique_4_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_4_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_4_section6_id, + t_sections_analytiques.section6_code AS section_analytique_4_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_4_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_4_section7_id, + t_sections_analytiques.section7_code AS section_analytique_4_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_4_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_4_section8_id, + t_sections_analytiques.section8_code AS section_analytique_4_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_4_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_4_section9_id, + t_sections_analytiques.section9_code AS section_analytique_4_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_4_section9_texte, + t_sections_analytiques.section_id AS section_analytique_4_section_id, + t_sections_analytiques.section_code AS section_analytique_4_section_code, + t_sections_analytiques.section_texte AS section_analytique_4_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_5_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_5_1.yaml new file mode 100644 index 0000000..0e6ccaf --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_5_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_5_id, + t_sections_analytiques.code AS section_analytique_5_code, + t_sections_analytiques.texte AS section_analytique_5_texte, + t_sections_analytiques.section1_id AS section_analytique_5_section1_id, + t_sections_analytiques.section1_code AS section_analytique_5_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_5_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_5_section2_id, + t_sections_analytiques.section2_code AS section_analytique_5_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_5_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_5_section3_id, + t_sections_analytiques.section3_code AS section_analytique_5_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_5_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_5_section4_id, + t_sections_analytiques.section4_code AS section_analytique_5_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_5_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_5_section5_id, + t_sections_analytiques.section5_code AS section_analytique_5_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_5_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_5_section6_id, + t_sections_analytiques.section6_code AS section_analytique_5_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_5_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_5_section7_id, + t_sections_analytiques.section7_code AS section_analytique_5_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_5_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_5_section8_id, + t_sections_analytiques.section8_code AS section_analytique_5_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_5_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_5_section9_id, + t_sections_analytiques.section9_code AS section_analytique_5_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_5_section9_texte, + t_sections_analytiques.section_id AS section_analytique_5_section_id, + t_sections_analytiques.section_code AS section_analytique_5_section_code, + t_sections_analytiques.section_texte AS section_analytique_5_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_6_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_6_1.yaml new file mode 100644 index 0000000..c4504e9 --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_6_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_6_id, + t_sections_analytiques.code AS section_analytique_6_code, + t_sections_analytiques.texte AS section_analytique_6_texte, + t_sections_analytiques.section1_id AS section_analytique_6_section1_id, + t_sections_analytiques.section1_code AS section_analytique_6_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_6_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_6_section2_id, + t_sections_analytiques.section2_code AS section_analytique_6_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_6_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_6_section3_id, + t_sections_analytiques.section3_code AS section_analytique_6_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_6_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_6_section4_id, + t_sections_analytiques.section4_code AS section_analytique_6_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_6_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_6_section5_id, + t_sections_analytiques.section5_code AS section_analytique_6_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_6_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_6_section6_id, + t_sections_analytiques.section6_code AS section_analytique_6_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_6_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_6_section7_id, + t_sections_analytiques.section7_code AS section_analytique_6_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_6_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_6_section8_id, + t_sections_analytiques.section8_code AS section_analytique_6_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_6_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_6_section9_id, + t_sections_analytiques.section9_code AS section_analytique_6_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_6_section9_texte, + t_sections_analytiques.section_id AS section_analytique_6_section_id, + t_sections_analytiques.section_code AS section_analytique_6_section_code, + t_sections_analytiques.section_texte AS section_analytique_6_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_7_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_7_1.yaml new file mode 100644 index 0000000..9a7f780 --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_7_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_7_id, + t_sections_analytiques.code AS section_analytique_7_code, + t_sections_analytiques.texte AS section_analytique_7_texte, + t_sections_analytiques.section1_id AS section_analytique_7_section1_id, + t_sections_analytiques.section1_code AS section_analytique_7_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_7_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_7_section2_id, + t_sections_analytiques.section2_code AS section_analytique_7_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_7_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_7_section3_id, + t_sections_analytiques.section3_code AS section_analytique_7_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_7_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_7_section4_id, + t_sections_analytiques.section4_code AS section_analytique_7_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_7_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_7_section5_id, + t_sections_analytiques.section5_code AS section_analytique_7_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_7_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_7_section6_id, + t_sections_analytiques.section6_code AS section_analytique_7_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_7_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_7_section7_id, + t_sections_analytiques.section7_code AS section_analytique_7_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_7_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_7_section8_id, + t_sections_analytiques.section8_code AS section_analytique_7_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_7_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_7_section9_id, + t_sections_analytiques.section9_code AS section_analytique_7_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_7_section9_texte, + t_sections_analytiques.section_id AS section_analytique_7_section_id, + t_sections_analytiques.section_code AS section_analytique_7_section_code, + t_sections_analytiques.section_texte AS section_analytique_7_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_8_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_8_1.yaml new file mode 100644 index 0000000..f59471d --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_8_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_8_id, + t_sections_analytiques.code AS section_analytique_8_code, + t_sections_analytiques.texte AS section_analytique_8_texte, + t_sections_analytiques.section1_id AS section_analytique_8_section1_id, + t_sections_analytiques.section1_code AS section_analytique_8_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_8_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_8_section2_id, + t_sections_analytiques.section2_code AS section_analytique_8_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_8_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_8_section3_id, + t_sections_analytiques.section3_code AS section_analytique_8_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_8_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_8_section4_id, + t_sections_analytiques.section4_code AS section_analytique_8_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_8_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_8_section5_id, + t_sections_analytiques.section5_code AS section_analytique_8_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_8_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_8_section6_id, + t_sections_analytiques.section6_code AS section_analytique_8_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_8_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_8_section7_id, + t_sections_analytiques.section7_code AS section_analytique_8_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_8_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_8_section8_id, + t_sections_analytiques.section8_code AS section_analytique_8_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_8_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_8_section9_id, + t_sections_analytiques.section9_code AS section_analytique_8_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_8_section9_texte, + t_sections_analytiques.section_id AS section_analytique_8_section_id, + t_sections_analytiques.section_code AS section_analytique_8_section_code, + t_sections_analytiques.section_texte AS section_analytique_8_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_ecritures_sections_analytiques_9_1.yaml b/db/schema2/views/v_ecritures_sections_analytiques_9_1.yaml new file mode 100644 index 0000000..0d6a4d0 --- /dev/null +++ b/db/schema2/views/v_ecritures_sections_analytiques_9_1.yaml @@ -0,0 +1,35 @@ +src: | + SELECT t_sections_analytiques.oid AS to_section_analytique_9_id, + t_sections_analytiques.code AS section_analytique_9_code, + t_sections_analytiques.texte AS section_analytique_9_texte, + t_sections_analytiques.section1_id AS section_analytique_9_section1_id, + t_sections_analytiques.section1_code AS section_analytique_9_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_9_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_9_section2_id, + t_sections_analytiques.section2_code AS section_analytique_9_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_9_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_9_section3_id, + t_sections_analytiques.section3_code AS section_analytique_9_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_9_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_9_section4_id, + t_sections_analytiques.section4_code AS section_analytique_9_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_9_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_9_section5_id, + t_sections_analytiques.section5_code AS section_analytique_9_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_9_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_9_section6_id, + t_sections_analytiques.section6_code AS section_analytique_9_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_9_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_9_section7_id, + t_sections_analytiques.section7_code AS section_analytique_9_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_9_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_9_section8_id, + t_sections_analytiques.section8_code AS section_analytique_9_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_9_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_9_section9_id, + t_sections_analytiques.section9_code AS section_analytique_9_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_9_section9_texte, + t_sections_analytiques.section_id AS section_analytique_9_section_id, + t_sections_analytiques.section_code AS section_analytique_9_section_code, + t_sections_analytiques.section_texte AS section_analytique_9_section_texte + FROM compta.t_sections_analytiques; \ No newline at end of file diff --git a/db/schema2/views/v_elements_cout_patient_shs_1.yaml b/db/schema2/views/v_elements_cout_patient_shs_1.yaml new file mode 100644 index 0000000..2d9dc9d --- /dev/null +++ b/db/schema2/views/v_elements_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSC'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSC'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSC'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSC'::text + UNION ALL + SELECT 'DT'::text || t_elements_cout_patient_shs.oid::text AS oid, + (t_elements_cout_patient_shs.code::text || ' '::text) || t_elements_cout_patient_shs.texte_court::text AS texte, + t_elements_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_elements_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_elements_cout_patient_shs + WHERE (t_elements_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'elements_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_etages_cout_patient_shs_1.yaml b/db/schema2/views/v_etages_cout_patient_shs_1.yaml new file mode 100644 index 0000000..2f4ac98 --- /dev/null +++ b/db/schema2/views/v_etages_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSE'::text + UNION ALL + SELECT 'DT'::text || t_etages_cout_patient_shs.oid::text AS oid, + (t_etages_cout_patient_shs.code::text || ' '::text) || t_etages_cout_patient_shs.texte_court::text AS texte, + t_etages_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_etages_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_etages_cout_patient_shs + WHERE (t_etages_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'etages_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_ghm5_cout_patient_shs_1.yaml b/db/schema2/views/v_ghm5_cout_patient_shs_1.yaml new file mode 100644 index 0000000..b60df75 --- /dev/null +++ b/db/schema2/views/v_ghm5_cout_patient_shs_1.yaml @@ -0,0 +1,11 @@ +src: | + SELECT DISTINCT 'DT'::text || t_ghm_cout_patient_shs.ghm5_id::text AS oid, + (t_ghm_cout_patient_shs.ghm5_code::text || ' '::text) || t_ghm_cout_patient_shs.ghm5_texte::text AS texte, + t_ghm_cout_patient_shs.ghm5_code, + '1'::text AS level, + '9'::text || t_ghm_cout_patient_shs.ghm5_code::text AS tri + FROM compta.t_ghm_cout_patient_shs + WHERE (t_ghm_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghm_cout_patient_shs'::text)) + ORDER BY '9'::text || t_ghm_cout_patient_shs.ghm5_code::text, 'DT'::text || t_ghm_cout_patient_shs.ghm5_id::text, (t_ghm_cout_patient_shs.ghm5_code::text || ' '::text) || t_ghm_cout_patient_shs.ghm5_texte::text, t_ghm_cout_patient_shs.ghm5_code, '1'::text; \ No newline at end of file diff --git a/db/schema2/views/v_ghm_cout_patient_shs_1.yaml b/db/schema2/views/v_ghm_cout_patient_shs_1.yaml new file mode 100644 index 0000000..2bd49d8 --- /dev/null +++ b/db/schema2/views/v_ghm_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSG'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSG'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSG'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSG'::text + UNION ALL + SELECT 'DT'::text || t_ghm_cout_patient_shs.oid::text AS oid, + (t_ghm_cout_patient_shs.code::text || ' '::text) || t_ghm_cout_patient_shs.texte_court::text AS texte, + t_ghm_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_ghm_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_ghm_cout_patient_shs + WHERE (t_ghm_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghm_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_ghm_severites_cout_patient_shs_1.yaml b/db/schema2/views/v_ghm_severites_cout_patient_shs_1.yaml new file mode 100644 index 0000000..2bf1e48 --- /dev/null +++ b/db/schema2/views/v_ghm_severites_cout_patient_shs_1.yaml @@ -0,0 +1,11 @@ +src: | + SELECT DISTINCT 'DT'::text || t_ghm_cout_patient_shs.severite_id::text AS oid, + (t_ghm_cout_patient_shs.severite_code::text || ' '::text) || t_ghm_cout_patient_shs.severite_texte::text AS texte, + t_ghm_cout_patient_shs.severite_code, + '1'::text AS level, + '9'::text || t_ghm_cout_patient_shs.severite_code::text AS tri + FROM compta.t_ghm_cout_patient_shs + WHERE (t_ghm_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghm_cout_patient_shs'::text)) + ORDER BY '9'::text || t_ghm_cout_patient_shs.severite_code::text, 'DT'::text || t_ghm_cout_patient_shs.severite_id::text, (t_ghm_cout_patient_shs.severite_code::text || ' '::text) || t_ghm_cout_patient_shs.severite_texte::text, t_ghm_cout_patient_shs.severite_code, '1'::text; \ No newline at end of file diff --git a/db/schema2/views/v_ghs_cout_patient_shs_1.yaml b/db/schema2/views/v_ghs_cout_patient_shs_1.yaml new file mode 100644 index 0000000..2e3052a --- /dev/null +++ b/db/schema2/views/v_ghs_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSH'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSH'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSH'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSH'::text + UNION ALL + SELECT 'DT'::text || t_ghs_cout_patient_shs.oid::text AS oid, + (t_ghs_cout_patient_shs.code::text || ' '::text) || t_ghs_cout_patient_shs.texte_court::text AS texte, + t_ghs_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_ghs_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_ghs_cout_patient_shs + WHERE (t_ghs_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghs_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_historique_ecritures_1.yaml b/db/schema2/views/v_historique_ecritures_1.yaml new file mode 100644 index 0000000..393975e --- /dev/null +++ b/db/schema2/views/v_historique_ecritures_1.yaml @@ -0,0 +1,357 @@ +src: | + SELECT p_historique_ecritures.compte_id AS compte_signe_id, + t_comptes_c.compte_nonsigne_id AS compte_id, + t_comptes_c.compte_nonsigne_numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section_id[1] AS compte_section1_id, + t_comptes_c.section_code[1] AS compte_section1_code, + t_comptes_c.section_texte[1] AS compte_section1_texte, + t_comptes_c.section_id[2] AS compte_section2_id, + t_comptes_c.section_code[2] AS compte_section2_code, + t_comptes_c.section_texte[2] AS compte_section2_texte, + t_comptes_c.section_id[3] AS compte_section3_id, + t_comptes_c.section_code[3] AS compte_section3_code, + t_comptes_c.section_texte[3] AS compte_section3_texte, + t_comptes_c.section_id[4] AS compte_section4_id, + t_comptes_c.section_code[4] AS compte_section4_code, + t_comptes_c.section_texte[4] AS compte_section4_texte, + t_comptes_c.section_id[5] AS compte_section5_id, + t_comptes_c.section_code[5] AS compte_section5_code, + t_comptes_c.section_texte[5] AS compte_section5_texte, + t_comptes_c.section_id[6] AS compte_section6_id, + t_comptes_c.section_code[6] AS compte_section6_code, + t_comptes_c.section_texte[6] AS compte_section6_texte, + t_comptes_c.section_id[7] AS compte_section7_id, + t_comptes_c.section_code[7] AS compte_section7_code, + t_comptes_c.section_texte[7] AS compte_section7_texte, + t_comptes_c.section_id[8] AS compte_section8_id, + t_comptes_c.section_code[8] AS compte_section8_code, + t_comptes_c.section_texte[8] AS compte_section8_texte, + t_comptes_c.section_id[9] AS compte_section9_id, + t_comptes_c.section_code[9] AS compte_section9_code, + t_comptes_c.section_texte[9] AS compte_section9_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.banque AS compte_banque, + p_historique_ecritures.mois_comptable, + substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2)::bigint AS numero_mois_comptable_id, + substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2) AS numero_mois_comptable_code, + CASE substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2) + WHEN '01'::text THEN 'Janvier'::text + WHEN '02'::text THEN 'Février'::text + WHEN '03'::text THEN 'Mars'::text + WHEN '04'::text THEN 'Avril'::text + WHEN '05'::text THEN 'Mai'::text + WHEN '06'::text THEN 'Juin'::text + WHEN '07'::text THEN 'Juillet'::text + WHEN '08'::text THEN 'Aout'::text + WHEN '09'::text THEN 'Septembre'::text + WHEN '10'::text THEN 'Octobre'::text + WHEN '11'::text THEN 'Novembre'::text + WHEN '12'::text THEN 'Décembre'::text + ELSE ''::text + END AS numero_mois_comptable_texte, + p_historique_ecritures.journal_id, + t_journaux.code AS journal_code, + t_journaux.texte AS journal_texte, + t_journaux.a_nouveaux AS journal_a_nouveaux, + t_journaux.section1_id AS journal_section1_id, + t_journaux.section1_code AS journal_section1_code, + t_journaux.section1_texte AS journal_section1_texte, + t_journaux.section2_id AS journal_section2_id, + t_journaux.section2_code AS journal_section2_code, + t_journaux.section2_texte AS journal_section2_texte, + t_journaux.section3_id AS journal_section3_id, + t_journaux.section3_code AS journal_section3_code, + t_journaux.section3_texte AS journal_section3_texte, + p_historique_ecritures.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_historique_ecritures.section_analytique_2_id, + p_historique_ecritures.section_analytique_3_id, + p_historique_ecritures.section_analytique_4_id, + p_historique_ecritures.section_analytique_5_id, + p_historique_ecritures.section_analytique_6_id, + p_historique_ecritures.section_analytique_7_id, + p_historique_ecritures.section_analytique_8_id, + p_historique_ecritures.section_analytique_9_id, + p_historique_ecritures.clinique_honoraire, + p_historique_ecritures.exercice_comptable, + p_historique_ecritures.site_id, + t_sites.code AS site_code, + t_sites.texte AS site_texte, + t_sites.section1_id AS site_section1_id, + t_sites.section1_code AS site_section1_code, + t_sites.section1_texte AS site_section1_texte, + t_sites.section2_id AS site_section2_id, + t_sites.section2_code AS site_section2_code, + t_sites.section2_texte AS site_section2_texte, + t_sites.section3_id AS site_section3_id, + t_sites.section3_code AS site_section3_code, + t_sites.section3_texte AS site_section3_texte, + p_historique_ecritures.pole_rule_id, + t_sites.finess_id, + t_sites.finess_code, + t_sites.finess_texte, + p_historique_ecritures.partenaire_id, + t_partenaires.code AS partenaire_code, + t_partenaires.texte AS partenaire_texte, + t_partenaires.section1_id AS partenaire_section1_id, + t_partenaires.section1_code AS partenaire_section1_code, + t_partenaires.section1_texte AS partenaire_section1_texte, + t_partenaires.section2_id AS partenaire_section2_id, + t_partenaires.section2_code AS partenaire_section2_code, + t_partenaires.section2_texte AS partenaire_section2_texte, + t_partenaires.section3_id AS partenaire_section3_id, + t_partenaires.section3_code AS partenaire_section3_code, + t_partenaires.section3_texte AS partenaire_section3_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + t_comptes_c_extra.type_compta_id AS type_compta_extra_id, + t_comptes_c_extra.type_compta_code AS type_compta_extra_code, + t_comptes_c_extra.type_compta_texte AS type_compta_extra_texte, + p_historique_ecritures.compte_extra_id, + t_comptes_c_extra.numero AS compte_extra_numero, + t_comptes_c_extra.texte AS compte_extra_texte, + t_comptes_c_extra.section_id[1] AS compte_extra_section1_id, + t_comptes_c_extra.section_code[1] AS compte_extra_section1_code, + t_comptes_c_extra.section_texte[1] AS compte_extra_section1_texte, + t_comptes_c_extra.section_id[2] AS compte_extra_section2_id, + t_comptes_c_extra.section_code[2] AS compte_extra_section2_code, + t_comptes_c_extra.section_texte[2] AS compte_extra_section2_texte, + t_comptes_c_extra.section_id[3] AS compte_extra_section3_id, + t_comptes_c_extra.section_code[3] AS compte_extra_section3_code, + t_comptes_c_extra.section_texte[3] AS compte_extra_section3_texte, + t_comptes_c_extra.section_id[4] AS compte_extra_section4_id, + t_comptes_c_extra.section_code[4] AS compte_extra_section4_code, + t_comptes_c_extra.section_texte[4] AS compte_extra_section4_texte, + t_comptes_c_extra.section_id[5] AS compte_extra_section5_id, + t_comptes_c_extra.section_code[5] AS compte_extra_section5_code, + t_comptes_c_extra.section_texte[5] AS compte_extra_section5_texte, + t_comptes_c_extra.section_id[6] AS compte_extra_section6_id, + t_comptes_c_extra.section_code[6] AS compte_extra_section6_code, + t_comptes_c_extra.section_texte[6] AS compte_extra_section6_texte, + t_comptes_c_extra.section_id[7] AS compte_extra_section7_id, + t_comptes_c_extra.section_code[7] AS compte_extra_section7_code, + t_comptes_c_extra.section_texte[7] AS compte_extra_section7_texte, + t_comptes_c_extra.section_id[8] AS compte_extra_section8_id, + t_comptes_c_extra.section_code[8] AS compte_extra_section8_code, + t_comptes_c_extra.section_texte[8] AS compte_extra_section8_texte, + t_comptes_c_extra.section_id[9] AS compte_extra_section9_id, + t_comptes_c_extra.section_code[9] AS compte_extra_section9_code, + t_comptes_c_extra.section_texte[9] AS compte_extra_section9_texte, + p_historique_ecritures.compte_budget_id, + t_comptes_c_budget.numero AS compte_budget_numero, + t_comptes_c_budget.texte AS compte_budget_texte, + t_comptes_c_budget.section_id[1] AS compte_budget_section1_id, + t_comptes_c_budget.section_code[1] AS compte_budget_section1_code, + t_comptes_c_budget.section_texte[1] AS compte_budget_section1_texte, + t_comptes_c_budget.section_id[2] AS compte_budget_section2_id, + t_comptes_c_budget.section_code[2] AS compte_budget_section2_code, + t_comptes_c_budget.section_texte[2] AS compte_budget_section2_texte, + t_comptes_c_budget.section_id[3] AS compte_budget_section3_id, + t_comptes_c_budget.section_code[3] AS compte_budget_section3_code, + t_comptes_c_budget.section_texte[3] AS compte_budget_section3_texte, + t_comptes_c_budget.section_id[4] AS compte_budget_section4_id, + t_comptes_c_budget.section_code[4] AS compte_budget_section4_code, + t_comptes_c_budget.section_texte[4] AS compte_budget_section4_texte, + t_comptes_c_budget.section_id[5] AS compte_budget_section5_id, + t_comptes_c_budget.section_code[5] AS compte_budget_section5_code, + t_comptes_c_budget.section_texte[5] AS compte_budget_section5_texte, + t_comptes_c_budget.section_id[6] AS compte_budget_section6_id, + t_comptes_c_budget.section_code[6] AS compte_budget_section6_code, + t_comptes_c_budget.section_texte[6] AS compte_budget_section6_texte, + t_comptes_c_budget.section_id[7] AS compte_budget_section7_id, + t_comptes_c_budget.section_code[7] AS compte_budget_section7_code, + t_comptes_c_budget.section_texte[7] AS compte_budget_section7_texte, + t_comptes_c_budget.section_id[8] AS compte_budget_section8_id, + t_comptes_c_budget.section_code[8] AS compte_budget_section8_code, + t_comptes_c_budget.section_texte[8] AS compte_budget_section8_texte, + t_comptes_c_budget.section_id[9] AS compte_budget_section9_id, + t_comptes_c_budget.section_code[9] AS compte_budget_section9_code, + t_comptes_c_budget.section_texte[9] AS compte_budget_section9_texte, + p_historique_ecritures.comptabilisee, + p_historique_ecritures.fin_exercice, + p_historique_ecritures.ecriture_consolidee, + p_historique_ecritures.ajustement, + p_historique_ecritures.inter_site, + p_historique_ecritures.date_ecriture, + p_historique_ecritures.identifiant_operation, + p_historique_ecritures.cle_originale, + p_historique_ecritures.compte_contrepartie_id, + t_comptes_c_contrepartie.compte_nonsigne_numero AS compte_contrepartie_code, + t_comptes_c_contrepartie.texte AS compte_contrepartie_texte, + t_comptes_c_contrepartie.section_id AS compte_contrepartie_section_id, + t_comptes_c_contrepartie.section_code AS compte_contrepartie_section_code, + t_comptes_c_contrepartie.section_texte AS compte_contrepartie_section_texte, + t_comptes_c_contrepartie.section_id[1] AS compte_contrepartie_section1_id, + t_comptes_c_contrepartie.section_code[1] AS compte_contrepartie_section1_code, + t_comptes_c_contrepartie.section_texte[1] AS compte_contrepartie_section1_texte, + t_comptes_c_contrepartie.section_id[2] AS compte_contrepartie_section2_id, + t_comptes_c_contrepartie.section_code[2] AS compte_contrepartie_section2_code, + t_comptes_c_contrepartie.section_texte[2] AS compte_contrepartie_section2_texte, + t_comptes_c_contrepartie.section_id[3] AS compte_contrepartie_section3_id, + t_comptes_c_contrepartie.section_code[3] AS compte_contrepartie_section3_code, + t_comptes_c_contrepartie.section_texte[3] AS compte_contrepartie_section3_texte, + t_comptes_c_contrepartie.section_id[4] AS compte_contrepartie_section4_id, + t_comptes_c_contrepartie.section_code[4] AS compte_contrepartie_section4_code, + t_comptes_c_contrepartie.section_texte[4] AS compte_contrepartie_section4_texte, + t_comptes_c_contrepartie.section_id[5] AS compte_contrepartie_section5_id, + t_comptes_c_contrepartie.section_code[5] AS compte_contrepartie_section5_code, + t_comptes_c_contrepartie.section_texte[5] AS compte_contrepartie_section5_texte, + t_comptes_c_contrepartie.section_id[6] AS compte_contrepartie_section6_id, + t_comptes_c_contrepartie.section_code[6] AS compte_contrepartie_section6_code, + t_comptes_c_contrepartie.section_texte[6] AS compte_contrepartie_section6_texte, + t_comptes_c_contrepartie.section_id[7] AS compte_contrepartie_section7_id, + t_comptes_c_contrepartie.section_code[7] AS compte_contrepartie_section7_code, + t_comptes_c_contrepartie.section_texte[7] AS compte_contrepartie_section7_texte, + t_comptes_c_contrepartie.section_id[8] AS compte_contrepartie_section8_id, + t_comptes_c_contrepartie.section_code[8] AS compte_contrepartie_section8_code, + t_comptes_c_contrepartie.section_texte[8] AS compte_contrepartie_section8_texte, + t_comptes_c_contrepartie.section_id[9] AS compte_contrepartie_section9_id, + t_comptes_c_contrepartie.section_code[9] AS compte_contrepartie_section9_code, + t_comptes_c_contrepartie.section_texte[9] AS compte_contrepartie_section9_texte, + p_historique_ecritures.texte, + p_historique_ecritures.date_facture_fournisseur, + p_historique_ecritures.piece, + p_historique_ecritures.dossier, + p_historique_ecritures.date_echeance, + p_historique_ecritures.journal_paiement_id, + p_historique_ecritures.mode_paiement_id, + p_historique_ecritures.numero_cheque, + p_historique_ecritures.is_budget, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_credit + ELSE 0::numeric + END AS montant_credit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_debit + ELSE 0::numeric + END AS montant_debit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_debit - p_historique_ecritures.montant_credit + ELSE 0::numeric + END AS montant_solde_debit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_credit - p_historique_ecritures.montant_debit + ELSE 0::numeric + END AS montant_solde_credit, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_credit + ELSE 0::numeric + END AS montant_credit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_debit + ELSE 0::numeric + END AS montant_debit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_debit - p_historique_ecritures.montant_credit + ELSE 0::numeric + END AS montant_solde_debit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_credit - p_historique_ecritures.montant_debit + ELSE 0::numeric + END AS montant_solde_credit_budget, + 1 AS nombre_ecritures, + CASE + WHEN p_historique_ecritures.montant_debit <> 0::numeric THEN floor(abs(p_historique_ecritures.montant_debit)) + ELSE floor(abs(p_historique_ecritures.montant_credit)) + END AS montant_absolu_ecriture, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_journaux.section_id AS journal_section_id, + t_journaux.section_code AS journal_section_code, + t_journaux.section_texte AS journal_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sites.section_id AS site_section_id, + t_sites.section_code AS site_section_code, + t_sites.section_texte AS site_section_texte, + t_partenaires.section_id AS partenaire_section_id, + t_partenaires.section_code AS partenaire_section_code, + t_partenaires.section_texte AS partenaire_section_texte, + t_comptes_c_extra.section_id AS compte_extra_section_id, + t_comptes_c_extra.section_code AS compte_extra_section_code, + t_comptes_c_extra.section_texte AS compte_extra_section_texte, + t_comptes_c_budget.section_id AS compte_budget_section_id, + t_comptes_c_budget.section_code AS compte_budget_section_code, + t_comptes_c_budget.section_texte AS compte_budget_section_texte + FROM compta.p_historique_ecritures + JOIN compta.t_journaux ON p_historique_ecritures.journal_id = t_journaux.oid + JOIN compta.t_comptes_c ON p_historique_ecritures.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_comptes_c t_comptes_c_contrepartie ON p_historique_ecritures.compte_contrepartie_id = t_comptes_c_contrepartie.oid + JOIN compta.t_sites ON p_historique_ecritures.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_historique_ecritures.section_analytique_id = t_sections_analytiques.oid + JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures.compte_budget_id = t_comptes_c_budget.oid; \ No newline at end of file diff --git a/db/schema2/views/v_historique_ecritures_2.yaml b/db/schema2/views/v_historique_ecritures_2.yaml new file mode 100644 index 0000000..ed99bda --- /dev/null +++ b/db/schema2/views/v_historique_ecritures_2.yaml @@ -0,0 +1,364 @@ +src: | + SELECT p_historique_ecritures.compte_id AS compte_signe_id, + t_comptes_c.compte_nonsigne_id AS compte_id, + t_comptes_c.compte_nonsigne_numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section_id[1] AS compte_section1_id, + t_comptes_c.section_code[1] AS compte_section1_code, + t_comptes_c.section_texte[1] AS compte_section1_texte, + t_comptes_c.section_id[2] AS compte_section2_id, + t_comptes_c.section_code[2] AS compte_section2_code, + t_comptes_c.section_texte[2] AS compte_section2_texte, + t_comptes_c.section_id[3] AS compte_section3_id, + t_comptes_c.section_code[3] AS compte_section3_code, + t_comptes_c.section_texte[3] AS compte_section3_texte, + t_comptes_c.section_id[4] AS compte_section4_id, + t_comptes_c.section_code[4] AS compte_section4_code, + t_comptes_c.section_texte[4] AS compte_section4_texte, + t_comptes_c.section_id[5] AS compte_section5_id, + t_comptes_c.section_code[5] AS compte_section5_code, + t_comptes_c.section_texte[5] AS compte_section5_texte, + t_comptes_c.section_id[6] AS compte_section6_id, + t_comptes_c.section_code[6] AS compte_section6_code, + t_comptes_c.section_texte[6] AS compte_section6_texte, + t_comptes_c.section_id[7] AS compte_section7_id, + t_comptes_c.section_code[7] AS compte_section7_code, + t_comptes_c.section_texte[7] AS compte_section7_texte, + t_comptes_c.section_id[8] AS compte_section8_id, + t_comptes_c.section_code[8] AS compte_section8_code, + t_comptes_c.section_texte[8] AS compte_section8_texte, + t_comptes_c.section_id[9] AS compte_section9_id, + t_comptes_c.section_code[9] AS compte_section9_code, + t_comptes_c.section_texte[9] AS compte_section9_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.banque AS compte_banque, + p_historique_ecritures.mois_comptable, + substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2)::bigint AS numero_mois_comptable_id, + substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2) AS numero_mois_comptable_code, + CASE substr(to_char(p_historique_ecritures.mois_comptable, 'FM000000'::text), 5, 2) + WHEN '01'::text THEN 'Janvier'::text + WHEN '02'::text THEN 'Février'::text + WHEN '03'::text THEN 'Mars'::text + WHEN '04'::text THEN 'Avril'::text + WHEN '05'::text THEN 'Mai'::text + WHEN '06'::text THEN 'Juin'::text + WHEN '07'::text THEN 'Juillet'::text + WHEN '08'::text THEN 'Aout'::text + WHEN '09'::text THEN 'Septembre'::text + WHEN '10'::text THEN 'Octobre'::text + WHEN '11'::text THEN 'Novembre'::text + WHEN '12'::text THEN 'Décembre'::text + ELSE ''::text + END AS numero_mois_comptable_texte, + p_historique_ecritures.journal_id, + t_journaux.code AS journal_code, + t_journaux.texte AS journal_texte, + t_journaux.a_nouveaux AS journal_a_nouveaux, + t_journaux.section1_id AS journal_section1_id, + t_journaux.section1_code AS journal_section1_code, + t_journaux.section1_texte AS journal_section1_texte, + t_journaux.section2_id AS journal_section2_id, + t_journaux.section2_code AS journal_section2_code, + t_journaux.section2_texte AS journal_section2_texte, + t_journaux.section3_id AS journal_section3_id, + t_journaux.section3_code AS journal_section3_code, + t_journaux.section3_texte AS journal_section3_texte, + p_historique_ecritures.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_historique_ecritures.section_analytique_2_id, + p_historique_ecritures.section_analytique_3_id, + p_historique_ecritures.section_analytique_4_id, + p_historique_ecritures.section_analytique_5_id, + p_historique_ecritures.section_analytique_6_id, + p_historique_ecritures.section_analytique_7_id, + p_historique_ecritures.section_analytique_8_id, + p_historique_ecritures.section_analytique_9_id, + p_historique_ecritures.clinique_honoraire, + p_historique_ecritures.exercice_comptable, + p_historique_ecritures.site_id, + t_sites.code AS site_code, + t_sites.texte AS site_texte, + t_sites.section1_id AS site_section1_id, + t_sites.section1_code AS site_section1_code, + t_sites.section1_texte AS site_section1_texte, + t_sites.section2_id AS site_section2_id, + t_sites.section2_code AS site_section2_code, + t_sites.section2_texte AS site_section2_texte, + t_sites.section3_id AS site_section3_id, + t_sites.section3_code AS site_section3_code, + t_sites.section3_texte AS site_section3_texte, + p_historique_ecritures.pole_rule_id, + t_sites.finess_id, + t_sites.finess_code, + t_sites.finess_texte, + p_historique_ecritures.partenaire_id, + t_partenaires.code AS partenaire_code, + t_partenaires.texte AS partenaire_texte, + t_partenaires.section1_id AS partenaire_section1_id, + t_partenaires.section1_code AS partenaire_section1_code, + t_partenaires.section1_texte AS partenaire_section1_texte, + t_partenaires.section2_id AS partenaire_section2_id, + t_partenaires.section2_code AS partenaire_section2_code, + t_partenaires.section2_texte AS partenaire_section2_texte, + t_partenaires.section3_id AS partenaire_section3_id, + t_partenaires.section3_code AS partenaire_section3_code, + t_partenaires.section3_texte AS partenaire_section3_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + t_comptes_c_extra.type_compta_id AS type_compta_extra_id, + t_comptes_c_extra.type_compta_code AS type_compta_extra_code, + t_comptes_c_extra.type_compta_texte AS type_compta_extra_texte, + p_historique_ecritures.compte_extra_id, + t_comptes_c_extra.numero AS compte_extra_numero, + t_comptes_c_extra.texte AS compte_extra_texte, + t_comptes_c_extra.section_id[1] AS compte_extra_section1_id, + t_comptes_c_extra.section_code[1] AS compte_extra_section1_code, + t_comptes_c_extra.section_texte[1] AS compte_extra_section1_texte, + t_comptes_c_extra.section_id[2] AS compte_extra_section2_id, + t_comptes_c_extra.section_code[2] AS compte_extra_section2_code, + t_comptes_c_extra.section_texte[2] AS compte_extra_section2_texte, + t_comptes_c_extra.section_id[3] AS compte_extra_section3_id, + t_comptes_c_extra.section_code[3] AS compte_extra_section3_code, + t_comptes_c_extra.section_texte[3] AS compte_extra_section3_texte, + t_comptes_c_extra.section_id[4] AS compte_extra_section4_id, + t_comptes_c_extra.section_code[4] AS compte_extra_section4_code, + t_comptes_c_extra.section_texte[4] AS compte_extra_section4_texte, + t_comptes_c_extra.section_id[5] AS compte_extra_section5_id, + t_comptes_c_extra.section_code[5] AS compte_extra_section5_code, + t_comptes_c_extra.section_texte[5] AS compte_extra_section5_texte, + t_comptes_c_extra.section_id[6] AS compte_extra_section6_id, + t_comptes_c_extra.section_code[6] AS compte_extra_section6_code, + t_comptes_c_extra.section_texte[6] AS compte_extra_section6_texte, + t_comptes_c_extra.section_id[7] AS compte_extra_section7_id, + t_comptes_c_extra.section_code[7] AS compte_extra_section7_code, + t_comptes_c_extra.section_texte[7] AS compte_extra_section7_texte, + t_comptes_c_extra.section_id[8] AS compte_extra_section8_id, + t_comptes_c_extra.section_code[8] AS compte_extra_section8_code, + t_comptes_c_extra.section_texte[8] AS compte_extra_section8_texte, + t_comptes_c_extra.section_id[9] AS compte_extra_section9_id, + t_comptes_c_extra.section_code[9] AS compte_extra_section9_code, + t_comptes_c_extra.section_texte[9] AS compte_extra_section9_texte, + p_historique_ecritures.compte_budget_id, + t_comptes_c_budget.numero AS compte_budget_numero, + t_comptes_c_budget.texte AS compte_budget_texte, + t_comptes_c_budget.section_id[1] AS compte_budget_section1_id, + t_comptes_c_budget.section_code[1] AS compte_budget_section1_code, + t_comptes_c_budget.section_texte[1] AS compte_budget_section1_texte, + t_comptes_c_budget.section_id[2] AS compte_budget_section2_id, + t_comptes_c_budget.section_code[2] AS compte_budget_section2_code, + t_comptes_c_budget.section_texte[2] AS compte_budget_section2_texte, + t_comptes_c_budget.section_id[3] AS compte_budget_section3_id, + t_comptes_c_budget.section_code[3] AS compte_budget_section3_code, + t_comptes_c_budget.section_texte[3] AS compte_budget_section3_texte, + t_comptes_c_budget.section_id[4] AS compte_budget_section4_id, + t_comptes_c_budget.section_code[4] AS compte_budget_section4_code, + t_comptes_c_budget.section_texte[4] AS compte_budget_section4_texte, + t_comptes_c_budget.section_id[5] AS compte_budget_section5_id, + t_comptes_c_budget.section_code[5] AS compte_budget_section5_code, + t_comptes_c_budget.section_texte[5] AS compte_budget_section5_texte, + t_comptes_c_budget.section_id[6] AS compte_budget_section6_id, + t_comptes_c_budget.section_code[6] AS compte_budget_section6_code, + t_comptes_c_budget.section_texte[6] AS compte_budget_section6_texte, + t_comptes_c_budget.section_id[7] AS compte_budget_section7_id, + t_comptes_c_budget.section_code[7] AS compte_budget_section7_code, + t_comptes_c_budget.section_texte[7] AS compte_budget_section7_texte, + t_comptes_c_budget.section_id[8] AS compte_budget_section8_id, + t_comptes_c_budget.section_code[8] AS compte_budget_section8_code, + t_comptes_c_budget.section_texte[8] AS compte_budget_section8_texte, + t_comptes_c_budget.section_id[9] AS compte_budget_section9_id, + t_comptes_c_budget.section_code[9] AS compte_budget_section9_code, + t_comptes_c_budget.section_texte[9] AS compte_budget_section9_texte, + p_historique_ecritures.comptabilisee, + p_historique_ecritures.fin_exercice, + p_historique_ecritures.ecriture_consolidee, + p_historique_ecritures.ajustement, + p_historique_ecritures.inter_site, + p_historique_ecritures.date_ecriture, + p_historique_ecritures.identifiant_operation, + p_historique_ecritures.cle_originale, + p_historique_ecritures.compte_contrepartie_id, + t_comptes_c_contrepartie.compte_nonsigne_numero AS compte_contrepartie_code, + t_comptes_c_contrepartie.texte AS compte_contrepartie_texte, + t_comptes_c_contrepartie.section_id AS compte_contrepartie_section_id, + t_comptes_c_contrepartie.section_code AS compte_contrepartie_section_code, + t_comptes_c_contrepartie.section_texte AS compte_contrepartie_section_texte, + t_comptes_c_contrepartie.section_id[1] AS compte_contrepartie_section1_id, + t_comptes_c_contrepartie.section_code[1] AS compte_contrepartie_section1_code, + t_comptes_c_contrepartie.section_texte[1] AS compte_contrepartie_section1_texte, + t_comptes_c_contrepartie.section_id[2] AS compte_contrepartie_section2_id, + t_comptes_c_contrepartie.section_code[2] AS compte_contrepartie_section2_code, + t_comptes_c_contrepartie.section_texte[2] AS compte_contrepartie_section2_texte, + t_comptes_c_contrepartie.section_id[3] AS compte_contrepartie_section3_id, + t_comptes_c_contrepartie.section_code[3] AS compte_contrepartie_section3_code, + t_comptes_c_contrepartie.section_texte[3] AS compte_contrepartie_section3_texte, + t_comptes_c_contrepartie.section_id[4] AS compte_contrepartie_section4_id, + t_comptes_c_contrepartie.section_code[4] AS compte_contrepartie_section4_code, + t_comptes_c_contrepartie.section_texte[4] AS compte_contrepartie_section4_texte, + t_comptes_c_contrepartie.section_id[5] AS compte_contrepartie_section5_id, + t_comptes_c_contrepartie.section_code[5] AS compte_contrepartie_section5_code, + t_comptes_c_contrepartie.section_texte[5] AS compte_contrepartie_section5_texte, + t_comptes_c_contrepartie.section_id[6] AS compte_contrepartie_section6_id, + t_comptes_c_contrepartie.section_code[6] AS compte_contrepartie_section6_code, + t_comptes_c_contrepartie.section_texte[6] AS compte_contrepartie_section6_texte, + t_comptes_c_contrepartie.section_id[7] AS compte_contrepartie_section7_id, + t_comptes_c_contrepartie.section_code[7] AS compte_contrepartie_section7_code, + t_comptes_c_contrepartie.section_texte[7] AS compte_contrepartie_section7_texte, + t_comptes_c_contrepartie.section_id[8] AS compte_contrepartie_section8_id, + t_comptes_c_contrepartie.section_code[8] AS compte_contrepartie_section8_code, + t_comptes_c_contrepartie.section_texte[8] AS compte_contrepartie_section8_texte, + t_comptes_c_contrepartie.section_id[9] AS compte_contrepartie_section9_id, + t_comptes_c_contrepartie.section_code[9] AS compte_contrepartie_section9_code, + t_comptes_c_contrepartie.section_texte[9] AS compte_contrepartie_section9_texte, + t_pole_rule_pole.pole_id, + t_pole_rule_pole.pole_code, + t_pole_rule_pole.pole_texte, + t_pole_rule_pole.pole_section_id, + t_pole_rule_pole.pole_section_code, + t_pole_rule_pole.pole_section_texte, + p_historique_ecritures.texte, + p_historique_ecritures.date_facture_fournisseur, + p_historique_ecritures.piece, + p_historique_ecritures.dossier, + p_historique_ecritures.date_echeance, + p_historique_ecritures.journal_paiement_id, + p_historique_ecritures.mode_paiement_id, + p_historique_ecritures.numero_cheque, + p_historique_ecritures.is_budget, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_credit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_debit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_debit * t_pole_rule_pole.taux - p_historique_ecritures.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_debit, + CASE + WHEN p_historique_ecritures.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures.montant_credit * t_pole_rule_pole.taux - p_historique_ecritures.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_credit, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_credit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_debit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_debit * t_pole_rule_pole.taux - p_historique_ecritures.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_debit_budget, + CASE + WHEN p_historique_ecritures.is_budget = '1'::text THEN p_historique_ecritures.montant_credit * t_pole_rule_pole.taux - p_historique_ecritures.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_credit_budget, + 1 AS nombre_ecritures, + CASE + WHEN p_historique_ecritures.montant_debit <> 0::numeric THEN floor(abs(p_historique_ecritures.montant_debit * t_pole_rule_pole.taux)) + ELSE floor(abs(p_historique_ecritures.montant_credit * t_pole_rule_pole.taux)) + END AS montant_absolu_ecriture, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_journaux.section_id AS journal_section_id, + t_journaux.section_code AS journal_section_code, + t_journaux.section_texte AS journal_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sites.section_id AS site_section_id, + t_sites.section_code AS site_section_code, + t_sites.section_texte AS site_section_texte, + t_partenaires.section_id AS partenaire_section_id, + t_partenaires.section_code AS partenaire_section_code, + t_partenaires.section_texte AS partenaire_section_texte, + t_comptes_c_extra.section_id AS compte_extra_section_id, + t_comptes_c_extra.section_code AS compte_extra_section_code, + t_comptes_c_extra.section_texte AS compte_extra_section_texte, + t_comptes_c_budget.section_id AS compte_budget_section_id, + t_comptes_c_budget.section_code AS compte_budget_section_code, + t_comptes_c_budget.section_texte AS compte_budget_section_texte + FROM compta.p_historique_ecritures + JOIN compta.t_journaux ON p_historique_ecritures.journal_id = t_journaux.oid + JOIN compta.t_comptes_c ON p_historique_ecritures.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_comptes_c t_comptes_c_contrepartie ON p_historique_ecritures.compte_contrepartie_id = t_comptes_c_contrepartie.oid + JOIN compta.t_sites ON p_historique_ecritures.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_historique_ecritures.section_analytique_id = t_sections_analytiques.oid + JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures.compte_budget_id = t_comptes_c_budget.oid + JOIN compta.t_pole_rule_pole ON p_historique_ecritures.pole_rule_id = t_pole_rule_pole.pole_rule_id; \ No newline at end of file diff --git a/db/schema2/views/v_historique_ecritures_total_1.yaml b/db/schema2/views/v_historique_ecritures_total_1.yaml new file mode 100644 index 0000000..0b87a49 --- /dev/null +++ b/db/schema2/views/v_historique_ecritures_total_1.yaml @@ -0,0 +1,307 @@ +src: | + SELECT p_historique_ecritures_total.compte_id AS compte_signe_id, + t_comptes_c.compte_nonsigne_id AS compte_id, + t_comptes_c.compte_nonsigne_numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section_id[1] AS compte_section1_id, + t_comptes_c.section_code[1] AS compte_section1_code, + t_comptes_c.section_texte[1] AS compte_section1_texte, + t_comptes_c.section_id[2] AS compte_section2_id, + t_comptes_c.section_code[2] AS compte_section2_code, + t_comptes_c.section_texte[2] AS compte_section2_texte, + t_comptes_c.section_id[3] AS compte_section3_id, + t_comptes_c.section_code[3] AS compte_section3_code, + t_comptes_c.section_texte[3] AS compte_section3_texte, + t_comptes_c.section_id[4] AS compte_section4_id, + t_comptes_c.section_code[4] AS compte_section4_code, + t_comptes_c.section_texte[4] AS compte_section4_texte, + t_comptes_c.section_id[5] AS compte_section5_id, + t_comptes_c.section_code[5] AS compte_section5_code, + t_comptes_c.section_texte[5] AS compte_section5_texte, + t_comptes_c.section_id[6] AS compte_section6_id, + t_comptes_c.section_code[6] AS compte_section6_code, + t_comptes_c.section_texte[6] AS compte_section6_texte, + t_comptes_c.section_id[7] AS compte_section7_id, + t_comptes_c.section_code[7] AS compte_section7_code, + t_comptes_c.section_texte[7] AS compte_section7_texte, + t_comptes_c.section_id[8] AS compte_section8_id, + t_comptes_c.section_code[8] AS compte_section8_code, + t_comptes_c.section_texte[8] AS compte_section8_texte, + t_comptes_c.section_id[9] AS compte_section9_id, + t_comptes_c.section_code[9] AS compte_section9_code, + t_comptes_c.section_texte[9] AS compte_section9_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.banque, + p_historique_ecritures_total.mois_comptable, + substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2)::bigint AS numero_mois_comptable_id, + substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2) AS numero_mois_comptable_code, + CASE substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2) + WHEN '01'::text THEN 'Janvier'::text + WHEN '02'::text THEN 'Février'::text + WHEN '03'::text THEN 'Mars'::text + WHEN '04'::text THEN 'Avril'::text + WHEN '05'::text THEN 'Mai'::text + WHEN '06'::text THEN 'Juin'::text + WHEN '07'::text THEN 'Juillet'::text + WHEN '08'::text THEN 'Aout'::text + WHEN '09'::text THEN 'Septembre'::text + WHEN '10'::text THEN 'Octobre'::text + WHEN '11'::text THEN 'Novembre'::text + WHEN '12'::text THEN 'Décembre'::text + ELSE ''::text + END AS numero_mois_comptable_texte, + p_historique_ecritures_total.journal_id, + t_journaux.code AS journal_code, + t_journaux.texte AS journal_texte, + t_journaux.section1_id AS journal_section1_id, + t_journaux.section1_code AS journal_section1_code, + t_journaux.section1_texte AS journal_section1_texte, + t_journaux.section2_id AS journal_section2_id, + t_journaux.section2_code AS journal_section2_code, + t_journaux.section2_texte AS journal_section2_texte, + t_journaux.section3_id AS journal_section3_id, + t_journaux.section3_code AS journal_section3_code, + t_journaux.section3_texte AS journal_section3_texte, + p_historique_ecritures_total.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_historique_ecritures_total.section_analytique_2_id, + p_historique_ecritures_total.section_analytique_3_id, + p_historique_ecritures_total.section_analytique_4_id, + p_historique_ecritures_total.section_analytique_5_id, + p_historique_ecritures_total.section_analytique_6_id, + p_historique_ecritures_total.section_analytique_7_id, + p_historique_ecritures_total.section_analytique_8_id, + p_historique_ecritures_total.section_analytique_9_id, + p_historique_ecritures_total.clinique_honoraire, + p_historique_ecritures_total.exercice_comptable, + p_historique_ecritures_total.pole_rule_id, + p_historique_ecritures_total.site_id, + t_sites.code AS site_code, + t_sites.texte AS site_texte, + t_sites.section1_id AS site_section1_id, + t_sites.section1_code AS site_section1_code, + t_sites.section1_texte AS site_section1_texte, + t_sites.section2_id AS site_section2_id, + t_sites.section2_code AS site_section2_code, + t_sites.section2_texte AS site_section2_texte, + t_sites.section3_id AS site_section3_id, + t_sites.section3_code AS site_section3_code, + t_sites.section3_texte AS site_section3_texte, + t_sites.finess_id, + t_sites.finess_code, + t_sites.finess_texte, + p_historique_ecritures_total.partenaire_id, + t_partenaires.code AS partenaire_code, + t_partenaires.texte AS partenaire_texte, + t_partenaires.section1_id AS partenaire_section1_id, + t_partenaires.section1_code AS partenaire_section1_code, + t_partenaires.section1_texte AS partenaire_section1_texte, + t_partenaires.section2_id AS partenaire_section2_id, + t_partenaires.section2_code AS partenaire_section2_code, + t_partenaires.section2_texte AS partenaire_section2_texte, + t_partenaires.section3_id AS partenaire_section3_id, + t_partenaires.section3_code AS partenaire_section3_code, + t_partenaires.section3_texte AS partenaire_section3_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + t_comptes_c_extra.type_compta_id AS type_compta_extra_id, + t_comptes_c_extra.type_compta_code AS type_compta_extra_code, + t_comptes_c_extra.type_compta_texte AS type_compta_extra_texte, + p_historique_ecritures_total.compte_extra_id, + t_comptes_c_extra.numero AS compte_extra_numero, + t_comptes_c_extra.texte AS compte_extra_texte, + t_comptes_c_extra.section_id[1] AS compte_extra_section1_id, + t_comptes_c_extra.section_code[1] AS compte_extra_section1_code, + t_comptes_c_extra.section_texte[1] AS compte_extra_section1_texte, + t_comptes_c_extra.section_id[2] AS compte_extra_section2_id, + t_comptes_c_extra.section_code[2] AS compte_extra_section2_code, + t_comptes_c_extra.section_texte[2] AS compte_extra_section2_texte, + t_comptes_c_extra.section_id[3] AS compte_extra_section3_id, + t_comptes_c_extra.section_code[3] AS compte_extra_section3_code, + t_comptes_c_extra.section_texte[3] AS compte_extra_section3_texte, + t_comptes_c_extra.section_id[4] AS compte_extra_section4_id, + t_comptes_c_extra.section_code[4] AS compte_extra_section4_code, + t_comptes_c_extra.section_texte[4] AS compte_extra_section4_texte, + t_comptes_c_extra.section_id[5] AS compte_extra_section5_id, + t_comptes_c_extra.section_code[5] AS compte_extra_section5_code, + t_comptes_c_extra.section_texte[5] AS compte_extra_section5_texte, + t_comptes_c_extra.section_id[6] AS compte_extra_section6_id, + t_comptes_c_extra.section_code[6] AS compte_extra_section6_code, + t_comptes_c_extra.section_texte[6] AS compte_extra_section6_texte, + t_comptes_c_extra.section_id[7] AS compte_extra_section7_id, + t_comptes_c_extra.section_code[7] AS compte_extra_section7_code, + t_comptes_c_extra.section_texte[7] AS compte_extra_section7_texte, + t_comptes_c_extra.section_id[8] AS compte_extra_section8_id, + t_comptes_c_extra.section_code[8] AS compte_extra_section8_code, + t_comptes_c_extra.section_texte[8] AS compte_extra_section8_texte, + t_comptes_c_extra.section_id[9] AS compte_extra_section9_id, + t_comptes_c_extra.section_code[9] AS compte_extra_section9_code, + t_comptes_c_extra.section_texte[9] AS compte_extra_section9_texte, + p_historique_ecritures_total.compte_budget_id, + t_comptes_c_budget.numero AS compte_budget_numero, + t_comptes_c_budget.texte AS compte_budget_texte, + t_comptes_c_budget.section_id[1] AS compte_budget_section1_id, + t_comptes_c_budget.section_code[1] AS compte_budget_section1_code, + t_comptes_c_budget.section_texte[1] AS compte_budget_section1_texte, + t_comptes_c_budget.section_id[2] AS compte_budget_section2_id, + t_comptes_c_budget.section_code[2] AS compte_budget_section2_code, + t_comptes_c_budget.section_texte[2] AS compte_budget_section2_texte, + t_comptes_c_budget.section_id[3] AS compte_budget_section3_id, + t_comptes_c_budget.section_code[3] AS compte_budget_section3_code, + t_comptes_c_budget.section_texte[3] AS compte_budget_section3_texte, + t_comptes_c_budget.section_id[4] AS compte_budget_section4_id, + t_comptes_c_budget.section_code[4] AS compte_budget_section4_code, + t_comptes_c_budget.section_texte[4] AS compte_budget_section4_texte, + t_comptes_c_budget.section_id[5] AS compte_budget_section5_id, + t_comptes_c_budget.section_code[5] AS compte_budget_section5_code, + t_comptes_c_budget.section_texte[5] AS compte_budget_section5_texte, + t_comptes_c_budget.section_id[6] AS compte_budget_section6_id, + t_comptes_c_budget.section_code[6] AS compte_budget_section6_code, + t_comptes_c_budget.section_texte[6] AS compte_budget_section6_texte, + t_comptes_c_budget.section_id[7] AS compte_budget_section7_id, + t_comptes_c_budget.section_code[7] AS compte_budget_section7_code, + t_comptes_c_budget.section_texte[7] AS compte_budget_section7_texte, + t_comptes_c_budget.section_id[8] AS compte_budget_section8_id, + t_comptes_c_budget.section_code[8] AS compte_budget_section8_code, + t_comptes_c_budget.section_texte[8] AS compte_budget_section8_texte, + t_comptes_c_budget.section_id[9] AS compte_budget_section9_id, + t_comptes_c_budget.section_code[9] AS compte_budget_section9_code, + t_comptes_c_budget.section_texte[9] AS compte_budget_section9_texte, + p_historique_ecritures_total.comptabilisee, + p_historique_ecritures_total.fin_exercice, + p_historique_ecritures_total.ecriture_consolidee, + p_historique_ecritures_total.ajustement, + p_historique_ecritures_total.inter_site, + p_historique_ecritures_total.is_budget, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_credit + ELSE 0::numeric + END AS montant_credit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_debit + ELSE 0::numeric + END AS montant_debit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_debit - p_historique_ecritures_total.montant_credit + ELSE 0::numeric + END AS montant_solde_debit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_credit - p_historique_ecritures_total.montant_debit + ELSE 0::numeric + END AS montant_solde_credit, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_credit + ELSE 0::numeric + END AS montant_credit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_debit + ELSE 0::numeric + END AS montant_debit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_debit - p_historique_ecritures_total.montant_credit + ELSE 0::numeric + END AS montant_solde_debit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_credit - p_historique_ecritures_total.montant_debit + ELSE 0::numeric + END AS montant_solde_credit_budget, + p_historique_ecritures_total.nombre_ecritures, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_journaux.section_id AS journal_section_id, + t_journaux.section_code AS journal_section_code, + t_journaux.section_texte AS journal_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sites.section_id AS site_section_id, + t_sites.section_code AS site_section_code, + t_sites.section_texte AS site_section_texte, + t_partenaires.section_id AS partenaire_section_id, + t_partenaires.section_code AS partenaire_section_code, + t_partenaires.section_texte AS partenaire_section_texte, + t_comptes_c_extra.section_id AS compte_extra_section_id, + t_comptes_c_extra.section_code AS compte_extra_section_code, + t_comptes_c_extra.section_texte AS compte_extra_section_texte, + t_comptes_c_budget.section_id AS compte_budget_section_id, + t_comptes_c_budget.section_code AS compte_budget_section_code, + t_comptes_c_budget.section_texte AS compte_budget_section_texte + FROM compta.p_historique_ecritures_total + JOIN compta.t_journaux ON p_historique_ecritures_total.journal_id = t_journaux.oid + JOIN compta.t_comptes_c ON p_historique_ecritures_total.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures_total.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_sites ON p_historique_ecritures_total.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_historique_ecritures_total.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_historique_ecritures_total.section_analytique_id = t_sections_analytiques.oid + JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures_total.compte_budget_id = t_comptes_c_budget.oid; \ No newline at end of file diff --git a/db/schema2/views/v_historique_ecritures_total_2.yaml b/db/schema2/views/v_historique_ecritures_total_2.yaml new file mode 100644 index 0000000..0b399db --- /dev/null +++ b/db/schema2/views/v_historique_ecritures_total_2.yaml @@ -0,0 +1,314 @@ +src: | + SELECT p_historique_ecritures_total.compte_id AS compte_signe_id, + t_comptes_c.compte_nonsigne_id AS compte_id, + t_comptes_c.compte_nonsigne_numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section_id[1] AS compte_section1_id, + t_comptes_c.section_code[1] AS compte_section1_code, + t_comptes_c.section_texte[1] AS compte_section1_texte, + t_comptes_c.section_id[2] AS compte_section2_id, + t_comptes_c.section_code[2] AS compte_section2_code, + t_comptes_c.section_texte[2] AS compte_section2_texte, + t_comptes_c.section_id[3] AS compte_section3_id, + t_comptes_c.section_code[3] AS compte_section3_code, + t_comptes_c.section_texte[3] AS compte_section3_texte, + t_comptes_c.section_id[4] AS compte_section4_id, + t_comptes_c.section_code[4] AS compte_section4_code, + t_comptes_c.section_texte[4] AS compte_section4_texte, + t_comptes_c.section_id[5] AS compte_section5_id, + t_comptes_c.section_code[5] AS compte_section5_code, + t_comptes_c.section_texte[5] AS compte_section5_texte, + t_comptes_c.section_id[6] AS compte_section6_id, + t_comptes_c.section_code[6] AS compte_section6_code, + t_comptes_c.section_texte[6] AS compte_section6_texte, + t_comptes_c.section_id[7] AS compte_section7_id, + t_comptes_c.section_code[7] AS compte_section7_code, + t_comptes_c.section_texte[7] AS compte_section7_texte, + t_comptes_c.section_id[8] AS compte_section8_id, + t_comptes_c.section_code[8] AS compte_section8_code, + t_comptes_c.section_texte[8] AS compte_section8_texte, + t_comptes_c.section_id[9] AS compte_section9_id, + t_comptes_c.section_code[9] AS compte_section9_code, + t_comptes_c.section_texte[9] AS compte_section9_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.banque, + p_historique_ecritures_total.mois_comptable, + substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2)::bigint AS numero_mois_comptable_id, + substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2) AS numero_mois_comptable_code, + CASE substr(to_char(p_historique_ecritures_total.mois_comptable, 'FM000000'::text), 5, 2) + WHEN '01'::text THEN 'Janvier'::text + WHEN '02'::text THEN 'Février'::text + WHEN '03'::text THEN 'Mars'::text + WHEN '04'::text THEN 'Avril'::text + WHEN '05'::text THEN 'Mai'::text + WHEN '06'::text THEN 'Juin'::text + WHEN '07'::text THEN 'Juillet'::text + WHEN '08'::text THEN 'Aout'::text + WHEN '09'::text THEN 'Septembre'::text + WHEN '10'::text THEN 'Octobre'::text + WHEN '11'::text THEN 'Novembre'::text + WHEN '12'::text THEN 'Décembre'::text + ELSE ''::text + END AS numero_mois_comptable_texte, + p_historique_ecritures_total.journal_id, + t_journaux.code AS journal_code, + t_journaux.texte AS journal_texte, + t_journaux.section1_id AS journal_section1_id, + t_journaux.section1_code AS journal_section1_code, + t_journaux.section1_texte AS journal_section1_texte, + t_journaux.section2_id AS journal_section2_id, + t_journaux.section2_code AS journal_section2_code, + t_journaux.section2_texte AS journal_section2_texte, + t_journaux.section3_id AS journal_section3_id, + t_journaux.section3_code AS journal_section3_code, + t_journaux.section3_texte AS journal_section3_texte, + p_historique_ecritures_total.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_historique_ecritures_total.section_analytique_2_id, + p_historique_ecritures_total.section_analytique_3_id, + p_historique_ecritures_total.section_analytique_4_id, + p_historique_ecritures_total.section_analytique_5_id, + p_historique_ecritures_total.section_analytique_6_id, + p_historique_ecritures_total.section_analytique_7_id, + p_historique_ecritures_total.section_analytique_8_id, + p_historique_ecritures_total.section_analytique_9_id, + p_historique_ecritures_total.clinique_honoraire, + p_historique_ecritures_total.exercice_comptable, + p_historique_ecritures_total.pole_rule_id, + p_historique_ecritures_total.site_id, + t_sites.code AS site_code, + t_sites.texte AS site_texte, + t_sites.section1_id AS site_section1_id, + t_sites.section1_code AS site_section1_code, + t_sites.section1_texte AS site_section1_texte, + t_sites.section2_id AS site_section2_id, + t_sites.section2_code AS site_section2_code, + t_sites.section2_texte AS site_section2_texte, + t_sites.section3_id AS site_section3_id, + t_sites.section3_code AS site_section3_code, + t_sites.section3_texte AS site_section3_texte, + t_sites.finess_id, + t_sites.finess_code, + t_sites.finess_texte, + p_historique_ecritures_total.partenaire_id, + t_partenaires.code AS partenaire_code, + t_partenaires.texte AS partenaire_texte, + t_partenaires.section1_id AS partenaire_section1_id, + t_partenaires.section1_code AS partenaire_section1_code, + t_partenaires.section1_texte AS partenaire_section1_texte, + t_partenaires.section2_id AS partenaire_section2_id, + t_partenaires.section2_code AS partenaire_section2_code, + t_partenaires.section2_texte AS partenaire_section2_texte, + t_partenaires.section3_id AS partenaire_section3_id, + t_partenaires.section3_code AS partenaire_section3_code, + t_partenaires.section3_texte AS partenaire_section3_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + t_comptes_c_extra.type_compta_id AS type_compta_extra_id, + t_comptes_c_extra.type_compta_code AS type_compta_extra_code, + t_comptes_c_extra.type_compta_texte AS type_compta_extra_texte, + p_historique_ecritures_total.compte_extra_id, + t_comptes_c_extra.numero AS compte_extra_numero, + t_comptes_c_extra.texte AS compte_extra_texte, + t_comptes_c_extra.section_id[1] AS compte_extra_section1_id, + t_comptes_c_extra.section_code[1] AS compte_extra_section1_code, + t_comptes_c_extra.section_texte[1] AS compte_extra_section1_texte, + t_comptes_c_extra.section_id[2] AS compte_extra_section2_id, + t_comptes_c_extra.section_code[2] AS compte_extra_section2_code, + t_comptes_c_extra.section_texte[2] AS compte_extra_section2_texte, + t_comptes_c_extra.section_id[3] AS compte_extra_section3_id, + t_comptes_c_extra.section_code[3] AS compte_extra_section3_code, + t_comptes_c_extra.section_texte[3] AS compte_extra_section3_texte, + t_comptes_c_extra.section_id[4] AS compte_extra_section4_id, + t_comptes_c_extra.section_code[4] AS compte_extra_section4_code, + t_comptes_c_extra.section_texte[4] AS compte_extra_section4_texte, + t_comptes_c_extra.section_id[5] AS compte_extra_section5_id, + t_comptes_c_extra.section_code[5] AS compte_extra_section5_code, + t_comptes_c_extra.section_texte[5] AS compte_extra_section5_texte, + t_comptes_c_extra.section_id[6] AS compte_extra_section6_id, + t_comptes_c_extra.section_code[6] AS compte_extra_section6_code, + t_comptes_c_extra.section_texte[6] AS compte_extra_section6_texte, + t_comptes_c_extra.section_id[7] AS compte_extra_section7_id, + t_comptes_c_extra.section_code[7] AS compte_extra_section7_code, + t_comptes_c_extra.section_texte[7] AS compte_extra_section7_texte, + t_comptes_c_extra.section_id[8] AS compte_extra_section8_id, + t_comptes_c_extra.section_code[8] AS compte_extra_section8_code, + t_comptes_c_extra.section_texte[8] AS compte_extra_section8_texte, + t_comptes_c_extra.section_id[9] AS compte_extra_section9_id, + t_comptes_c_extra.section_code[9] AS compte_extra_section9_code, + t_comptes_c_extra.section_texte[9] AS compte_extra_section9_texte, + p_historique_ecritures_total.compte_budget_id, + t_comptes_c_budget.numero AS compte_budget_numero, + t_comptes_c_budget.texte AS compte_budget_texte, + t_comptes_c_budget.section_id[1] AS compte_budget_section1_id, + t_comptes_c_budget.section_code[1] AS compte_budget_section1_code, + t_comptes_c_budget.section_texte[1] AS compte_budget_section1_texte, + t_comptes_c_budget.section_id[2] AS compte_budget_section2_id, + t_comptes_c_budget.section_code[2] AS compte_budget_section2_code, + t_comptes_c_budget.section_texte[2] AS compte_budget_section2_texte, + t_comptes_c_budget.section_id[3] AS compte_budget_section3_id, + t_comptes_c_budget.section_code[3] AS compte_budget_section3_code, + t_comptes_c_budget.section_texte[3] AS compte_budget_section3_texte, + t_comptes_c_budget.section_id[4] AS compte_budget_section4_id, + t_comptes_c_budget.section_code[4] AS compte_budget_section4_code, + t_comptes_c_budget.section_texte[4] AS compte_budget_section4_texte, + t_comptes_c_budget.section_id[5] AS compte_budget_section5_id, + t_comptes_c_budget.section_code[5] AS compte_budget_section5_code, + t_comptes_c_budget.section_texte[5] AS compte_budget_section5_texte, + t_comptes_c_budget.section_id[6] AS compte_budget_section6_id, + t_comptes_c_budget.section_code[6] AS compte_budget_section6_code, + t_comptes_c_budget.section_texte[6] AS compte_budget_section6_texte, + t_comptes_c_budget.section_id[7] AS compte_budget_section7_id, + t_comptes_c_budget.section_code[7] AS compte_budget_section7_code, + t_comptes_c_budget.section_texte[7] AS compte_budget_section7_texte, + t_comptes_c_budget.section_id[8] AS compte_budget_section8_id, + t_comptes_c_budget.section_code[8] AS compte_budget_section8_code, + t_comptes_c_budget.section_texte[8] AS compte_budget_section8_texte, + t_comptes_c_budget.section_id[9] AS compte_budget_section9_id, + t_comptes_c_budget.section_code[9] AS compte_budget_section9_code, + t_comptes_c_budget.section_texte[9] AS compte_budget_section9_texte, + t_pole_rule_pole.pole_id, + t_pole_rule_pole.pole_code, + t_pole_rule_pole.pole_texte, + t_pole_rule_pole.pole_section_id, + t_pole_rule_pole.pole_section_code, + t_pole_rule_pole.pole_section_texte, + p_historique_ecritures_total.comptabilisee, + p_historique_ecritures_total.fin_exercice, + p_historique_ecritures_total.ecriture_consolidee, + p_historique_ecritures_total.ajustement, + p_historique_ecritures_total.inter_site, + p_historique_ecritures_total.is_budget, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_credit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_debit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux - p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_debit, + CASE + WHEN p_historique_ecritures_total.is_budget IS DISTINCT FROM '1'::text THEN p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux - p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_credit, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_credit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_debit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux - p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_debit_budget, + CASE + WHEN p_historique_ecritures_total.is_budget = '1'::text THEN p_historique_ecritures_total.montant_credit * t_pole_rule_pole.taux - p_historique_ecritures_total.montant_debit * t_pole_rule_pole.taux + ELSE 0::numeric + END AS montant_solde_credit_budget, + p_historique_ecritures_total.nombre_ecritures, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_journaux.section_id AS journal_section_id, + t_journaux.section_code AS journal_section_code, + t_journaux.section_texte AS journal_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sites.section_id AS site_section_id, + t_sites.section_code AS site_section_code, + t_sites.section_texte AS site_section_texte, + t_partenaires.section_id AS partenaire_section_id, + t_partenaires.section_code AS partenaire_section_code, + t_partenaires.section_texte AS partenaire_section_texte, + t_comptes_c_extra.section_id AS compte_extra_section_id, + t_comptes_c_extra.section_code AS compte_extra_section_code, + t_comptes_c_extra.section_texte AS compte_extra_section_texte, + t_comptes_c_budget.section_id AS compte_budget_section_id, + t_comptes_c_budget.section_code AS compte_budget_section_code, + t_comptes_c_budget.section_texte AS compte_budget_section_texte + FROM compta.p_historique_ecritures_total + JOIN compta.t_journaux ON p_historique_ecritures_total.journal_id = t_journaux.oid + JOIN compta.t_comptes_c ON p_historique_ecritures_total.compte_id = t_comptes_c.oid + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures_total.compte_extra_id = t_comptes_c_extra.oid + JOIN compta.t_sites ON p_historique_ecritures_total.site_id = t_sites.oid + JOIN compta.t_partenaires ON p_historique_ecritures_total.partenaire_id = t_partenaires.oid + JOIN compta.t_sections_analytiques ON p_historique_ecritures_total.section_analytique_id = t_sections_analytiques.oid + JOIN compta.t_comptes_c t_comptes_c_budget ON p_historique_ecritures_total.compte_budget_id = t_comptes_c_budget.oid + JOIN compta.t_pole_rule_pole ON p_historique_ecritures_total.pole_rule_id = t_pole_rule_pole.pole_rule_id; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_1.yaml b/db/schema2/views/v_indicateurs_cumules_1.yaml new file mode 100644 index 0000000..7d2284f --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_1.yaml @@ -0,0 +1,6 @@ +src: | + SELECT p_indicateurs_cumules.date_reference AS jour_now, + date(date_trunc('month'::text, p_indicateurs_cumules.date_reference::timestamp with time zone) + '1 mon'::interval - '1 day'::interval) AS mois_now, + date(date_trunc('year'::text, p_indicateurs_cumules.date_reference::timestamp with time zone) + '1 year'::interval - '1 day'::interval) AS annee_now + FROM compta.p_indicateurs_cumules + WHERE p_indicateurs_cumules.periode_type = 'NOW'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_2.yaml b/db/schema2/views/v_indicateurs_cumules_2.yaml new file mode 100644 index 0000000..e2aa225 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_2.yaml @@ -0,0 +1,26 @@ +src: | + SELECT p_indicateurs_cumules.indicateur_id, + 'compta.'::text || t_indicateurs.code AS indicateur_code, + date_part('month'::text, p_indicateurs_cumules.date_reference) AS mois, + p_indicateurs_cumules.date_reference, + CASE date_part('month'::text, p_indicateurs_cumules.date_reference) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_indicateurs_cumules.date_reference)::text + END AS mois_texte, + p_indicateurs_cumules.value, + p_indicateurs_cumules.value_cum, + p_indicateurs_cumules.value_cum12 + FROM compta.p_indicateurs_cumules + JOIN compta.t_indicateurs ON p_indicateurs_cumules.indicateur_id = t_indicateurs.oid + WHERE p_indicateurs_cumules.periode_type = 'M'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_2c.yaml b/db/schema2/views/v_indicateurs_cumules_2c.yaml new file mode 100644 index 0000000..3925a25 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_2c.yaml @@ -0,0 +1,24 @@ +src: | + SELECT 0 AS indicateur_id, + ''::text AS indicateur_code, + date_part('month'::text, p_calendrier_mois.date_debut) AS mois, + p_calendrier_mois.date_debut AS date_reference, + CASE date_part('month'::text, p_calendrier_mois.date_debut) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_calendrier_mois.date_debut)::text + END AS mois_texte, + 0 AS value, + 0 AS value_cum, + 0 AS value_cum12 + FROM base.p_calendrier_mois; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_3.yaml b/db/schema2/views/v_indicateurs_cumules_3.yaml new file mode 100644 index 0000000..d437079 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_3.yaml @@ -0,0 +1,27 @@ +src: | + SELECT p_indicateurs_cumules.indicateur_id, + 'compta.'::text || t_indicateurs.code AS indicateur_code, + to_char(p_indicateurs_cumules.date_reference::timestamp with time zone, 'YYYYMMDD'::text) AS jour, + p_indicateurs_cumules.date_reference, + (date_part('day'::text, p_indicateurs_cumules.date_reference)::text || ' '::text) || + CASE date_part('month'::text, p_indicateurs_cumules.date_reference) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_indicateurs_cumules.date_reference)::text + END AS jour_texte, + p_indicateurs_cumules.value, + p_indicateurs_cumules.value_cum, + p_indicateurs_cumules.value_cum12 + FROM compta.p_indicateurs_cumules + JOIN compta.t_indicateurs ON p_indicateurs_cumules.indicateur_id = t_indicateurs.oid + WHERE p_indicateurs_cumules.periode_type = 'D'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_3c.yaml b/db/schema2/views/v_indicateurs_cumules_3c.yaml new file mode 100644 index 0000000..abacbbc --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_3c.yaml @@ -0,0 +1,25 @@ +src: | + SELECT 0 AS indicateur_id, + ''::text AS indicateur_code, + to_char(p_calendrier.date::timestamp with time zone, 'YYYYMMDD'::text) AS jour, + p_calendrier.date AS date_reference, + (date_part('day'::text, p_calendrier.date)::text || ' '::text) || + CASE date_part('month'::text, p_calendrier.date) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_calendrier.date)::text + END AS jour_texte, + 0 AS value, + 0 AS value_cum, + 0 AS value_cum12 + FROM base.p_calendrier; \ No newline at end of file diff --git a/db/schema2/views/v_journaux_c_1.yaml b/db/schema2/views/v_journaux_c_1.yaml new file mode 100644 index 0000000..c9cfc75 --- /dev/null +++ b/db/schema2/views/v_journaux_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'JRN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT 'JR'::text || t_journaux.oid::text AS oid, + (t_journaux.code::text || ' '::text) || t_journaux.texte::text AS texte, + t_journaux.code, + '1'::text AS level, + '9'::text || t_journaux.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_journaux + WHERE (t_journaux.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'journaux_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_journaux_h_1.yaml b/db/schema2/views/v_journaux_h_1.yaml new file mode 100644 index 0000000..d9a293e --- /dev/null +++ b/db/schema2/views/v_journaux_h_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'JRN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT 'JR'::text || t_journaux.oid::text AS oid, + (t_journaux.code::text || ' '::text) || t_journaux.texte::text AS texte, + t_journaux.code, + '1'::text AS level, + '9'::text || t_journaux.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_journaux + WHERE (t_journaux.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'journaux_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_journaux_paiement_c_1.yaml b/db/schema2/views/v_journaux_paiement_c_1.yaml new file mode 100644 index 0000000..e5c2cca --- /dev/null +++ b/db/schema2/views/v_journaux_paiement_c_1.yaml @@ -0,0 +1,65 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'JRN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT 'JR'::text || t_journaux.oid::text AS oid, + (t_journaux.code::text || ' '::text) || t_journaux.texte::text AS texte, + t_journaux.code, + '1'::text AS level, + '9'::text || t_journaux.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_journaux + WHERE (t_journaux.oid IN ( SELECT p_ecriture_fournisseur.journal_paiement_id + FROM compta.p_ecriture_fournisseur)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_journaux_paiement_h_1.yaml b/db/schema2/views/v_journaux_paiement_h_1.yaml new file mode 100644 index 0000000..e5c2cca --- /dev/null +++ b/db/schema2/views/v_journaux_paiement_h_1.yaml @@ -0,0 +1,65 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'JRN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'JRN'::text + UNION ALL + SELECT 'JR'::text || t_journaux.oid::text AS oid, + (t_journaux.code::text || ' '::text) || t_journaux.texte::text AS texte, + t_journaux.code, + '1'::text AS level, + '9'::text || t_journaux.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_journaux + WHERE (t_journaux.oid IN ( SELECT p_ecriture_fournisseur.journal_paiement_id + FROM compta.p_ecriture_fournisseur)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_lignes_oap_cout_patient_shs_1.yaml b/db/schema2/views/v_lignes_oap_cout_patient_shs_1.yaml new file mode 100644 index 0000000..248fd9c --- /dev/null +++ b/db/schema2/views/v_lignes_oap_cout_patient_shs_1.yaml @@ -0,0 +1,11 @@ +src: | + SELECT DISTINCT 'DT'::text || t_ghm_cout_patient_shs.ligne_oap_id::text AS oid, + (t_ghm_cout_patient_shs.ligne_oap_code::text || ' '::text) || t_ghm_cout_patient_shs.ligne_oap_texte::text AS texte, + t_ghm_cout_patient_shs.ligne_oap_code, + '1'::text AS level, + '9'::text || t_ghm_cout_patient_shs.ligne_oap_code::text AS tri + FROM compta.t_ghm_cout_patient_shs + WHERE (t_ghm_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghm_cout_patient_shs'::text)) + ORDER BY '9'::text || t_ghm_cout_patient_shs.ligne_oap_code::text, 'DT'::text || t_ghm_cout_patient_shs.ligne_oap_id::text, (t_ghm_cout_patient_shs.ligne_oap_code::text || ' '::text) || t_ghm_cout_patient_shs.ligne_oap_texte::text, t_ghm_cout_patient_shs.ligne_oap_code, '1'::text; \ No newline at end of file diff --git a/db/schema2/views/v_listes_1.yaml b/db/schema2/views/v_listes_1.yaml new file mode 100644 index 0000000..8b6dae5 --- /dev/null +++ b/db/schema2/views/v_listes_1.yaml @@ -0,0 +1,125 @@ +dep: + - v_listes_4 +src: | + SELECT v_listes_4.table_texte || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.table_texte || + CASE + WHEN count(DISTINCT + CASE + WHEN v_listes_4.liste_id <> 0 THEN v_listes_4.liste_id + ELSE NULL::bigint + END) > 0 THEN (' ('::text || count(DISTINCT + CASE + WHEN v_listes_4.liste_id <> 0 THEN v_listes_4.liste_id + ELSE NULL::bigint + END)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '0'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + ''::text AS chapitre, + ''::text AS sous_chapitre, + '-2'::text AS liste_id_combo + FROM compta.v_listes_4 + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.table_schema + UNION ALL + SELECT (((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '1'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS chapitre, + ''::text AS sous_chapitre, + '-2'::text AS liste_id_combo + FROM compta.v_listes_4 + WHERE v_listes_4.liste_id <> 0 AND v_listes_4.liste_chapitre <> ''::text + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.liste_chapitre, v_listes_4.liste_chapitre_sortkey, v_listes_4.table_schema + UNION ALL + SELECT (((((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1)) || v_listes_4.liste_sous_chapitre::text) || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.liste_sous_chapitre::text || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '2'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS chapitre, + (v_listes_4.liste_sous_chapitre::text || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS sous_chapitre, + '-2'::text AS liste_id_combo + FROM compta.v_listes_4 + WHERE v_listes_4.liste_id <> 0 AND v_listes_4.liste_sous_chapitre::text <> ''::text + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.liste_chapitre, v_listes_4.liste_chapitre_sortkey, v_listes_4.liste_sous_chapitre, v_listes_4.table_schema + UNION ALL + SELECT (((((((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1)) || v_listes_4.liste_sous_chapitre::text) || chr(1)) || v_listes_4.liste_is_omit) || v_listes_4.liste_texte::text AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + v_listes_4.liste_texte AS texte, + v_listes_4.liste_id, + CASE + WHEN v_listes_4.liste_chapitre = ''::text THEN '1'::text + WHEN v_listes_4.liste_sous_chapitre::text = ''::text THEN '2'::text + ELSE '3'::text + END AS lvl, + v_listes_4.liste_code AS code, + v_listes_4.liste_is_cti AS is_cti, + v_listes_4.liste_is_groupe AS is_groupe, + v_listes_4.table_schema AS schema, + v_listes_4.liste_utilisateur_createur AS utilisateur_createur, + v_listes_4.liste_est_partagee_modification AS est_partagee_modification, + v_listes_4.liste_show_omit, + v_listes_4.liste_is_omit, + v_listes_4.liste_chapitre AS chapitre, + v_listes_4.liste_sous_chapitre AS sous_chapitre, + CASE + WHEN v_listes_4.liste_id = 0 THEN '-2'::text + WHEN v_listes_4.liste_is_omit = '1'::text THEN 'SL'::text || v_listes_4.liste_id::text + ELSE 'LI'::text || v_listes_4.liste_id::text + END AS liste_id_combo + FROM compta.v_listes_4 + WHERE v_listes_4.liste_id <> 0 + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_listes_2.yaml b/db/schema2/views/v_listes_2.yaml new file mode 100644 index 0000000..609e27d --- /dev/null +++ b/db/schema2/views/v_listes_2.yaml @@ -0,0 +1,10 @@ +src: | + SELECT t_listes_tables.name AS table_name, + t_listes_tables.texte AS table_texte, + t_listes.oid AS liste_id, + t_listes.texte AS liste_texte, + t_listes_contenu.to_id + FROM compta.t_listes, + compta.t_listes_tables, + compta.t_listes_contenu + WHERE t_listes.table_id = t_listes_tables.oid AND t_listes.oid = t_listes_contenu.liste_id; \ No newline at end of file diff --git a/db/schema2/views/v_listes_3.yaml b/db/schema2/views/v_listes_3.yaml new file mode 100644 index 0000000..fddf257 --- /dev/null +++ b/db/schema2/views/v_listes_3.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_listes.oid AS liste_id, + t_listes.code AS liste_code, + t_listes.texte AS liste_texte, + t_listes_contenu.to_id + FROM compta.t_listes, + compta.t_listes_contenu + WHERE t_listes.oid = t_listes_contenu.liste_id; \ No newline at end of file diff --git a/db/schema2/views/v_listes_4.yaml b/db/schema2/views/v_listes_4.yaml new file mode 100644 index 0000000..8a2a116 --- /dev/null +++ b/db/schema2/views/v_listes_4.yaml @@ -0,0 +1,81 @@ +src: | + SELECT 'compta'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying) AS liste_code, + COALESCE(t_listes.texte, ''::character varying) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code::text, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '0'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code::text, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code::text, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code::text, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code::text, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'HPM_'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying) AS liste_sous_chapitre + FROM compta.t_listes_tables + LEFT JOIN compta.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + UNION ALL + SELECT 'compta'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying) AS liste_code, + COALESCE('Sauf '::text || t_listes.texte::text, ''::character varying::text) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code::text, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '1'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code::text, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code::text, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code::text, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code::text, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code::text, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code::text, 1, 4) = 'HPM_'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying) AS liste_sous_chapitre + FROM compta.t_listes_tables + LEFT JOIN compta.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + WHERE t_listes.show_omit = '1'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_cout_patient_shs_1.yaml b/db/schema2/views/v_medecins_cout_patient_shs_1.yaml new file mode 100644 index 0000000..4318075 --- /dev/null +++ b/db/schema2/views/v_medecins_cout_patient_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSM'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSM'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSM'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSM'::text + UNION ALL + SELECT 'DT'::text || t_medecins_cout_patient_shs.oid::text AS oid, + (((t_medecins_cout_patient_shs.code::text || ' '::text) || t_medecins_cout_patient_shs.nom::text) || ' '::text) || t_medecins_cout_patient_shs.prenom::text AS texte, + t_medecins_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_medecins_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_medecins_cout_patient_shs + WHERE (t_medecins_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'medecins_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_mode_paiement_1.yaml b/db/schema2/views/v_mode_paiement_1.yaml new file mode 100644 index 0000000..8218891 --- /dev/null +++ b/db/schema2/views/v_mode_paiement_1.yaml @@ -0,0 +1,65 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'MPA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MPA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'MPA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MPA'::text + UNION ALL + SELECT 'MP'::text || t_mode_paiement.oid::text AS oid, + (t_mode_paiement.code || ' '::text) || t_mode_paiement.texte AS texte, + t_mode_paiement.code, + '1'::text AS level, + '9'::text || t_mode_paiement.code AS tri, + '0'::character(1) AS is_cti + FROM compta.t_mode_paiement + WHERE (t_mode_paiement.oid IN ( SELECT p_ecriture_fournisseur.mode_paiement_id + FROM compta.p_ecriture_fournisseur)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_partenaires_c_1.yaml b/db/schema2/views/v_partenaires_c_1.yaml new file mode 100644 index 0000000..708ca71 --- /dev/null +++ b/db/schema2/views/v_partenaires_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'PAR'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT 'PA'::text || t_partenaires.oid::text AS oid, + (t_partenaires.code::text || ' '::text) || t_partenaires.texte::text AS texte, + t_partenaires.code, + '1'::text AS level, + '9'::text || t_partenaires.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_partenaires + WHERE (t_partenaires.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'partenaires_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_partenaires_h_1.yaml b/db/schema2/views/v_partenaires_h_1.yaml new file mode 100644 index 0000000..12b783e --- /dev/null +++ b/db/schema2/views/v_partenaires_h_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'PAR'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PAR'::text + UNION ALL + SELECT 'PA'::text || t_partenaires.oid::text AS oid, + (t_partenaires.code::text || ' '::text) || t_partenaires.texte::text AS texte, + t_partenaires.code, + '1'::text AS level, + '9'::text || t_partenaires.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_partenaires + WHERE (t_partenaires.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'partenaires_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_pole_1.yaml b/db/schema2/views/v_pole_1.yaml new file mode 100644 index 0000000..c93df5f --- /dev/null +++ b/db/schema2/views/v_pole_1.yaml @@ -0,0 +1,64 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'POLE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'POLE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'POLE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'POLE'::text + ) UNION + SELECT 'DT'::text || t_pole.oid::text AS oid, + (t_pole.code || ' '::text) || t_pole.texte AS texte, + t_pole.code, + '1'::text AS level, + '8'::text || t_pole.code AS tri, + '0'::character(1) AS is_cti + FROM compta.t_pole + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_pole_rule_pole_link.yaml b/db/schema2/views/v_pole_rule_pole_link.yaml new file mode 100644 index 0000000..1e13019 --- /dev/null +++ b/db/schema2/views/v_pole_rule_pole_link.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_pole_rule_pole.pole_rule_id AS link_pole_rule_id, + t_pole_rule_pole.pole_id AS pole_code, + t_pole_rule_pole.pole_texte, + t_pole_rule_pole.pole_section_id, + t_pole_rule_pole.pole_section_code, + t_pole_rule_pole.pole_section_texte + FROM compta.t_pole_rule_pole; \ No newline at end of file diff --git a/db/schema2/views/v_poles_oap_cout_patient_shs_1.yaml b/db/schema2/views/v_poles_oap_cout_patient_shs_1.yaml new file mode 100644 index 0000000..ef5ff05 --- /dev/null +++ b/db/schema2/views/v_poles_oap_cout_patient_shs_1.yaml @@ -0,0 +1,11 @@ +src: | + SELECT DISTINCT 'DT'::text || t_ghm_cout_patient_shs.pole_oap_id::text AS oid, + (t_ghm_cout_patient_shs.pole_oap_code::text || ' '::text) || t_ghm_cout_patient_shs.pole_oap_texte::text AS texte, + t_ghm_cout_patient_shs.pole_oap_code, + '1'::text AS level, + '9'::text || t_ghm_cout_patient_shs.pole_oap_code::text AS tri + FROM compta.t_ghm_cout_patient_shs + WHERE (t_ghm_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'ghm_cout_patient_shs'::text)) + ORDER BY '9'::text || t_ghm_cout_patient_shs.pole_oap_code::text, 'DT'::text || t_ghm_cout_patient_shs.pole_oap_id::text, (t_ghm_cout_patient_shs.pole_oap_code::text || ' '::text) || t_ghm_cout_patient_shs.pole_oap_texte::text, t_ghm_cout_patient_shs.pole_oap_code, '1'::text; \ No newline at end of file diff --git a/db/schema2/views/v_rapports_tables_indicateurs_1.yaml b/db/schema2/views/v_rapports_tables_indicateurs_1.yaml new file mode 100644 index 0000000..f166b36 --- /dev/null +++ b/db/schema2/views/v_rapports_tables_indicateurs_1.yaml @@ -0,0 +1,19 @@ +src: | + SELECT 1::bigint AS oid, + 'v_historique_ecritures_1'::text AS code, + 'Ecritures'::text AS texte, + '4'::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, 'comptable'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 98::bigint AS oid, + '*CALC'::text AS code, + 'Calcul entre indicateurs'::text AS texte, + ''::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 99::bigint AS oid, + '*CALC_SUM'::text AS code, + 'Somme d''indicateurs'::text AS texte, + ''::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_repartitions_analytiques_shs_1.yaml b/db/schema2/views/v_repartitions_analytiques_shs_1.yaml new file mode 100644 index 0000000..83fb392 --- /dev/null +++ b/db/schema2/views/v_repartitions_analytiques_shs_1.yaml @@ -0,0 +1,224 @@ +src: | + SELECT p_repartitions_analytiques_shs.mois_comptable, + p_repartitions_analytiques_shs.etape_id, + p_repartitions_analytiques_shs.code_prevision_realisation, + p_repartitions_analytiques_shs.compte_id, + t_comptes_c.numero AS compte_numero, + t_comptes_c.texte AS compte_texte, + t_comptes_c.section1_id AS compte_section1_id, + t_comptes_c.section1_code AS compte_section1_code, + t_comptes_c.section1_texte AS compte_section1_texte, + t_comptes_c.section2_id AS compte_section2_id, + t_comptes_c.section2_code AS compte_section2_code, + t_comptes_c.section2_texte AS compte_section2_texte, + t_comptes_c.section3_id AS compte_section3_id, + t_comptes_c.section3_code AS compte_section3_code, + t_comptes_c.section3_texte AS compte_section3_texte, + t_comptes_c.classe_1_id, + t_comptes_c.classe_1_code, + t_comptes_c.classe_1_texte, + t_comptes_c.classe_2_id, + t_comptes_c.classe_2_code, + t_comptes_c.classe_2_texte, + t_comptes_c.classe_3_id, + t_comptes_c.classe_3_code, + t_comptes_c.classe_3_texte, + t_comptes_c.classe_4_id, + t_comptes_c.classe_4_code, + t_comptes_c.classe_4_texte, + t_comptes_c.classe_5_id, + t_comptes_c.classe_5_code, + t_comptes_c.classe_5_texte, + t_comptes_c.classe_6_id, + t_comptes_c.classe_6_code, + t_comptes_c.classe_6_texte, + t_comptes_c.arbre_classe_1_id, + t_comptes_c.arbre_classe_1_code, + t_comptes_c.arbre_classe_1_texte, + t_comptes_c.arbre_classe_2_id, + t_comptes_c.arbre_classe_2_code, + t_comptes_c.arbre_classe_2_texte, + t_comptes_c.arbre_classe_3_id, + t_comptes_c.arbre_classe_3_code, + t_comptes_c.arbre_classe_3_texte, + t_comptes_c.arbre_classe_4_id, + t_comptes_c.arbre_classe_4_code, + t_comptes_c.arbre_classe_4_texte, + t_comptes_c.arbre_classe_5_id, + t_comptes_c.arbre_classe_5_code, + t_comptes_c.arbre_classe_5_texte, + t_comptes_c.arbre_classe_6_id, + t_comptes_c.arbre_classe_6_code, + t_comptes_c.arbre_classe_6_texte, + t_comptes_c.arbre_classe_7_id, + t_comptes_c.arbre_classe_7_code, + t_comptes_c.arbre_classe_7_texte, + t_comptes_c.type_compta_id, + t_comptes_c.type_compta_code, + t_comptes_c.type_compta_texte, + p_repartitions_analytiques_shs.section_analytique_id, + t_sections_analytiques.code AS section_analytique_code, + t_sections_analytiques.texte AS section_analytique_texte, + t_sections_analytiques.section1_id AS section_analytique_section1_id, + t_sections_analytiques.section1_code AS section_analytique_section1_code, + t_sections_analytiques.section1_texte AS section_analytique_section1_texte, + t_sections_analytiques.section2_id AS section_analytique_section2_id, + t_sections_analytiques.section2_code AS section_analytique_section2_code, + t_sections_analytiques.section2_texte AS section_analytique_section2_texte, + t_sections_analytiques.section3_id AS section_analytique_section3_id, + t_sections_analytiques.section3_code AS section_analytique_section3_code, + t_sections_analytiques.section3_texte AS section_analytique_section3_texte, + t_sections_analytiques.section4_id AS section_analytique_section4_id, + t_sections_analytiques.section4_code AS section_analytique_section4_code, + t_sections_analytiques.section4_texte AS section_analytique_section4_texte, + t_sections_analytiques.section5_id AS section_analytique_section5_id, + t_sections_analytiques.section5_code AS section_analytique_section5_code, + t_sections_analytiques.section5_texte AS section_analytique_section5_texte, + t_sections_analytiques.section6_id AS section_analytique_section6_id, + t_sections_analytiques.section6_code AS section_analytique_section6_code, + t_sections_analytiques.section6_texte AS section_analytique_section6_texte, + t_sections_analytiques.section7_id AS section_analytique_section7_id, + t_sections_analytiques.section7_code AS section_analytique_section7_code, + t_sections_analytiques.section7_texte AS section_analytique_section7_texte, + t_sections_analytiques.section8_id AS section_analytique_section8_id, + t_sections_analytiques.section8_code AS section_analytique_section8_code, + t_sections_analytiques.section8_texte AS section_analytique_section8_texte, + t_sections_analytiques.section9_id AS section_analytique_section9_id, + t_sections_analytiques.section9_code AS section_analytique_section9_code, + t_sections_analytiques.section9_texte AS section_analytique_section9_texte, + p_repartitions_analytiques_shs.section_analytique_origine_id, + t_sections_analytiques_origine.code AS section_analytique_origine_code, + t_sections_analytiques_origine.texte AS section_analytique_origine_texte, + t_sections_analytiques_origine.section1_id AS section_analytique_origine_section1_id, + t_sections_analytiques_origine.section1_code AS section_analytique_origine_section1_code, + t_sections_analytiques_origine.section1_texte AS section_analytique_origine_section1_texte, + t_sections_analytiques_origine.section2_id AS section_analytique_origine_section2_id, + t_sections_analytiques_origine.section2_code AS section_analytique_origine_section2_code, + t_sections_analytiques_origine.section2_texte AS section_analytique_origine_section2_texte, + t_sections_analytiques_origine.section3_id AS section_analytique_origine_section3_id, + t_sections_analytiques_origine.section3_code AS section_analytique_origine_section3_code, + t_sections_analytiques_origine.section3_texte AS section_analytique_origine_section3_texte, + t_sections_analytiques_origine.section4_id AS section_analytique_origine_section4_id, + t_sections_analytiques_origine.section4_code AS section_analytique_origine_section4_code, + t_sections_analytiques_origine.section4_texte AS section_analytique_origine_section4_texte, + t_sections_analytiques_origine.section5_id AS section_analytique_origine_section5_id, + t_sections_analytiques_origine.section5_code AS section_analytique_origine_section5_code, + t_sections_analytiques_origine.section5_texte AS section_analytique_origine_section5_texte, + t_sections_analytiques_origine.section6_id AS section_analytique_origine_section6_id, + t_sections_analytiques_origine.section6_code AS section_analytique_origine_section6_code, + t_sections_analytiques_origine.section6_texte AS section_analytique_origine_section6_texte, + t_sections_analytiques_origine.section7_id AS section_analytique_origine_section7_id, + t_sections_analytiques_origine.section7_code AS section_analytique_origine_section7_code, + t_sections_analytiques_origine.section7_texte AS section_analytique_origine_section7_texte, + t_sections_analytiques_origine.section8_id AS section_analytique_origine_section8_id, + t_sections_analytiques_origine.section8_code AS section_analytique_origine_section8_code, + t_sections_analytiques_origine.section8_texte AS section_analytique_origine_section8_texte, + t_sections_analytiques_origine.section9_id AS section_analytique_origine_section9_id, + t_sections_analytiques_origine.section9_code AS section_analytique_origine_section9_code, + t_sections_analytiques_origine.section9_texte AS section_analytique_origine_section9_texte, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 0 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_avant_repartition, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 1 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_1, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 2 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_2, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 3 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_3, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 4 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_4, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 5 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_5, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 6 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_6, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 7 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_7, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 8 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_8, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND p_repartitions_analytiques_shs.etape_id = 9 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_9, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'R'::bpchar AND t_etapes_analytiques.est_derniere_etape = '1'::bpchar THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_realisation_apres_repartition, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 0 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_avant_repartition, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 1 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_1, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 2 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_2, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 3 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_3, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 4 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_4, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 5 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_5, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 6 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_6, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 7 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_7, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 8 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_8, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND p_repartitions_analytiques_shs.etape_id = 9 THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_9, + CASE + WHEN p_repartitions_analytiques_shs.code_prevision_realisation = 'P'::bpchar AND t_etapes_analytiques.est_derniere_etape = '1'::bpchar THEN p_repartitions_analytiques_shs.montant + ELSE 0::numeric + END AS montant_prevision_apres_repartition, + 0 AS no_oid, + ''::text AS no_code, + ''::text AS no_texte, + t_comptes_c.section_id AS compte_section_id, + t_comptes_c.section_code AS compte_section_code, + t_comptes_c.section_texte AS compte_section_texte, + t_sections_analytiques.section_id AS section_analytique_section_id, + t_sections_analytiques.section_code AS section_analytique_section_code, + t_sections_analytiques.section_texte AS section_analytique_section_texte, + t_sections_analytiques_origine.section_id AS section_analytique_origine_section_id, + t_sections_analytiques_origine.section_code AS section_analytique_origine_section_code, + t_sections_analytiques_origine.section_texte AS section_analytique_origine_section_texte + FROM compta.p_repartitions_analytiques_shs, + compta.t_comptes_c, + compta.t_sections_analytiques, + compta.t_sections_analytiques t_sections_analytiques_origine, + compta.t_etapes_analytiques + WHERE p_repartitions_analytiques_shs.compte_id = t_comptes_c.oid AND p_repartitions_analytiques_shs.section_analytique_id = t_sections_analytiques.oid AND p_repartitions_analytiques_shs.section_analytique_origine_id = t_sections_analytiques_origine.oid AND p_repartitions_analytiques_shs.etape_id = t_etapes_analytiques.oid; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_2_c_1.yaml b/db/schema2/views/v_sections_analytiques_2_c_1.yaml new file mode 100644 index 0000000..cc60b4f --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_2_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_2_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_3_c_1.yaml b/db/schema2/views/v_sections_analytiques_3_c_1.yaml new file mode 100644 index 0000000..4105240 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_3_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_3_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_4_c_1.yaml b/db/schema2/views/v_sections_analytiques_4_c_1.yaml new file mode 100644 index 0000000..a01341d --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_4_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_4_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_5_c_1.yaml b/db/schema2/views/v_sections_analytiques_5_c_1.yaml new file mode 100644 index 0000000..5d84024 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_5_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_5_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_6_c_1.yaml b/db/schema2/views/v_sections_analytiques_6_c_1.yaml new file mode 100644 index 0000000..ab5dd2b --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_6_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_6_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_7_c_1.yaml b/db/schema2/views/v_sections_analytiques_7_c_1.yaml new file mode 100644 index 0000000..b53ef33 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_7_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_7_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_8_c_1.yaml b/db/schema2/views/v_sections_analytiques_8_c_1.yaml new file mode 100644 index 0000000..db56478 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_8_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_8_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_9_c_1.yaml b/db/schema2/views/v_sections_analytiques_9_c_1.yaml new file mode 100644 index 0000000..9fc7096 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_9_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_9_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sections_analytiques_c_1.yaml b/db/schema2/views/v_sections_analytiques_c_1.yaml new file mode 100644 index 0000000..52d0b01 --- /dev/null +++ b/db/schema2/views/v_sections_analytiques_c_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'ANA'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ANA'::text + UNION ALL + SELECT 'SA'::text || t_sections_analytiques.oid::text AS oid, + (t_sections_analytiques.code::text || ' '::text) || t_sections_analytiques.texte::text AS texte, + t_sections_analytiques.code, + '1'::text AS level, + '9'::text || t_sections_analytiques.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sections_analytiques + WHERE (t_sections_analytiques.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sections_analytiques_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_services_facturation_cout_patient_shs_1.yaml b/db/schema2/views/v_services_facturation_cout_patient_shs_1.yaml new file mode 100644 index 0000000..de388ea --- /dev/null +++ b/db/schema2/views/v_services_facturation_cout_patient_shs_1.yaml @@ -0,0 +1,67 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSF'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSF'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSF'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSF'::text + ) UNION + SELECT 'DT'::text || t_services_facturation_cout_patient_shs.oid::text AS oid, + (t_services_facturation_cout_patient_shs.code::text || ' '::text) || t_services_facturation_cout_patient_shs.texte_court::text AS texte, + t_services_facturation_cout_patient_shs.code, + '1'::text AS level, + '9'::text || t_services_facturation_cout_patient_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_services_facturation_cout_patient_shs + WHERE (t_services_facturation_cout_patient_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'services_facturation_cout_patient_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sites_1.yaml b/db/schema2/views/v_sites_1.yaml new file mode 100644 index 0000000..f8b4d68 --- /dev/null +++ b/db/schema2/views/v_sites_1.yaml @@ -0,0 +1,79 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'SIT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + ) UNION + SELECT 'SI'::text || t_sites.oid::text AS oid, + (t_sites.code::text || ' '::text) || t_sites.texte::text AS texte, + t_sites.code, + '1'::text AS level, + '8'::text || t_sites.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sites + WHERE (t_sites.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sites_c'::text OR p_oids.code_table::text = 'sites_h'::text)) + UNION + SELECT 'FI'::text || t_sites.finess_id::text AS oid, + (t_finess.code || ' '::text) || t_finess.texte AS texte, + t_finess.code, + '1'::text AS level, + '9'::text || t_finess.code AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sites + JOIN base.t_finess ON t_sites.finess_id = t_finess.oid AND t_sites.finess_id <> 0 + WHERE (t_sites.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sites_c'::text OR p_oids.code_table::text = 'sites_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sites_c_1.yaml b/db/schema2/views/v_sites_c_1.yaml new file mode 100644 index 0000000..d66c6f7 --- /dev/null +++ b/db/schema2/views/v_sites_c_1.yaml @@ -0,0 +1,79 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'SIT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT 'SI'::text || t_sites.oid::text AS oid, + (t_sites.code::text || ' '::text) || t_sites.texte::text AS texte, + t_sites.code, + '1'::text AS level, + '8'::text || t_sites.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sites + WHERE (t_sites.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sites_c'::text)) + ) UNION + SELECT 'FI'::text || t_sites.finess_id::text AS oid, + (t_finess.code || ' '::text) || t_finess.texte AS texte, + t_finess.code, + '1'::text AS level, + '9'::text || t_finess.code AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sites + JOIN base.t_finess ON t_sites.finess_id = t_finess.oid AND t_sites.finess_id <> 0 + WHERE (t_sites.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sites_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sites_h_1.yaml b/db/schema2/views/v_sites_h_1.yaml new file mode 100644 index 0000000..440af78 --- /dev/null +++ b/db/schema2/views/v_sites_h_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'SIT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SIT'::text + UNION ALL + SELECT 'SI'::text || t_sites.oid::text AS oid, + (t_sites.code::text || ' '::text) || t_sites.texte::text AS texte, + t_sites.code, + '1'::text AS level, + '9'::text || t_sites.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_sites + WHERE (t_sites.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'sites_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_types_compta_c_1.yaml b/db/schema2/views/v_types_compta_c_1.yaml new file mode 100644 index 0000000..b7891dc --- /dev/null +++ b/db/schema2/views/v_types_compta_c_1.yaml @@ -0,0 +1,21 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'TYP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'TY'::text || t_types_compta.oid::text AS oid, + (t_types_compta.code::text || ' '::text) || t_types_compta.texte::text AS texte, + t_types_compta.code, + '1'::text AS level, + '9'::text || t_types_compta.code::text AS tri + FROM compta.t_types_compta + WHERE (t_types_compta.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'types_compta_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_types_compta_c_2.yaml b/db/schema2/views/v_types_compta_c_2.yaml new file mode 100644 index 0000000..2b0aab5 --- /dev/null +++ b/db/schema2/views/v_types_compta_c_2.yaml @@ -0,0 +1,21 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'TYP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'TY'::text || t_types_compta.oid::text AS oid, + (t_types_compta.code::text || ' '::text) || t_types_compta.texte::text AS texte, + t_types_compta.code, + '1'::text AS level, + '9'::text || t_types_compta.code::text AS tri + FROM compta.t_types_compta + WHERE (t_types_compta.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'types_compta_extra_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_types_compta_h_1.yaml b/db/schema2/views/v_types_compta_h_1.yaml new file mode 100644 index 0000000..e27d0e5 --- /dev/null +++ b/db/schema2/views/v_types_compta_h_1.yaml @@ -0,0 +1,21 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'TYP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'TY'::text || t_types_compta.oid::text AS oid, + (t_types_compta.code::text || ' '::text) || t_types_compta.texte::text AS texte, + t_types_compta.code, + '1'::text AS level, + '9'::text || t_types_compta.code::text AS tri + FROM compta.t_types_compta + WHERE (t_types_compta.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'types_compta_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_types_compta_h_2.yaml b/db/schema2/views/v_types_compta_h_2.yaml new file mode 100644 index 0000000..53603f4 --- /dev/null +++ b/db/schema2/views/v_types_compta_h_2.yaml @@ -0,0 +1,21 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'TYP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'TY'::text || t_types_compta.oid::text AS oid, + (t_types_compta.code::text || ' '::text) || t_types_compta.texte::text AS texte, + t_types_compta.code, + '1'::text AS level, + '9'::text || t_types_compta.code::text AS tri + FROM compta.t_types_compta + WHERE (t_types_compta.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'types_compta_extra_h'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_unites_oeuvre_shs_1.yaml b/db/schema2/views/v_unites_oeuvre_shs_1.yaml new file mode 100644 index 0000000..6424c22 --- /dev/null +++ b/db/schema2/views/v_unites_oeuvre_shs_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.v_listes_1 + WHERE v_listes_1.table_code = 'CSU'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSU'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_classes_sections, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'CSU'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM compta.t_classes, + compta.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'CSU'::text + UNION ALL + SELECT 'DT'::text || t_unites_oeuvre_shs.oid::text AS oid, + (t_unites_oeuvre_shs.code::text || ' '::text) || t_unites_oeuvre_shs.texte_court::text AS texte, + t_unites_oeuvre_shs.code, + '1'::text AS level, + '9'::text || t_unites_oeuvre_shs.code::text AS tri, + '0'::character(1) AS is_cti + FROM compta.t_unites_oeuvre_shs + WHERE (t_unites_oeuvre_shs.oid IN ( SELECT p_oids.oid + FROM compta.p_oids + WHERE p_oids.code_table::text = 'unites_oeuvre_shs'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/dummy b/dummy new file mode 100644 index 0000000..48408ae --- /dev/null +++ b/dummy @@ -0,0 +1 @@ +compta/v25.9 \ No newline at end of file diff --git a/import_compta/iCTI_batch_common.php b/import_compta/iCTI_batch_common.php new file mode 100644 index 0000000..55b759e --- /dev/null +++ b/import_compta/iCTI_batch_common.php @@ -0,0 +1,249 @@ +sqlStatements_XML = $_XMLfile; + } + else { + $this->sqlStatements_XML = simplexml_load_file($_XMLfile, 'CTI_SimpleXMLElement', LIBXML_NOCDATA); + } + $this->iCTI_connexion = $_iCTI_connexion; + $this->environmentVars = $_environmentVars; + $this->sqlOptions = $_sqlOptions; + + $this->sqlOption_debug = false; + foreach ($this->sqlOptions as $sqlOption) { + if ($sqlOption == "-debugsql") { + $this->sqlOption_debug = true; + } + } + } + + + function executeStatementsNode($nodeName="", $mainNode=NULL, &$nbE=0, &$nbW=0) { + + global $DB_pmsischema; + global $DB_comptaschema; + global $DB_activiteschema; + + + $qmain = FALSE; + + if ($mainNode == NULL) { + $mainNode = $this->sqlStatements_XML; + $qmain = TRUE; + $nbE=0; + $nbW=0; + $this->affectedRows = 0; + } + + foreach ($mainNode->NODE as $queryNode) { + $name = trim($queryNode->getAttribute('name')); + $label = trim($queryNode->getAttribute('label')); + $traceEcho = trim($queryNode->getAttribute('traceEcho')); + $traceLabel = trim($queryNode->getAttribute('traceLabel')); + $traceIndex = trim($queryNode->getAttribute('traceIndex')); + $traceEnd = trim($queryNode->getAttribute('traceEnd')); + if ($traceLabel== "false") { + $traceIndex = "false"; + } + foreach (array_keys($this->environmentVars) as $environmentVarKey ) { + $environmentVarValue = $this->environmentVars[$environmentVarKey]; + $sqlkey = strtoupper("[$environmentVarKey]"); + $label = str_ireplace($sqlkey, $environmentVarValue, $label); + } + if ($queryNode->getAttribute('name') == $nodeName || $nodeName == "") { + + $sqlcmd = trim($queryNode->getAttribute('sqlcmd')); + $condition = trim($queryNode->getAttribute('condition')); + + $condition_OK = TRUE; + + if ($condition != "") { + $condition = preg_replace('!/\*.*?\*/!s', '', $condition); + $condition = preg_replace('!--.*!', '', $condition); + $condition = preg_replace('/\n\s*\n/', "\n", $condition); + foreach (array_keys($this->environmentVars) as $environmentVarKey ) { + $environmentVarValue = $this->environmentVars[$environmentVarKey]; + $sqlkey = strtoupper("[$environmentVarKey]"); + $condition = str_ireplace($sqlkey, $environmentVarValue, $condition); + } + + $condition = "if ($condition) {return '1';} else {return '0';}"; + $condition_val = eval($condition); + if ($condition_val == '0') { + $condition_OK = FALSE; + } + + } + + if ($condition_OK == TRUE) { + + if ($traceLabel != "false") { + if ($qmain == TRUE) { + logInfoMsg($label); + } + else { + logInfoMsg($label." "); + } + } + + if ($sqlcmd != "") { + + // Suppression des commentaires SQL ('/* */', '--' et des lignes vides) + $sqlcmd = preg_replace('!/\*.*?\*/!s', '', $sqlcmd); + $sqlcmd = preg_replace('!--.*!', '', $sqlcmd); + $sqlcmd = preg_replace('/\n\s*\n/', "\n", $sqlcmd); + + $sqlcmd_array = explode(";", $sqlcmd); + + $nbC = 0; + + foreach ($sqlcmd_array as $sqlcmd) { + $sqlcmd = trim($sqlcmd); + $sqlcmd = str_ireplace(".,", ";", $sqlcmd); + + foreach (array_keys($this->environmentVars) as $environmentVarKey ) { + $environmentVarValue = $this->environmentVars[$environmentVarKey]; + $sqlkey = strtoupper("[$environmentVarKey]"); + $sqlcmd = str_ireplace($sqlkey, $environmentVarValue, $sqlcmd); + } + + if (substr($sqlcmd,0,5) == "echo ") { + $sqlcmd = str_ireplace("[CTI_STMT_LASTaffectedRows]", $nbW, $sqlcmd); + if ($traceEcho != "false") { + logInfoMsg(trim(substr($sqlcmd,5))); + } + $sqlcmd = ""; + } + + if ($sqlcmd != "") { + $nbC++; + if ($nbC > 9) { + $nbC = 0; + } + if ($this->sqlOption_debug == true) { + logInfoMsg("DEBUG SQL "); + } + if ($traceIndex != "false") { + echo "$nbC"; + } + if ($this->sqlOption_debug == true) { + echo "\r\n$sqlcmd "; + } + $nbW = 0; + $this->executeStatement($sqlcmd, $nbE, $nbW); + + $this->affectedRows = $this->affectedRows + $nbW; + } + } + + } + + $this->executeStatementsNode("",$queryNode, $nbE, $nbW); + + if ($qmain == TRUE && $traceEnd != "false") { + logInfoMsg("FIN $label, $nbE erreurs"); + } + } + } + } + + } + + + + function executeStatement($sqlcmd, &$nbE=0, &$nbW=0) { + + $special_CTISELECT_PROPERTY_READ = FALSE; + if (substr($sqlcmd, 0, 24) == "CTISELECT_PROPERTY_READ ") { + $sqlcmd = "SELECT " . trim(substr($sqlcmd, 24)); + $special_CTISELECT_PROPERTY_READ = TRUE; + } + + $toResult = @pg_query($this->iCTI_connexion , $sqlcmd); + + + if ($toResult == FALSE) { + $error = pg_last_error($this->iCTI_connexion); + logErrorMsg("Erreur $error pour $sqlcmd"); + + $nbE++; + + $toResult = "ERROR"; + } + else { + if ($special_CTISELECT_PROPERTY_READ == TRUE) { + $toRecord = pg_fetch_array($toResult); + if ($toRecord !== FALSE) { + $this->environmentVars[trim($toRecord[0])] = trim($toRecord[1]); + } + + } + } + + $nbW = $nbW + @pg_affected_rows($toResult); + + + return $toResult; + + + } + + + +} + +class CTI_Args_class { + + + var $args; + + function CTI_Args_class() { + global $argv; + $args = array(); + $currentOption = ""; + + for ($i = 1; $i <= 1000; $i++) { + $arg = trim($argv[$i]); + + if ($arg == "") { + break; + } + + if (substr($arg,0,1) == "-") { + $currentOption = $arg; + $this->args[$currentOption] = "ONLYKEY"; + } + else { + if ($this->args[$currentOption] == "ONLYKEY") { + $this->args[$currentOption] = ""; + } + if ($this->args[$currentOption] != "") { + $this->args[$currentOption] = $this->args[$currentOption] . " "; + } + $this->args[$currentOption] = $this->args[$currentOption] . $arg; + } + } + } + +} + + + + + +?> \ No newline at end of file diff --git a/import_compta/iCTI_consolidation_compta.php b/import_compta/iCTI_consolidation_compta.php new file mode 100644 index 0000000..4f12fd4 --- /dev/null +++ b/import_compta/iCTI_consolidation_compta.php @@ -0,0 +1,336 @@ +args['-raz'] = 'ONLYKEY'; + + // Initialisation + + $cti_sqlStatements = new CTI_SqlStatements_class('iCTI_import_'.$moduleName.'_CONSOLIDATION.XML', $iCTI_connexion, $environmentVars, $sqlOptions); + $cti_sqlStatements->executeStatementsNode('DISABLE_INDEX'); + $cti_sqlStatements->executeStatementsNode('RAZ'); + + foreach ($childEnvironments as $environment) { + + $environmentVars = array(); + + $environmentVars['TX'] = $environment->name; + $environmentVars['FINESS'] = $environment->finess; + $environmentVars['FINESS_TEXTE'] = $environment->name; + $environmentVars['DBHOST'] = $environment->host; + $environmentVars['DBPORT'] = $environment->port; + $environmentVars['DBNAME'] = $environment->dbname; + $environmentVars['DBUSERNAME'] = $environment->username; + $environmentVars['DBPASSWORD'] = $environment->password; + $environmentVars['TPX'] = $environment->code.'_'; + $environmentVars['CPX'] = $environment->code.'_'; + $environmentVars['SPX'] = '_'.$environment->code; + $environmentVars['IPX'] = $environment->oid.'000000000'; + $environmentVars['PPX'] = $environment->oid; + $environmentVars['PX'] = $environment->code; + + $cti_sqlStatementsEnvironment = new CTI_SqlStatements_class('iCTI_import_'.$moduleName.'_CONSOLIDATION.XML', $iCTI_connexion, $environmentVars, $sqlOptions); + $cti_sqlStatementsEnvironment->executeStatementsNode('INIT'); + $cti_sqlStatementsEnvironment->executeStatementsNode('PARAM'); + $cti_sqlStatementsEnvironment->executeStatementsNode('COMPTA'); + } + + $cti_sqlStatements->executeStatementsNode('POST'); + $cti_sqlStatements->executeStatementsNode('ENABLE_INDEX'); +} + +/** Récupère les "environnements enfants" qui consolident le module dont on précise le nom + * Retourne un tableau de stclass contenant les propriétés suivantes : + * - name + * - directory + * - code + * - oid + * - finess + * - host ('localhost' si non trouvé) + * - port ('5432' si non trouvé) + * - dbname + * - username + * - password + * Ou false en cas d'erreur + * @param $moduleName + * @return array|bool Tableau des "environnements enfants" ou false en cas d'erreur + */ +function getChildEnvironments($moduleName) { + + $environmentError = false; + $childEnvironments = array(); + + $file = Environnement::getInstance()->getRootPath()."\settings\settings.XML"; + if (file_exists($file)) { + $xml = simplexml_load_file($file); + if ($xml) { + + $nodes = $xml->xpath("/SETTINGS/CONSOLIDATION" . strtoupper($moduleName) . "/ENVIRONMENT"); + + foreach ($nodes as $environmentNode) { + + $environment = new stdClass(); + + $environment->name = ''; + $environment->finess = ''; + $environment->directory = ''; + $environment->code = ''; + $environment->oid = ''; + $environment->host = ''; + $environment->port = ''; + $environment->dbname = ''; + $environment->username = ''; + $environment->password = ''; + + $environmentName = ''; + $propertyNodes = $environmentNode->xpath("PROPERTY[@name='ENVIRONMENT']"); + // Le noeud a été trouvé + if (count($propertyNodes) == 1) { + $environmentName = trim($propertyNodes[0]['value']); + } + + $propertyNodes = $environmentNode->xpath("PROPERTY[@name='DIR']"); + // Le noeud a été trouvé + if (count($propertyNodes) == 1) { + $environment->directory = trim($propertyNodes[0]['value']); + } + + $propertyNodes = $environmentNode->xpath("PROPERTY[@name='PREFIX_CODE']"); + // Le noeud a été trouvé + if (count($propertyNodes) == 1) { + $environment->code = strtoupper(trim($propertyNodes[0]['value'])); + } + + $propertyNodes = $environmentNode->xpath("PROPERTY[@name='PREFIX_OID']"); + // Le noeud a été trouvé + if (count($propertyNodes) == 1) { + $environment->oid = trim($propertyNodes[0]['value']); + } + + $environmentSettings = getChildEnvironmentSettings($environment); + if (! $environmentSettings) { + logErrorMsg("Environnement $environmentName sur $environment->directory inexistant ou mal configuré"); + $environmentError = true; + } else { + $environment->name = $environmentSettings->name; + $environment->finess = $environmentSettings->finess; + } + + $environmentDatabaseSettings = getChildEnvironmentDatabaseSettings($environment); + if (! $environmentDatabaseSettings) { + logErrorMsg("Environnement $environmentName sur $environment->directory inexistant ou mal configuré"); + $environmentError = true; + } else { + $environment->host = $environmentDatabaseSettings->host; + $environment->port = $environmentDatabaseSettings->port; + $environment->dbname = $environmentDatabaseSettings->dbname; + $environment->username = $environmentDatabaseSettings->username; + $environment->password = $environmentDatabaseSettings->password; + } + + if ($environment->code === '' || $environment->oid === 0) { + logErrorMsg("Préfixes obligatoires ($environment->code,$environment->oid) pour environnement $environmentName"); + $environmentError = true; + } + + // Ajout de l'environnement dont on a contrôlé les paramètres + if (!$environmentError) { + $childEnvironments[] = $environment; + } + } + + } + + if ($environmentError) { + logErrorMsg("Au moins un environnement de la consolidation ".ucfirst($moduleName)." n'est pas correct"); + return false; + } + } else { + return false; + } + + return $childEnvironments; +} + +/** Lit les informations d'un "environnement enfant" (qui consolide) + * On récupère le chemin de l'environnement via sa propriété 'directory' + * On retourne une stdClass avec les propriétés suivantes : + * - name + * - finess + * @param $environment + * @return stdClass|bool false en cas d'erreur + */ +function getChildEnvironmentSettings($environment) { + + $settings = new stdClass(); + + $settings->name = ''; + $settings->finess = ''; + + $file = $environment->directory."\settings\settings.XML"; + if (file_exists($file)) { + $xml = simplexml_load_file($file); + if ($xml) { + $nodes = $xml->xpath("/SETTINGS/ENVIRONMENT/PROPERTY[@name='ENVIRONMENT']"); + $settings->name = trim($nodes[0]['value']); + + $nodes = $xml->xpath("/SETTINGS/ENVIRONMENT/PROPERTY[@name='FINESS']"); + $settings->finess = trim($nodes[0]['value']); + } + } else { + return false; + } + + return $settings; +} + +/** Lit les informations de la base de données d'un "environnement enfant" (qui consolide) + * On récupère le chemin de l'environnement via sa propriété 'directory' + * On retourne une stdClass avec les propriétés suivantes : + * - host ('localhost' si non trouvé) + * - port ('5432' si non trouvé) + * - dbname + * - username + * - password + * @param $environment + * @return stdClass|bool false en cas d'erreur + */ +function getChildEnvironmentDatabaseSettings($environment) { + + $dbSettings = new EnvironmentDatabaseSettings($environment->directory); + try { + $dbSettings->readSettings(); + } catch (Exception $e) { + logErrorMsg($e->getMessage()); + return false; + } + + $database = new stdClass(); + $database->host = $dbSettings->getHost(); + $database->port = $dbSettings->getPort(); + $database->dbname = $dbSettings->getName(); + $database->username = $dbSettings->getUsername(); + $database->password = $dbSettings->getPassword(); + + return $database; +} + +/** Vérifie si le module dont on précise le nom est configuré pour la consolidation + * @param $moduleName + * @return bool + */ +function checkIsConsolidate($moduleName) { + $isConsolidate = false; + + $file = Environnement::getInstance()->getRootPath()."/settings/settings.XML"; + $xml = simplexml_load_file($file); + + $nodes = $xml->xpath("/SETTINGS/MODULES/MODULE[@name='".$moduleName."' and @installed='true']"); + + // Le noeud a été trouvé + if (count($nodes) == 1) { + if (isset($nodes[0]['consolidate'])) { + $isConsolidate = (strtolower($nodes[0]['consolidate']) === 'true'); + } + } + + return $isConsolidate; +} + +/** Connecte la base de données de l'environnement + * @return bool false en cas d'erreur + * @throws Exception + */ +function iCTI_connect() { + + global $iCTI_connexion; + + // Connexion BD + $iCTI_connexion = Database2Factory::getInstance(Environnement::PROVIDER_CTI); + $ret = $iCTI_connexion->connect(); + + if (!$ret) { + logErrorMsg("La connexion PostgreSQL iCTI a échoué"); + return false; + } + + return true; +} + +function iCTI_disconnect() { + + global $iCTI_connexion; + + $iCTI_connexion->close(); +} + +?> \ No newline at end of file diff --git a/import_compta/iCTI_import_compta.exe b/import_compta/iCTI_import_compta.exe new file mode 100644 index 0000000..a342139 Binary files /dev/null and b/import_compta/iCTI_import_compta.exe differ diff --git a/import_compta/iCTI_import_compta.php b/import_compta/iCTI_import_compta.php new file mode 100644 index 0000000..02a35f1 --- /dev/null +++ b/import_compta/iCTI_import_compta.php @@ -0,0 +1,338 @@ +checkArgs(); + +if (iCTI_connect()) { + + // création du répertoire utilisé par la fonction base.cti_copy_table(i_fromdblink text, i_fromtable text, i_totable text) + if (!is_dir('C:\TEMP')) { + mkdir('C:\TEMP'); + } + + $exitCode = extraction_prod($COMPTAPROVIDER); + if($exitCode == 0 || $cti_args->args["-f"]) { + extraction_environnement($COMPTAPROVIDER, $COMPTAPROVIDER_PREFIX, 0); + } + + // Déconnexion BD + $iCTI_connexion->close(); +} + +// nettoyage du cache +logInfoMsg("Nettoyage cache"); +cleanAllCache("iCTI_compta", TRUE); + +logEndMsg(); + + +function extraction_prod($COMPTAPROVIDER_check) { + global $cti_args; + + // Pas d'aspiration sur import depuis autre environnement + if ($COMPTAPROVIDER_check == "ICTI_COMPTA") { + return; + } + if ($cti_args->args["-u"] || $cti_args->args["--prod-update"]) { + if ($cti_args->args["-noactualizeprod"]) { + logInfoMsg("CONTROLE REPLICATION BASE DE DONNEES PRODUCTION $COMPTAPROVIDER_check"); + $prodhm_exe = realpath("../../../prodsgbd/iCTI_synchronize_prodsgbd_check.exe"); + $extractCmd = "$prodhm_exe -p $COMPTAPROVIDER_check -m compta"; + $return = exec($extractCmd, $output_array); + foreach ($output_array as $output_line) { + if (trim($output_line) != "") { + echo PHP_EOL . $output_line; + } + } + // Sur QUADRACOMPTA, verifier egalement exercice précédent + if ($COMPTAPROVIDER_check == "QUADRACOMPTA") { + $COMPTAPROVIDER_checkP = $COMPTAPROVIDER_check . 'P'; + logInfoMsg("Exercice précédent"); + $prodhm_exe = realpath("../../../prodsgbd/iCTI_synchronize_prodsgbd_check.exe"); + $extractCmd = "$prodhm_exe -p $COMPTAPROVIDER_checkP -m compta"; + unset($output_array); + $return = exec($extractCmd, $output_array); + foreach ($output_array as $output_line) { + if (trim($output_line) != "") { + echo PHP_EOL . $output_line; + } + } + } + logInfoMsg("FIN CONTROLE REPLICATION BASE DE DONNEES PRODUCTION $COMPTAPROVIDER_check"); + } + else { + logInfoMsg("REPLICATION BASE DE DONNEES PRODUCTION $COMPTAPROVIDER_check"); + $prodhm_exe = realpath("../../../prodsgbd/iCTI_synchronize_prodsgbd_put.exe"); + $extractCmd = "$prodhm_exe -p $COMPTAPROVIDER_check -m compta"; + $return = exec($extractCmd, $output_array); + foreach ($output_array as $output_line) { + if (trim($output_line) != "") { + echo PHP_EOL . $output_line; + } + } + // Sur QUADRACOMPTA, récupérer egalement exercice précédent + if ($COMPTAPROVIDER_check == "QUADRACOMPTA") { + $COMPTAPROVIDER_checkP = $COMPTAPROVIDER_check . 'P'; + logInfoMsg("Exercice précédent"); + $prodhm_exe = realpath("../../../prodsgbd/iCTI_synchronize_prodsgbd_put.exe"); + $extractCmd = "$prodhm_exe -p $COMPTAPROVIDER_checkP -m compta"; + unset($output_array); + $return = exec($extractCmd, $output_array); + foreach ($output_array as $output_line) { + if (trim($output_line) != "") { + echo PHP_EOL . $output_line; + } + } + } + logInfoMsg("FIN REPLICATION BASE DE DONNEES PRODUCTION $COMPTAPROVIDER_check"); + return $return; + } + } + else { + if ($COMPTAPROVIDER_check != "QUADRACOMPTA") return checkLoadedData($COMPTAPROVIDER_check,'compta'); + else return checkLoadedData($COMPTAPROVIDER_check,'compta') + checkLoadedData($COMPTAPROVIDER_check.'P','compta'); + } +} + +// récupération historique +function extraction_environnement($COMPTAPROVIDER, $COMPTAPROVIDER_PREFIX, $COMPTAPROVIDER_OID) { + + global $iCTI_connexion; + global $ENV_TYPEETS; + global $ENV_COMPTA_ANNEEDEBUT; + + global $cti_args; + + logInfoMsg("RECUPERATION DE LA PRODUCTION $COMPTAPROVIDER"); + + // Paramètres shs + $file = "../../../settings/databases/$COMPTAPROVIDER.XML"; + $xml = simplexml_load_string(file_get_contents($file)); + + $DB_pmsischema = trim($xml['pmsilib']); + $DB_activiteschema = trim($xml['admlib']); + $DB_comptaschema = trim($xml['comptalib']); + + $SAGEX3_idSites = $xml['idSites']; + $SAGEX3_idSites = str_replace("'"," ",$SAGEX3_idSites); + $QSP_idEtablissement = $xml['idEtablissement']; + $ETAB = trim($xml['idEtab_compta']); + $SITES = trim($xml['idSites_compta']); + + // Chargement requetes SQL + $environmentVars=array(); + + $environmentVars["PMSISCHEMA"] = $DB_pmsischema; + $environmentVars["ACTIVITESCHEMA"] = $DB_activiteschema; + $environmentVars["COMPTASCHEMA"] = $DB_comptaschema; + + $environmentVars["SAGEX3_SITES"] = $SAGEX3_idSites; + $environmentVars["QSP_ETAB"] = $QSP_idEtablissement; + $environmentVars["ETAB"] = $ETAB; + $environmentVars["SITES"] = $SITES; + $environmentVars["ENV_TYPEETS"] = $ENV_TYPEETS; + $environmentVars["ENV_COMPTA_ANNEEDEBUT"] = $ENV_COMPTA_ANNEEDEBUT; + + if (strtolower($COMPTAPROVIDER) === 'icti_compta') { + $dbSettings = new EnvironmentDatabaseSettings(); + try { + $dbSettings->readSettings($file); + $environmentVars["DBHOST"] = $dbSettings->getHost(); + $environmentVars["DBPORT"] = $dbSettings->getPort(); + $environmentVars["DBNAME"] = $dbSettings->getName(); + $environmentVars["DBUSER"] = $dbSettings->getUsername(); + $environmentVars["DBPASSWORD"] = $dbSettings->getPassword(); + } catch (Exception $e) { + logErrorMsg($e->getMessage()); + logEndMsg(); + exit(); + } + } + + $sqlOptions=array(); + $cti_sqlStatements_share = new CTI_SqlStatements_class("iCTI_import_compta_SHARE.XML",$iCTI_connexion,$environmentVars,$sqlOptions); + $cti_sqlStatements_provider = new CTI_SqlStatements_class("iCTI_import_compta_$COMPTAPROVIDER.XML",$iCTI_connexion,$environmentVars,$sqlOptions); + + // Raz forcé le samedi + if (date("w") == 6) { + $cti_args->args["-raz"] = "ONLYKEY"; + } + + + if ($cti_args->args["-raz"]) { + //$cti_sqlStatements_share->executeStatementsNode("RAZ"); + } + + $cti_sqlStatements_provider->executeStatementsNode("PARAM"); + + $cti_sqlStatements_provider->executeStatementsNode("INIT"); + + $cti_sqlStatements_provider->executeStatementsNode("ECRITURES"); + + $cti_sqlStatements_provider->executeStatementsNode("CHIFFRIER"); + + $cti_sqlStatements_provider->executeStatementsNode("POST"); + + $cti_sqlStatements_share->environmentVars = $cti_sqlStatements_provider->environmentVars; + + $cti_sqlStatements_share->executeStatementsNode("POST"); + + $cti_sqlStatements_share->executeStatementsNode("VACUUM"); + + logInfoMsg("FIN RECUPERATION DE LA PRODUCTION $COMPTAPROVIDER"); + +} + +function iCTI_connect() { + + +global $iCTI_connexion; +global $iCTI_cache; +global $ENV_TYPEETS; +global $COMPTAPROVIDER; +global $COMPTAPROVIDER2; +global $COMPTAPROVIDER_PREFIX; +global $COMPTAPROVIDER2_PREFIX; +global $ENV_COMPTA_ANNEEDEBUT; + + $iCTI_connexion = FALSE; + + $file = "../../../settings/settings.XML"; + $settings_xml = simplexml_load_file($file); + + $COMPTAPROVIDER = ""; + $wCOMPTAPROVIDER = ""; + $COMPTAPROVIDER_PREFIX = ""; + $wCOMPTAPROVIDER_PREFIX = ""; + $COMPTAPROVIDER2 = ""; + $wCOMPTAPROVIDER2 = ""; + $COMPTAPROVIDER2_PREFIX = ""; + $wCOMPTAPROVIDER2_PREFIX = ""; + // Par défaut Année en cours - 5 + $ENV_COMPTA_ANNEEDEBUT = date("Y") - 5; + + foreach ($settings_xml->ENVIRONMENT as $environmentNode) { + foreach ($environmentNode->PROPERTY as $propertyNode) { + if ($propertyNode['name'] == 'TYPEETS') { + $ENV_TYPEETS = trim($propertyNode['value']); + } + if ($propertyNode['name'] == 'COMPTAPROVIDER') { + $wCOMPTAPROVIDER = strtoupper(trim($propertyNode['value'])); + } + if ($propertyNode['name'] == 'COMPTAPROVIDER2') { + $wCOMPTAPROVIDER2 = strtoupper(trim($propertyNode['value'])); + } + if ($propertyNode['name'] == 'COMPTAPROVIDER_PREFIX') { + $wCOMPTAPROVIDER_PREFIX = strtoupper(trim($propertyNode['value'])); + } + if ($propertyNode['name'] == 'COMPTAPROVIDER2_PREFIX') { + $wCOMPTAPROVIDER2_PREFIX = strtoupper(trim($propertyNode['value'])); + } + if ($propertyNode['name'] == 'OPTCOMPTA_ANNEEDEBUT') { + if (substr($propertyNode['value'], 0, 1) === 'A') { + $nbAnnee = substr($propertyNode['value'], 1); + $ENV_COMPTA_ANNEEDEBUT = date("Y") - intval($nbAnnee); + } else if ($propertyNode['value'] != "" && strlen($propertyNode['value']) === 4) { + $ENV_COMPTA_ANNEEDEBUT = $propertyNode['value']; + } + } + } + } + + $listPrestaCompta = array( + 'SHS', + 'SAGEX3', + 'SAGE100COMPTA', + 'SAGEI7COMPTA', + 'ADONIX', + 'QUADRACOMPTA', + 'QSP', + 'SIGEMS', + 'CEGI', + 'ACROPOLE', + 'CEGID', + 'ICTI_COMPTA', + 'TALENTIA_FINANCE', + 'TALENTIA_FINANCE_CSV', + 'ACD', + 'DIVALTO' + ); + + $listPrestaCompta = array_map('strtoupper', $listPrestaCompta); + + if (in_array($wCOMPTAPROVIDER, $listPrestaCompta)){ + $COMPTAPROVIDER = $wCOMPTAPROVIDER; + } + + if ($wCOMPTAPROVIDER2 != "") { + if (in_array($wCOMPTAPROVIDER2, $listPrestaCompta)) { + $COMPTAPROVIDER2 = $wCOMPTAPROVIDER2; + } + } + + if ($COMPTAPROVIDER == "") { + logErrorMsg("Prestataire $wCOMPTAPROVIDER non traité actuellement"); + return FALSE; + } + + if ($COMPTAPROVIDER2 == "") { + $COMPTAPROVIDER_PREFIX = ""; + $COMPTAPROVIDER2_PREFIX = ""; + } + else { + $COMPTAPROVIDER_PREFIX = $wCOMPTAPROVIDER_PREFIX; + $COMPTAPROVIDER2_PREFIX = $wCOMPTAPROVIDER2_PREFIX; + if ($COMPTAPROVIDER_PREFIX == "") { + $COMPTAPROVIDER_PREFIX = substr($COMPTAPROVIDER,0,2); + } + $COMPTAPROVIDER_PREFIX = "_" . $COMPTAPROVIDER_PREFIX; + if ($COMPTAPROVIDER2_PREFIX == "") { + $COMPTAPROVIDER2_PREFIX = substr($COMPTAPROVIDER2,0,2); + } + $COMPTAPROVIDER2_PREFIX = "_" . $COMPTAPROVIDER2_PREFIX; + } + + $iCTI_connexion = Database2Factory::getInstance(Environnement::PROVIDER_CTI); + $ret = $iCTI_connexion->connect(); + + + if (! $ret) { + logErrorMsg("La connexion PostgreSQL iCTI a échoué"); + return FALSE; + } + + return $ret; + +} + +?> \ No newline at end of file diff --git a/import_compta/iCTI_import_compta_ACD.xml b/import_compta/iCTI_import_compta_ACD.xml new file mode 100644 index 0000000..da9cacc --- /dev/null +++ b/import_compta/iCTI_import_compta_ACD.xml @@ -0,0 +1,548 @@ + + + + + + + + + + + + + + + + + + + = 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 + + ]]> + + + + + diff --git a/import_compta/iCTI_import_compta_ACROPOLE.xml b/import_compta/iCTI_import_compta_ACROPOLE.xml new file mode 100644 index 0000000..372b66a --- /dev/null +++ b/import_compta/iCTI_import_compta_ACROPOLE.xml @@ -0,0 +1,536 @@ + + + + + + + + + + + + + + + + + + + = 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 + + ]]> + + + + + diff --git a/import_compta/iCTI_import_compta_ADONIX.XML b/import_compta/iCTI_import_compta_ADONIX.XML new file mode 100644 index 0000000..b44f3a2 --- /dev/null +++ b/import_compta/iCTI_import_compta_ADONIX.XML @@ -0,0 +1,787 @@ + + + + + + + + '' THEN GACCENTRYD.ACC_0 ELSE COALESCE(GACCENTRYA.CNA_0,GACCENTRYD.CNA_0) END AS ACC_0, + COALESCE(GACCENTRYA.ANALIG_0,0) AS ANALIG_0, + GACCENTRYD.ACCDAT_0, + GACCENTRYD.DES_0, + GACCENTRYD.FCYLIN_0, + GACCENTRYD.BPR_0, + GACCENTRYD.OFFACC_0, + GACCENTRYD.SNS_0, + CASE + WHEN round(GACCENTRYD.AMTCUR_0::numeric ,2) = round(GACCENTRYD.AMTLOC_0::numeric ,2) + THEN COALESCE(GACCENTRYA.AMTCUR_0,GACCENTRYD.AMTCUR_0) + ELSE COALESCE(GACCENTRYA.AMTLOC_0,GACCENTRYD.AMTLOC_0) + END AS AMTCUR_0, + COALESCE(CCE_0,'') AS CCE_0, + COALESCE(CCE_1,'') AS CCE_1, + COALESCE(CCE_2,'') AS CCE_2, + COALESCE(CCE_3,'') AS CCE_3, + COALESCE(CCE_4,'') AS CCE_4, + COALESCE(CCE_5,'') AS CCE_5 + FROM prod_adonix.GACCENTRYD + JOIN w_FACILITY FACILITY ON GACCENTRYD.FCYLIN_0 = FACILITY.FCY_0 + LEFT JOIN prod_adonix.GACCENTRYA ON + GACCENTRYD.TYP_0 = GACCENTRYA.TYP_0 AND + GACCENTRYD.NUM_0 = GACCENTRYA.NUM_0 AND + GACCENTRYD.LIG_0 = GACCENTRYA.LIG_0; + + -- Suppression écritures avec compte inexistant (UO) + DELETE FROM w_GACCENTRY_DA + WHERE acc_0 NOT IN (SELECT acc_0 FROM prod_adonix.GACCOUNT) + ; + + + CREATE INDEX w_GACCENTRY_DA_i1 + ON w_GACCENTRY_DA + USING btree + (TYP_0, NUM_0); + + + DROP TABLE IF EXISTS w_GACCENTRY_EDA; + CREATE TEMP TABLE w_GACCENTRY_EDA AS + SELECT + to_char(PERIOD.PEREND_0, 'YYYYMM')::numeric AS MOIS, + PERIOD.PEREND_0, + GACCENTRY.TYP_0, + GACCENTRY.CAT_0, + GACCENTRY.NUM_0, + GACCENTRY.JOU_0, + GACCENTRY.REF_0, + GACCENTRY.BPRVCR_0, + GACCENTRY.BPRDATVCR_0, + w_GACCENTRY_DA.LIG_0, + w_GACCENTRY_DA.ACC_0, + w_GACCENTRY_DA.ANALIG_0, + w_GACCENTRY_DA.ACCDAT_0, + w_GACCENTRY_DA.DES_0, + w_GACCENTRY_DA.FCYLIN_0, + w_GACCENTRY_DA.BPR_0, + w_GACCENTRY_DA.OFFACC_0, + w_GACCENTRY_DA.SNS_0, + w_GACCENTRY_DA.AMTCUR_0, + round(CASE WHEN SNS_0 > 0 THEN AMTCUR_0 ELSE 0 END::numeric,2) AS AMTCUR_debit, + round(CASE WHEN SNS_0 < 0 THEN AMTCUR_0 ELSE 0 END::numeric,2) AS AMTCUR_credit, + w_GACCENTRY_DA.CCE_0, + w_GACCENTRY_DA.CCE_1, + w_GACCENTRY_DA.CCE_2, + w_GACCENTRY_DA.CCE_3, + w_GACCENTRY_DA.CCE_4, + w_GACCENTRY_DA.CCE_5, + FCYLIN_0 || '|' || + JOU_0 || '|' || + BPR_0 || '|' || + ACC_0 || '|' || + CCE_0 || '|' || + CCE_1 || '|' || + CCE_2 || '|' || + CCE_3 || '|' || + CCE_4 || '|' || + CCE_5 || '|' || + OFFACC_0 AS key + FROM prod_adonix.GACCENTRY + JOIN prod_adonix.GTYPACCENT ON GACCENTRY.TYP_0 = GTYPACCENT.TYP_0 + JOIN prod_adonix.PERIOD ON GACCENTRY.CPY_0 = PERIOD.CPY_0 AND + GACCENTRY.FIY_0 = PERIOD.FIYNUM_0 AND + CASE WHEN GACCENTRY.PER_0 <> 0 THEN GACCENTRY.PER_0 ELSE 1 END = PERIOD.PERNUM_0 + JOIN w_GACCENTRY_DA ON w_GACCENTRY_DA.NUM_0 = GACCENTRY.NUM_0 AND + w_GACCENTRY_DA.TYP_0 = GACCENTRY.TYP_0 + WHERE GACCENTRY.CAT_0 <> 5 + ; + + + DROP TABLE IF EXISTS w_GACCENTRYD; + CREATE TEMP TABLE w_GACCENTRYD AS + SELECT MOIS, + ACC_0, + Count(*) AS COUNT, + round(SUM(AMTCUR_debit)::numeric,2) AS DEBIT, + round(SUM(AMTCUR_credit)::numeric,2) AS CREDIT + FROM w_GACCENTRY_EDA + GROUP BY 1,2 + ORDER BY 1,2; + + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT mois_comptable, t_comptes.compte_nonsigne_numero as numero, SUM(montant_debit) as debit, SUM(montant_credit) as credit, SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total, compta.t_comptes + WHERE mois_comptable >= 200801 AND + p_historique_ecritures_total.compte_id = t_comptes.oid AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_GACCENTRYD.mois AS mois_modifie + FROM w_GACCENTRYD + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_GACCENTRYD.mois AND + w_historique_ecritures_total.numero = w_GACCENTRYD.ACC_0 + WHERE w_historique_ecritures_total.count IS DISTINCT FROM w_GACCENTRYD.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_GACCENTRYD.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_GACCENTRYD.credit + GROUP BY 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_modifie); + + + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_modifie),'0') + FROM w_mois_modifies; + + + echo Mois modifiés : [MOISMODIFIES]; + + ]]> + + + + + + + + + + + + + + + '' AND code_original = CCE_0; + + UPDATE w_GACCENTRY_keys + SET section_analytique_2_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE CCE_1 <> '' AND code_original = CCE_1; + + --UPDATE w_GACCENTRY_keys + --SET section_analytique_3_id = t_sections_analytiques.oid + --FROM compta.t_sections_analytiques + --WHERE CCE_2 <> '' AND code_original = CCE_2; + + UPDATE w_GACCENTRY_keys + SET section_analytique_4_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE CCE_3 <> '' AND code_original = CCE_3; + + UPDATE w_GACCENTRY_keys + SET section_analytique_5_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE CCE_4 <> '' AND code_original = CCE_4; + + UPDATE w_GACCENTRY_keys + SET section_analytique_6_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE CCE_5 <> '' AND code_original = CCE_5; + + + UPDATE w_GACCENTRY_keys + SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE BPR_0 <> '' AND code_original = BPR_0; + + UPDATE w_GACCENTRY_keys + SET compte_contrepartie_id = t_comptes.oid + FROM compta.t_comptes + WHERE OFFACC_0 <> '' AND numero = OFFACC_0 ; + + + UPDATE w_GACCENTRY_keys + SET compte_extra_id = t_comptes.oid, + type_compta_id = t_comptes.type_compta_id + FROM compta.t_comptes + WHERE w_GACCENTRY_keys.partenaire_id <> 0 AND + w_GACCENTRY_keys.compte_id = t_comptes.compte_general_id AND + w_GACCENTRY_keys.partenaire_id = t_comptes.partenaire_id; + + + ALTER TABLE w_GACCENTRY_keys ADD CONSTRAINT w_GACCENTRY_keys_pk PRIMARY KEY(key); + + + + CREATE INDEX w_GACCENTRY_EDA_i1 + ON w_GACCENTRY_EDA + USING btree + (key); + + + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + montant_credit, + montant_debit) + SELECT + site_id, + type_compta_id, + compte_id, + date(ACCDAT_0) AS date_ecriture, + date_part('year',PEREND_0) AS exercice_comptable, + to_number(to_char(PEREND_0, 'YYYYMM'),'000000') AS mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + partenaire_id, + compte_extra_id, + '1'::text AS comptabilisee, + '0'::text AS fin_exercice, + CASE WHEN CAT_0 = '5' THEN '3' ELSE '0'::text END AS ajustement, + '0'::text AS inter_site, + TYP_0 || '-' || NUM_0 || '-' || to_char(LIG_0,'FM00000') || CASE WHEN COALESCE(ANALIG_0,0) > 1 THEN '-' || to_char(ANALIG_0,'FM00000') ELSE '' END AS cle_originale, + NUM_0 AS identifiant_operation, + compte_contrepartie_id, + substr(DES_0,1,100) AS texte, + date(COALESCE(CASE WHEN BPRDATVCR_0 > '20000101' THEN BPRDATVCR_0 ELSE NULL END,'20991231')) AS date_facture_fournisseur, + substr(REF_0,1,255) AS texte, + substr(BPRVCR_0,1,255) AS dossier, + '20991231'::date AS date_echeance, + 0::bigint AS journal_paiement_id, + 0::bigint AS mode_paiement_id, + ''::text AS numero_cheque, + AMTCUR_credit, + AMTCUR_debit + FROM w_GACCENTRY_EDA + JOIN w_mois_modifies ON mois_modifie = w_GACCENTRY_EDA.MOIS + JOIN w_GACCENTRY_keys ON w_GACCENTRY_keys.key = w_GACCENTRY_EDA.key + ORDER BY NUM_0, TYP_0, LIG_0; + + + 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'); + + + + ]]> + + + + + + + + + + 0 + group by 1 + HAVING count(DISTINCT partenaire_id) > 1 + ORDER BY 1; + + UPDATE compta.t_comptes + SET collectif = '1', + type_compta_extra_id = type_compta_id, + numero_extra = numero || '-*', + texte_extra = texte || ' (*)' + FROm w_comptes_collectifs + WHERE w_comptes_collectifs.compte_id = t_comptes.oid AND + collectif IS DISTINCT FROM '1'; + + DELETE FROM compta.t_comptes + WHERE compte_general_id <> oid AND + compte_general_id IN (SELECT oid FROM compta.t_comptes WHERE collectif <> '1' OR type_compta_extra_id = 0); + + DROP TABLE IF EXISTS w_comptes_extra; + CREATE TEMP TABLE w_comptes_extra AS + SELECT type_compta_extra_id AS type_compta_id, + replace(t_comptes.numero_extra, '*', t_partenaires.code) AS numero, + replace(t_comptes.texte_extra, '*', t_partenaires.texte_court) AS texte, + t_comptes.compte_nonsigne_id AS compte_general_id, + t_comptes.clinique_honoraire, + p_historique_ecritures.partenaire_id + FROM compta.p_historique_ecritures + JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid AND + p_historique_ecritures.partenaire_id <> 0 + JOIN compta.t_comptes ON compte_id = t_comptes.oid AND t_comptes.collectif = '1' + GROUP BY 1,2,3,4,5,6; + + UPDATE compta.t_comptes + SET numero = w_comptes_extra.numero, texte = substr(w_comptes_extra.texte,1,50) + FROM w_comptes_extra + WHERE t_comptes.type_compta_id = w_comptes_extra.type_compta_id AND + t_comptes.compte_general_id = w_comptes_extra.compte_general_id AND + t_comptes.partenaire_id = w_comptes_extra.partenaire_id AND + t_comptes.partenaire_id <> 0 AND + ( + t_comptes.numero IS DISTINCT FROM w_comptes_extra.numero OR + t_comptes.texte IS DISTINCT FROM substr(w_comptes_extra.texte,1,50) + ); + + 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) + SELECT type_compta_id, numero, substr(texte,1,50), + compte_general_id, clinique_honoraire, '0', '', 0, 0, 0, 0, 0, 0, + 0, '0', 0, '', '', partenaire_id + FROM w_comptes_extra + WHERE partenaire_id <> 0 AND + type_compta_id || '.' || compte_general_id || '.' || partenaire_id + NOT IN (SELECT type_compta_id || '.' || t_comptes.compte_general_id || '.' || partenaire_id FROM compta.t_comptes); + + + + -- Mise à jour des ecritures comptables + + DROP TABLE IF EXISTS w_comptes_extra; + CREATE TEMP TABLE w_comptes_extra AS + SELECT t_comptes.oid AS compte_id, t_comptes_extra.oid AS compte_extra_id, t_comptes_extra.partenaire_id + FROM compta.t_comptes, compta.t_comptes t_comptes_extra + WHERE t_comptes_extra.type_compta_id = t_comptes.type_compta_extra_id + AND t_comptes.collectif = '1' + AND t_comptes.type_compta_extra_id > 0 + AND t_comptes_extra.compte_general_id = t_comptes.oid; + + CREATE INDEX w_comptes_extra_i1 ON w_comptes_extra USING btree (compte_id); + CREATE INDEX w_comptes_extra_i2 ON w_comptes_extra USING btree (partenaire_id); + + + UPDATE compta.p_historique_ecritures SET compte_extra_id = compte_id + WHERE compte_extra_id <> compte_id AND + compte_id IN (SELECT oid FROM compta.t_comptes WHERE collectif <> '1' OR type_compta_extra_id = 0); + + DROP TABLE IF EXISTS w_historique_ecritures_update; + CREATE TEMP TABLE w_historique_ecritures_update(compte_id bigint, partenaire_id bigint, to_compte_extra_id bigint); + + SELECT base.cti_execute( + 'TRUNCATE w_historique_ecritures_update., + INSERT INTO w_historique_ecritures_update + SELECT p_historique_ecritures.compte_id, p_historique_ecritures.partenaire_id, w_comptes_extra.compte_extra_id + FROM compta.p_historique_ecritures + JOIN w_comptes_extra ON p_historique_ecritures.compte_id = w_comptes_extra.compte_id AND + p_historique_ecritures.partenaire_id = w_comptes_extra.partenaire_id + WHERE p_historique_ecritures.partenaire_id <> 0 AND + p_historique_ecritures.compte_extra_id IS DISTINCT FROM w_comptes_extra.compte_extra_id + LIMIT 5., + + UPDATE compta.p_historique_ecritures + SET compte_extra_id = w_historique_ecritures_update.to_compte_extra_id + FROM w_historique_ecritures_update + WHERE p_historique_ecritures.partenaire_id <> 0 AND + p_historique_ecritures.compte_id = w_historique_ecritures_update.compte_id AND + p_historique_ecritures.partenaire_id = w_historique_ecritures_update.partenaire_id AND + p_historique_ecritures.compte_extra_id IS DISTINCT FROM w_historique_ecritures_update.to_compte_extra_id' + , + 100 + ); + + + + ]]> + + + + + + + '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; + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '' AND + CCE_0 IN (SELECT CCE_0 FROM prod_adonix.GACCENTRYA) AND + CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ; + + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT CCE_0, CCE_0, MAX(DES_0) + FROM prod_adonix.CACCE + WHERE CCE_0 <> '' AND + CCE_0 IN (SELECT CCE_1 FROM prod_adonix.GACCENTRYA) AND + CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ; + + + --INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + --SELECT CCE_0, CCE_0, MAX(DES_0) + --FROM prod_adonix.CACCE + --WHERE CCE_0 <> '' AND + -- CCE_0 IN (SELECT CCE_2 FROM prod_adonix.GACCENTRYA) AND + -- CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + --GROUP BY 1 + --; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT CCE_0, CCE_0, MAX(DES_0) + FROM prod_adonix.CACCE + WHERE CCE_0 <> '' AND + CCE_0 IN (SELECT CCE_3 FROM prod_adonix.GACCENTRYA) AND + CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT CCE_0, CCE_0, MAX(DES_0) + FROM prod_adonix.CACCE + WHERE CCE_0 <> '' AND + CCE_0 IN (SELECT CCE_4 FROM prod_adonix.GACCENTRYA) AND + CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT CCE_0, CCE_0, MAX(DES_0) + FROM prod_adonix.CACCE + WHERE CCE_0 <> '' AND + CCE_0 IN (SELECT CCE_5 FROM prod_adonix.GACCENTRYA) AND + CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ; + + + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT BPRNUM_0, BPRNUM_0, BPRNAM_0, CASE WHEN BPRSHO_0 <> '' THEN BPRSHO_0 ELSE BPRNAM_0 END + FROM prod_adonix.BPARTNER + WHERE BPRNUM_0 NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) + ORDER BY BPRNUM_0; + + + + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux, clinique_honoraire) + SELECT JOU_0, JOU_0, DES_0, CASE WHEN TYP_0 = 7 THEN '1' ELSE '0' END, 'C' + FROM prod_adonix.GJOURNAL + WHERE JOU_0 NOT IN (SELECT code_original FROM compta.t_journaux WHERE code_original IS NOT NULL) + ORDER BY JOU_0; + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + GACCOUNT.ACC_0 AS numero, + MAX(GACCOUNT.DES_0) AS texte, + 0 AS compte_general_id, + 'C' AS clinique_honoraire, + MAX(CASE WHEN BANK.BAN_0 IS NOT NULL THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra + FROM prod_adonix.GACCOUNT + LEFT JOIN prod_adonix.BANK ON (GACCOUNT.ACC_0 = BANK.BANACC_0) + LEFT JOIN compta.t_types_compta ON CASE WHEN ACC_0 LIKE '6%' OR ACC_0 LIKE '7%' THEN 'GES' ELSE 'BIL' END = t_types_compta.code_original + WHERE ACC_0 NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2; + + UPDATE compta.t_comptes SET compte_general_id = oid + WHERE type_compta_id IN (SELECT oid FROM compta.t_types_compta + WHERE code IN ('BIL', 'GES')) AND compte_general_id <> oid AND partenaire_id = 0; + + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_CEGI.XML b/import_compta/iCTI_import_compta_CEGI.XML new file mode 100644 index 0000000..8fa7992 --- /dev/null +++ b/import_compta/iCTI_import_compta_CEGI.XML @@ -0,0 +1,478 @@ + + + + + + + + + + + + + + + + + + + + + + + = 200701 AND + ECR_NBDET = 0; + ; + + ANALYSE w_CMECRITURES + ; + + UPDATE w_CMECRITURES + SET ANA_ID = CMCODESANA.ANA_ID + FROM prod_cegi.CMCODESANA + WHERE ECR_CODANA = ANA_CODANA AND + ECR_CODANA <> '' AND + ECR_CODANA <> '*' + ; + + CREATE INDEX w_I_CMECRITURES_ECR_ID + ON w_CMECRITURES + USING btree + (ECR_ID) + ; + + CREATE INDEX w_I_CMECRITURES_PLC_COMPTE + ON w_CMECRITURES + USING btree + (PLC_COMPTE) + ; + + CREATE INDEX w_I_CMECRITURES_DOS_ID + ON w_CMECRITURES + USING btree + (DOS_ID) + ; + + CREATE INDEX w_I_CMECRITURES_JNL_CODE + ON w_CMECRITURES + USING btree + (JNL_CODE) + ; + + + + + DROP TABLE IF EXISTS w_plx_plc; + CREATE TEMP TABLE w_plx_plc AS + SELECT plx_id, PLC_COMPTE, t_comptes.oid AS compte_id + FROM w_CMECRITURES CMECRITURES JOIN compta.t_comptes ON (cmecritures.plc_compte = t_comptes.numero) + JOIN w_CMETABLISSEMENT ON CMECRITURES.DOS_ID = w_CMETABLISSEMENT.ETAB_ID + WHERE plx_id <> 0 + GROUP BY 1,2,3; + + DROP TABLE IF EXISTS w_cpt_aux; + CREATE TEMP TABLE w_cpt_aux AS + SELECT cmplanaux.plx_id, PLC_COMPTE, t_types_compta.oid AS type_compte_extra_id, t_comptes_aux.oid AS compte_extra_id, coalesce(t_partenaires.oid,0) AS partenaire_id + FROM prod_cegi.cmplanaux + JOIN w_plx_plc ON (cmplanaux.plx_id = w_plx_plc.plx_id) + JOIN compta.t_comptes ON (w_plx_plc.compte_id = t_comptes.oid) + JOIN compta.t_types_compta ON (auxi_typcpt = t_types_compta.code_original) + JOIN compta.t_comptes t_comptes_aux ON (t_comptes.numero || '_'::text || plx_compte = t_comptes_aux.numero) + LEFT JOIN compta.t_partenaires ON (plx_idtiers = t_partenaires.code_original); + + ]]> + + + + 1 THEN COALESCE(ECA_MONTANT, ecr_montant) ELSE 0 END AS montant_credit, + CASE WHEN ecr_signed = 1 THEN COALESCE(ECA_MONTANT, ecr_montant) ELSE 0 END AS montant_debit, + t_journaux.oid AS journal_id, + COALESCE(t_sections_analytiques.oid,0) AS section_analytique_id, + t_sites.clinique_honoraire, + ecr_periode / 100 AS exercice_comptable, + t_comptes.type_compta_id, + COALESCE(w_cpt_aux.compte_extra_id,t_comptes.oid), + '0' AS comptabilisee, + '0' AS fin_exercice, + '0' AS ajustement, + ecr_numecr::text || '-'::text || ecr_numord::text AS cle_originale, + COALESCE(t_comptes_contrep.oid,0) AS compte_contrepartie_id, + ecr_libelle || ' ' || ECR_LIBCOMPL AS texte, + '20991231' AS date_facture_fournisseur, + '' AS piece, + ecr_numfact AS dossier, + '20991231' AS date_echeance, + 0 AS journal_paiement_id, + 0 AS mode_paiement_id, + '' AS numero_cheque, + t_sites.oid AS site_id, + COALESCE(w_cpt_aux.partenaire_id,0), + '0' AS inter_site, + ecr_numecr AS identifiant_operation + FROM w_CMECRITURES CMECRITURES + LEFT JOIN prod_cegi.CMECRANA ON CMECRANA.ECR_ID = CMECRITURES.ECR_ID + JOIN w_CMETABLISSEMENT ON CMECRITURES.DOS_ID = w_CMETABLISSEMENT.ETAB_ID + JOIN compta.t_comptes ON (cmecritures.plc_compte = t_comptes.numero) + JOIN compta.t_journaux ON (cmecritures.jnl_code = t_journaux.code_original) + JOIN compta.t_sites ON (cmecritures.dos_id = t_sites.code_original) + LEFT JOIN compta.t_sections_analytiques ON + COALESCE(CMECRANA.ANA_ID::text, CMECRITURES.ANA_ID::text) = t_sections_analytiques.code_original + LEFT JOIN w_cpt_aux ON (cmecritures.plx_id = w_cpt_aux.plx_id AND cmecritures.PLC_COMPTE = w_cpt_aux.PLC_COMPTE) + LEFT JOIN compta.t_comptes t_comptes_contrep ON (cmecritures.ecr_contrep = t_comptes_contrep.numero) + WHERE ecr_periode >= 200701 AND ecr_nbdet = 0; + + + 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'); + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + ; + + INSERT INTO compta.t_sections_analytiques(code_original, code, texte) + SELECT + ANA_ID, + MAX(ANA_CODANA) AS code, + MAX(ANA_LIB) AS texte + FROM prod_cegi.CMCODESANA + WHERE ANA_CODANA <> '' AND + ANA_ID NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1; + + UPDATE compta.t_sections_analytiques SET + code = ANA_CODANA, + texte = ANA_LIB + FROM prod_cegi.CMCODESANA + WHERE ANA_CODANA <> '' AND + ANA_ID = code_original AND + ( + code IS DISTINCT FROM ANA_CODANA OR + texte IS DISTINCT FROM ANA_LIB + ) + ; + + + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + INSERT INTO compta.t_comptes(oid, type_compta_id, numero, texte, compte_general_id, clinique_honoraire) + SELECT 0, 0, '', 'Non renseigné', 0, '' WHERE 0 NOT IN (SElECT oid FROM compta.t_comptes); + + -- Periode comptable + + + -- Sites + DROP TABLE IF EXISTS w_CMETABLISSEMENT; + CREATE TEMP TABLE w_CMETABLISSEMENT AS + SELECT * + FROM prod_cegi.CMETABLISSEMENT + WHERE ETAB_ID::text = ANY (string_to_array('[ETAB]'::text,',')) OR + '[ETAB]' = ''; + + + INSERT INTO compta.t_sites(code_original, code, texte) + SELECT etab_id, etab_code, etab_lib + FROM w_CMETABLISSEMENT + WHERE etab_id IN (SELECT DISTINCT dos_id FROM prod_cegi.cmecritures) + AND etab_id NOT IN (SELECT code_original FROM compta.t_sites); + + + -- Types de compta + INSERT INTO compta.t_types_compta(oid, code_original, code, texte) + SELECT 0, '', '', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_types_compta); + + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT * FROM + ( + SELECT 'GES', 'GES' AS code_original, 'GESTION', 'GES' + UNION + SELECT 'BIL', 'BIL' AS code_original, 'BILAN', 'BIL' + UNION + SELECT 'RES', 'RES' AS code_original, 'RESULTAT', 'RES' + ) subview + WHERE code_original NOT IN (SELECT code_original FROM compta.t_types_compta); + + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT DISTINCT auxi_typcpt, auxi_typcpt, auxi_typcpt, '' FROM prod_cegi.cmplanaux + WHERE auxi_typcpt NOT IN (SELECT code_original FROM compta.t_types_compta); + + + + -- Journaux + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux) + SELECT jnl_code, jnl_code, jnl_lib, CASE WHEN jnl_typj = 'N' THEN '1' ELSE '0' END + FROM prod_cegi.cmjournaux + WHERE jnl_code NOT IN (SELECT code_original FROM compta.t_journaux); + + -- Partenaires + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT tie_code, tie_id, tie_nom, tie_nomc + FROM prod_cegi.cmtiers JOIN prod_cegi.cmplanaux ON (cmtiers.plx_id = cmplanaux.plx_id) + WHERE tie_id NOT IN (SELECT code_original FROM compta.t_partenaires) + ORDER BY tie_code; + + -- Classes de comptes + + + -- Comptes + INSERT INTO compta.t_comptes (type_compta_id, numero, texte, clinique_honoraire, banque) + SELECT t_types_compta.oid, subview.plc_compte, subview.plc_libelle, '', + CASE WHEN subviewj.plc_compte IS NOT NULL THEN '1' ELSE '0' END + FROM + (SELECT + CASE WHEN cmplancpt.plc_compte LIKE '6%' THEN 'GES' + WHEN cmplancpt.plc_compte LIKE '7%' THEN 'GES' + WHEN cmplancpt.plc_compte LIKE '8%' THEN 'RES' + ELSE 'BIL' END AS plc_type, + cmplancpt.plc_compte, + cmplancpt.plc_libelle + FROM prod_cegi.cmplancpt) subview + JOIN compta.t_types_compta ON (plc_type = t_types_compta.code_original) + LEFT JOIN + ( + SELECT DISTINCT plc_compte FROM prod_cegi.cmjournaux WHERE jnl_typj = 'T' + ) subviewj ON (subviewj.plc_compte = subview.plc_compte) + WHERE subview.plc_compte NOT IN (SELECT numero FROM compta.t_comptes) + ORDER BY subview.plc_compte; + + 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 + DROP TABLE IF EXISTS w_plx_plc; + CREATE TEMP TABLE w_plx_plc AS + SELECT plx_id, t_comptes.oid AS compte_id + FROM prod_cegi.cmecritures JOIN compta.t_comptes ON (cmecritures.plc_compte = t_comptes.numero) + JOIN w_CMETABLISSEMENT ON CMECRITURES.DOS_ID = w_CMETABLISSEMENT.ETAB_ID + WHERE plx_id <> 0 + GROUP BY 1,2; + + 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 || plx_compte::text, plx_libelle, t_comptes.oid, '', coalesce(t_partenaires.oid,0) + FROM prod_cegi.cmplanaux + JOIN w_plx_plc ON (cmplanaux.plx_id = w_plx_plc.plx_id) + JOIN compta.t_comptes ON (w_plx_plc.compte_id = t_comptes.oid) + JOIN compta.t_types_compta ON (auxi_typcpt = t_types_compta.code_original) + LEFT JOIN compta.t_partenaires ON (plx_idtiers = t_partenaires.code_original) + WHERE t_comptes.numero::text || '_'::text || plx_compte::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 + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_CEGID.xml b/import_compta/iCTI_import_compta_CEGID.xml new file mode 100644 index 0000000..97848d1 --- /dev/null +++ b/import_compta/iCTI_import_compta_CEGID.xml @@ -0,0 +1,1033 @@ + + + + + + + + + + + + + + + + + + + 'OUV' + ; + + -- vérification sur la date de debut données cegid + UPDATE w_periode SET + date_debut_cegid = GREATEST(date_debut_cegid,to_char(EX_DATEDEBUT,'YYYMM')::bigint) + FROM (SELECT MIN(EX_DATEDEBUT) AS EX_DATEDEBUT FROM prod_cegid.EXERCICE) sub + ; + + DELETE FROM compta.p_historique_ecritures + USING w_PERIODE + WHERE mois_comptable >= date_debut_cegid; + + --TRUNCATE compta.p_historique_ecritures_total; + + + + 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'); + + + + ]]> + + + + + + = date_debut_cegid + JOIN compta.t_comptes ON (E_GENERAL = t_comptes.numero) AND compte_general_id = oid + JOIN compta.t_journaux ON (E_JOURNAL = t_journaux.code_original) + JOIN compta.t_sites ON (E_SOCIETE = t_sites.code) + LEFT JOIN compta.t_comptes w_cpt_aux ON (E_GENERAL || '_' || E_AUXILIAIRE = w_cpt_aux.numero) + LEFT JOIN compta.t_comptes t_comptes_contre ON t_comptes_contre.numero = CASE WHEN E_CONTREPARTIEAUX IS NOT NULL THEN E_CONTREPARTIEGEN || '_' || E_CONTREPARTIEAUX ELSE E_CONTREPARTIEGEN END + LEFT JOIN compta.t_mode_paiement ON E_MODEPAIE = t_mode_paiement.code_original + WHERE (E_LIBELLE NOT LIKE 'DETRUITE%' OR E_ECRANOUVEAU = 'OAN') AND E_QUALIFPIECE != 'S' + ; + + 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'); + + + + ]]> + + + + + + + 0 + FROM information_schema.tables + WHERE 1=1 + AND table_schema = 'prod_cegid' + AND table_name = 'ecriture_hono' + ; + + ]]> + + + + 'OUV' + GROUP BY 1 + ; + + DELETE FROM compta.p_historique_ecritures + USING w_PERIODE + WHERE mois_comptable >= date_debut_cegid + AND site_id = societe_id; + + --TRUNCATE compta.p_historique_ecritures_total; + + + + 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'); + + + + ]]> + + + + + = date_debut_cegid + JOIN compta.t_comptes ON (E_GENERAL = t_comptes.numero) AND compte_general_id = oid + JOIN compta.t_journaux ON (E_JOURNAL = t_journaux.code_original) + JOIN compta.t_sites ON (E_SOCIETE || '_H' = t_sites.code) + LEFT JOIN compta.t_comptes w_cpt_aux ON (E_GENERAL || '_' || E_AUXILIAIRE = w_cpt_aux.numero) + LEFT JOIN compta.t_comptes t_comptes_contre ON t_comptes_contre.numero = CASE WHEN E_CONTREPARTIEAUX IS NOT NULL THEN E_CONTREPARTIEGEN || '_' || E_CONTREPARTIEAUX ELSE E_CONTREPARTIEGEN END + LEFT JOIN compta.t_mode_paiement ON E_MODEPAIE = t_mode_paiement.code_original + WHERE (E_LIBELLE NOT LIKE 'DETRUITE%' OR E_ECRANOUVEAU = 'OAN') AND E_QUALIFPIECE != 'S' + ; + + 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 + FROM information_schema.tables + WHERE 1=1 + AND table_schema = 'prod_cegid' + AND table_name = 'ecriture_hono' + ; + + ]]> + + + + + + + + + + + + + 0 AND + compte_general_id = t_comptes.oid AND + t_comptes.type_compta_id = t_types_compta.oid AND + t_types_compta_ok.code_original = + CASE + WHEN t_comptes.numero LIKE '6%' THEN 'GES' + WHEN t_comptes.numero LIKE '7%' THEN 'GES' + WHEN t_comptes.numero LIKE '8%' THEN 'RES' + ELSE 'BIL' END AND + type_compta_id <> t_types_compta_ok.oid + ; + + + -- Periode comptable + UPDATE base.p_calendrier_mois SET + exercice_comptable = subview.exercice_comptable + FROM ( + SELECT + p_calendrier_mois.mois, + p_calendrier_mois.date_debut, + date_part('year',p_calendrier_mois.date_debut) + CASE + WHEN to_number(substr(p_calendrier_mois.mois,5,2),'FM00') >= subview.exercice_mois_comptable_1 AND subview.exercice_mois_comptable_1 > 1 THEN 1 + ELSE 0 END AS exercice_comptable + FROM base.p_calendrier_mois + JOIN ( + SELECT + EX_DATEDEBUT, + EX_DATEFIN, + to_char(EX_DATEDEBUT,'YYYY') AS exercice_comptable, + to_char(EX_DATEDEBUT,'MM') AS exercice_mois_comptable_1 + FROM + prod_cegid.EXERCICE + ) subview ON 1 = 1 + ) subview + WHERE p_calendrier_mois.mois = subview.mois AND + p_calendrier_mois.exercice_comptable IS DISTINCT FROM subview.exercice_comptable; + + UPDATE base.p_calendrier_mois + SET exercice_mois_comptable_1 = subview.exercice_mois_comptable_1 + FROM + ( + SELECT exercice_comptable, + MIN(mois) AS exercice_mois_comptable_1 + FROM base.p_calendrier_mois + GROUP BY 1 + ) subview + WHERE p_calendrier_mois.exercice_comptable = subview.exercice_comptable AND + p_calendrier_mois.exercice_mois_comptable_1 IS DISTINCT FROM subview.exercice_mois_comptable_1; + + -- Initialisation paramètres + UPDATE compta.t_sites SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0; + INSERT INTO compta.t_sites(oid, code, clinique_honoraire, code_original, texte) + SELECT 0, chr(127) || '***', '', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_sites); + + UPDATE compta.t_classes_comptes SET code = '0', texte = 'Non renseigné' WHERE oid = 0; + INSERT INTO compta.t_classes_comptes(oid, code, texte, clinique, honoraire) + SELECT 0, '0', 'Non renseigné', '0', '0' WHERE 0 NOT IN (SELECT oid FROM compta.t_classes_comptes); + + UPDATE compta.t_partenaires SET code = chr(127) || '****', texte = 'Non renseigné', texte_court = 'Non renseigné' WHERE oid = 0; + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '****', '', 'Non renseigné', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + UPDATE compta.t_journaux SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0; + INSERT INTO compta.t_journaux(oid, code, clinique_honoraire, code_original, texte) + SELECT 0, chr(127) || '***', '', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_journaux); + + UPDATE compta.t_sections_analytiques SET code = chr(127) || '***', texte = 'Non renseigné' WHERE oid = 0; + INSERT INTO compta.t_sections_analytiques(oid, code, code_original, texte) + SELECT 0, chr(127) || '***', '', 'Non renseigné' WHERE 0 NOT IN (SELECT oid FROM compta.t_sections_analytiques); + + + + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + INSERT INTO compta.t_comptes(oid, type_compta_id, numero, texte, compte_general_id, clinique_honoraire) + SELECT 0, 0, '', 'Non renseigné', 0, '' WHERE 0 NOT IN (SElECT oid FROM compta.t_comptes); + + -- Periode comptable + + + -- Sites + INSERT INTO compta.t_sites(code_original, code, texte, clinique_honoraire) + SELECT ET_ETABLISSEMENT, ET_ETABLISSEMENT, ET_LIBELLE, 'C' + FROM prod_cegid.ETABLISS + WHERE ET_ETABLISSEMENT IN (SELECT DISTINCT E_SOCIETE FROM prod_cegid.ECRITURE) + AND ET_ETABLISSEMENT NOT IN (SELECT code_original FROM compta.t_sites); + + + -- Types de compta + INSERT INTO compta.t_types_compta(oid, code_original, code, texte) + SELECT 0, '', '', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_types_compta); + + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT * FROM + ( + SELECT 'GES', 'GES' AS code_original, 'GESTION', 'GES' + UNION + SELECT 'BIL', 'BIL' AS code_original, 'BILAN', 'BIL' + UNION + SELECT 'RES', 'RES' AS code_original, 'RESULTAT', 'RES' + ) subview + WHERE code_original NOT IN (SELECT code_original FROM compta.t_types_compta); + + INSERT INTO compta.t_types_compta (code_original, code, texte, specialite) + SELECT T_NATUREAUXI, + T_NATUREAUXI, + CASE T_NATUREAUXI + WHEN 'FOU' THEN 'Fournisseur' + WHEN 'CLI' THEN 'Clients' + WHEN 'DIV' THEN 'Divers' + ELSE T_NATUREAUXI END, + CASE T_NATUREAUXI + WHEN 'FOU' THEN 'FOU' + WHEN 'CLI' THEN 'CLI' + WHEN 'DIV' THEN 'DIV' + ELSE 'DIV' END + FROM prod_cegid.TIERS + WHERE T_NATUREAUXI NOT IN (SELECT code_original FROM compta.t_types_compta) + GROUP BY 1,2,3,4 + ; + + -- Journaux + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux) + SELECT J_JOURNAL, J_JOURNAL, J_LIBELLE, CASE WHEN J_NATUREJAL = 'ANO' THEN '1' ELSE '0' END + FROM prod_cegid.JOURNAL + WHERE J_JOURNAL NOT IN (SELECT code_original FROM compta.t_journaux); + + -- Mode de paiement + INSERT INTO compta.t_mode_paiement(oid, code, code_original, texte) + SELECT 0, '**', '**', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_mode_paiement); + + INSERT INTO compta.t_mode_paiement(code, code_original, texte) + SELECT MP_MODEPAIE, MP_MODEPAIE, MP_LIBELLE + FROM prod_cegid.MODEPAIE + WHERE MP_MODEPAIE <> '' AND + MP_MODEPAIE NOT IN (SELECT code_original FROM compta.t_mode_paiement WHERE code_original IS NOT NULL) + ORDER BY 1; + + + -- Partenaires + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT T_TIERS, T_TIERS, MAX(T_LIBELLE), MAX(T_ABREGE) + FROM prod_cegid.TIERS + WHERE T_TIERS NOT IN (SELECT code_original FROM compta.t_partenaires) + AND T_TIERS IS NOT NULL + GROUP BY 1,2 + ORDER BY 1,2; + + -- Classes de comptes + + -- Comptes génériques + INSERT INTO compta.t_comptes (type_compta_id, numero, texte, clinique_honoraire, banque) + SELECT t_types_compta.oid, subview.G_GENERAL, subview.G_LIBELLE, '', + CASE WHEN subviewj.J_CONTREPARTIE IS NOT NULL THEN '1' ELSE '0' END + FROM + (SELECT + CASE WHEN G_GENERAL LIKE '6%' THEN 'GES' + WHEN G_GENERAL LIKE '7%' THEN 'GES' + WHEN G_GENERAL LIKE '8%' THEN 'RES' + ELSE 'BIL' END AS plc_type, + G_GENERAL, + MAX(G_LIBELLE) AS G_LIBELLE + FROM prod_cegid.GENERAUX GROUP BY 1,2 ORDER BY 2) subview + JOIN compta.t_types_compta ON (plc_type = t_types_compta.code_original) + LEFT JOIN + ( + SELECT DISTINCT J_CONTREPARTIE FROM prod_cegid.JOURNAL WHERE J_NATUREJAL = 'BQE' + ) subviewj ON J_CONTREPARTIE = G_GENERAL + LEFT JOIN (SELECT E_GENERAL FROM prod_cegid.ECRITURE GROUP BY 1 order by 1) compte_util ON G_GENERAL = E_GENERAL + WHERE E_GENERAL IS NOT NULL AND subview.G_GENERAL NOT IN (SELECT numero FROM compta.t_comptes) + ORDER BY subview.G_GENERAL + ; + + 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 + DROP TABLE IF EXISTS w_plx_plc; + CREATE TEMP TABLE w_plx_plc AS + SELECT T_COLLECTIF, + T_TIERS, T_NATUREAUXI AS plc_type, + t_types_compta.oid AS type_compta_id, + MAX(t_comptes.oid) AS compte_general_id, + MAX(T_COLLECTIF||'_'||T_TIERS) AS code_original + FROM prod_cegid.TIERS + JOIN compta.t_comptes ON T_COLLECTIF = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id + JOIN compta.t_types_compta ON T_NATUREAUXI = t_types_compta.code_original + GROUP BY 1,2,3,4 + order by 1,2,3,4 + ; + + UPDATE compta.t_comptes + SET type_compta_id = w_plx_plc.type_compta_id + FROM w_plx_plc + WHERE t_comptes.numero = w_plx_plc.code_original AND + t_comptes.oid <> t_comptes.compte_general_id AND + t_comptes.type_compta_id <> w_plx_plc.type_compta_id + + ; + + INSERT INTO compta.t_comptes( + type_compta_id, + numero, + texte, + compte_general_id, + clinique_honoraire, + partenaire_id) + SELECT w_plx_plc.type_compta_id, + w_plx_plc.code_original, + t_partenaires.texte, + w_plx_plc.compte_general_id, + '', + COALESCE(t_partenaires.oid,0) + FROM w_plx_plc + LEFT JOIN compta.t_partenaires ON (T_TIERS = t_partenaires.code_original) + WHERE w_plx_plc.code_original 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, E_GENERAL, MAX(E_LIBELLE), '', 0 + FROM prod_cegid.ECRITURE + JOIN compta.t_types_compta ON (CASE WHEN E_GENERAL LIKE '6%' THEN 'GES' + WHEN E_GENERAL LIKE '7%' THEN 'GES' + WHEN E_GENERAL LIKE '8%' THEN 'RES' + ELSE 'BIL' END = t_types_compta.code_original) + WHERE E_GENERAL 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 + + ]]> + + + + + 0 + FROM information_schema.tables + WHERE 1=1 + AND table_schema = 'prod_cegid' + AND table_name = 'ecriture_hono' + ; + + ]]> + + + '' AND + MP_MODEPAIE NOT IN (SELECT code_original FROM compta.t_mode_paiement WHERE code_original IS NOT NULL) + ORDER BY 1; + + -- Types auxiliaires + INSERT INTO compta.t_types_compta (code_original, code, texte, specialite) + SELECT T_NATUREAUXI, + T_NATUREAUXI, + CASE T_NATUREAUXI + WHEN 'FOU' THEN 'Fournisseur' + WHEN 'CLI' THEN 'Clients' + WHEN 'DIV' THEN 'Divers' + ELSE T_NATUREAUXI END, + CASE T_NATUREAUXI + WHEN 'FOU' THEN 'FOU' + WHEN 'CLI' THEN 'CLI' + WHEN 'DIV' THEN 'DIV' + ELSE 'DIV' END + FROM prod_cegid.TIERS_HONO + WHERE T_NATUREAUXI NOT IN (SELECT code_original FROM compta.t_types_compta) + GROUP BY 1,2,3,4 + ; + + -- Partenaires + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT T_TIERS, T_TIERS, MAX(T_LIBELLE), MAX(T_ABREGE) + FROM prod_cegid.TIERS_HONO + WHERE T_TIERS NOT IN (SELECT code_original FROM compta.t_partenaires) + AND T_TIERS IS NOT NULL + GROUP BY 1,2 + ORDER BY 1,2; + + -- Classes de comptes + + -- Comptes génériques + INSERT INTO compta.t_comptes (type_compta_id, numero, texte, clinique_honoraire, banque) + SELECT t_types_compta.oid, subview.G_GENERAL, subview.G_LIBELLE, '', + CASE WHEN subviewj.J_CONTREPARTIE IS NOT NULL THEN '1' ELSE '0' END + FROM + (SELECT + CASE WHEN G_GENERAL LIKE '6%' THEN 'GES' + WHEN G_GENERAL LIKE '7%' THEN 'GES' + WHEN G_GENERAL LIKE '8%' THEN 'RES' + ELSE 'BIL' END AS plc_type, + G_GENERAL, + MAX(G_LIBELLE) AS G_LIBELLE + FROM prod_cegid.GENERAUX_HONO GROUP BY 1,2 ORDER BY 2) subview + JOIN compta.t_types_compta ON (plc_type = t_types_compta.code_original) + LEFT JOIN + ( + SELECT DISTINCT J_CONTREPARTIE FROM prod_cegid.JOURNAL_HONO WHERE J_NATUREJAL = 'BQE' + ) subviewj ON J_CONTREPARTIE = G_GENERAL + LEFT JOIN (SELECT E_GENERAL FROM prod_cegid.ECRITURE_HONO GROUP BY 1 order by 1) compte_util ON G_GENERAL = E_GENERAL + WHERE E_GENERAL IS NOT NULL AND subview.G_GENERAL NOT IN (SELECT numero FROM compta.t_comptes) + ORDER BY subview.G_GENERAL + ; + + 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 + DROP TABLE IF EXISTS w_plx_plc; + CREATE TEMP TABLE w_plx_plc AS + SELECT T_COLLECTIF, + T_TIERS, T_NATUREAUXI AS plc_type, + t_types_compta.oid AS type_compta_id, + MAX(t_comptes.oid) AS compte_general_id, + MAX(T_COLLECTIF||'_'||T_TIERS) AS code_original + FROM prod_cegid.TIERS_HONO + JOIN compta.t_comptes ON T_COLLECTIF = t_comptes.numero AND t_comptes.oid = t_comptes.compte_general_id + JOIN compta.t_types_compta ON T_NATUREAUXI = t_types_compta.code_original + GROUP BY 1,2,3,4 + order by 1,2,3,4 + ; + + UPDATE compta.t_comptes + SET type_compta_id = w_plx_plc.type_compta_id + FROM w_plx_plc + WHERE t_comptes.numero = w_plx_plc.code_original AND + t_comptes.oid <> t_comptes.compte_general_id AND + t_comptes.type_compta_id <> w_plx_plc.type_compta_id + + ; + + INSERT INTO compta.t_comptes( + type_compta_id, + numero, + texte, + compte_general_id, + clinique_honoraire, + partenaire_id) + SELECT w_plx_plc.type_compta_id, + w_plx_plc.code_original, + t_partenaires.texte, + w_plx_plc.compte_general_id, + '', + COALESCE(t_partenaires.oid,0) + FROM w_plx_plc + LEFT JOIN compta.t_partenaires ON (T_TIERS = t_partenaires.code_original) + WHERE w_plx_plc.code_original 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, E_GENERAL, MAX(E_LIBELLE), '', 0 + FROM prod_cegid.ECRITURE_HONO + JOIN compta.t_types_compta ON (CASE WHEN E_GENERAL LIKE '6%' THEN 'GES' + WHEN E_GENERAL LIKE '7%' THEN 'GES' + WHEN E_GENERAL LIKE '8%' THEN 'RES' + ELSE 'BIL' END = t_types_compta.code_original) + WHERE E_GENERAL 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 + + ]]> + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_CONSOLIDATION.XML b/import_compta/iCTI_import_compta_CONSOLIDATION.XML new file mode 100644 index 0000000..a79d766 --- /dev/null +++ b/import_compta/iCTI_import_compta_CONSOLIDATION.XML @@ -0,0 +1,1357 @@ + + + + + + + + + + = to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric + ', 'temp p_historique_ecritures_in' + ); + + INSERT INTO compta.p_historique_ecritures( + compte_id, + 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, + site_id, + partenaire_id, + inter_site, + ecriture_consolidee, + date_ecriture, + cle_originale, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + identifiant_operation, + is_budget, + compte_budget_id + ) + SElECT + COALESCE(c_comptes.to_oid,0) AS compte_id, + p_historique_ecritures_in.mois_comptable, + p_historique_ecritures_in.montant_credit, + p_historique_ecritures_in.montant_debit, + COALESCE(c_journaux.to_oid,0) AS journal_id, + COALESCE(c_sections_analytiques.to_oid,0) AS section_analytique_id, + p_historique_ecritures_in.clinique_honoraire, + p_historique_ecritures_in.exercice_comptable, + COALESCE(c_types_compta.to_oid,0) AS type_compta_id, + COALESCE(c_comptes_extra.to_oid,0) AS compte_extra_id, + p_historique_ecritures_in.comptabilisee, + p_historique_ecritures_in.fin_exercice, + p_historique_ecritures_in.ajustement, + p_historique_ecritures_in.site_id + [IPX] AS site_id, + COALESCE(c_partenaires.to_oid,0) AS partenaire_id, + p_historique_ecritures_in.inter_site, + p_historique_ecritures_in.ecriture_consolidee, + p_historique_ecritures_in.date_ecriture, + p_historique_ecritures_in.cle_originale, + COALESCE(c_comptes_contre.to_oid,0) AS compte_contrepartie_id, + p_historique_ecritures_in.texte, + p_historique_ecritures_in.date_facture_fournisseur, + p_historique_ecritures_in.piece, + p_historique_ecritures_in.dossier, + p_historique_ecritures_in.date_echeance, + p_historique_ecritures_in.journal_paiement_id, + p_historique_ecritures_in.mode_paiement_id, + p_historique_ecritures_in.numero_cheque, + p_historique_ecritures_in.identifiant_operation, + p_historique_ecritures_in.is_budget, + COALESCE(c_comptes_budget.to_oid,0) AS compte_budget_id + FROM p_historique_ecritures_in + LEFT JOIN c_comptes ON p_historique_ecritures_in.compte_nonsigne_id = c_comptes.oid + LEFT JOIN c_comptes c_comptes_extra ON p_historique_ecritures_in.compte_extra_id = c_comptes_extra.oid + LEFT JOIN c_journaux ON p_historique_ecritures_in.journal_id = c_journaux.oid + LEFT JOIN c_sections_analytiques ON p_historique_ecritures_in.section_analytique_id = c_sections_analytiques.oid + LEFT JOIN c_types_compta ON p_historique_ecritures_in.type_compta_id = c_types_compta.oid + LEFT JOIN c_partenaires ON p_historique_ecritures_in.partenaire_id = c_partenaires.oid + LEFT JOIN c_comptes c_comptes_contre ON p_historique_ecritures_in.compte_contrepartie_id = c_comptes_contre.oid + LEFT JOIN c_comptes c_comptes_budget ON p_historique_ecritures_in.compte_budget_id = c_comptes_budget.oid + + ]]> + + + + = to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric + ', 'temp p_historique_ecritures_total_in' + ); + + INSERT INTO compta.p_historique_ecritures_total( + compte_id, + 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, + nombre_ecritures, + site_id, + partenaire_id, + inter_site, + ecriture_consolidee, + is_budget, + compte_budget_id) + SElECT + COALESCE(c_comptes.to_oid,0) AS compte_id, + p_historique_ecritures_total_in.mois_comptable, + p_historique_ecritures_total_in.montant_credit, + p_historique_ecritures_total_in.montant_debit, + COALESCE(c_journaux.to_oid,0) AS journal_id, + COALESCE(c_sections_analytiques.to_oid,0) AS section_analytique_id, + p_historique_ecritures_total_in.clinique_honoraire, + p_historique_ecritures_total_in.exercice_comptable, + COALESCE(c_types_compta.to_oid,0) AS type_compta_id, + COALESCE(c_comptes_extra.to_oid,0) AS compte_extra_id, + p_historique_ecritures_total_in.comptabilisee, + p_historique_ecritures_total_in.fin_exercice, + p_historique_ecritures_total_in.ajustement, + p_historique_ecritures_total_in.nombre_ecritures, + p_historique_ecritures_total_in.site_id + [IPX] AS site_id, + COALESCE(c_partenaires.to_oid,0) AS partenaire_id, + p_historique_ecritures_total_in.inter_site, + p_historique_ecritures_total_in.ecriture_consolidee, + p_historique_ecritures_total_in.is_budget, + COALESCE(c_comptes_budget.to_oid,0) AS compte_budget_id + FROM p_historique_ecritures_total_in + LEFT JOIN c_comptes ON p_historique_ecritures_total_in.compte_nonsigne_id = c_comptes.oid + LEFT JOIN c_comptes c_comptes_extra ON p_historique_ecritures_total_in.compte_extra_id = c_comptes_extra.oid + LEFT JOIN c_journaux ON p_historique_ecritures_total_in.journal_id = c_journaux.oid + LEFT JOIN c_sections_analytiques ON p_historique_ecritures_total_in.section_analytique_id = c_sections_analytiques.oid + LEFT JOIN c_types_compta ON p_historique_ecritures_total_in.type_compta_id = c_types_compta.oid + LEFT JOIN c_partenaires ON p_historique_ecritures_total_in.partenaire_id = c_partenaires.oid + LEFT JOIN c_comptes c_comptes_budget ON p_historique_ecritures_total_in.compte_budget_id = c_comptes_budget.oid + + ]]> + + + + = to_char(date_trunc(''year'',now()) - interval ''4 years'',''YYYYMM'')::numeric + ', 'temp p_chiffrier_comptable_in' + ); + + INSERT INTO compta.p_chiffrier_comptable( + mois_comptable, + site_id, + clinique_honoraire, + montant_debit, + montant_credit, + provider_id) + SElECT + p_chiffrier_comptable_in.mois_comptable, + p_chiffrier_comptable_in.site_id + [IPX] AS site_id, + p_chiffrier_comptable_in.clinique_honoraire, + p_chiffrier_comptable_in.montant_debit, + p_chiffrier_comptable_in.montant_credit, + 0::bigint AS provider_id + FROM p_chiffrier_comptable_in + + ]]> + + + + + + + + + + + 0 AND oid IN (SELECT site_id FROM compta.p_historique_ecritures_total) + ', 'temp t_sites_in' + ); + + INSERT INTO compta.t_sites + (oid, code, code_original, texte, clinique_honoraire) + SELECT oid + [IPX], code, oid + [IPX], texte, clinique_honoraire + FROM t_sites_in + WHERE (oid + [IPX]) NOT IN (SELECT oid FROM compta.t_sites) ; + + ]]> + + + + + 0 + ', 'temp t_classes_comptes_in' + ); + + INSERT INTO compta.t_classes_comptes + (code, texte, clinique, honoraire) + SELECT code, texte, '1', '0' + FROM t_classes_comptes_in + WHERE code NOT IN (SELECT code FROM compta.t_classes_comptes) ; + + DROP TABLE IF EXISTS c_classes_comptes; + CREATE TEMP TABLE c_classes_comptes AS + SELECT + *, + code AS to_code, + texte AS to_texte, + 0::bigint AS to_oid + FROM t_classes_comptes_in; + + UPDATE c_classes_comptes + SET to_oid = t_classes_comptes.oid, + to_code = t_classes_comptes.code, + to_texte = t_classes_comptes.texte + FROM compta.t_classes_comptes + WHERE c_classes_comptes.code = t_classes_comptes.code ; + + + ]]> + + + + + 0 + ', 'temp t_types_compta_in' + ); + + INSERT INTO compta.t_types_compta + (code, code_original, texte, specialite) + SELECT code, code_original, texte, specialite + FROM t_types_compta_in + WHERE code NOT IN (SELECT code FROM compta.t_types_compta) ; + + DROP TABLE IF EXISTS c_types_compta; + CREATE TEMP TABLE c_types_compta AS + SELECT + *, + code AS to_code, + texte AS to_texte, + 0::bigint AS to_oid + FROM t_types_compta_in; + + UPDATE c_types_compta + SET to_oid = t_types_compta.oid, + to_code = t_types_compta.code, + to_texte = t_types_compta.texte + FROM compta.t_types_compta + WHERE c_types_compta.code = t_types_compta.code ; + + ]]> + + + + + 0 + ', 'temp t_partenaires_in' + ); + + DROP TABLE IF EXISTS c_partenaires; + CREATE TEMP TABLE c_partenaires AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex, + ''::text AS to_code, + ''::text AS to_texte, + 0::bigint AS to_oid + FROM t_partenaires_in; + + DROP TABLE IF EXISTS w_partenaires_to; + CREATE TEMP TABLE w_partenaires_to AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex + FROM compta.t_partenaires; + + UPDATE c_partenaires + SET to_oid = oid + [IPX], + to_code = code, + to_texte = texte_court + WHERE code NOT IN (SELECT code FROM w_partenaires_to); + + UPDATE c_partenaires + SET to_oid = w_partenaires_to.oid, + to_code = w_partenaires_to.code, + to_texte = w_partenaires_to.texte_court + FROM w_partenaires_to + WHERE to_oid = 0 AND + c_partenaires.code = w_partenaires_to.code AND + c_partenaires.texte_soundex = w_partenaires_to.texte_soundex; + + UPDATE c_partenaires + SET to_oid = oid + [IPX], + to_code = code || '[SPX]', + to_texte = texte_court + WHERE to_oid = 0; + + ALTER TABLE c_partenaires ADD CONSTRAINT c_partenaires_pkey PRIMARY KEY(oid); + + UPDATE compta.t_partenaires SET code_original = '#'||oid WHERE code_original <> oid::text; + UPDATE compta.t_partenaires SET code_original = oid WHERE code_original <> oid::text; + + INSERT INTO compta.t_partenaires( + oid, + code_original, + code, + texte, + texte_court) + SELECT + to_oid, + to_oid AS code_original, + to_code, + texte, + texte_court + FROM c_partenaires + WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_partenaires); + + ]]> + + + + + 0 + ', 'temp t_sections_analytiques_in' + ); + + DROP TABLE IF EXISTS c_sections_analytiques; + CREATE TEMP TABLE c_sections_analytiques AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex, + ''::text AS to_code, + ''::text AS to_texte, + 0::bigint AS to_oid + FROM t_sections_analytiques_in; + + DROP TABLE IF EXISTS w_sections_analytiques_to; + CREATE TEMP TABLE w_sections_analytiques_to AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex + FROM compta.t_sections_analytiques; + + UPDATE c_sections_analytiques + SET to_oid = oid + [IPX], + to_code = code, + to_texte = texte + WHERE code NOT IN (SELECT code FROM w_sections_analytiques_to); + + UPDATE c_sections_analytiques + SET to_oid = w_sections_analytiques_to.oid, + to_code = w_sections_analytiques_to.code, + to_texte = w_sections_analytiques_to.texte + FROM w_sections_analytiques_to + WHERE to_oid = 0 AND + c_sections_analytiques.code = w_sections_analytiques_to.code AND + c_sections_analytiques.texte_soundex = w_sections_analytiques_to.texte_soundex; + + UPDATE c_sections_analytiques + SET to_oid = oid + [IPX], + to_code = code || '[SPX]', + to_texte = texte + WHERE to_oid = 0; + + ALTER TABLE c_sections_analytiques ADD CONSTRAINT c_sections_analytiques_pkey PRIMARY KEY(oid); + + UPDATE compta.t_sections_analytiques SET code_original = '#'||oid WHERE code_original <> oid::text; + UPDATE compta.t_sections_analytiques SET code_original = oid WHERE code_original <> oid::text; + + INSERT INTO compta.t_sections_analytiques( + oid, + code_original, + code, + texte) + SELECT + to_oid, + to_oid AS code_original, + to_code, + texte + FROM c_sections_analytiques + WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_sections_analytiques); + + ]]> + + + + + 0 + ', 'temp t_journaux_in' + ); + + DROP TABLE IF EXISTS c_journaux; + CREATE TEMP TABLE c_journaux AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex, + ''::text AS to_code, + ''::text AS to_texte, + 0::bigint AS to_oid + FROM t_journaux_in; + + DROP TABLE IF EXISTS w_journaux_to; + CREATE TEMP TABLE w_journaux_to AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex + FROM compta.t_journaux; + + UPDATE c_journaux + SET to_oid = oid + [IPX], + to_code = code, + to_texte = texte + WHERE code NOT IN (SELECT code FROM w_journaux_to); + + UPDATE c_journaux + SET to_oid = w_journaux_to.oid, + to_code = w_journaux_to.code, + to_texte = w_journaux_to.texte + FROM w_journaux_to + WHERE to_oid = 0 AND + c_journaux.code = w_journaux_to.code AND + c_journaux.texte_soundex = w_journaux_to.texte_soundex; + + UPDATE c_journaux + SET to_oid = oid + [IPX], + to_code = code || '[SPX]', + to_texte = texte + WHERE to_oid = 0; + + ALTER TABLE c_journaux ADD CONSTRAINT c_journaux_pkey PRIMARY KEY(oid); + + UPDATE compta.t_journaux SET code_original = '#'||oid WHERE code_original <> oid::text; + UPDATE compta.t_journaux SET code_original = oid WHERE code_original <> oid::text; + + INSERT INTO compta.t_journaux( + oid, + code_original, + code, + texte) + SELECT + to_oid, + to_oid AS code_original, + to_code, + texte + FROM c_journaux + WHERE oid <> 0 AND to_oid NOT IN (SELECT oid FROM compta.t_journaux); + + ]]> + + + + + 0 AND t_comptes.numero NOT LIKE ''%(C)'' AND t_comptes.numero NOT LIKE ''%(D)'' + ', 'temp.t_comptes_in' + ); + + -- Enlever les tirets car utilisés pour siffixer les comptes en conso + UPDATE temp.t_comptes_in + SET numero = replace(numero,'-','_') + WHERE numero like '%-%' + ; + + UPDATE compta.t_comptes + SET numero = replace(t_comptes.numero,'-','_') + FROM temp.t_comptes_in + WHERE replace(t_comptes.numero,'-','_') = t_comptes_in.numero AND + t_comptes.numero LIKE '%-%' + ; + + DROP TABLE IF EXISTS c_comptes; + CREATE TEMP TABLE c_comptes AS + SELECT + *, + base.cti_soundex_nom(texte) AS texte_soundex, + ''::text AS to_numero, + ''::text AS to_texte, + '0'::text AS q_new, + 0::bigint AS to_oid, + 0::bigint AS to_type_compta_id, + 0::bigint AS to_compte_general_id, + 0::bigint AS to_partenaire_id, + 0::bigint AS to_classe_1_id, + 0::bigint AS to_classe_2_id, + 0::bigint AS to_classe_3_id, + 0::bigint AS to_classe_4_id, + 0::bigint AS to_classe_5_id, + 0::bigint AS to_classe_6_id, + 0::bigint AS to_compte_nonsigne_id + FROM temp.t_comptes_in; + + UPDATE c_comptes + SET to_type_compta_id = c_types_compta.to_oid + FROM c_types_compta + WHERE c_comptes.type_compta_id = c_types_compta.oid + ; + + UPDATE c_comptes + SET to_partenaire_id = c_partenaires.to_oid + FROM c_partenaires + WHERE c_comptes.partenaire_id = c_partenaires.oid + ; + + UPDATE c_comptes + SET to_classe_1_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_1_id = c_classes_comptes.oid + ; + + UPDATE c_comptes + SET to_classe_2_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_2_id = c_classes_comptes.oid + ; + + UPDATE c_comptes + SET to_classe_3_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_3_id = c_classes_comptes.oid + ; + + UPDATE c_comptes + SET to_classe_4_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_4_id = c_classes_comptes.oid + ; + + UPDATE c_comptes + SET to_classe_5_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_5_id = c_classes_comptes.oid + ; + + UPDATE c_comptes + SET to_classe_6_id = c_classes_comptes.to_oid + FROM c_classes_comptes + WHERE c_comptes.classe_6_id = c_classes_comptes.oid + ; + + UPDATE c_comptes SET + to_oid = t_comptes.oid, + to_numero = t_comptes.numero + FROM compta.t_comptes + WHERE c_comptes.numero = split_part(t_comptes.numero,'-',1) AND + c_comptes.to_type_compta_id = t_comptes.type_compta_id AND + texte_soundex = base.cti_soundex_nom(t_comptes.texte) AND + c_comptes.numero NOT LIKE '%(C)%' AND + c_comptes.numero NOT LIKE '%(D)%' AND + t_comptes.numero NOT LIKE '%(C)%' AND + t_comptes.numero NOT LIKE '%(D)%' + ; + + UPDATE c_comptes SET + q_new = '1', + to_oid = nextval('compta.s_comptes'::regclass), + to_numero = c_comptes.numero || '-' || (nb+1) + FROM + ( + SELECT type_compta_id, split_part(numero,'-',1) AS numero, (MAX(CASE WHEN split_part(numero,'-',2) <> '' AND split_part(numero,'-',2) BETWEEN '0' AND '9' THEN split_part(numero,'-',2) ELSE '1' END))::numeric AS nb + FROM compta.t_comptes + WHERE numero NOT LIKE '%(C)%' AND numero NOT LIKE '%(D)%' + GROUP BY 1,2 + ) subview + WHERE c_comptes.to_oid = 0 AND + c_comptes.numero NOT LIKE '%(C)%' AND + c_comptes.numero NOT LIKE '%(D)%' AND + ( + c_comptes.numero = subview.numero + ) AND + c_comptes.to_type_compta_id = subview.type_compta_id + ; + + UPDATE c_comptes SET + q_new = '1', + to_oid = nextval('compta.s_comptes'::regclass), + to_numero = c_comptes.numero + WHERE c_comptes.to_oid = 0 AND + c_comptes.numero NOT LIKE '%(C)%' AND + c_comptes.numero NOT LIKE '%(D)%' + ; + + UPDATE c_comptes + SET to_numero = c_comptes_nonsigne.numero || '(C)' + FROM c_comptes c_comptes_nonsigne + WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid AND + c_comptes.numero LIKE '%(C)' + ; + UPDATE c_comptes + SET to_numero = c_comptes_nonsigne.numero || '(D)' + FROM c_comptes c_comptes_nonsigne + WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid AND + c_comptes.numero LIKE '%(D)' + ; + + UPDATE c_comptes SET + to_oid = t_comptes.oid + FROM compta.t_comptes + WHERE c_comptes.numero = t_comptes.numero AND + c_comptes.to_type_compta_id = t_comptes.type_compta_id AND + ( + c_comptes.numero LIKE '%(C)' OR + c_comptes.numero LIKE '%(D)' + ) + ; + + UPDATE c_comptes SET + q_new = '1', + to_oid = nextval('compta.s_comptes'::regclass) + WHERE c_comptes.to_oid = 0 AND + ( + c_comptes.numero LIKE '%(C)' OR + c_comptes.numero LIKE '%(D)' + ) + ; + + UPDATE c_comptes + SET to_compte_general_id = c_comptes_generaux.to_oid + FROM c_comptes c_comptes_generaux + WHERE c_comptes.compte_general_id = c_comptes_generaux.oid + ; + + UPDATE c_comptes + SET to_compte_nonsigne_id = c_comptes_nonsigne.to_oid + FROM c_comptes c_comptes_nonsigne + WHERE c_comptes.compte_nonsigne_id = c_comptes_nonsigne.oid + ; + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, oid, 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) + SELECT + to_type_compta_id, to_numero, texte, to_oid, to_compte_general_id, clinique_honoraire, + banque, etat, to_classe_1_id, to_classe_2_id, to_classe_3_id, to_classe_4_id, + to_classe_5_id, to_classe_6_id, solde_initial, collectif, 0, + numero_extra, texte_extra, to_partenaire_id, inter_site + FROM c_comptes + WHERE to_oid NOT IN (SElECT oid FROM compta.t_comptes) + ; + + UPDATE compta.t_comptes + SET partenaire_id = c_comptes.to_partenaire_id + FROM c_comptes + WHERE t_comptes.oid = c_comptes.to_oid AND + t_comptes.partenaire_id <> c_comptes.to_partenaire_id + ; + + UPDATE compta.t_comptes + SET compte_nonsigne_numero = t_comptes_nonsigne.numero + FROM compta.t_comptes t_comptes_nonsigne + WHERE t_comptes.compte_nonsigne_id = t_comptes_nonsigne.oid AND + t_comptes.compte_nonsigne_numero IS DISTINCT FROM t_comptes_nonsigne.numero + ; + + ]]> + + + + + + + + + + + + + + + + trim(code); + + INSERT into compta.t_classes_comptes (code, texte) + (SELECT DISTINCT substr(numero, 1 , 1), '' FROM compta.t_comptes + WHERE compte_general_id = oid 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 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 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 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 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 substr(numero, 1 , 6) NOT IN (SELECT code FROM compta.t_classes_comptes) ; + + + + + UPDATE compta.t_classes_comptes SET texte = '' WHERE texte IS NULL; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + UPDATE compta.t_classes_comptes SET clinique = '0', honoraire = '0' ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + + ]]> + + + + + + + + + + + '' 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 ; + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + SELECT compta.cti_update_schema_classes('*ALL'); + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/import_compta/iCTI_import_compta_CONSOLIDATION_modele.php b/import_compta/iCTI_import_compta_CONSOLIDATION_modele.php new file mode 100644 index 0000000..bc05d83 --- /dev/null +++ b/import_compta/iCTI_import_compta_CONSOLIDATION_modele.php @@ -0,0 +1,235 @@ +executeStatementsNode("DISABLE_INDEX"); + $cti_sqlStatements_share->executeStatementsNode("RAZ"); + $cti_sqlStatements_share->executeStatementsNode("INIT"); + + logInfoMsg("FIN INITIALISATION CONSOLIDATION"); + +} + +function consolidation_environnement($COMPTA_ENVIRONMENT, $COMPTA_ENVIRONMENT_PREFIX, $COMPTA_ENVIRONMENT_OID, $FINESS, $DBNAME) { + + global $iCTI_connexion; + global $iCTI_port; + global $ENV_TYPEETS; + + global $cti_args; + + logInfoMsg("CONSOLIDATION ENVIRONNEMENT $COMPTA_ENVIRONMENT"); + + // Chargement requetes SQL + $environmentShareVars=array(); + $environmentShareVars["PX"] = ""; + + $environmentVars=array(); + $environmentVars["PX"] = $COMPTA_ENVIRONMENT_PREFIX; + + $environmentVars["IPX"] = $COMPTA_ENVIRONMENT_OID . "000000000"; + $environmentVars["PPX"] = $COMPTA_ENVIRONMENT_OID; + + + $environmentVars["TPX"] = $COMPTA_ENVIRONMENT_PREFIX . "_"; + $environmentVars["CPX"] = $COMPTA_ENVIRONMENT_PREFIX . "_"; + $environmentVars["SPX"] = "_" . $COMPTA_ENVIRONMENT_PREFIX; + + $environmentVars["FINESS"] = $FINESS ; + $environmentVars["DBNAME"] = $DBNAME ; + $environmentVars["DBPORT"] = $iCTI_port; + + + $sqlOptions=array(); + + $cti_sqlStatements_share = new CTI_SqlStatements_class("iCTI_import_compta_SHARE.XML",$iCTI_connexion,$environmentShareVars,$sqlOptions); + + $cti_sqlStatements_provider = new CTI_SqlStatements_class("iCTI_import_compta_CONSOLIDATION.XML",$iCTI_connexion,$environmentVars,$sqlOptions); + + // Raz forcé + $cti_args->args["-raz"] = "ONLYKEY"; + + $cti_sqlStatements_provider->executeStatementsNode("PARAM"); + + $cti_sqlStatements_provider->executeStatementsNode("COMPTA"); + + logInfoMsg("FIN CONSOLIDATION ENVIRONNEMENT $COMPTA_ENVIRONMENT"); + +} + +// récupération historique +function consolidation_environnement_finalize() { + + global $iCTI_connexion; + global $ENV_TYPEETS; + + global $cti_args; + + logInfoMsg("FINALISATION CONSOLIDATION"); + + // Chargement requetes SQL + $environmentShareVars=array(); + $environmentShareVars["PX"] = ""; + + $environmentVars=array(); + $environmentVars["PX"] = ""; + + $environmentVars["IPX"] = ""; + $environmentVars["PPX"] = ""; + + $environmentVars["TPX"] = ""; + $environmentVars["CPX"] = ""; + + $environmentVars["FINESS"] = ""; + + $sqlOptions=array(); + + $cti_sqlStatements_share = new CTI_SqlStatements_class("iCTI_import_compta_SHARE.XML",$iCTI_connexion,$environmentShareVars,$sqlOptions); + + $cti_sqlStatements_provider = new CTI_SqlStatements_class("iCTI_import_compta_CONSOLIDATION.XML",$iCTI_connexion,$environmentVars,$sqlOptions); + + $cti_sqlStatements_provider->executeStatementsNode("POST"); + + $cti_sqlStatements_provider->executeStatementsNode("ENABLE_INDEX"); + + //$cti_sqlStatements_share->executeStatementsNode("POST"); + + //$cti_sqlStatements_share->executeStatementsNode("VACUUM"); + + logInfoMsg("FIN FINALISATION CONSOLIDATION"); + +} + + +function iCTI_connect() { + + +global $iCTI_connexion; +global $iCTI_cache; +global $iCTI_port; +global $ENV_TYPEETS; +global $ENV_CONSOLIDATION; + + + $iCTI_connexion = Database2Factory::getInstance(Environnement::PROVIDER_CTI); + $ret = $iCTI_connexion->connect(); + + + $file = "../../../settings/settings.XML"; + $settings_xml = simplexml_load_file($file); + + $ENV_CONSOLIDATION = "0"; + + + foreach ($settings_xml->ENVIRONMENT as $environmentNode) { + foreach ($environmentNode->PROPERTY as $propertyNode) { + if ($propertyNode['name'] == 'TYPEETS') { + $ENV_TYPEETS = $propertyNode['value']; + } + if ($propertyNode['name'] == 'CONSOLIDATION') { + $ENV_CONSOLIDATION = $propertyNode['value']; + } + } + } + + + if (!$ret) { + logErrorMsg("La connexion PostgreSQL iCTI a échoué"); + return $ret; + } + + return $iCTI_connexion; + +} + +function iCTI_disconnect() { + + global $iCTI_connexion; + + // Déconnexion BD + $iCTI_connexion->close(); +} + +?> \ No newline at end of file diff --git a/import_compta/iCTI_import_compta_DIVALTO.XML b/import_compta/iCTI_import_compta_DIVALTO.XML new file mode 100644 index 0000000..393b60e --- /dev/null +++ b/import_compta/iCTI_import_compta_DIVALTO.XML @@ -0,0 +1,735 @@ + + + + + + + + + + + + + + + + '' THEN C3.CPTCOL ELSE C3.CPT END AS CPT_NUMERO_GENERAL, + CASE WHEN C3.CPTCOL <> '' THEN C3.CPTCOL || '-' || C3.CPT ELSE C3.CPT END AS CPT_NUMERO, + CASE WHEN C3.CPTCOL <> '' THEN C3.CPT ELSE '' END AS CPT_PARTENAIRE, + CASE WHEN C3.CPTCOL <> '' THEN COALESCE(C3_COLL.LIB,C3.CPTCOL) || ' - ' || C3.LIB ELSE C3.LIB END AS CPT_LIB, + CASE WHEN C3.CPTCOL <> '' THEN C3.LIB ELSE '' END AS PARTENAIRE_LIB + FROM prod_divalto.C3 + LEFT JOIN prod_divalto.C3 C3_COLL ON + C3.DOS = C3_COLL.DOS AND + C3.CPTCOL = C3_COLL.CPT + ); + + + -- On rajoute le numéro de l'établissement si les noms sont différents entre établissements + + UPDATE w_C3 SET + CPT_NUMERO = w_C3.CPT_NUMERO || '-' || w_C3.DOS, + CPT_PARTENAIRE = CASE WHEN CPT_PARTENAIRE <> '' THEN w_C3.CPT_PARTENAIRE || '-' || w_C3.DOS ELSE '' END + FROM + ( + SELECT CPT_NUMERO, COUNT(DISTINCT CPT_LIB) + FROM w_C3 + GROUP BY 1 + HAVING count(DISTINCT CPT_LIB) > 1 + ) subview + WHERE w_C3.CPT_NUMERO = subview.CPT_NUMERO + ; + + + UPDATE w_C3 SET + CPT_NUMERO_GENERAL = subview.CPT_NUMERO + FROM + ( + SELECT DOS, CPT_NUMERO_GENERAL, CPT_NUMERO + FROM w_C3 + WHERE cpt_partenaire = '' AND + CPT_NUMERO <> CPT_NUMERO_GENERAL + ) subview + WHERE w_c3.DOS = subview.DOS AND + w_c3.CPT_NUMERO_GENERAL = subview.CPT_NUMERO_GENERAL + ; + + ANALYSE w_C3 + ; + + DROP TABLE IF EXISTS w_compte; + CREATE TEMP TABLE w_compte AS + SELECT + CPT_NUMERO, + MAX(CPT_LIB) AS CPT_LIB, + MAX(CPT_NUMERO_GENERAL) AS CPT_NUMERO_GENERAL + FROM w_C3 + GROUP BY 1 + ; + + + + + -------------------------- + ------- COMPTES -------- + -------------------------- + + INSERT INTO compta.t_comptes (type_compta_id, numero, texte, clinique_honoraire, banque) + SELECT 0, CPT_NUMERO, CPT_LIB, 'C', CASE WHEN CPT_NUMERO LIKE '512%' THEN '1' ELSE '0' END AS banque + FROM w_compte + WHERE CPT_NUMERO_GENERAL = CPT_NUMERO AND + CPT_NUMERO NOT IN (SELECT numero FROM compta.t_comptes) + ; + + INSERT INTO compta.t_comptes (type_compta_id, numero, texte, clinique_honoraire, banque, compte_general_id) + SELECT 0, CPT_NUMERO, CPT_LIB, 'C' , CASE WHEN CPT_NUMERO LIKE '512%' THEN '1' ELSE '0' END AS banque, t_compte_general.oid + FROM w_compte + JOIN compta.t_comptes t_compte_general ON CPT_NUMERO_GENERAL = t_compte_general.numero + WHERE CPT_NUMERO_GENERAL <> CPT_NUMERO AND + CPT_NUMERO NOT IN (SELECT numero FROM compta.t_comptes) + ; + + UPDATE compta.t_comptes + SET compte_general_id = oid + WHERE oid <> 0 AND + (compte_general_id = 0 OR compte_general_id IS NULL) + ; + + + UPDATE compta.t_comptes + SET texte = CPT_LIB + FROM w_compte + WHERE CPT_NUMERO = t_comptes.numero AND + ( + t_comptes.texte IS DISTINCT FROM CPT_LIB + ) + ; + + + ------- + ---- Type de compta + ------- + + UPDATE compta.t_comptes + SET type_compta_id = t_types_compta.oid + FROM ( + SELECT + oid, + CASE + WHEN numero LIKE '6%' THEN 'GES' + WHEN numero LIKE '7%' THEN 'GES' + WHEN numero LIKE '8%' THEN 'RES' + ELSE 'BIL' + END AS w_type_compta_code + FROM compta.t_comptes + ) subview + JOIN compta.t_types_compta ON subview.w_type_compta_code = t_types_compta.code + WHERE subview.oid = t_comptes.oid AND + type_compta_id IS DISTINCT FROM t_types_compta.oid + ; + + ------- + --- Type de compta extra + ------- + + UPDATE compta.t_comptes + SET type_compta_extra_id = t_comptes.type_compta_id + WHERE t_comptes.compte_general_id = t_comptes.oid AND + ( + type_compta_extra_id IS DISTINCT FROM t_comptes.type_compta_id + ) + ; + + + UPDATE compta.t_comptes + SET type_compta_extra_id = t_types_compta.oid, type_compta_id = t_types_compta.oid + FROM ( + SELECT + oid, + substr(numero,1,2), + CASE + WHEN numero LIKE '40%' THEN 'FOU' + WHEN numero LIKE '41%' THEN 'CLI' + WHEN numero LIKE '46%' THEN 'MED' + ELSE '' + END AS w_type_compta_code + FROM compta.t_comptes + WHERE compte_general_id <> oid + ) subview + JOIN compta.t_types_compta ON subview.w_type_compta_code = t_types_compta.code + WHERE subview.oid = t_comptes.oid AND + ( + type_compta_extra_id IS DISTINCT FROM t_types_compta.oid OR + type_compta_id IS DISTINCT FROM t_types_compta.oid + ) + ; + + + + -------------------------------- + -------- PARTENAIRES --------- + -------------------------------- + + + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT CPT_PARTENAIRE, CPT_PARTENAIRE, MAX(PARTENAIRE_LIB),MAX(PARTENAIRE_LIB) + FROM w_C3 + where CPT_PARTENAIRE <> '' + AND CPT_PARTENAIRE NOT IN (SELECT code_original FROM compta.t_partenaires) + GROUP BY 1 + ORDER BY 1 + ; + + UPDATE compta.t_partenaires SET + texte = PARTENAIRE_LIB, + texte_court = PARTENAIRE_LIB + FROM w_C3 + WHERE CPT_PARTENAIRE = t_partenaires.code_original AND + ( + t_partenaires.texte IS DISTINCT FROM PARTENAIRE_LIB OR + t_partenaires.texte_court IS DISTINCT FROM PARTENAIRE_LIB + ) + ; + + + + + ---------------------------- + ------- JOURNAUX --------- + ---------------------------- + + + + DROP TABLE IF EXISTS w_C4; + CREATE TEMP TABLE w_C4 AS ( + SELECT + JNL AS JNL_CODE, + JNL AS JNL, + LIB AS JNL_LIB, + DOS, + CASE WHEN (JNL LIKE 'AN' OR JNL LIKE 'C10') THEN '1' ELSE '0' END AS a_nouveaux + FROM prod_divalto.C4 + GROUP BY 1,2,3,4 + ); + + + -- On rajoute le numéro de l'établissement si les noms sont différents entre établissements + + UPDATE w_C4 SET + JNL_CODE = w_C4.JNL_CODE || '-' || w_C4.DOS + FROM + ( + SELECT JNL_CODE, COUNT(DISTINCT JNL_LIB) + FROM w_C4 + GROUP BY 1 + HAVING count(DISTINCT JNL_LIB) > 1 + ) subview + WHERE w_C4.JNL_CODE = subview.JNL_CODE + ; + + + + DROP TABLE IF EXISTS w_journaux; + CREATE TEMP TABLE w_journaux AS ( + SELECT JNL_CODE, MAX(JNL_LIB) AS JNL_LIB, MAX(a_nouveaux) as a_nouveaux + FROM w_C4 + GROUP BY 1 + ) + ; + + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux) + SELECT JNL_CODE, JNL_CODE, JNL_LIB, a_nouveaux + FROM w_journaux + WHERE JNL_CODE NOT IN (SELECT code_original FROM compta.t_journaux) + ; + + + UPDATE compta.t_journaux SET + texte = JNL_LIB + FROM w_journaux + WHERE w_journaux.JNL_CODE = t_journaux.code_original AND + ( + t_journaux.texte IS DISTINCT FROM JNL_LIB + ) + ; + + + + + ------------------------- + ------- CLASSES DE COMPTES + ------------------------- + + + ------------------------- + ------- COMPTES GÉNÉRIQUES + ------------------------- + + + ---------------------------------------- + -------- SECTIONS ANALYTIQUES -------- + ---------------------------------------- + + DROP TABLE IF EXISTS w_sections_analytiques; + CREATE TEMP TABLE w_sections_analytiques AS ( + SELECT axeno || '-' || axe || '-' || dos as CODE_ANAL, LIB AS LIB_ANAL + FROM prod_divalto.C5 + group by AXE, AXENO, DOS, LIB_ANAL + ); + + ANALYSE w_sections_analytiques; + + INSERT INTO compta.t_sections_analytiques(code_original, code, texte) + SELECT + CODE_ANAL, + CODE_ANAL AS code, + LIB_ANAL AS texte + FROM w_sections_analytiques + WHERE CODE_ANAL NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + ; + + UPDATE compta.t_sections_analytiques SET + code = CODE_ANAL, + texte = LIB_ANAL + FROM w_sections_analytiques + WHERE CODE_ANAL = code_original AND + ( + code IS DISTINCT FROM w_sections_analytiques.CODE_ANAL OR + texte IS DISTINCT FROM LIB_ANAL + ) + ; + + + + ------------------------------------------------------------------- + -- Comptes auxiliaires + + -- comptes non présents + + -- Classes de comptes + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + --> + + + + + + + + + + + + + '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; + + + ]]> + + + + + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_ICTI_COMPTA.XML b/import_compta/iCTI_import_compta_ICTI_COMPTA.XML new file mode 100644 index 0000000..28dc115 --- /dev/null +++ b/import_compta/iCTI_import_compta_ICTI_COMPTA.XML @@ -0,0 +1,585 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_QSP.XML b/import_compta/iCTI_import_compta_QSP.XML new file mode 100644 index 0000000..53ca227 --- /dev/null +++ b/import_compta/iCTI_import_compta_QSP.XML @@ -0,0 +1,804 @@ + + + + + + + + = 200801 AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + -- Ecritures exercice en cours + DROP TABLE IF EXISTS w_ECRITURES; + CREATE TEMP TABLE w_ECRITURES AS + SELECT to_number(to_char(D_ECR,'YYYYMM'),'FM999999') AS MOIS, + N_CPT, + date_part('year',D_ECR) AS exercice_comptable, + '0'::text AS exercice_precedent, + MIN(D_ECR) AS PERIODEECRITURE_debut, + MAX(D_ECR) AS PERIODEECRITURE_fin, + Count(*) AS COUNT, + round(SUM(DEBIT),2) AS DEBIT, + round(SUM(CREDIT),2) AS CREDIT + FROM prod_qsp.CPTA_COMPTA_MVT + WHERE D_ECR >= '20080101' + GROUP BY 1,2,3 + ORDER BY 1,2; + + -- Ecritures exercice précédent + INSERT INTO w_ECRITURES + SELECT to_number(to_char(D_ECR,'YYYYMM'),'FM999999') AS MOIS, + N_CPT, + date_part('year',D_ECR) AS exercice_comptable, + '1'::text AS exercice_precedent, + MIN(D_ECR) AS PERIODEECRITURE_debut, + MAX(D_ECR) AS PERIODEECRITURE_fin, + Count(*) AS COUNT, + round(SUM(DEBIT),2) AS DEBIT, + round(SUM(CREDIT),2) AS CREDIT + FROM prod_qsp.CPTA_COMPTA_MVT_HIST + WHERE D_ECR >= '20080101' + GROUP BY 1,2,3 + ORDER BY 1,2; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_ECRITURES.exercice_comptable, + w_ECRITURES.exercice_precedent, + w_ECRITURES.mois AS mois_comptable, + MIN(PERIODEECRITURE_debut) AS PERIODEECRITURE_debut, + MAX(PERIODEECRITURE_fin) AS PERIODEECRITURE_fin + FROM w_ECRITURES + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_ECRITURES.mois AND + w_historique_ecritures_total.numero = w_ECRITURES.N_CPT + GROUP BY 1,2,3 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_ECRITURES.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_ECRITURES.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_ECRITURES.credit + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable); + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESC', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '0'; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESP', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '1'; + + echo Mois modifiés Exercice en cours : [MOISMODIFIESC]; + echo Mois modifiés Exercice précédent : [MOISMODIFIESP]; + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '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; + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + 0 THEN + TP_CPT || to_char(NUM_TIERS,'FM00000') + ELSE '' END AS NUM_TIERS, + CASE WHEN N_CPT IN (SELECT N_CPT FROM prod_QSP.CPTA_COMPTA_MVT) OR + N_CPT IN (SELECT N_CPT FROM prod_QSP.CPTA_COMPTA_MVT_HIST) THEN 1 ELSE 0 END AS USED, + 0::bigint AS type_compta_id + FROM prod_QSP.PLAN_C; + + INSERT INTO w_PLAN_C + SELECT N_CPT_GENE, + LIB_TYPE_TIERS, + 'G'::text, + N_CPT_GENE AS N_CPT_GENE, + SEQ_TYPE_TIERS, + ''::text AS NUM_TIERS, + 0 AS USED, + 0::bigint AS type_compta_id + FROM prod_qsp.TYPE_TIERS_CPT + WHERE N_CPT_GENE <> '' AND + N_CPT_GENE NOT IN (SELECT N_CPT FROm w_PLAN_C); + + INSERT INTO w_PLAN_C + SELECT N_CPT_CLI, + LIB_TYPE_TIERS, + 'G'::text, + N_CPT_CLI AS N_CPT_GENE, + SEQ_TYPE_TIERS, + ''::text AS NUM_TIERS, + 0 AS USED, + 0::bigint AS type_compta_id + FROM prod_qsp.TYPE_TIERS_CPT + WHERE N_CPT_CLI <> '' AND + N_CPT_CLI NOT IN (SELECT N_CPT FROm w_PLAN_C); + + INSERT INTO w_PLAN_C + SELECT N_CPT_TIERS, + LIB_TYPE_TIERS, + 'G'::text, + N_CPT_TIERS AS N_CPT_GENE, + SEQ_TYPE_TIERS, + ''::text AS NUM_TIERS, + 0 AS USED, + 0::bigint AS type_compta_id + FROM prod_qsp.TYPE_TIERS_CPT + WHERE N_CPT_TIERS <> '' AND + N_CPT_TIERS NOT IN (SELECT N_CPT FROm w_PLAN_C); + + -- Comptes inexistants dans Plan comptable + INSERT INTO w_PLAN_C + SELECT CPTA_COMPTA_MVT.N_CPT, + 'Compte ' || CPTA_COMPTA_MVT.N_CPT, + 'G'::text, + CPTA_COMPTA_MVT.N_CPT AS N_CPT_GENE, + 0, + ''::text AS NUM_TIERS, + 1 AS USED, + 0::bigint AS type_compta_id + FROM prod_qsp.CPTA_COMPTA_MVT_HIST CPTA_COMPTA_MVT + LEFT JOIN prod_qsp.PLAN_C ON CPTA_COMPTA_MVT.N_CPT = PLAN_C.N_CPT + WHERE PLAN_C.N_CPT IS NULL + GROUP BY 1; + + -- Type de compte par défaut si non renseigné + UPDATE w_PLAN_C + SET SEQ_TYPE_TIERS = subview.SEQ_TYPE_TIERS + FROM + ( + SELECT N_CPT_PX, + (MAX(Array[nb,SEQ_TYPE_TIERS]))[2] AS SEQ_TYPE_TIERS + FROM ( + SELECT + CASE WHEN TP_CPT IN ('F') THEN substr(N_CPT,1,3) ELSE substr(N_CPT,1,4) END AS N_CPT_PX, + SEQ_TYPE_TIERS, + count(*) AS nb + FROM w_PLAN_C + WHERE TP_CPT <> 'G' AND SEQ_TYPE_TIERS <> 0 + GROUP BY 1,2 + ORDER BY 1,3 desc + ) subview + GROUP BY 1 + ) subview + WHERE CASE WHEN TP_CPT IN ('F') THEN substr(N_CPT,1,3) ELSE substr(N_CPT,1,4) END = N_CPT_PX AND + w_PLAN_C.SEQ_TYPE_TIERS = 0; + + UPDATE w_PLAN_C + SET N_CPT_GENE = + CASE + WHEN TYPE_TIERS_CPT.N_CPT_GENE <> '' THEN TYPE_TIERS_CPT.N_CPT_GENE + WHEN TYPE_TIERS_CPT.N_CPT_CLI <> '' THEN TYPE_TIERS_CPT.N_CPT_CLI + WHEN TYPE_TIERS_CPT.N_CPT_TIERS <> '' THEN TYPE_TIERS_CPT.N_CPT_TIERS + ELSE w_PLAN_C.N_CPT_GENE END + FROM prod_qsp.TYPE_TIERS_CPT + WHERE TYPE_TIERS_CPT.SEQ_TYPE_TIERS = w_PLAN_C.SEQ_TYPE_TIERS AND + TP_CPT <> 'G'; + + + UPDATE w_PLAN_C + SET N_CPT_GENE = w_PLAN_GEN.N_CPT + FROM w_PLAN_C w_PLAN_GEN + WHERE w_PLAN_C.TP_CPT = 'F' AND + w_PLAN_C.N_CPT = w_PLAN_C.N_CPT_GENE AND + substr(w_PLAN_C.N_CPT,1,3) || '000000' = w_PLAN_GEN.N_CPT AND + w_PLAN_GEN.TP_CPT = 'G'; + + UPDATE w_PLAN_C + SET N_CPT_GENE = w_PLAN_GEN.N_CPT + FROM w_PLAN_C w_PLAN_GEN + WHERE w_PLAN_C.TP_CPT = 'C' AND + w_PLAN_C.N_CPT = w_PLAN_C.N_CPT_GENE AND + substr(w_PLAN_C.N_CPT,1,4) || '00000' = w_PLAN_GEN.N_CPT AND + w_PLAN_GEN.TP_CPT = 'G'; + + UPDATE w_PLAN_C + SET N_CPT_GENE = w_PLAN_GEN.N_CPT + FROM w_PLAN_C w_PLAN_GEN + WHERE w_PLAN_C.TP_CPT = 'T' AND + w_PLAN_C.N_CPT = w_PLAN_C.N_CPT_GENE AND + substr(w_PLAN_C.N_CPT,1,4) || '00000' = w_PLAN_GEN.N_CPT AND + w_PLAN_GEN.TP_CPT = 'G'; + + + UPDATE w_PLAN_C + SET USED = 1 + WHERE USED = 0 AND + N_CPT IN (SELECT N_CPT_GENE FROM w_PLAN_C WHERE USED = 1); + + + UPDATE w_PLAN_C + SET TP_CPT = 'G' + WHERE TP_CPT <> 'G' AND + N_CPT = N_CPT_GENE; + + + + UPDATE w_PLAN_C + SET NUM_TIERS = NUM_TIERS || '-' || + CASE WHEN TP_CPT IN ('F') THEN substr(N_CPT,4) ELSE substr(N_CPT,3) END + WHERE USED = 1 AND + NUM_TIERS IN ( + SELECT + NUM_TIERS + FROM w_PLAN_C + WHERE USED = 1 AND NUM_TIERS <> '' + GROUP BY 1 + HAVING count(DISTINCT LIB_CPT) > 1 + ); + + UPDATE w_PLAN_C + SET type_compta_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE t_types_compta.code_original = + CASE + WHEN TP_CPT = 'C' THEN 'CLI' + WHEN TP_CPT = 'F' THEN 'FOU' + WHEN TP_CPT = 'R' THEN 'TIE' + WHEN TP_CPT = 'G' AND N_CPT LIKE '6%' OR N_CPT LIKE '7%' OR N_CPT LIKE '8%' THEN 'GES' + ELSE 'BIL' END; + + + -- Periode comptable + UPDATE base.p_calendrier_mois SET + exercice_mois_comptable_1 = subview.exercice_mois_comptable_1, + exercice_comptable = subview.exercice_comptable + FROM + ( + SELECT p_calendrier_mois.mois, + p_calendrier_mois.mois - correcteur_mois AS exercice_mois_comptable_1, + date_part('year',p_calendrier_mois.date_debut) - correcteur_exercice AS exercice_comptable + FROM + base.p_calendrier_mois + JOIN ( + SELECT + p_calendrier_mois.mois, + to_number(to_char(D_DEB,'YYYYMM'),'FM999999') AS exercice_mois_comptable_1, + date_part('year',D_FIN) AS exercice_comptable, + p_calendrier_mois.numero_mois, + p_calendrier_mois.mois - to_number(to_char(D_DEB,'YYYYMM'),'FM999999') AS correcteur_mois, + date_part('year',p_calendrier_mois.date_debut) - date_part('year',D_FIN) AS correcteur_exercice + FROM base.p_calendrier_mois + JOIN prod_qsp.DOSSIER_COMPTABLE_EX ON p_calendrier_mois.date_debut BETWEEN date(D_DEB) AND date(D_FIN) + ORDER BY 1 + ) subview ON p_calendrier_mois.numero_mois = subview.numero_mois + WHERE p_calendrier_mois.exercice_mois_comptable_1 IS DISTINCT FROM p_calendrier_mois.mois - correcteur_mois OR + p_calendrier_mois.exercice_comptable IS DISTINCT FROM date_part('year',p_calendrier_mois.date_debut) - correcteur_exercice + GROUP BY 1,2,3 + ORDER BY 1) subview + WHERE p_calendrier_mois.mois = subview.mois; + + -- Site = Etablissement + INSERT INTO compta.t_sites(code, texte, clinique_honoraire, code_original) + SELECT N_ETAB, NOM, 'C', N_ETAB + FROM prod_QSP.CPTA_ETABLISSEMENT + WHERE N_ETAB NOT IN (SELECT code_original FROM compta.t_sites WHERE code_original IS NOT NULL) + ; + + -- Types de compte + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT code, code_original, texte, specialite + FROM + ( + SELECT 'GES' AS code, 'GES' AS code_original, 'Gestion' AS texte, 'GES' AS specialite + UNION + SELECT 'BIL', 'BIL', 'Bilan', 'BIL' + UNION + SELECT 'CLI', 'CLI', 'Clients', 'CLI' + UNION + SELECT 'FOU', 'FOU', 'Fournisseurs', 'FOU' + UNION + SELECT 'TIE', 'TIE', 'Autres tiers', 'CLI' + ) subview + WHERE code_original NOT IN (SELECT code_original FROM compta.t_types_compta WHERE code_original IS NOT NULL); + + INSERT INTO compta.t_sections_analytiques(oid, code, code_original, texte) + SELECT 0, '0000', '', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM compta.t_sections_analytiques); + + -- Partenaires + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT NUM_TIERS, NUM_TIERS, MAX(LIB_CPT), MAX(LIB_CPT) + FROM w_PLAN_C + WHERE TP_CPT <> 'G' AND + NUM_TIERS <> '' AND + NUM_TIERS NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) AND + USED = 1 + GROUP BY 1 + ORDER BY 1; + + + -- Journaux + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux, clinique_honoraire) + SELECT C_JAL, C_JAL, LIB_JAL, '0', 'C' + FROM prod_QSP.JOURNAL + WHERE C_JAL NOT IN (SELECT code_original FROM compta.t_journaux WHERE code_original IS NOT NULL) + ORDER BY 1; + + + -- Comptes + + UPDATE compta.t_comptes SET + type_compta_id = w_PLAN_c.type_compta_id, + texte = LIB_CPT + FROM w_PLAN_C + WHERE t_comptes.numero = N_CPT AND + ( + t_comptes.type_compta_id IS DISTINCT FROM w_PLAN_c.type_compta_id OR + t_comptes.texte IS DISTINCT FROM LIB_CPT + ); + + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + type_compta_id, + N_CPT AS numero, + MAX(LIB_CPT) AS texte, + 0 AS compte_general_id, + 'C' AS clinique_honoraire, + MAX(CASE WHEN N_CPT LIKE '512%' THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + 0::bigint AS partenaire_id + FROM w_PLAN_C + WHERE USED = 1 AND + N_CPT NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2; + + + + -- Comptes généraux des extra comptable + UPDATE compta.t_comptes SET + compte_general_id = t_comptes_c.oid, + collectif = (CASE WHEN w_PLAN_C.TP_CPT <> 'G' THEN '0' ELSE '1' END) + FROM w_PLAN_C + JOIN compta.t_comptes t_comptes_c ON N_CPT_GENE = t_comptes_c.numero + WHERE N_CPT = t_comptes.numero AND + ( + t_comptes.compte_general_id IS DISTINCT FROM t_comptes_c.oid OR + t_comptes.collectif IS DISTINCT FROM (CASE WHEN w_PLAN_C.TP_CPT <> 'G' THEN '0' ELSE '1' END) + ); + + -- Partenaire associé à l'extraé comptable + UPDATE compta.t_comptes + SET partenaire_id = t_partenaires.oid + FROM w_PLAN_C + JOIN compta.t_partenaires ON NUM_TIERS = t_partenaires.code_original + WHERE t_comptes.numero = w_PLAN_C.N_CPT AND + w_PLAN_C.TP_CPT <> 'G' AND + partenaire_id IS DISTINCT FROM t_partenaires.oid; + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_QUADRACOMPTA.XML b/import_compta/iCTI_import_compta_QUADRACOMPTA.XML new file mode 100644 index 0000000..c167691 --- /dev/null +++ b/import_compta/iCTI_import_compta_QUADRACOMPTA.XML @@ -0,0 +1,712 @@ + + + + + + + + = 200801 AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + -- Ecritures exercice en cours + DROP TABLE IF EXISTS w_ECRITURES; + CREATE TEMP TABLE w_ECRITURES AS + SELECT to_number(to_char(CASE WHEN PERIODEECRITURE < DEBUTEXERCICE THEN DEBUTEXERCICE ELSE PERIODEECRITURE END,'YYYYMM'),'FM999999') AS MOIS, + NUMEROCOMPTE, + date_part('year',FINEXERCICE) AS exercice_comptable, + '0'::text AS exercice_precedent, + date(MIN(PERIODEECRITURE)) AS PERIODEECRITURE_debut, + date(MAX(PERIODEECRITURE)) AS PERIODEECRITURE_fin, + Count(*) AS COUNT, + round(SUM(MONTANTTENUDEBIT),2) AS DEBIT, + round(SUM(MONTANTTENUCREDIT),2) AS CREDIT + FROM prod_quadracompta.ECRITURES + JOIN prod_quadracompta.DOSSIER1 ON 1=1 + WHERE TYPELIGNE <> 'T' + GROUP BY 1,2,3 + ORDER BY 1,2; + -- Ecritures exercice précédent + INSERT INTO w_ECRITURES + SELECT to_number(to_char(CASE WHEN PERIODEECRITURE < DEBUTEXERCICE THEN DEBUTEXERCICE ELSE PERIODEECRITURE END,'YYYYMM'),'FM999999') AS MOIS, + NUMEROCOMPTE, + date_part('year',FINEXERCICE) AS exercice_comptable, + '1'::text AS exercice_precedent, + date(MIN(PERIODEECRITURE)) AS PERIODEECRITURE_debut, + date(MAX(PERIODEECRITURE)) AS PERIODEECRITURE_fin, + Count(*) AS COUNT, + round(SUM(MONTANTTENUDEBIT),2) AS DEBIT, + round(SUM(MONTANTTENUCREDIT),2) AS CREDIT + FROM prod_quadracompta.ECRITURESP + JOIN prod_quadracompta.DOSSIER1P ON 1=1 + WHERE TYPELIGNE <> 'T' + GROUP BY 1,2,3 + ORDER BY 1,2; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_ECRITURES.exercice_comptable, + w_ECRITURES.exercice_precedent, + w_ECRITURES.mois AS mois_comptable, + MIN(PERIODEECRITURE_debut) AS PERIODEECRITURE_debut, + MAX(PERIODEECRITURE_fin) AS PERIODEECRITURE_fin + FROM w_ECRITURES + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_ECRITURES.mois AND + w_historique_ecritures_total.numero = w_ECRITURES.NUMEROCOMPTE + GROUP BY 1,2,3 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_ECRITURES.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_ECRITURES.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_ECRITURES.credit + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable); + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESC', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '0'; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESP', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '1'; + + echo Mois modifiés Exercice en cours : [MOISMODIFIESC]; + echo Mois modifiés Exercice précédent : [MOISMODIFIESP]; + + ]]> + + + + + + + + + + + + + + + 'T' + ORDER BY FOLIO, LIGNEFOLIO; + + + 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'); + + + + ]]> + + + + + + + + + + + + + 'T' + ORDER BY FOLIO, LIGNEFOLIO; + + + 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; + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + 'G' THEN '0' ELSE '1' END AS collectif + FROM prod_quadracompta.COMPTESP COMPTES + JOIN compta.t_comptes ON t_comptes.numero = COMPTES.NUMERO + LEFT JOIN prod_quadracompta.COMPTESP COMPTES_C ON COMPTES.COLLECTIF = COMPTES_C.NUMERO AND COMPTES.TYPE <> 'G' + LEFT JOIN compta.t_comptes t_comptes_c ON t_comptes_c.numero = COMPTES_C.NUMERO + ) subview + WHERE t_comptes.oid = subview.oid AND + ( + t_comptes.compte_general_id IS DISTINCT FROM subview.compte_general_id OR + t_comptes.collectif IS DISTINCT FROM subview.collectif + ); + + + UPDATE compta.t_comptes SET + compte_general_id = subview.compte_general_id, + collectif = subview.collectif + FROM ( + SELECT t_comptes.oid, + COALESCE(t_comptes_c.oid,t_comptes.oid) AS compte_general_id, + CASE WHEN COMPTES.TYPE <> 'G' THEN '0' ELSE '1' END AS collectif + FROM prod_quadracompta.COMPTES + JOIN compta.t_comptes ON t_comptes.numero = COMPTES.NUMERO + LEFT JOIN prod_quadracompta.COMPTES COMPTES_C ON COMPTES.COLLECTIF = COMPTES_C.NUMERO AND COMPTES.TYPE <> 'G' + LEFT JOIN compta.t_comptes t_comptes_c ON t_comptes_c.numero = COMPTES_C.NUMERO + ) subview + WHERE t_comptes.oid = subview.oid AND + ( + t_comptes.compte_general_id IS DISTINCT FROM subview.compte_general_id OR + t_comptes.collectif IS DISTINCT FROM subview.collectif + ); + + + + + + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_SAGE100COMPTA.XML b/import_compta/iCTI_import_compta_SAGE100COMPTA.XML new file mode 100644 index 0000000..5277261 --- /dev/null +++ b/import_compta/iCTI_import_compta_SAGE100COMPTA.XML @@ -0,0 +1,866 @@ + + + + + + + + = 200801 AND ajustement = '0' AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + -- Ecritures prestataire + DROP TABLE IF EXISTS w_TECRITURE; + CREATE TEMP TABLE w_TECRITURE AS + SELECT + date_part('year',DATEDEBUT) * 100 + date_part('month',DATEDEBUT) AS mois_comptable, + COALESCE(w_TCOMPTEAUXILIAIRE.CODECOMPTEAUXILIAIRE,TCOMPTEGENERAL.CODECOMPTE) AS CODECOMPTE, + date_part('year',DATEDEBUT) AS exercice_comptable, + date(MIN(DATEDEBUT)) AS DATEDEBUT, + date(MAX(DATEFIN)) AS DATEFIN, + Count(*) AS COUNT, + round(SUM(DEBIT),2) AS DEBIT, + round(SUM(CREDIT),2) AS CREDIT + FROM prod_sage100compta.TECRITURE + JOIN prod_sage100compta.TPIECE ON OIDPIECE = TPIECE.OID + JOIN prod_sage100compta.TPERIODE ON OIDPERIODE = TPERIODE.OID + JOIN prod_sage100compta.TCOMPTEGENERAL ON OIDCOMPTEGENERAL = TCOMPTEGENERAL.OID + LEFT JOIN w_TCOMPTEAUXILIAIRE ON TECRITURE.OIDCOMPTEGENERAL = w_TCOMPTEAUXILIAIRE.OIDCOMPTEGENERAL AND + TECRITURE.OIDROLETIERS = w_TCOMPTEAUXILIAIRE.OIDROLETIERS + WHERE typeecriture <> 0 + GROUP BY 1,2,3 + ORDER BY 1,2,3; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_TECRITURE.exercice_comptable, + w_TECRITURE.mois_comptable, + MIN(DATEDEBUT) AS DATEDEBUT, + MAX(DATEFIN) AS DATEFIN + FROM w_TECRITURE + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_TECRITURE.mois_comptable AND + w_historique_ecritures_total.numero = w_TECRITURE.CODECOMPTE + GROUP BY 1,2 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_TECRITURE.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_TECRITURE.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_TECRITURE.credit + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable); + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + + + echo Mois modifiés : [MOISMODIFIES]; + + ]]> + + + + + + + + + + + + + + + 0 AND TPIECE.NATUREPIECE = 1 AND TPIECE.REFERENCE LIKE '%ture%' + ORDER BY TECRITURE.OID + ; + + + 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; + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + '' AND + CODE NOT IN (SELECT code FROM compta.t_classes_comptes WHERE code IS NOT NULL) + ORDER BY CODE; + + UPDATE compta.t_classes_comptes + SET texte = upper(CAPTION) + FROM prod_sage100compta.TCORRESPONDANCEGROUPECOMPTE + WHERE t_classes_comptes.code = TCORRESPONDANCEGROUPECOMPTE.CODE AND CAPTION <> '' AND + texte <> upper(CAPTION) ; + + + -- Comptes + UPDATE compta.t_comptes SET + type_compta_id = subview.type_compta_id, + texte = subview.texte + FROM + ( + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + TCOMPTEGENERAL.CODECOMPTE AS numero, + MAX(CAPTION) AS texte + FROM prod_sage100compta.TCOMPTEGENERAL + LEFT JOIN compta.t_types_compta ON + CASE + WHEN TCOMPTEGENERAL.CODECOMPTE LIKE '6%' OR TCOMPTEGENERAL.CODECOMPTE LIKE '7%' OR TCOMPTEGENERAL.CODECOMPTE LIKE '8%' THEN 'GES' + ELSE 'BIL' END + = t_types_compta.code_original + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero AND + ( + t_comptes.type_compta_id IS DISTINCT FROM subview.type_compta_id OR + t_comptes.texte IS DISTINCT FROM subview.texte + ); + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + TCOMPTEGENERAL.CODECOMPTE AS numero, + MAX(CAPTION) AS texte, + 0 AS compte_general_id, + 'C' AS clinique_honoraire, + MAX(CASE WHEN TCOMPTEGENERAL.CODECOMPTE LIKE '512%' THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + 0::bigint AS partenaire_id + FROM prod_sage100compta.TCOMPTEGENERAL + LEFT JOIN compta.t_types_compta ON + CASE + WHEN TCOMPTEGENERAL.CODECOMPTE LIKE '6%' OR TCOMPTEGENERAL.CODECOMPTE LIKE '7%' OR TCOMPTEGENERAL.CODECOMPTE LIKE '8%' THEN 'GES' + ELSE 'BIL' END + = t_types_compta.code_original + WHERE TCOMPTEGENERAL.CODECOMPTE NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) AND + TCOMPTEGENERAL.OID IN (SELECT OIDCOMPTEGENERAL FROM prod_sage100compta.TECRITURE) + GROUP BY 1,2 + ORDER BY 2; + + -- Partenaires + INSERT INTO compta.t_partenaires(code_original, code, texte, texte_court) + SELECT OIDTIERS, TTIERS.CODE, TTIERS.CAPTION, substr(TTIERS.CAPTION,1,50) + FROM prod_sage100compta.TROLETIERS + JOIN prod_sage100compta.TTIERS ON OIDTIERS = TTIERS.OID + WHERE TROLETIERS.OID IN (SELECT OIDROLETIERS FROM prod_sage100compta.TECRITURE) AND + OIDTIERS NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) + GROUP BY 1,2,3,4; + + UPDATE compta.t_partenaires SET + code = TTIERS.CODE, + texte = TTIERS.CAPTION, + texte_court = substr(TTIERS.CAPTION,1,50) + FROM prod_sage100compta.TTIERS + WHERE TTIERS.OID = code_original AND + (t_partenaires.code IS DISTINCT FROM TTIERS.CODE OR + t_partenaires.texte IS DISTINCT FROM TTIERS.CAPTION OR + t_partenaires.texte_court IS DISTINCT FROM substr(TTIERS.CAPTION,1,50)); + + + -- Comptes auxiliaires + DROP TABLE IF EXISTS w_TCOMPTEAUXILIAIRE; + CREATE TEMP TABLE w_TCOMPTEAUXILIAIRE AS + SELECT TCOMPTEAUXILIAIRE.OID, + OIDCOMPTEGENERAL, + TCOMPTEGENERAL.CODECOMPTE, + TCOMPTEGENERAL.CODECOMPTE || '.' || TTIERS.CODE AS CODECOMPTEAUXILIAIRE, + TTIERS.CAPTION, + OIDTIERS, + OIDROLETIERS, + 0::bigint AS compte_auxiliaire_id, + 0::bigint AS partenaire_id + FROM prod_sage100compta.TCOMPTEAUXILIAIRE + JOIN prod_sage100compta.TCOMPTEGENERAL ON OIDCOMPTEGENERAL = TCOMPTEGENERAL.OID + JOIN prod_sage100compta.TROLETIERS ON OIDROLETIERS = TROLETIERS.OID + JOIN prod_sage100compta.TTIERS ON OIDTIERS = TTIERS.OID; + + UPDATE w_TCOMPTEAUXILIAIRE + SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE OIDTIERS = t_partenaires.code_original; + + + UPDATE compta.t_comptes SET + type_compta_id = subview.type_compta_id, + texte = subview.texte, + compte_general_id = subview.compte_general_id, + partenaire_id = subview.partenaire_id + FROM + ( + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + CODECOMPTEAUXILIAIRE AS numero, + MAX(CAPTION) AS texte, + MAX(COALESCE(t_comptes.oid,0)) AS compte_general_id, + MAX(w_TCOMPTEAUXILIAIRE.partenaire_id) AS partenaire_id + FROM w_TCOMPTEAUXILIAIRE + LEFT JOIN compta.t_comptes ON CODECOMPTE = t_comptes.numero + LEFT JOIN compta.t_types_compta ON + CASE + WHEN CODECOMPTE LIKE '411%' THEN 'CLI' + WHEN CODECOMPTE LIKE '412%' THEN 'CLI' + WHEN CODECOMPTE LIKE '419%' THEN 'CLI' + ELSE 'DIV' END + = t_types_compta.code_original + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero AND + ( + t_comptes.type_compta_id IS DISTINCT FROM subview.type_compta_id OR + t_comptes.texte IS DISTINCT FROM subview.texte OR + t_comptes.compte_general_id IS DISTINCT FROM subview.compte_general_id OR + t_comptes.partenaire_id IS DISTINCT FROM subview.partenaire_id + ); + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + CODECOMPTEAUXILIAIRE AS numero, + MAX(CAPTION) AS texte, + MAX(COALESCE(t_comptes.oid,0)) AS compte_general_id, + 'C' AS clinique_honoraire, + '0' AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + MAX(w_TCOMPTEAUXILIAIRE.partenaire_id) AS partenaire_id + FROM w_TCOMPTEAUXILIAIRE + LEFT JOIN compta.t_comptes ON CODECOMPTE = t_comptes.numero + LEFT JOIN compta.t_types_compta ON + CASE + WHEN CODECOMPTE LIKE '40%' THEN 'FOU' + WHEN CODECOMPTE LIKE '411%' THEN 'CLI' + WHEN CODECOMPTE LIKE '412%' THEN 'CLI' + WHEN CODECOMPTE LIKE '419%' THEN 'CLI' + ELSE 'DIV' END + = t_types_compta.code_original + WHERE OIDCOMPTEGENERAL IN (SELECT OIDCOMPTEGENERAL FROM prod_sage100compta.TECRITURE) AND + CODECOMPTEAUXILIAIRE NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2; + + + UPDATE w_TCOMPTEAUXILIAIRE + SET compte_auxiliaire_id = t_comptes.oid + FROM compta.t_comptes + WHERE w_TCOMPTEAUXILIAIRE.CODECOMPTEAUXILIAIRE = t_comptes.numero; + + + + UPDATE compta.t_comptes SET + compte_general_id = oid + WHERE compte_general_id = 0 OR compte_general_id IS NULL; + + -- Ruptures SAGE + + DROP TABLE IF EXISTS w_compte_rupture; + CREATE TEMP TABLE w_compte_rupture AS + SELECT CODECOMPTE, + RUPTURE_LEVEL, + 'SAGERUPT'::text || RUPTURE_LEVEL::text||'C'::text AS classe_code, + 0::bigint AS classe_id, + CASE RUPTURE_LEVEL + WHEN 1 THEN RUPTURE1 + WHEN 2 THEN RUPTURE2 + WHEN 3 THEN RUPTURE3 + WHEN 4 THEN RUPTURE4 + WHEN 5 THEN RUPTURE5 + ELSE '' END AS section_code, + 0::bigint AS section_id, + 0::bigint AS compte_id + FROM + ( + SELECT 1::integer AS RUPTURE_LEVEL + UNION + SELECT 2::integer AS RUPTURE_LEVEL + UNION + SELECT 3::integer AS RUPTURE_LEVEL + UNION + SELECT 4::integer AS RUPTURE_LEVEL + UNION + SELECT 5::integer AS RUPTURE_LEVEL + ) subview + JOIN compta.t_listes_tables ON t_listes_tables.code = 'CPT' + JOIN prod_sage100compta.TCOMPTEGENERAL ON + ( + RUPTURE_LEVEL = 1 AND RUPTURE1 <> '' OR + RUPTURE_LEVEL = 2 AND RUPTURE2 <> '' OR + RUPTURE_LEVEL = 3 AND RUPTURE3 <> '' OR + RUPTURE_LEVEL = 4 AND RUPTURE4 <> '' OR + RUPTURE_LEVEL = 5 AND RUPTURE5 <> '' + ) + ORDER BY 1,2 + ; + + UPDATE w_compte_rupture + SET compte_id = t_comptes.oid + FROM compta.t_comptes + WHERE t_comptes.numero = CODECOMPTE AND + t_comptes.compte_general_id = t_comptes.oid + ; + + + INSERT INTO compta.t_classes(code, texte, table_id, is_cti, sequence, contenu_by_code, contenu_non_replicable_ailleurs) + SELECT classe_code, + 'SAGE. Rupture '||RUPTURE_LEVEL::text, + subview.table_id, + '0'::text AS is_cti, + subview.max_sequence + RUPTURE_LEVEL, + '0'::text, + '1'::text + FROM w_compte_rupture + LEFT JOIN compta.t_classes ON classe_code = t_classes.code + JOIN + ( + SELECT t_listes_tables.oid AS table_id, GREATEST(MAX(sequence),30) AS max_sequence + FROM compta.t_classes + JOIN compta.t_listes_tables ON t_listes_tables.code = 'CPT' + GROUP BY 1 + ) subview ON 1=1 + WHERE t_classes.oid IS NULL + GROUP BY 1,2,3,4,5,6 + ; + + UPDATE w_compte_rupture + SET classe_id = t_classes.oid + FROM compta.t_classes + WHERE t_classes.code = classe_code + ; + + + INSERT INTO compta.t_classes_sections (code, texte, classe_id) + SELECT w_compte_rupture.section_code, w_compte_rupture.section_code, w_compte_rupture.classe_id + FROM w_compte_rupture + LEFT JOIN compta.t_classes_sections ON + t_classes_sections.classe_id = w_compte_rupture.classe_id AND + t_classes_sections.code = w_compte_rupture.section_code + WHERE t_classes_sections.oid IS NULL + GROUP BY 1,2,3 + ; + + UPDATE w_compte_rupture + SET section_id = t_classes_sections.oid + FROM compta.t_classes_sections + WHERE t_classes_sections.classe_id = w_compte_rupture.classe_id AND + t_classes_sections.code = w_compte_rupture.section_code + ; + + DELETE FROM compta.t_classes_sections_elements + USING + ( + SELECT t_classes_sections_elements.section_id, to_id + FROM compta.t_classes_sections_elements + JOIN compta.t_classes_sections ON section_id = t_classes_sections.oid + JOIN compta.t_classes ON classe_id = t_classes.oid + JOIN w_compte_rupture ON + t_classes_sections.classe_id = w_compte_rupture.classe_id AND + t_classes_sections_elements.to_id = w_compte_rupture.compte_id + WHERE t_classes_sections.classe_id IN (SELECT classe_id FROM w_compte_rupture) AND + t_classes_sections_elements.section_id <> w_compte_rupture.section_id AND + w_compte_rupture.section_id <> 0 + ) subview + WHERE t_classes_sections_elements.section_id = subview.section_id AND + t_classes_sections_elements.to_id = subview.to_id + ; + + INSERT INTO compta.t_classes_sections_elements (section_id, to_id) + SELECT w_compte_rupture.section_id, w_compte_rupture.compte_id + FROM w_compte_rupture + LEFT JOIN compta.t_classes_sections_elements ON + t_classes_sections_elements.section_id = w_compte_rupture.section_id AND + t_classes_sections_elements.to_id = w_compte_rupture.compte_id + WHERE w_compte_rupture.compte_id <> 0 AND + w_compte_rupture.section_id <> 0 AND + t_classes_sections_elements.section_id IS NULL + GROUP BY 1,2 + ; + + + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_SAGEI7COMPTA.XML b/import_compta/iCTI_import_compta_SAGEI7COMPTA.XML new file mode 100644 index 0000000..edf79b9 --- /dev/null +++ b/import_compta/iCTI_import_compta_SAGEI7COMPTA.XML @@ -0,0 +1,838 @@ + + + + + + + + = 200801 AND ajustement = '0' AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + -- Ecritures prestataire + DROP TABLE IF EXISTS w_ECRITUREC; + CREATE TEMP TABLE w_ECRITUREC AS + SELECT + date_part('year',JM_DATE) * 100 + date_part('month',JM_DATE) AS mois_comptable, + COALESCE(w_COMPTET.CGCT_NUM,F_ECRITUREC.CG_NUM) AS CG_NUM, + date_part('year',JM_DATE) AS exercice_comptable, + date(JM_DATE) AS JM_DATE, + Count(*) AS COUNT, + round(SUM(CASE WHEN EC_SENS <> 1 THEN EC_MONTANT ELSE 0 END),2) AS EC_MONTANT_debit, + round(SUM(CASE WHEN EC_SENS = 1 THEN EC_MONTANT ELSE 0 END),2) AS EC_MONTANT_credit + FROM prod_sagei7compta.F_ECRITUREC + LEFT JOIN w_COMPTET ON F_ECRITUREC.CG_NUM = w_COMPTET.CG_NUM AND + F_ECRITUREC.CT_NUM = w_COMPTET.CT_NUM AND + F_ECRITUREC.CT_NUM <> '' + GROUP BY 1,2,3,4 + ORDER BY 1,2,3; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_ECRITUREC.exercice_comptable, + w_ECRITUREC.mois_comptable, + JM_DATE + FROM w_ECRITUREC + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_ECRITUREC.mois_comptable AND + w_historique_ecritures_total.numero = w_ECRITUREC.CG_NUM + GROUP BY 1,2,3 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_ECRITUREC.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_ECRITUREC.EC_MONTANT_debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_ECRITUREC.EC_MONTANT_credit + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable); + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + + + echo Mois modifiés : [MOISMODIFIES]; + + ]]> + + + + + + + + + + + + + + + = '20000101' THEN F_ECRITUREC.EC_ECHEANCE ELSE '20991231' END AS date_echeance, + 0::bigint AS journal_paiement_id, + 0::bigint AS mode_paiement_id, + ''::text AS numero_cheque, + round(CASE WHEN EC_SENS = 1 THEN + CASE WHEN CA_Num IS NULL THEN EC_MONTANT ELSE EA_Montant END + ELSE 0 END,2) AS montant_credit, + round(CASE WHEN EC_SENS <> 1 THEN + CASE WHEN CA_Num IS NULL THEN EC_MONTANT ELSE EA_Montant END + ELSE 0 END,2) AS montant_debit + FROM prod_sagei7compta.F_ECRITUREC + JOIN compta.t_divers ON t_divers.code = 'SAGEI7_ANA1' + LEFT JOIN prod_sagei7compta.F_ECRITUREA ON F_ECRITUREC.EC_No = F_ECRITUREA.EC_No AND F_ECRITUREA.N_ANALYTIQUE::text = t_divers.valeur + -- todo gérer plusieurs nivo + JOIN w_mois_modifies ON + date(F_ECRITUREC.JM_DATE) = w_mois_modifies.JM_DATE + JOIN compta.t_sites ON t_sites.oid::text = ANY(string_to_array('[SITES]'::text, ',')) OR '[SITES]' = '1' + JOIN compta.t_journaux ON JO_NUM = t_journaux.code_original + JOIN compta.t_comptes ON CG_NUM = t_comptes.numero + LEFT JOIN w_COMPTET ON F_ECRITUREC.CG_NUM = w_COMPTET.CG_NUM AND + F_ECRITUREC.CT_NUM = w_COMPTET.CT_NUM AND + F_ECRITUREC.CT_NUM <> '' + LEFT JOIN compta.t_comptes t_comptes_contre ON CG_NUMCONT = t_comptes_contre.numero + LEFT JOIN compta.t_sections_analytiques ON CA_NUM = t_sections_analytiques.code_original + ORDER BY F_ECRITUREC.EC_NO + ; + + + + + 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; + + + + + ]]> + + + + + + = 2015 AND t_comptes_c_extra.type_compta_code='401' + ; + + + TRUNCATE compta.p_ecriture_fournisseur; + + INSERT INTO compta.p_ecriture_fournisseur + ( + 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, + ecriture_consolidee, + facture_soldee, + ecriture_exclue + ) + SELECT + compte_id, + date_ecriture, + mois_comptable, + montant_credit, + montant_debit, + journal_id, + section_analytique_id, + p_historique_ecritures.clinique_honoraire, + exercice_comptable, + p_historique_ecritures.type_compta_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + cle_originale, + compte_contrepartie_id, + p_historique_ecritures.texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + site_id, + partenaire_id, + inter_site, + identifiant_operation, + ecriture_consolidee, + '0'::text AS facture_soldee, + '0'::text AS ecriture_exclue + FROM compta.p_historique_ecritures + JOIN w_exercice_fournisseur ON exercice_comptable >= exercice_comptable_fournisseur + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid AND + t_comptes_c_extra.type_compta_code='401' + ; + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id + FROM compta.p_ecriture_fournisseur + GROUP BY 1 + HAVING SUM(montant_credit) = SUM(montant_debit) + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id + ; + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + dossier + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2 + HAVING SUM(montant_credit) = SUM(montant_debit) + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.dossier = subview.dossier AND + facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + dossier, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2,3 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.dossier = subview.dossier AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + dossier, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2,3 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET ecriture_exclue = '1' + WHERE facture_soldee = '0' AND + date_echeance = '20991231' + ; + UPDATE compta.p_ecriture_fournisseur + SET ecriture_exclue = '1' + WHERE facture_soldee = '0' AND + date_echeance < date(date_trunc('month',now())) + ; + + ]]> + + + + + + + + + + + + + 1 THEN EC_MONTANT ELSE 0 END),2) AS EC_MONTANT_debit, + round(SUM(CASE WHEN EC_SENS = 1 THEN EC_MONTANT ELSE 0 END),2) AS EC_MONTANT_credit + FROM prod_sagei7compta.F_ECRITUREC + JOIN w_mois_modifies ON date(F_ECRITUREC.JM_DATE) = w_mois_modifies.JM_DATE + JOIN compta.t_sites ON t_sites.oid::text = ANY(string_to_array('[SITES]'::text, ',')) OR '[SITES]' = '1' + GROUP BY 1,2,3; + + ]]> + + + + + + + + + '' AND + T_VAL01T_COMPTE IN (SELECT CG_NUM FROM prod_sagei7compta.F_ECRITUREC) AND + rtrim(T_VAL01T_COMPTE, '0') NOT IN (SELECT code_original FROM compta.t_types_compta WHERE code_original IS NOT NULL); + + + + INSERT INTO compta.t_sections_analytiques(oid, code, code_original, texte) + SELECT 0, '0000', '', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM compta.t_sections_analytiques); + + INSERT INTO compta.t_sections_analytiques(code_original, code, texte) + SELECT + CA_NUM, + CA_NUM, + MAX(CA_INTITULE) + FROM prod_sagei7compta.F_COMPTEA + JOIN compta.t_divers ON t_divers.code = 'SAGEI7_ANA1' + WHERE 1=1 AND + N_ANALYTIQUE::text = t_divers.valeur AND + CA_NUM NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1,2 + ; + + UPDATE compta.t_sections_analytiques SET + texte = subview.CA_INTITULE + FROM + ( + SELECT + CA_NUM, + MAX(CA_INTITULE) AS CA_INTITULE + FROM prod_sagei7compta.F_COMPTEA + JOIN compta.t_divers ON t_divers.code = 'SAGEI7_ANA1' + WHERE N_ANALYTIQUE::text = t_divers.valeur + GROUP BY 1 + ) subview + WHERE code_original = CA_NUM AND + texte IS DISTINCT FROM CA_INTITULE + ; + + INSERT INTO compta.t_sections_analytiques(code_original, code, texte) + SELECT + CA_NUM, + CA_NUM, + CA_NUM + FROM + prod_sagei7compta.F_ECRITUREA + WHERE 1=1 AND + CA_NUM NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1,2,3 + ; + + + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + + -- Journaux + + INSERT INTO compta.t_journaux(code_original, code, texte, a_nouveaux, clinique_honoraire) + SELECT JO_NUM, JO_NUM, JO_INTITULE, '0', 'C' + FROM prod_sagei7compta.F_JOURNAUX + WHERE JO_NUM NOT IN (SELECT code_original FROM compta.t_journaux WHERE code_original IS NOT NULL) AND + JO_NUM IN (SELECT JO_NUM FROM prod_sagei7compta.F_ECRITUREC) + ORDER BY 1; + + -- Classes de comptes + + + + -- Comptes + UPDATE compta.t_comptes SET + type_compta_id = subview.type_compta_id, + texte = subview.texte + FROM + ( + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + F_COMPTEG.CG_NUM AS numero, + MAX(CG_INTITULE) AS texte + FROM prod_sagei7compta.F_COMPTEG + LEFT JOIN compta.t_types_compta ON + CASE + WHEN F_COMPTEG.CG_NUM LIKE '6%' OR F_COMPTEG.CG_NUM LIKE '7%' THEN 'GES' + WHEN F_COMPTEG.CG_NUM LIKE '8%' THEN 'SPE' + ELSE 'BIL' END + = t_types_compta.code_original + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero AND + ( + t_comptes.type_compta_id IS DISTINCT FROM subview.type_compta_id OR + t_comptes.texte IS DISTINCT FROM subview.texte + ); + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + F_COMPTEG.CG_NUM AS numero, + MAX(CG_INTITULE) AS texte, + 0 AS compte_general_id, + 'C' AS clinique_honoraire, + MAX(CASE WHEN F_COMPTEG.CG_NUM LIKE '512%' THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + 0::bigint AS partenaire_id + FROM prod_sagei7compta.F_COMPTEG + LEFT JOIN compta.t_types_compta ON + CASE + WHEN F_COMPTEG.CG_NUM LIKE '6%' OR F_COMPTEG.CG_NUM LIKE '7%' THEN 'GES' + WHEN F_COMPTEG.CG_NUM LIKE '8%' THEN 'SPE' + ELSE 'BIL' END + = t_types_compta.code_original + WHERE F_COMPTEG.CG_NUM NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) AND + ( + F_COMPTEG.CG_NUM IN (SELECT CG_NUM FROM prod_sagei7compta.F_ECRITUREC) OR + F_COMPTEG.CG_NUM IN (SELECT CG_NUMCONT FROM prod_sagei7compta.F_ECRITUREC) + ) + GROUP BY 1,2 + ORDER BY 2; + + -- Partenaires + INSERT INTO compta.t_partenaires(code_original, code, texte, texte_court) + SELECT CT_NUM, CT_NUM, CT_INTITULE, substr(CT_INTITULE, 1, 50) + FROM prod_sagei7compta.F_COMPTET + WHERE CT_NUM IN (SELECT CT_NUM FROM prod_sagei7compta.F_ECRITUREC) AND + CT_NUM NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) + GROUP BY 1,2,3,4; + + UPDATE compta.t_partenaires SET + texte = CT_INTITULE, + texte_court = substr(CT_INTITULE, 1, 50) + FROM prod_sagei7compta.F_COMPTET + WHERE CT_NUM = code_original AND + ( + t_partenaires.texte IS DISTINCT FROM CT_INTITULE OR + t_partenaires.texte_court IS DISTINCT FROM CT_INTITULE + ); + + + -- Comptes auxiliaires + + DROP TABLE IF EXISTS w_COMPTET; + CREATE TEMP TABLE w_COMPTET AS + SELECT F_ECRITUREC.CT_NUM, + F_ECRITUREC.CG_NUM, + F_ECRITUREC.CG_NUM || '.' || F_ECRITUREC.CT_NUM AS CGCT_NUM, + CT_INTITULE, + max(t_types_compta.oid) AS type_auxiliaire_id, + 0::bigint AS compte_auxiliaire_id, + 0::bigint AS partenaire_id + FROM prod_sagei7compta.F_ECRITUREC + JOIN prod_sagei7compta.F_COMPTEG ON F_COMPTEG.CG_NUM = F_ECRITUREC.CG_NUM + JOIN prod_sagei7compta.F_COMPTET ON F_COMPTET.CT_NUM = F_ECRITUREC.CT_NUM + JOIN compta.t_types_compta ON F_COMPTEG.CG_NUM LIKE (t_types_compta.code_original || '%') + WHERE F_ECRITUREC.CT_NUM <> '' + GROUP BY 1,2,3,4 + ORDER BY 3; + + + + + UPDATE w_COMPTET + SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE CT_NUM = t_partenaires.code_original; + + + UPDATE compta.t_comptes SET + texte = subview.texte, + compte_general_id = subview.compte_general_id, + partenaire_id = subview.partenaire_id + FROM + ( + SELECT + type_auxiliaire_id AS type_compta_id, + CGCT_NUM AS numero, + MAX(CT_INTITULE) AS texte, + MAX(COALESCE(t_comptes.oid,0)) AS compte_general_id, + MAX(w_COMPTET.partenaire_id) AS partenaire_id + FROM w_COMPTET + LEFT JOIN compta.t_comptes ON CG_NUM = t_comptes.numero + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero AND + ( + t_comptes.texte IS DISTINCT FROM subview.texte OR + t_comptes.compte_general_id IS DISTINCT FROM subview.compte_general_id OR + t_comptes.partenaire_id IS DISTINCT FROM subview.partenaire_id + ); + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + type_auxiliaire_id AS type_compta_id, + CGCT_NUM AS numero, + MAX(CT_INTITULE) AS texte, + MAX(COALESCE(t_comptes.oid,0)) AS compte_general_id, + 'C' AS clinique_honoraire, + '0' AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + MAX(w_COMPTET.partenaire_id) AS partenaire_id + FROM w_COMPTET + LEFT JOIN compta.t_comptes ON CG_NUM = t_comptes.numero + WHERE CGCT_NUM NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2; + + + UPDATE w_COMPTET + SET compte_auxiliaire_id = t_comptes.oid + FROM compta.t_comptes + WHERE w_COMPTET.CGCT_NUM = t_comptes.numero; + + + + UPDATE compta.t_comptes SET + compte_general_id = oid + WHERE compte_general_id = 0 OR compte_general_id IS NULL; + + + + ]]> + + + + + diff --git a/import_compta/iCTI_import_compta_SAGEX3.XML b/import_compta/iCTI_import_compta_SAGEX3.XML new file mode 100644 index 0000000..1dfdd43 --- /dev/null +++ b/import_compta/iCTI_import_compta_SAGEX3.XML @@ -0,0 +1,1291 @@ + + + + + + + round(AMTLED_0::numeric,2) + ; + + UPDATE w_GACCENTRYDA + SET AMTCUR_0_A = AMTLED_0_A + WHERE round(AMTCUR_0_A::numeric,2) <> round(AMTLED_0_A::numeric,2) + ; + + ANALYSE w_GACCENTRYDA + ; + + CREATE INDEX w_GACCENTRYDA_ik_num_0 + ON w_GACCENTRYDA + USING btree + (num_0 COLLATE pg_catalog."default"); + + DROP TABLE IF EXISTS w_GACCENTRYD; + CREATE TEMP TABLE w_GACCENTRYD AS + SELECT to_char(PERIOD.PEREND_0, 'YYYYMM') AS MOIS, + GACCENTRYD.ACC_0, + Count(*) AS COUNT, + round(SUM(CASE WHEN GACCENTRY.CAT_0 = 1 AND COALESCE(GACCENTRYD.SNS_0_A,GACCENTRYD.SNS_0) > 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END)::numeric,2) AS DEBIT, + round(SUM(CASE WHEN GACCENTRY.CAT_0 = 1 AND COALESCE(GACCENTRYD.SNS_0_A,GACCENTRYD.SNS_0) < 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END)::numeric,2) AS CREDIT, + round(SUM(CASE WHEN GACCENTRY.CAT_0 = 2 AND COALESCE(GACCENTRYD.SNS_0_A,GACCENTRYD.SNS_0) > 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END)::numeric,2) AS DEBIT_AJ, + round(SUM(CASE WHEN GACCENTRY.CAT_0 = 2 AND COALESCE(GACCENTRYD.SNS_0_A,GACCENTRYD.SNS_0) < 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END)::numeric,2) AS CREDIT_AJ + FROM prod_sagex3.GACCENTRY + JOIN prod_sagex3.PERIOD ON GACCENTRY.CPY_0 = PERIOD.CPY_0 AND + GACCENTRY.FIY_0 = PERIOD.FIYNUM_0 AND + CASE WHEN GACCENTRY.PER_0 <> 0 THEN GACCENTRY.PER_0 ELSE 1 END = PERIOD.PERNUM_0 AND + PERIOD.PEREND_0 >= '[ENV_COMPTA_ANNEEDEBUT]1201' AND + PERIOD.LEDTYP_0 = 1 + JOIN prod_sagex3.GTYPACCENT ON GACCENTRY.TYP_0 = GTYPACCENT.TYP_0 AND (GTYPACCENT.VCRREA_0 = 2 OR GACCENTRY.CAT_0 = 2) + JOIN prod_sagex3.GJOURNAL ON GACCENTRY.JOU_0 = GJOURNAL.JOU_0 + JOIN w_GACCENTRYDA GACCENTRYD ON GACCENTRYD.NUM_0 = GACCENTRY.NUM_0 AND + GACCENTRYD.TYP_0 = GACCENTRY.TYP_0 + WHERE GACCENTRY.CAT_0 IN (1,2) AND + (GACCENTRYD.LEDTYP_0 = 1 OR (AUZLED_0 = 1 AND AUZLED_1 = 2)) + GROUP BY 1,2 + ORDER BY 1,2; + + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT mois_comptable, + t_comptes.compte_nonsigne_numero as numero, + SUM(CASE WHEN ajustement = '0' THEN montant_debit ELSE 0 END) as debit, + SUM(CASE WHEN ajustement = '0' THEN montant_credit ELSE 0 END) as credit, + SUM(CASE WHEN ajustement IN ('2','3') THEN montant_debit ELSE 0 END) as debit_aj, + SUM(CASE WHEN ajustement IN ('2','3') THEN montant_credit ELSE 0 END) as credit_aj, + SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total, compta.t_comptes + WHERE mois_comptable >= [ENV_COMPTA_ANNEEDEBUT]01 AND + p_historique_ecritures_total.compte_id = t_comptes.oid AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_GACCENTRYD.mois AS mois_modifie + FROM w_GACCENTRYD + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_GACCENTRYD.mois AND + w_historique_ecritures_total.numero = w_GACCENTRYD.ACC_0 + WHERE w_historique_ecritures_total.count IS DISTINCT FROM w_GACCENTRYD.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_GACCENTRYD.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_GACCENTRYD.credit OR + w_historique_ecritures_total.debit_aj IS DISTINCT FROM w_GACCENTRYD.debit_aj OR + w_historique_ecritures_total.credit_aj IS DISTINCT FROM w_GACCENTRYD.credit_aj OR + w_historique_ecritures_total.mois_comptable >= [ENV_COMPTA_ANNEEDEBUT]01 + GROUP BY 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_modifie); + + + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_modifie),'0') + FROM w_mois_modifies; + + + echo Mois modifiés : [MOISMODIFIES]; + + -- Attribution du code partenaire (tiers) sur les lignes d'écritures d'une même pièce comptable/numéro/référence + -- Lignes d'écritures des partenaires + + DROP TABLE IF EXISTS lignes_tiers + ; + + CREATE TEMP TABLE lignes_tiers AS + SELECT + num_0, + MAX(bpr_0) AS partenaire_code + FROM prod_sagex3.GACCENTRYD + WHERE bpr_0 <> '' + GROUP BY 1 + ; + + -- Morceau de code temporaire pouvant être enlever à partir de Juin 2024 + -- L'insertion en base de données ne s'effectue uniquement sur la détection d'un changement de montant pour un mois donné + -- A la prochaine détection d'un changement : + -- Correction de la mauvaise attribution du code partenaire sur toutes les écritures antérieures et actuelles + UPDATE compta.p_historique_ecritures + SET partenaire_id = subview.partenaire_id + FROM ( + SELECT + lignes_tiers.num_0 AS identifiant_operation, + t_partenaires.oid AS partenaire_id + FROM lignes_tiers + JOIN compta.t_partenaires ON t_partenaires.code = lignes_tiers.partenaire_code + ) AS subview + WHERE + p_historique_ecritures.identifiant_operation = subview.identifiant_operation + AND p_historique_ecritures.partenaire_id = 0 + ; + + -- Les vues de l'application se base sur la table p_historique_ecritures_total se basant elle même sur p_historique_ecritures précédemment modifiée + UPDATE compta.p_historique_ecritures_total + SET partenaire_id = p_historique_ecritures.partenaire_id + FROM compta.p_historique_ecritures + WHERE + p_historique_ecritures_total.compte_id = p_historique_ecritures.compte_id + AND p_historique_ecritures_total.mois_comptable = p_historique_ecritures.mois_comptable + AND p_historique_ecritures_total.journal_id = p_historique_ecritures.journal_id + AND p_historique_ecritures_total.section_analytique_id = p_historique_ecritures.section_analytique_id + AND p_historique_ecritures_total.section_analytique_2_id = p_historique_ecritures.section_analytique_2_id + AND p_historique_ecritures_total.section_analytique_3_id = p_historique_ecritures.section_analytique_3_id + AND p_historique_ecritures_total.section_analytique_4_id = p_historique_ecritures.section_analytique_4_id + AND p_historique_ecritures_total.section_analytique_5_id = p_historique_ecritures.section_analytique_5_id + AND p_historique_ecritures_total.section_analytique_6_id = p_historique_ecritures.section_analytique_6_id + AND p_historique_ecritures_total.section_analytique_7_id = p_historique_ecritures.section_analytique_7_id + AND p_historique_ecritures_total.section_analytique_8_id = p_historique_ecritures.section_analytique_8_id + AND p_historique_ecritures_total.section_analytique_9_id = p_historique_ecritures.section_analytique_9_id + AND p_historique_ecritures_total.clinique_honoraire = p_historique_ecritures.clinique_honoraire + AND p_historique_ecritures_total.exercice_comptable = p_historique_ecritures.exercice_comptable + AND p_historique_ecritures_total.type_compta_id = p_historique_ecritures.type_compta_id + AND p_historique_ecritures_total.site_id = p_historique_ecritures.site_id + AND p_historique_ecritures_total.compte_extra_id = p_historique_ecritures.compte_extra_id + AND p_historique_ecritures_total.comptabilisee = p_historique_ecritures.comptabilisee + AND p_historique_ecritures_total.fin_exercice = p_historique_ecritures.fin_exercice + AND p_historique_ecritures_total.ajustement = p_historique_ecritures.ajustement + AND p_historique_ecritures_total.inter_site = p_historique_ecritures.inter_site + AND p_historique_ecritures_total.ecriture_consolidee = p_historique_ecritures.ecriture_consolidee + ; + + ]]> + + + + + + + + + + + + + + + 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END::numeric,2) AS AMTCUR_debit, + round(CASE WHEN COALESCE(GACCENTRYD.SNS_0_A,GACCENTRYD.SNS_0) < 0 THEN COALESCE(GACCENTRYD.AMTCUR_0_A,GACCENTRYD.AMTCUR_0) ELSE 0 END::numeric,2) AS AMTCUR_credit, + GACCENTRYD.FCYLIN_0 || '|' || + GACCENTRY.JOU_0 || '|' || + GACCENTRYD.BPR_0 || '|' || + GACCENTRYD.ACC_0 || '|' || + COALESCE(CCE_0,'') || '|' || + COALESCE(CCE_1,'') || '|' || + COALESCE(CCE_2,'') || '|' || + COALESCE(CCE_3,'') || '|' || + COALESCE(CCE_4,'') || '|' || + COALESCE(CCE_5,'') || '|' || + COALESCE(CCE_6,'') || '|' || + COALESCE(CCE_7,'') || '|' || + COALESCE(CCE_8,'') || '|' || + COALESCE(DIE_0,'') || '|' || + COALESCE(DIE_1,'') || '|' || + COALESCE(DIE_2,'') || '|' || + COALESCE(DIE_3,'') || '|' || + COALESCE(DIE_4,'') || '|' || + COALESCE(DIE_5,'') || '|' || + COALESCE(DIE_6,'') || '|' || + COALESCE(DIE_7,'') || '|' || + COALESCE(DIE_8,'') || '|' || + GACCENTRYD.OFFACC_0 AS key + FROM prod_sagex3.GACCENTRY + JOIN prod_sagex3.PERIOD ON GACCENTRY.CPY_0 = PERIOD.CPY_0 AND + GACCENTRY.FIY_0 = PERIOD.FIYNUM_0 AND + CASE WHEN GACCENTRY.PER_0 <> 0 THEN GACCENTRY.PER_0 ELSE 1 END = PERIOD.PERNUM_0 AND + PERIOD.LEDTYP_0 = 1 + JOIN w_mois_modifies ON mois_modifie = to_char(PERIOD.PEREND_0, 'YYYYMM') + JOIN prod_sagex3.GTYPACCENT ON GACCENTRY.TYP_0 = GTYPACCENT.TYP_0 AND (GTYPACCENT.VCRREA_0 = 2 OR GACCENTRY.CAT_0 = 2) + JOIN prod_sagex3.GJOURNAL ON GACCENTRY.JOU_0 = GJOURNAL.JOU_0 + JOIN w_GACCENTRYDA GACCENTRYD ON GACCENTRYD.NUM_0 = GACCENTRY.NUM_0 AND + GACCENTRYD.TYP_0 = GACCENTRY.TYP_0 + + WHERE GACCENTRY.CAT_0 IN (1,2) AND + (GACCENTRYD.LEDTYP_0 = 1 OR (AUZLED_0 = 1 AND AUZLED_1 = 2)) + ORDER BY GACCENTRYD.NUM_0, GACCENTRYD.TYP_0, GACCENTRYD.LIN_0; + + + DROP TABLE IF EXISTS w_GACCENTRY_keys; + CREATE TEMP TABLE w_GACCENTRY_keys AS + SELECT + key, + FCYLIN_0, + JOU_0, + BPR_0, + ACC_0, + CCE_0, + CCE_1, + CCE_2, + CCE_3, + CCE_4, + CCE_5, + CCE_6, + CCE_7, + CCE_8, + CCE_0 || CASE WHEN CCE_0 <> '' AND CCE_1 <> '' THEN '_' ELSE '' END || CCE_1 AS CCE, + DIE_0, + DIE_1, + DIE_2, + DIE_3, + DIE_4, + DIE_5, + DIE_6, + DIE_7, + DIE_8, + OFFACC_0, + 0::bigint AS site_id, + 0::bigint AS type_compta_id, + 0::bigint AS compte_id, + 'C'::text AS clinique_honoraire, + 0::bigint AS journal_id, + 0::bigint AS section_analytique_id, + 0::bigint AS section_analytique_2_id, + 0::bigint AS section_analytique_3_id, + 0::bigint AS section_analytique_4_id, + 0::bigint AS section_analytique_5_id, + 0::bigint AS section_analytique_6_id, + 0::bigint AS section_analytique_7_id, + 0::bigint AS section_analytique_8_id, + 0::bigint AS section_analytique_9_id, + 0::bigint AS partenaire_id, + 0::bigint AS compte_extra_id, + 0::bigint AS compte_contrepartie_id + FROM w_GACCENTRY + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25; + + UPDATE w_GACCENTRY_keys + SET site_id = t_sites.oid, + clinique_honoraire = t_sites.clinique_honoraire + FROM compta.t_sites + WHERE code_original = FCYLIN_0; + + UPDATE w_GACCENTRY_keys + SET compte_id = t_comptes.oid, + compte_extra_id = t_comptes.oid, + type_compta_id = t_comptes.type_compta_id + FROM compta.t_comptes + WHERE numero = ACC_0; + + UPDATE w_GACCENTRY_keys + SET journal_id = t_journaux.oid + FROM compta.t_journaux + WHERE code_original = JOU_0; + + -- Sections analytiques concaténées + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + CCE AS code, + CCE AS code_original, + MAX(COALESCE(CACCE_0.DES_0,w_GACCENTRY_keys.CCE_0) || CASE WHEN w_GACCENTRY_keys.CCE_0 <> '' AND w_GACCENTRY_keys.CCE_1 <> '' THEN ' - ' ELSE '' END || COALESCE(CACCE_1.DES_0,w_GACCENTRY_keys.CCE_1)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE CACCE_0 ON w_GACCENTRY_keys.DIE_0 = CACCE_0.DIE_0 AND + w_GACCENTRY_keys.CCE_0 = CACCE_0.CCE_0 + LEFT JOIN prod_sagex3.CACCE CACCE_1 ON w_GACCENTRY_keys.DIE_1 = CACCE_1.DIE_0 AND + w_GACCENTRY_keys.CCE_1 = CACCE_1.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') IS DISTINCT FROM '1' AND + CCE <> '' AND + CCE NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + UPDATE w_GACCENTRY_keys + SET section_analytique_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') IS DISTINCT FROM '1' AND + CCE <> '' AND code_original = CCE; + + -- Sections analytiques non concaténées + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_0 AS code, + w_GACCENTRY_keys.CCE_0 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_0)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_0 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_0 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_0 <> '' AND + w_GACCENTRY_keys.CCE_0 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_1 AS code, + w_GACCENTRY_keys.CCE_1 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_1)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_1 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_1 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_1 <> '' AND + w_GACCENTRY_keys.CCE_1 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_2 AS code, + w_GACCENTRY_keys.CCE_2 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_2)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_2 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_2 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_2 <> '' AND + w_GACCENTRY_keys.CCE_2 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_3 AS code, + w_GACCENTRY_keys.CCE_3 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_3)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_3 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_3 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_3 <> '' AND + w_GACCENTRY_keys.CCE_3 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_4 AS code, + w_GACCENTRY_keys.CCE_4 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_4)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_4 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_4 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_4 <> '' AND + w_GACCENTRY_keys.CCE_4 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_5 AS code, + w_GACCENTRY_keys.CCE_5 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_5)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_5 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_5 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_5 <> '' AND + w_GACCENTRY_keys.CCE_5 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_6 AS code, + w_GACCENTRY_keys.CCE_6 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_6)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_6 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_6 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_6 <> '' AND + w_GACCENTRY_keys.CCE_6 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_7 AS code, + w_GACCENTRY_keys.CCE_7 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_7)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_7 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_7 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_7 <> '' AND + w_GACCENTRY_keys.CCE_7 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT + w_GACCENTRY_keys.CCE_8 AS code, + w_GACCENTRY_keys.CCE_8 AS code_original, + MAX(COALESCE(CACCE.DES_0,w_GACCENTRY_keys.CCE_8)) AS texte + FROM + w_GACCENTRY_keys + LEFT JOIN prod_sagex3.CACCE ON w_GACCENTRY_keys.DIE_8 = CACCE.DIE_0 AND + w_GACCENTRY_keys.CCE_8 = CACCE.CCE_0 + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + w_GACCENTRY_keys.CCE_8 <> '' AND + w_GACCENTRY_keys.CCE_8 NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + GROUP BY 1 + ORDER BY 1; + + + UPDATE w_GACCENTRY_keys + SET section_analytique_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_0 <> '' AND code_original = CCE_0; + + UPDATE w_GACCENTRY_keys + SET section_analytique_2_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_1 <> '' AND code_original = CCE_1; + + UPDATE w_GACCENTRY_keys + SET section_analytique_3_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_2 <> '' AND code_original = CCE_2; + + UPDATE w_GACCENTRY_keys + SET section_analytique_4_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_3 <> '' AND code_original = CCE_3; + + UPDATE w_GACCENTRY_keys + SET section_analytique_5_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_4 <> '' AND code_original = CCE_4; + + UPDATE w_GACCENTRY_keys + SET section_analytique_6_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_5 <> '' AND code_original = CCE_5; + + UPDATE w_GACCENTRY_keys + SET section_analytique_7_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_6 <> '' AND code_original = CCE_6; + + UPDATE w_GACCENTRY_keys + SET section_analytique_8_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_7 <> '' AND code_original = CCE_7; + + UPDATE w_GACCENTRY_keys + SET section_analytique_9_id = t_sections_analytiques.oid + FROM compta.t_sections_analytiques + WHERE (SELECT valeur FROM compta.t_divers WHERE t_divers.code = 'X3SANA') = '1' AND + CCE_8 <> '' AND code_original = CCE_8; + + + UPDATE w_GACCENTRY_keys + SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE BPR_0 <> '' AND code_original = BPR_0; + + UPDATE w_GACCENTRY_keys + SET compte_contrepartie_id = t_comptes.oid + FROM compta.t_comptes + WHERE OFFACC_0 <> '' AND numero = OFFACC_0 ; + + + UPDATE w_GACCENTRY_keys + SET compte_extra_id = t_comptes.oid, + type_compta_id = t_comptes.type_compta_id + FROM compta.t_comptes + WHERE w_GACCENTRY_keys.partenaire_id <> 0 AND + w_GACCENTRY_keys.compte_id = t_comptes.compte_general_id AND + w_GACCENTRY_keys.partenaire_id = t_comptes.partenaire_id; + + + ALTER TABLE w_GACCENTRY_keys ADD CONSTRAINT w_GACCENTRY_keys_pk PRIMARY KEY(key); + + CREATE INDEX w_GACCENTRY_i1 + ON w_GACCENTRY + USING btree + (key); + + -- Attribution du code partenaire (tiers) sur les lignes d'écritures d'une même pièce comptable/numéro/référence + -- Lignes d'écritures des partenaires + + UPDATE w_gaccentry_keys + SET partenaire_id = subview.partenaire_id + FROM + ( + SELECT + w_gaccentry.key, + t_partenaires.oid AS partenaire_id + FROM lignes_tiers + JOIN w_gaccentry ON w_gaccentry.num_0 = lignes_tiers.num_0 + JOIN compta.t_partenaires ON t_partenaires.code_original = lignes_tiers.partenaire_code + ) AS subview + WHERE w_gaccentry_keys.key = subview.key + ; + + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + section_analytique_7_id, + section_analytique_8_id, + section_analytique_9_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + montant_credit, + montant_debit) + SELECT + site_id, + type_compta_id, + compte_id, + date(ACCDAT_0) AS date_ecriture, + date_part('year',PEREND_0) AS exercice_comptable, + to_number(to_char(PEREND_0, 'YYYYMM'),'000000') AS mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + section_analytique_7_id, + section_analytique_8_id, + section_analytique_9_id, + partenaire_id, + compte_extra_id, + '1'::text AS comptabilisee, + '0'::text AS fin_exercice, + CASE + WHEN t_divers.valeur = '1' THEN + CASE + WHEN CAT_0 = '5' THEN '3' + ELSE '0'::text + END + ELSE + CASE + WHEN CAT_0 = 2 THEN '3' + WHEN TYP_0 = 'ODM' THEN '3' + WHEN LEDTYP_0 = 1 THEN '0'::text + ELSE '2'::text + END + END AS ajustement, + '0'::text AS inter_site, + TYP_0 || '-' || NUM_0 || '-' || to_char(LIN_0,'FM00000') || CASE WHEN COALESCE(ANALIN_0,0) > 1 THEN '-' || to_char(ANALIN_0,'FM00000') ELSE '' END AS cle_originale, + NUM_0 AS identifiant_operation, + compte_contrepartie_id, + substr(DES_0,1,100) AS texte, + date(COALESCE(CASE WHEN BPRDATVCR_0 > '[ENV_COMPTA_ANNEEDEBUT]0101' THEN BPRDATVCR_0 ELSE NULL END,'20991231')) AS date_facture_fournisseur, + substr(REF_0,1,255) AS texte, + substr(BPRVCR_0,1,255) AS dossier, + '20991231'::date AS date_echeance, + 0::bigint AS journal_paiement_id, + 0::bigint AS mode_paiement_id, + ''::text AS numero_cheque, + AMTCUR_credit, + AMTCUR_debit + FROM w_GACCENTRY + JOIN w_GACCENTRY_keys ON w_GACCENTRY_keys.key = w_GACCENTRY.key + JOIN compta.t_divers ON t_divers.code = 'X3AJUS' + ORDER BY NUM_0, TYP_0, LIN_0; + + + 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'); + + + + ]]> + + + + + + + + + + t_comptes_auxiliaires.oid AND + t_comptes_auxiliaires.type_compta_id <> t_comptes.type_compta_extra_id + ; + + -- Determination des comptes collectifs selon ecritures + DROP TABLE IF EXISTS w_comptes_collectifs; + CREATE TEMP TABLE w_comptes_collectifs AS + SELECT compte_nonsigne_id AS compte_id + FROM compta.p_historique_ecritures + JOIN compta.t_comptes ON p_historique_ecritures.compte_id = t_comptes.oid + WHERE p_historique_ecritures.partenaire_id <> 0 + group by 1 + HAVING count(DISTINCT p_historique_ecritures.partenaire_id) > 1 + ORDER BY 1; + + UPDATE compta.t_comptes + SET collectif = '1', + type_compta_extra_id = CASE WHEN type_compta_extra_id = 0 THEN type_compta_id ELSE type_compta_extra_id END, + numero_extra = numero || '-*', + texte_extra = texte || ' (*)' + FROm w_comptes_collectifs + WHERE w_comptes_collectifs.compte_id = t_comptes.oid AND + collectif IS DISTINCT FROM '1'; + + DELETE FROM compta.t_comptes + WHERE compte_general_id <> oid AND + compte_general_id IN (SELECT oid FROM compta.t_comptes WHERE collectif <> '1' OR type_compta_extra_id = 0); + + DROP TABLE IF EXISTS w_comptes_extra; + CREATE TEMP TABLE w_comptes_extra AS + SELECT t_comptes_nonsigne.type_compta_extra_id AS type_compta_id, + replace(t_comptes_nonsigne.numero_extra, '*', t_partenaires.code) AS numero, + replace(t_comptes_nonsigne.texte_extra, '*', t_partenaires.texte_court) AS texte, + t_comptes.compte_nonsigne_id AS compte_general_id, + t_comptes_nonsigne.clinique_honoraire, + p_historique_ecritures.partenaire_id + FROM compta.p_historique_ecritures + JOIN compta.t_partenaires ON p_historique_ecritures.partenaire_id = t_partenaires.oid AND + p_historique_ecritures.partenaire_id <> 0 + JOIN compta.t_comptes ON compte_id = t_comptes.oid + JOIN compta.t_comptes t_comptes_nonsigne ON t_comptes.compte_nonsigne_id = t_comptes_nonsigne.oid AND t_comptes_nonsigne.collectif = '1' + GROUP BY 1,2,3,4,5,6; + + UPDATE compta.t_comptes + SET numero = w_comptes_extra.numero, texte = substr(w_comptes_extra.texte,1,50) + FROM w_comptes_extra + WHERE t_comptes.type_compta_id = w_comptes_extra.type_compta_id AND + t_comptes.compte_general_id = w_comptes_extra.compte_general_id AND + t_comptes.partenaire_id = w_comptes_extra.partenaire_id AND + t_comptes.partenaire_id <> 0 AND + ( + t_comptes.numero IS DISTINCT FROM w_comptes_extra.numero OR + t_comptes.texte IS DISTINCT FROM substr(w_comptes_extra.texte,1,50) + ); + + 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) + SELECT type_compta_id, numero, substr(texte,1,50), + compte_general_id, clinique_honoraire, '0', '', 0, 0, 0, 0, 0, 0, + 0, '0', 0, '', '', partenaire_id + FROM w_comptes_extra + WHERE partenaire_id <> 0 AND + type_compta_id || '.' || compte_general_id || '.' || partenaire_id + NOT IN (SELECT type_compta_id || '.' || t_comptes.compte_general_id || '.' || partenaire_id FROM compta.t_comptes); + + + + -- Mise à jour des ecritures comptables + + DROP TABLE IF EXISTS w_comptes_extra; + CREATE TEMP TABLE w_comptes_extra AS + SELECT t_comptes.oid AS compte_id, t_comptes_extra.oid AS compte_extra_id, t_comptes_extra.partenaire_id + FROM compta.t_comptes, compta.t_comptes t_comptes_extra + WHERE t_comptes_extra.type_compta_id = t_comptes.type_compta_extra_id + AND t_comptes.collectif = '1' + AND t_comptes.type_compta_extra_id > 0 + AND t_comptes_extra.compte_general_id = t_comptes.oid; + + CREATE INDEX w_comptes_extra_i1 ON w_comptes_extra USING btree (compte_id); + CREATE INDEX w_comptes_extra_i2 ON w_comptes_extra USING btree (partenaire_id); + + + UPDATE compta.p_historique_ecritures SET compte_extra_id = compte_id + WHERE compte_extra_id <> compte_id AND + compte_id IN (SELECT oid FROM compta.t_comptes WHERE collectif <> '1' OR type_compta_extra_id = 0); + + DROP TABLE IF EXISTS w_historique_ecritures_update; + CREATE TEMP TABLE w_historique_ecritures_update(compte_id bigint, partenaire_id bigint, to_compte_extra_id bigint); + + CREATE INDEX w_historique_ecritures_update_i1 ON w_historique_ecritures_update USING btree (compte_id); + CREATE INDEX w_historique_ecritures_update_i2 ON w_historique_ecritures_update USING btree (partenaire_id); + + SELECT base.cti_execute( + 'TRUNCATE w_historique_ecritures_update., + INSERT INTO w_historique_ecritures_update + SELECT p_historique_ecritures.compte_id, p_historique_ecritures.partenaire_id, w_comptes_extra.compte_extra_id + FROM compta.p_historique_ecritures + JOIN compta.t_comptes ON p_historique_ecritures.compte_id = t_comptes.oid + JOIN w_comptes_extra ON t_comptes.compte_nonsigne_id = w_comptes_extra.compte_id AND + p_historique_ecritures.partenaire_id = w_comptes_extra.partenaire_id + WHERE p_historique_ecritures.partenaire_id <> 0 AND + p_historique_ecritures.compte_extra_id IS DISTINCT FROM w_comptes_extra.compte_extra_id + GROUP BY 1,2,3 + LIMIT 50., + + UPDATE compta.p_historique_ecritures + SET compte_extra_id = w_historique_ecritures_update.to_compte_extra_id + FROM w_historique_ecritures_update + WHERE p_historique_ecritures.partenaire_id <> 0 AND + p_historique_ecritures.compte_id = w_historique_ecritures_update.compte_id AND + p_historique_ecritures.partenaire_id = w_historique_ecritures_update.partenaire_id AND + p_historique_ecritures.compte_extra_id IS DISTINCT FROM w_historique_ecritures_update.to_compte_extra_id' + , + 2000 + ); + + + + ]]> + + + + + + + '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; + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1, 1=CAT_0=5' + WHERE 'X3AJUS' NOT IN (SELECT code FROM compta.t_divers); + ; + + + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + + INSERT INTO compta.t_partenaires(code, code_original, texte, texte_court) + SELECT BPRNUM_0, BPRNUM_0, BPRNAM_0, CASE WHEN BPRSHO_0 <> '' THEN BPRSHO_0 ELSE BPRNAM_0 END + FROM prod_sagex3.BPARTNER + WHERE BPRNUM_0 NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) + ORDER BY BPRNUM_0; + + + + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux, clinique_honoraire) + SELECT JOU_0, JOU_0, DES_0, CASE WHEN TYP_0 = 7 THEN '1' ELSE '0' END, 'C' + FROM prod_sagex3.GJOURNAL + WHERE JOU_0 NOT IN (SELECT code_original FROM compta.t_journaux WHERE code_original IS NOT NULL) + ORDER BY JOU_0; + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + GACCOUNT.ACC_0 AS numero, + MAX(GACCOUNT.DES_0) AS texte, + 0 AS compte_general_id, + 'C' AS clinique_honoraire, + MAX(CASE WHEN BANK.BAN_0 IS NOT NULL THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra + FROM prod_sagex3.GACCOUNT + LEFT JOIN prod_sagex3.BANK ON (GACCOUNT.ACC_0 = BANK.BANACC_0) + LEFT JOIN compta.t_types_compta ON CASE WHEN ACC_0 LIKE '6%' OR ACC_0 LIKE '7%' THEN 'GES' ELSE 'BIL' END = t_types_compta.code_original + WHERE SUBSTR(ACC_0,1,1) IN ('1','2','3','4','5','6','7','8','9') AND + ACC_0 NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2; + + UPDATE compta.t_comptes SET compte_general_id = oid + WHERE type_compta_id IN (SELECT oid FROM compta.t_types_compta + WHERE code IN ('BIL', 'GES')) AND compte_general_id <> oid AND partenaire_id = 0; + + -- Type auxiliaire par défaut selon première lettre du 'raccourci X3' si présent dans types de compta + UPDATE compta.t_comptes + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_comptes t_comptes_nonsigne + JOIN prod_sagex3.GACCOUNT ON t_comptes_nonsigne.numero = ACC_0 + JOIN compta.t_types_compta ON substr(ACCSHO_0,1,1) = t_types_compta.code_original + WHERE t_comptes.compte_nonsigne_id = t_comptes_nonsigne.oid AND + ACCSHO_0 <> '' AND + t_comptes.type_compta_extra_id <> t_types_compta.oid + ; + + + INSERT INTO compta.t_classes_comptes(code, texte) + SELECT CLSCOD_0, CLSNAM_0 + FROM prod_sagex3.GACCCLS + WHERE CLSCOD_0 NOT IN (SELECT code FROM compta.t_classes_comptes WHERE code IS NOT NULL) + ORDER BY CLSCOD_0; + + UPDATE compta.t_classes_comptes + SET texte = CLSNAM_0 + FROM prod_sagex3.GACCCLS + WHERE code = CLSCOD_0 AND texte = ''; + + + + + + + ]]> + + + + + diff --git a/import_compta/iCTI_import_compta_SHARE.XML b/import_compta/iCTI_import_compta_SHARE.XML new file mode 100644 index 0000000..d33de12 --- /dev/null +++ b/import_compta/iCTI_import_compta_SHARE.XML @@ -0,0 +1,829 @@ + + + + + + + + + + + + + + + + + + + + + '1' AND + is_budget IS DISTINCT FROM '1' + GROUP BY + compte_id, mois_comptable, journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + section_analytique_7_id, + section_analytique_8_id, + section_analytique_9_id, + clinique_honoraire, exercice_comptable, + type_compta_id, site_id, compte_extra_id, partenaire_id, comptabilisee, fin_exercice, + ajustement, inter_site, ecriture_consolidee; + + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_1'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_2'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_3'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_4'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_5'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_6'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_7'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_8'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_9'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_10'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_11'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_12'); + SELECT base.cti_enable_index('compta', 'i_historique_ecritures_total_13'); + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + trim(code); + + INSERT into compta.t_classes_comptes (code, texte) + (SELECT DISTINCT substr(numero, 1 , 1), '' FROM compta.t_comptes + WHERE compte_general_id = oid 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 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 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 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 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 substr(numero, 1 , 6) NOT IN (SELECT code FROM compta.t_classes_comptes) ; + + + + + UPDATE compta.t_classes_comptes SET texte = '' WHERE texte IS NULL; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + 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 ; + + + + UPDATE compta.t_classes_comptes SET clinique = '0', honoraire = '0' ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET clinique = '1' + WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'C' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_1_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_2_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_3_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_4_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_5_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + UPDATE compta.t_classes_comptes SET honoraire = '1' WHERE oid IN (SELECT classe_6_id FROM compta.t_comptes WHERE clinique_honoraire = 'H' AND t_comptes.compte_general_id = t_comptes.oid) ; + + + + + ]]> + + + + + + + + '' 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 ; + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + + 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 ; + + + + SELECT compta.cti_update_schema_classes('*ALL'); + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_SHS.XML b/import_compta/iCTI_import_compta_SHS.XML new file mode 100644 index 0000000..47ee23a --- /dev/null +++ b/import_compta/iCTI_import_compta_SHS.XML @@ -0,0 +1,1690 @@ + + + + + + + + + + + + + 0 AND + MCTYPE NOT IN (95,96); + + UPDATE prod_shs.[COMPTASCHEMA]F_MCP01F + SET MCSANA = PESANA + FROM prod_shs.[COMPTASCHEMA]_PEP01 + WHERE MCTYPE = PETYPE AND MCCPTE = PECPTE AND + MCSANA = 0 AND PESANA <> 0 AND + MCTYPE NOT IN (95,96); + + UPDATE prod_shs.[COMPTASCHEMA]I_MCP01I + SET MCSANA = PESANA + FROM prod_shs.[COMPTASCHEMA]_PEP01 + WHERE MCTYPE = PETYPE AND MCCPTE = PECPTE AND + MCSANA = 0 AND PESANA <> 0 AND + MCTYPE NOT IN (95,96); + + -- Ecritures exercice en cours + DROP TABLE IF EXISTS w_CCP01_next; + CREATE TEMP TABLE w_CCP01_next AS + SELECT MAX(CCANEE*100+CCMOIS + CASE WHEN CCMOIS <> 12 THEN 1 ELSE 89 END) AS CCAMTC + FROM prod_shs.[COMPTASCHEMA]_CCP01 + WHERE CCMOIS <= 12 AND + CCNOR3 IN (320) ; + + -- Forcage mois sur non comptabilisé + UPDATE prod_shs.[COMPTASCHEMA]_MCP01 + SET MCAMTC = CASE + WHEN to_number(substr(MCDTEC,1,6),'FM999999') < CCAMTC THEN CCAMTC + ELSE to_number(substr(MCDTEC,1,6),'FM999999') END + FROM w_CCP01_next + WHERE MCPOIC <> '1' AND + MCAMTC <> CASE + WHEN to_number(substr(MCDTEC,1,6),'FM999999') < CCAMTC THEN CCAMTC + ELSE to_number(substr(MCDTEC,1,6),'FM999999') END AND + MCTYMV = 0 AND MCCANN <> 'A'; + + -- Forcage mois sur situation + UPDATE prod_shs.[COMPTASCHEMA]I_MCP01I + SET MCAMTC = to_number(substr(MCDTEC,1,6),'FM999999') + WHERE MCPOIC <> '1' AND + MCAMTC <> to_number(substr(MCDTEC,1,6),'FM999999') AND + MCTYMV = 0 AND MCCANN <> 'A'; + + -- Ecritures exercice précédent + DROP TABLE IF EXISTS w_CCP01F_next; + CREATE TEMP TABLE w_CCP01F_next AS + SELECT MAX(MCAMTC) AS CCAMTC + FROM prod_shs.[COMPTASCHEMA]F_MCP01F + WHERE MCTYMV = '0' AND MCCANN <> 'A' + ; + + -- Forcage mois sur non comptabilisé + UPDATE prod_shs.[COMPTASCHEMA]F_MCP01F + SET MCAMTC = CCAMTC + FROM w_CCP01F_next + WHERE MCPOIC <> '1' AND + MCAMTC <> CCAMTC AND + MCTYMV = 0 AND MCCANN <> 'A' AND (MCPOIC = '0' OR MCPOI5 = '1'); + + + + -- Mois modifiés sur compte extra + + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT mois_comptable, + t_comptes.numero as numero, + SUM(CASE WHEN fin_exercice <> '1' THEN montant_debit ELSE 0.00 END) as debit, + SUM(CASE WHEN fin_exercice <> '1' THEN montant_credit ELSE 0.00 END) as credit, + SUM(CASE WHEN fin_exercice = '1' THEN montant_debit ELSE 0.00 END) as debit_fin_exercice, + SUM(CASE WHEN fin_exercice = '1' THEN montant_credit ELSE 0.00 END) as credit_fin_exercice, + 0.00 AS debit_situation, + 0.00 AS credit_situation, + SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + JOIN compta.t_comptes ON p_historique_ecritures_total.compte_extra_id = t_comptes.oid + WHERE mois_comptable >= 200801 AND ecriture_consolidee = '0' AND ajustement = '0' AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + + + DROP TABLE IF EXISTS w_ECRITURES; + CREATE TEMP TABLE w_ECRITURES AS + SELECT MCAMTC, + MCPOIC, + MCCPTE, + '0'::text AS exercice_precedent, + '0'::text AS situation, + Count(*) AS COUNT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT, + 0.00 AS DEBIT_fin_exercice, + 0.00 AS CREDIT_fin_exercice, + 0.00 AS DEBIT_situation, + 0.00 AS CREDIT_situation + FROM prod_shs.[COMPTASCHEMA]_MCP01 + WHERE MCTYMV = '0' AND MCCANN <> 'A' + GROUP BY 1,2,3 + ORDER BY 1,2; + + -- Ecritures exercice précédent + INSERT INTO w_ECRITURES + SELECT MCAMTC, + MCPOIC, + MCCPTE, + '1'::text AS exercice_precedent, + '0'::text AS situation, + Count(*) AS COUNT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCPOIC = '1' AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCPOIC = '1' AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT, + round(SUM(CASE WHEN (MCPOI5 = '1' OR MCPOIC = '0') AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT_fin_exercice, + round(SUM(CASE WHEN (MCPOI5 = '1' OR MCPOIC = '0') AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT_fin_exercice, + 0.00 AS DEBIT_situation, + 0.00 AS CREDIT_situation + FROM prod_shs.[COMPTASCHEMA]F_MCP01F + WHERE MCTYMV = '0' AND MCCANN <> 'A' AND (MCPOIC = '1' OR MCPOIC = '0' OR MCPOI5 = '1') + GROUP BY 1,2,3 + ORDER BY 1,2; + + -- Mois modifiés (date echeancec fournisseur) + + DROP TABLE IF EXISTS w_exercice_courant; + CREATE TEMP TABLE w_exercice_courant AS + SELECT substr(MAX(MCAMTC),1,4)::numeric AS exercice_comptable_courant + FROM prod_shs.[COMPTASCHEMA]_MCP01 + ; + + + DROP TABLE IF EXISTS w_echeances_fournisseurs_cti; + CREATE TEMP TABLE w_echeances_fournisseurs_cti AS + SELECT mois_comptable AS mois_comptable_cti, + to_char(date_echeance,'YYYYMMDD') AS date_cti, + count(*) AS nb_cti + FROM compta.p_historique_ecritures + JOIN w_exercice_courant ON exercice_comptable >= exercice_comptable_courant + WHERE date_echeance IS NOT NULL AND date_echeance <> '20991231' + GROUP BY 1,2 + ORDER BY 1; + + DROP TABLE IF EXISTS w_echeances_fournisseurs_shs; + CREATE TEMP TABLE w_echeances_fournisseurs_shs AS + SELECT MCAMTC AS mois_comptable_shs, + MCDTEH AS date_shs, + count(*) AS nb_shs + FROM prod_shs.[COMPTASCHEMA]_MCP01 + WHERE MCDTEH <> 0 AND + MCTYMV = '0' AND MCCANN <> 'A' + GROUP BY 1,2 + ORDER BY 1; + + DROP TABLE IF EXISTS w_mois_modifies_date_echeance; + CREATE TEMP TABLE w_mois_modifies_date_echeance AS + SELECT mois_comptable_modifie_echeance + FROM + ( + SELECT mois_comptable_cti AS mois_comptable_modifie_echeance + FROM w_echeances_fournisseurs_cti + LEFT JOIN w_echeances_fournisseurs_shs ON date_shs = date_cti AND mois_comptable_shs = mois_comptable_cti + WHERE nb_shs IS DISTINCT FROM nb_cti + UNION + SELECT mois_comptable_shs AS mois_comptable_modifie_echeance + FROM w_echeances_fournisseurs_shs + LEFT JOIN w_echeances_fournisseurs_cti ON date_shs = date_cti AND mois_comptable_shs = mois_comptable_cti + WHERE nb_shs IS DISTINCT FROM nb_cti + ) subview + GROUP BY 1 + ; + + -- Mois modifiés + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT p_calendrier_mois.exercice_comptable, + w_ECRITURES.exercice_precedent, + w_ECRITURES.situation, + w_ECRITURES.MCAMTC AS mois_comptable + FROM w_ECRITURES + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_ECRITURES.MCAMTC AND + w_historique_ecritures_total.numero = w_ECRITURES.MCCPTE + LEFT JOIN w_mois_modifies_date_echeance ON w_ECRITURES.MCAMTC = mois_comptable_modifie_echeance + JOIN base.p_calendrier_mois ON w_ECRITURES.MCAMTC = p_calendrier_mois.mois + GROUP BY 1,2,3,4 + HAVING MAX( + CASE WHEN + mois_comptable_modifie_echeance IS NOT NULL OR + w_historique_ecritures_total.count IS DISTINCT FROM w_ECRITURES.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_ECRITURES.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_ECRITURES.credit OR + w_historique_ecritures_total.debit_fin_exercice IS DISTINCT FROM w_ECRITURES.debit_fin_exercice OR + w_historique_ecritures_total.credit_fin_exercice IS DISTINCT FROM w_ECRITURES.credit_fin_exercice OR + w_historique_ecritures_total.debit_situation IS DISTINCT FROM w_ECRITURES.debit_situation OR + w_historique_ecritures_total.credit_situation IS DISTINCT FROM w_ECRITURES.credit_situation + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable, exercice_precedent, situation); + + + -- Mois modifiés sur compte général + + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT mois_comptable, + t_comptes.numero as numero, + SUM(CASE WHEN fin_exercice <> '1' THEN montant_debit ELSE 0.00 END) as debit, + SUM(CASE WHEN fin_exercice <> '1' THEN montant_credit ELSE 0.00 END) as credit, + SUM(CASE WHEN fin_exercice = '1' THEN montant_debit ELSE 0.00 END) as debit_fin_exercice, + SUM(CASE WHEN fin_exercice = '1' THEN montant_credit ELSE 0.00 END) as credit_fin_exercice, + 0.00 AS debit_situation, + 0.00 AS credit_situation, + SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + JOIN compta.t_comptes ON p_historique_ecritures_total.compte_id = t_comptes.oid + WHERE mois_comptable >= 200801 AND ecriture_consolidee = '0' AND ajustement = '0' AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + + + DROP TABLE IF EXISTS w_ECRITURES; + CREATE TEMP TABLE w_ECRITURES AS + SELECT MCAMTC, + MCPOIC, + COALESCE(CLCPTE,MCCPTE) AS MCCPTE, + '0'::text AS exercice_precedent, + '0'::text AS situation, + Count(*) AS COUNT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT, + 0.00 AS DEBIT_fin_exercice, + 0.00 AS CREDIT_fin_exercice, + 0.00 AS DEBIT_situation, + 0.00 AS CREDIT_situation + FROM prod_shs.[COMPTASCHEMA]_MCP01 + LEFT JOIN prod_shs.[COMPTASCHEMA]_CLP01 ON MCTYPE = CLTYPE AND MCSANA = CLCCOL + WHERE MCTYMV = '0' AND MCCANN <> 'A' + GROUP BY 1,2,3 + ORDER BY 1,2; + + -- Ecritures exercice précédent + INSERT INTO w_ECRITURES + SELECT MCAMTC, + MCPOIC, + COALESCE(CLCPTE,MCCPTE) AS MCCPTE, + '1'::text AS exercice_precedent, + '0'::text AS situation, + Count(*) AS COUNT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCPOIC = '1' AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCPOIC = '1' AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT, + round(SUM(CASE WHEN (MCPOI5 = '1' OR MCPOIC = '0') AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT_fin_exercice, + round(SUM(CASE WHEN (MCPOI5 = '1' OR MCPOIC = '0') AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT_fin_exercice, + 0.00 AS DEBIT_situation, + 0.00 AS CREDIT_situation + FROM prod_shs.[COMPTASCHEMA]F_MCP01F + LEFT JOIN prod_shs.[COMPTASCHEMA]_CLP01 ON MCTYPE = CLTYPE AND MCSANA = CLCCOL + WHERE MCTYMV = '0' AND MCCANN <> 'A' AND (MCPOIC = '1' OR MCPOIC = '0' OR MCPOI5 = '1') + GROUP BY 1,2,3 + ORDER BY 1,2; + + -- Ecritures situation + INSERT INTO w_ECRITURES + SELECT MCAMTC, + MCPOIC, + COALESCE(CLCPTE,MCCPTE) AS MCCPTE, + '0'::text AS exercice_precedent, + '1'::text AS situation, + Count(*) AS COUNT, + 0::numeric AS DEBIT, + 0::numeric AS CREDIT, + 0::numeric AS DEBIT_fin_exercice, + 0::numeric AS CREDIT_fin_exercice, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'D' THEN MCMONT ELSE 0.00 END),2) AS DEBIT_situation, + round(SUM(CASE WHEN MCPOI5 <> '1' AND MCSENS = 'C' THEN MCMONT ELSE 0.00 END),2) AS CREDIT_situation + FROM prod_shs.[COMPTASCHEMA]I_MCP01I + LEFT JOIN prod_shs.[COMPTASCHEMA]_CLP01 ON MCTYPE = CLTYPE AND MCSANA = CLCCOL + WHERE MCTYMV = '0' AND MCCANN <> 'A' AND MCPOIC = '0' + GROUP BY 1,2,3 + ORDER BY 1,2; + + + -- Mois modifiés + INSERT INTO w_mois_modifies + SELECT p_calendrier_mois.exercice_comptable, + w_ECRITURES.exercice_precedent, + w_ECRITURES.situation, + w_ECRITURES.MCAMTC AS mois_comptable + FROM w_ECRITURES + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_ECRITURES.MCAMTC AND + w_historique_ecritures_total.numero = w_ECRITURES.MCCPTE + JOIN base.p_calendrier_mois ON w_ECRITURES.MCAMTC = p_calendrier_mois.mois + LEFT JOIN w_mois_modifies ON + w_ECRITURES.exercice_precedent = w_mois_modifies.exercice_precedent AND + w_ECRITURES.situation = w_mois_modifies.situation AND + w_ECRITURES.MCAMTC = w_mois_modifies.mois_comptable + WHERE w_mois_modifies.mois_comptable IS NULL + GROUP BY 1,2,3,4 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_ECRITURES.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_ECRITURES.debit OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_ECRITURES.credit OR + w_historique_ecritures_total.debit_fin_exercice IS DISTINCT FROM w_ECRITURES.debit_fin_exercice OR + w_historique_ecritures_total.credit_fin_exercice IS DISTINCT FROM w_ECRITURES.credit_fin_exercice OR + w_historique_ecritures_total.debit_situation IS DISTINCT FROM w_ECRITURES.debit_situation OR + w_historique_ecritures_total.credit_situation IS DISTINCT FROM w_ECRITURES.credit_situation + THEN 1 ELSE 0 END) = 1; + + + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESC', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '0'; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESP', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE exercice_precedent = '1'; + + CTISELECT_PROPERTY_READ 'MOISMODIFIESI', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies + WHERE situation = '1'; + + echo Mois modifiés Exercice en cours : [MOISMODIFIESC]; + echo Mois modifiés Exercice précédent : [MOISMODIFIESP]; + echo Mois modifiés Situation : [MOISMODIFIESI]; + + ]]> + + + + + + + + + + + + + + 'A'; + + -- Ecritures consolidées + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + ecriture_consolidee, + montant_credit, + montant_debit) + SELECT + COALESCE(t_sites.oid,0) AS site_id, + t_comptes.type_compta_id, + t_comptes.compte_general_id AS compte_id, + base.cti_to_date(to_char(MCDTEC,'FM00000000')) AS date_ecriture, + w_MCP01.exercice_comptable, + w_MCP01.mois_comptable, + CASE WHEN MCCCLH = '2' THEN 'H' ELSE 'C' END AS clinique_honoraire, + t_journaux.oid AS journal_id, + COALESCE(t_sections_analytiques.oid, 0) AS section_analytique_id, + t_comptes.partenaire_id, + t_comptes.oid AS compte_extra_id, + CASE WHEN MCPOIC = '1' THEN '1' ELSE '0' END::text AS comptabilisee, + CASE WHEN MCPOI5 = '1' THEN '1' ELSE '0' END::text AS fin_exercice, + '0'::text AS ajustement, + '0'::text AS inter_site, + to_char(exercice_comptable,'FM0000') || '-' || to_char(MCFOLI,'FM00000') || '-' || to_char(MCLIGN,'FM00') AS cle_originale, + ''::text AS identifiant_operation, + COALESCE(t_comptes_contre.oid,0) AS compte_contrepartie_id, + substr(MCINT3,1,100) AS texte, + COALESCE(base.cti_to_date(to_char(MCDTFO,'FM00000000')),'20991231') AS date_facture_fournisseur, + MCPIE1 AS piece, + MCDOSA || CASE WHEN MCDCPA NOT IN ('', '00') THEN '.' || MCDCPA ELSE '' END AS dossier, + COALESCE(base.cti_to_date(to_char(MCDTEH,'FM00000000')),'20991231') AS date_echeance, + COALESCE(t_journaux_paiement.oid,0) AS journal_paiement_id, + COALESCE(t_mode_paiement.oid,0) AS mode_paiement_id, + MCNCHK AS numero_cheque, + '1' AS ecriture_consolidee, + CASE WHEN MCSENS = 'C' THEN MCMONT ELSE 0 END AS montant_credit, + CASE WHEN MCSENS = 'D' THEN MCMONT ELSE 0 END AS montant_debit + FROM w_MCP01 + LEFT JOIN compta.t_sites ON t_sites.code_original = MCCETS + JOIN compta.t_journaux ON MCCJAL_A = t_journaux.code_original + LEFT JOIN compta.t_journaux t_journaux_paiement ON MCJALP_A = t_journaux_paiement.code_original + JOIN compta.t_types_compta ON MCTYPE_A = t_types_compta.code_original + JOIN compta.t_comptes ON MCCPTE = t_comptes.numero AND + t_types_compta.oid = t_comptes.type_compta_id + LEFT JOIN compta.t_types_compta t_types_compta_contre ON MCTYCP_A = t_types_compta_contre.code_original + LEFT JOIN compta.t_comptes t_comptes_contre ON MCCPCT = t_comptes_contre.numero AND + t_types_compta_contre.oid = t_comptes_contre.type_compta_id + LEFT JOIN compta.t_sections_analytiques ON MCSANA_A = t_sections_analytiques.code_original + LEFT JOIN compta.t_mode_paiement ON MCMDPA = t_mode_paiement.code_original + WHERE MCTYMV = 1 AND MCCANN <> 'A' AND MCPOIC <> '1' AND MCCJAL <> 0; + + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + ecriture_consolidee, + montant_credit, + montant_debit) + SELECT + COALESCE(t_sites.oid,0) AS site_id, + t_comptes.type_compta_id, + t_comptes.compte_general_id AS compte_id, + base.cti_to_date(to_char(MCDTEC,'FM00000000')) AS date_ecriture, + w_MCP01.exercice_comptable, + w_MCP01.mois_comptable, + CASE WHEN MCCCLH = '2' THEN 'H' ELSE 'C' END AS clinique_honoraire, + t_journaux.oid AS journal_id, + COALESCE(t_sections_analytiques.oid, 0) AS section_analytique_id, + t_comptes.partenaire_id, + t_comptes.oid AS compte_extra_id, + CASE WHEN MCPOIC = '1' THEN '1' ELSE '0' END::text AS comptabilisee, + CASE WHEN MCPOI5 = '1' THEN '1' ELSE '0' END::text AS fin_exercice, + '0'::text AS ajustement, + '0'::text AS inter_site, + to_char(exercice_comptable,'FM0000') || '-' || to_char(MCFOLI,'FM00000') || '-' || to_char(MCLIGN,'FM00') AS cle_originale, + ''::text AS identifiant_operation, + COALESCE(t_comptes_contre.oid,0) AS compte_contrepartie_id, + substr(MCINT3,1,100) AS texte, + COALESCE(base.cti_to_date(to_char(MCDTFO,'FM00000000')),'20991231') AS date_facture_fournisseur, + MCPIE1 AS piece, + MCDOSA || CASE WHEN MCDCPA NOT IN ('', '00') THEN '.' || MCDCPA ELSE '' END AS dossier, + COALESCE(base.cti_to_date(to_char(MCDTEH,'FM00000000')),'20991231') AS date_echeance, + COALESCE(t_journaux_paiement.oid,0) AS journal_paiement_id, + COALESCE(t_mode_paiement.oid,0) AS mode_paiement_id, + MCNCHK AS numero_cheque, + '2' AS ecriture_consolidee, + SUM(CASE WHEN MCSENS = 'D' THEN MCMONT ELSE 0 END) AS montant_credit, + SUM(CASE WHEN MCSENS = 'C' THEN MCMONT ELSE 0 END) AS montant_debit + FROM w_MCP01 + LEFT JOIN compta.t_sites ON t_sites.code_original = MCCETS + JOIN compta.t_journaux ON MCCJAL_A = t_journaux.code_original + LEFT JOIN compta.t_journaux t_journaux_paiement ON MCJALP_A = t_journaux_paiement.code_original + JOIN compta.t_types_compta ON MCTYPE_A = t_types_compta.code_original + JOIN compta.t_comptes ON MCCPTE = t_comptes.numero AND + t_types_compta.oid = t_comptes.type_compta_id + LEFT JOIN compta.t_types_compta t_types_compta_contre ON MCTYCP_A = t_types_compta_contre.code_original + LEFT JOIN compta.t_comptes t_comptes_contre ON MCCPCT = t_comptes_contre.numero AND + t_types_compta_contre.oid = t_comptes_contre.type_compta_id + LEFT JOIN compta.t_sections_analytiques ON MCSANA_A = t_sections_analytiques.code_original + LEFT JOIN compta.t_mode_paiement ON MCMDPA = t_mode_paiement.code_original + WHERE MCTYMV = 1 AND MCCANN <> 'A' AND MCPOIC <> '1' AND MCCJAL <> 0 + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 + HAVING + ( + SUM(CASE WHEN MCSENS = 'D' THEN MCMONT ELSE 0 END) <> 0 OR + SUM(CASE WHEN MCSENS = 'C' THEN MCMONT ELSE 0 END) <> 0 + ); + + + 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'); + + + + ]]> + + + + + + + + + + + + + 'A'; + + + 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'); + + + + ]]> + + + + + + + + + + 'A' AND MCPOIC = '0' + ; + + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + montant_credit, + montant_debit) + SELECT + COALESCE(t_sites.oid,0) AS site_id, + t_comptes.type_compta_id, + t_comptes.oid AS compte_id, + base.cti_to_date(to_char(MCDTEC,'FM00000000')) AS date_ecriture, + w_MCP01.exercice_comptable, + w_MCP01.mois_comptable, + CASE WHEN MCCCLH = '2' THEN 'H' ELSE 'C' END AS clinique_honoraire, + t_journaux.oid AS journal_id, + COALESCE(t_sections_analytiques.oid, 0) AS section_analytique_id, + t_comptes_extra.partenaire_id, + t_comptes_extra.oid AS compte_extra_id, + CASE WHEN MCPOIC = '1' THEN '1' ELSE '0' END::text AS comptabilisee, + '0'::text AS fin_exercice, + '2'::text AS ajustement, + '0'::text AS inter_site, + to_char(exercice_comptable,'FM0000') || '-' || to_char(MCFOLI,'FM00000') || '-' || to_char(MCLIGN,'FM00') AS cle_originale, + ''::text AS identifiant_operation, + COALESCE(t_comptes_contre.oid,0) AS compte_contrepartie_id, + substr(MCINT3,1,100) AS texte, + COALESCE(base.cti_to_date(to_char(MCDTFO,'FM00000000')),'20991231') AS date_facture_fournisseur, + MCPIE1 AS piece, + MCDOSA || CASE WHEN MCDCPA NOT IN ('', '00') THEN '.' || MCDCPA ELSE '' END AS dossier, + COALESCE(base.cti_to_date(to_char(MCDTEH,'FM00000000')),'20991231') AS date_echeance, + COALESCE(t_journaux_paiement.oid,0) AS journal_paiement_id, + COALESCE(t_mode_paiement.oid,0) AS mode_paiement_id, + MCNCHK AS numero_cheque, + CASE WHEN MCSENS = 'C' THEN MCMONT ELSE 0 END AS montant_credit, + CASE WHEN MCSENS = 'D' THEN MCMONT ELSE 0 END AS montant_debit + FROM w_MCP01 + JOIN compta.t_journaux ON MCCJAL_A = t_journaux.code_original + + JOIN compta.t_types_compta t_types_compta_extra ON MCTYPE_A = t_types_compta_extra.code_original + JOIN compta.t_comptes t_comptes_extra ON MCCPTE = t_comptes_extra.numero AND + t_types_compta_extra.oid = t_comptes_extra.type_compta_id + + JOIN compta.t_types_compta ON CLTYPG_A = t_types_compta.code_original + JOIN compta.t_comptes ON CLCPTE = t_comptes.numero AND + t_types_compta.oid = t_comptes.type_compta_id + + LEFT JOIN compta.t_sites ON t_sites.code_original = MCCETS + + + LEFT JOIN compta.t_journaux t_journaux_paiement ON MCJALP_A = t_journaux_paiement.code_original + + LEFT JOIN compta.t_types_compta t_types_compta_contre ON MCTYCP_A = t_types_compta_contre.code_original + LEFT JOIN compta.t_comptes t_comptes_contre ON MCCPCT = t_comptes_contre.numero AND + t_types_compta_contre.oid = t_comptes_contre.type_compta_id + LEFT JOIN compta.t_sections_analytiques ON MCSANA_A = t_sections_analytiques.code_original + LEFT JOIN compta.t_mode_paiement ON MCMDPA = t_mode_paiement.code_original + WHERE MCTYMV = 0 AND MCCANN <> 'A'; + + + ]]> + + + + + + + + + + + + = 2015 AND t_comptes_c_extra.type_compta_code='40' + ; + + + TRUNCATE compta.p_ecriture_fournisseur; + + INSERT INTO compta.p_ecriture_fournisseur + ( + 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, + ecriture_consolidee, + facture_soldee, + ecriture_exclue + ) + SELECT + compte_id, + date_ecriture, + mois_comptable, + montant_credit, + montant_debit, + journal_id, + section_analytique_id, + p_historique_ecritures.clinique_honoraire, + exercice_comptable, + p_historique_ecritures.type_compta_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + cle_originale, + compte_contrepartie_id, + p_historique_ecritures.texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + site_id, + partenaire_id, + inter_site, + identifiant_operation, + ecriture_consolidee, + '0'::text AS facture_soldee, + '0'::text AS ecriture_exclue + FROM compta.p_historique_ecritures + JOIN w_exercice_fournisseur ON exercice_comptable >= exercice_comptable_fournisseur + JOIN compta.t_comptes_c t_comptes_c_extra ON p_historique_ecritures.compte_extra_id = t_comptes_c_extra.oid AND + t_comptes_c_extra.type_compta_code='40' + ; + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id + FROM compta.p_ecriture_fournisseur + GROUP BY 1 + HAVING SUM(montant_credit) = SUM(montant_debit) + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id + ; + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + piece + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2 + HAVING SUM(montant_credit) = SUM(montant_debit) + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.piece = subview.piece AND + facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + piece, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2,3 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.piece = subview.piece AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + + + UPDATE compta.p_ecriture_fournisseur + SET facture_soldee = '1' + FROM + ( + SELECT + compte_extra_id, + dossier, + journal_id + FROM compta.p_ecriture_fournisseur + WHERE facture_soldee = '0' + GROUP BY 1,2,3 + HAVING SUM(montant_credit) = SUM(montant_debit) + + ) subview + WHERE compta.p_ecriture_fournisseur.compte_extra_id = subview.compte_extra_id AND + compta.p_ecriture_fournisseur.journal_id = subview.journal_id AND + compta.p_ecriture_fournisseur.facture_soldee = '0' + ; + + UPDATE compta.p_ecriture_fournisseur + SET ecriture_exclue = '1' + WHERE facture_soldee = '0' AND + piece <> ''; + + UPDATE compta.p_ecriture_fournisseur + SET ecriture_exclue = '1' + WHERE facture_soldee = '0' AND + ecriture_exclue = '0' AND + (date_echeance = '20991231' OR date_facture_fournisseur = '20991231'); + + ]]> + + + + + + + + + + + + + + + 13 THEN CCANEE*100+CCMOIS ELSE dernier_mois END AS mois_comptable, + 0::bigint AS site_id, + 'C'::text AS clinique_honoraire, + SUM(CCMLCL) AS montant_debit, + SUM(CCMLCL) AS montant_credit + FROM prod_shs.[COMPTASCHEMA]_CCP01 + JOIN w_exercice ON exercice_comptable = CCANEE + WHERE CCCMON = 'E' AND + CCMOIS <> 99 AND + CCNOR3 IN (320) AND + CCMLCL <> 0 + GROUP BY 1,2,3 + ORDER BY 1; + + INSERT INTO compta.p_chiffrier_comptable + ( + mois_comptable, + site_id, + clinique_honoraire, + montant_debit, + montant_credit + ) + SELECT CASE WHEN CCMOIS <> 13 THEN CCANEE*100+CCMOIS ELSE dernier_mois END AS mois_comptable, + 0::bigint AS site_id, + 'H'::text AS clinique_honoraire, + SUM(CCMLHO) AS montant_debit, + SUM(CCMLHO) AS montant_credit + FROM prod_shs.[COMPTASCHEMA]_CCP01 + JOIN w_exercice ON exercice_comptable = CCANEE + WHERE CCCMON = 'E' AND + CCMOIS <> 99 AND + CCNOR3 IN (320) AND + CCMLHO <> 0 + GROUP BY 1,2,3 + ORDER BY 1; + + UPDATE compta.p_chiffrier_comptable + SET site_id = (SELECT MAX(site_id) FROM compta.p_historique_ecritures) + WHERE site_id = 0; + + ]]> + + + + + + + + + = subview.exercice_mois_comptable_1 AND subview.exercice_mois_comptable_1 > 1 THEN 1 + ELSE 0 END AS exercice_comptable + FROM base.p_calendrier_mois + JOIN ( + SELECT + MCAMTC_deb, + MCAMTC_fin, + to_number(substr(MCAMTC_fin,1,4),'FM0000') AS exercice_comptable, + to_number(substr(MCAMTC_deb,5,2),'FM00') AS exercice_mois_comptable_1 + FROM + ( + SELECT + MIN(MCAMTC) AS MCAMTC_deb, + MIN(MCAMTC) + 99 AS MCAMTC_fin + FROM prod_shs.[COMPTASCHEMA]_MCP01 + WHERE MCPOIC = '1' AND MCTYMV = 0 AND MCCANN <> 'A' + ) subview + ) subview ON 1 = 1 + ) subview + WHERE p_calendrier_mois.mois = subview.mois AND + p_calendrier_mois.exercice_comptable IS DISTINCT FROM subview.exercice_comptable; + + UPDATE base.p_calendrier_mois SET + exercice_comptable = subview.exercice_comptable + FROM ( + SELECT + p_calendrier_mois.mois, + p_calendrier_mois.date_debut, + date_part('year',p_calendrier_mois.date_debut) + CASE + WHEN to_number(substr(p_calendrier_mois.mois,5,2),'FM00') >= subview.exercice_mois_comptable_1 AND subview.exercice_mois_comptable_1 > 1 THEN 1 + ELSE 0 END AS exercice_comptable + FROM base.p_calendrier_mois + JOIN ( + SELECT + MCAMTC_deb, + MCAMTC_fin, + to_number(substr(MCAMTC_fin,1,4),'FM0000') AS exercice_comptable, + to_number(substr(MCAMTC_deb,5,2),'FM00') AS exercice_mois_comptable_1 + FROM + ( + SELECT + MIN(MCAMTC) AS MCAMTC_deb, + MIN(MCAMTC) + 99 AS MCAMTC_fin + FROM prod_shs.[COMPTASCHEMA]F_MCP01F + WHERE MCPOIC = '1' AND MCTYMV = 0 AND MCCANN <> 'A' + ) subview + ) subview ON 1 = 1 + ) subview + WHERE p_calendrier_mois.mois = subview.mois AND + p_calendrier_mois.exercice_comptable IS DISTINCT FROM subview.exercice_comptable; + + + UPDATE base.p_calendrier_mois + SET exercice_mois_comptable_1 = subview.exercice_mois_comptable_1 + FROM + ( + SELECT exercice_comptable, + MIN(mois) AS exercice_mois_comptable_1 + FROM base.p_calendrier_mois + GROUP BY 1 + ) subview + WHERE p_calendrier_mois.exercice_comptable = subview.exercice_comptable AND + p_calendrier_mois.exercice_mois_comptable_1 IS DISTINCT FROM subview.exercice_mois_comptable_1; + + -- Site = Etablissement + INSERT INTO compta.t_sites(oid, code, texte, clinique_honoraire, code_original) + SELECT 0, chr(127) || '***', 'Non renseigné', 'C', '' WHERE 0 NOT IN (SELECT oid FROM compta.t_sites); + ; + + INSERT INTO compta.t_sites(code, code_original, texte) + SELECT ETCETS, ETCETS, ETRSOC + FROM prod_shs.[COMPTASCHEMA]_ETP01 + WHERE ETCETS NOT IN (SELECT code_original FROM compta.t_sites WHERE code_original IS NOT NULL) AND + ETCETS IN (SELECT MCCETS FROM prod_shs.[COMPTASCHEMA]_MCP01) + ORDER BY 1; + + -- Types de compte + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT + CASE TYTYPE + WHEN 95 THEN 'BILAN' + WHEN 96 THEN 'GESTION' + WHEN 97 THEN 'RESULTAT' + ELSE to_char(TYTYPE,'FM00') END, + to_char(TYTYPE,'FM00'), + TYINT4, + CASE TYTYPE + WHEN 40 THEN 'FOU' + WHEN 42 THEN 'CLI' + WHEN 43 THEN 'CLI' + WHEN 46 THEN 'HON' + WHEN 47 THEN 'HON' + WHEN 48 THEN 'HON' + WHEN 91 THEN 'CLI' + WHEN 92 THEN 'CLI' + WHEN 95 THEN 'BIL' + WHEN 96 THEN 'GES' + WHEN 97 THEN 'RES' + ELSE '' END + FROM prod_shs.[COMPTASCHEMA]_TYP01 + WHERE to_char(TYTYPE,'FM00') NOT IN (SELECT code_original FROM compta.t_types_compta WHERE code_original IS NOT NULL) + ; + + -- Inexistants dans table des types + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT + CASE PETYPE + WHEN 95 THEN 'BILAN' + WHEN 96 THEN 'GESTION' + WHEN 97 THEN 'RESULTAT' + ELSE to_char(PETYPE,'FM00') END, + to_char(PETYPE,'FM00'), + 'Type ' || to_char(PETYPE,'FM00'), + CASE PETYPE + WHEN 40 THEN 'FOU' + WHEN 42 THEN 'CLI' + WHEN 43 THEN 'CLI' + WHEN 46 THEN 'HON' + WHEN 47 THEN 'HON' + WHEN 48 THEN 'HON' + WHEN 91 THEN 'CLI' + WHEN 92 THEN 'CLI' + WHEN 95 THEN 'BIL' + WHEN 96 THEN 'GES' + WHEN 97 THEN 'RES' + ELSE '' END + FROM prod_shs.[COMPTASCHEMA]_PEP01 + WHERE to_char(PETYPE,'FM00') NOT IN (SELECT code_original FROM compta.t_types_compta WHERE code_original IS NOT NULL) + GROUP BY PETYPE + ; + + -- Inexistants dans table des types (13eme compta) + INSERT INTO compta.t_types_compta(code, code_original, texte, specialite) + SELECT + CASE PETYPE + WHEN 95 THEN 'BILAN' + WHEN 96 THEN 'GESTION' + WHEN 97 THEN 'RESULTAT' + ELSE to_char(PETYPE,'FM00') END, + to_char(PETYPE,'FM00'), + 'Type ' || to_char(PETYPE,'FM00'), + CASE PETYPE + WHEN 40 THEN 'FOU' + WHEN 42 THEN 'CLI' + WHEN 43 THEN 'CLI' + WHEN 46 THEN 'HON' + WHEN 47 THEN 'HON' + WHEN 48 THEN 'HON' + WHEN 91 THEN 'CLI' + WHEN 92 THEN 'CLI' + WHEN 95 THEN 'BIL' + WHEN 96 THEN 'GES' + WHEN 97 THEN 'RES' + ELSE '' END + FROM prod_shs.[COMPTASCHEMA]F_PEP01F + WHERE to_char(PETYPE,'FM00') NOT IN (SELECT code_original FROM compta.t_types_compta WHERE code_original IS NOT NULL) + GROUP BY PETYPE + ; + + -- Sections analytiques + INSERT INTO compta.t_sections_analytiques(oid, code, code_original, texte) + SELECT 0, '0000', '', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM compta.t_sections_analytiques); + + INSERT INTO compta.t_sections_analytiques(code, code_original, texte) + SELECT to_char(ANSANA,'FM0000'), to_char(ANSANA,'FM0000'), ANINT3 + FROM prod_shs.[COMPTASCHEMA]_ANP01 + WHERE to_char(ANSANA,'FM0000') NOT IN (SELECT code_original FROM compta.t_sections_analytiques WHERE code_original IS NOT NULL) + ORDER BY 1; + + -- Journaux + INSERT INTO compta.t_journaux(code, code_original, texte, a_nouveaux, clinique_honoraire) + SELECT to_char(JLCJAL,'FM000'), to_char(JLCJAL,'FM000'), JLINT7, CASE WHEN JLCJAL < 10 THEN '1' ELSE '0' END, CASE WHEN JLQSEP = '2' THEN 'H' ELSE 'C' END + FROM prod_shs.[COMPTASCHEMA]_JLP01 + WHERE to_char(JLCJAL,'FM000') NOT IN (SELECT code_original FROM compta.t_journaux WHERE code_original IS NOT NULL) + ORDER BY 1; + + -- Mode de paiement + INSERT INTO compta.t_mode_paiement(oid, code, code_original, texte) + SELECT 0, '**', '**', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_mode_paiement); + + INSERT INTO compta.t_mode_paiement(code, code_original, texte) + SELECT MPMDPA, MPMDPA, MAX(MPINTS) + FROM prod_shs.[COMPTASCHEMA]_MPP01 + WHERE MPMDPA <> '' AND + MPMDPA NOT IN (SELECT code_original FROM compta.t_mode_paiement WHERE code_original IS NOT NULL) + GROUP BY 1,2 + ORDER BY 1; + + -- Classes de comptes + INSERT INTO compta.t_classes_comptes(code, texte) + SELECT PGCLAS, PGINT3 + FROM prod_shs.[COMPTASCHEMA]_PGP01 + WHERE PGCLAS NOT IN (SELECT code FROM compta.t_classes_comptes WHERE code IS NOT NULL) + ORDER BY 1; + + UPDATE compta.t_classes_comptes + SET texte = PGINT3 + FROM prod_shs.[COMPTASCHEMA]_PGP01 + WHERE PGCLAS = code AND + texte IS DISTINCT FROM PGINT3; + + -- Comptes + DROP TABLE IF EXISTS w_PEP01; + CREATE TEMP TABLE w_PEP01 AS + SELECT PETYPE, + 0::bigint AS type_compta_id, + to_char(PECPTE,'FM00000000') AS PECPTE, + PEINT3, + PECCLH, + CASE WHEN PETYPE IN (95,96,97) THEN to_char(PESANA,'FM0000') ELSE '0000' END AS PESANA, + CASE WHEN PETYPE NOT IN (95,96,97) THEN COALESCE(CLTYPG,95) ELSE PETYPE END AS PETYPE_GENE, + 0::bigint AS type_compta_gene_id, + CASE WHEN PETYPE NOT IN (95,96,97) THEN to_char(COALESCE(CLCPTE,PECPTE),'FM00000000') ELSE to_char(PECPTE,'FM00000000') END AS PECPTE_GENE + FROM prod_shs.[COMPTASCHEMA]_PEP01 + LEFT JOIN prod_shs.[COMPTASCHEMA]_CLP01 ON + PETYPE = CLTYPE AND + PESANA = CLCCOL; + + INSERT INTO w_PEP01 + SELECT PETYPE, + 0::bigint AS type_compta_id, + to_char(PECPTE,'FM00000000') AS PECPTE, + PEINT3, + PECCLH, + CASE WHEN PETYPE IN (95,96,97) THEN to_char(PESANA,'FM0000') ELSE '0000' END AS PESANA, + CASE WHEN PETYPE NOT IN (95,96,97) THEN COALESCE(CLTYPG,95) ELSE PETYPE END AS PETYPE_GENE, + 0::bigint AS type_compta_gene_id, + CASE WHEN PETYPE NOT IN (95,96,97) THEN to_char(COALESCE(CLCPTE,PECPTE),'FM00000000') ELSE to_char(PECPTE,'FM00000000') END AS PECPTE_GENE + FROM prod_shs.[COMPTASCHEMA]F_PEP01F + LEFT JOIN prod_shs.[COMPTASCHEMA]_CLP01 ON + PETYPE = CLTYPE AND + PESANA = CLCCOL + WHERE PETYPE||to_char(PECPTE,'FM00000000') NOT IN + (SELECT PETYPE||PECPTE FROM w_PEP01); + + -- Comptes généraux non saisis (venant de CLP01) + INSERT INTO w_PEP01 + SELECT PETYPE_GENE, + 0::bigint AS type_compta_gene_id, + PECPTE_GENE, + PEINT3, + PECCLH, + PESANA, + PETYPE_GENE, + 0::bigint AS type_compta_gene_id, + PECPTE_GENE + FROM w_PEP01 + WHERE PETYPE_GENE||PECPTE_GENE NOT IN + (SELECT PETYPE||PECPTE FROM w_PEP01); + + + -- Adaptation texte avec * + UPDATE w_PEP01 + SET PEINT3 = substr(PEINT3, 1, 23) + WHERE substr(PEINT3, 24, 7) = '*'; + + UPDATE w_PEP01 + SET PEINT3 = substr(PEINT3, 1, 22) + WHERE substr(PEINT3, 23, 8) = '*'; + + -- Affectation types de compta + UPDATE w_PEP01 + SET type_compta_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE t_types_compta.code_original = to_char(PETYPE,'FM00'); + + UPDATE w_PEP01 + SET type_compta_gene_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE t_types_compta.code_original = to_char(PETYPE_GENE,'FM00'); + + + UPDATE compta.t_comptes SET + texte = PEINT3 + FROM w_PEP01 + WHERE t_comptes.type_compta_id = w_PEP01.type_compta_id AND + t_comptes.numero = w_PEP01.PECPTE AND + texte IS DISTINCT FROM PEINT3; + + + -- Ajout des nouveaux comptes + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + w_PEP01.type_compta_id, + PECPTE AS numero, + PEINT3 AS texte, + 0 AS compte_general_id, + CASE WHEN PECCLH = '2' THEN 'H' ELSE 'C' END AS clinique_honoraire, + CASE WHEN PECPTE LIKE '512%' THEN '1' ELSE '0' END AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + 0::bigint AS partenaire_id + FROM w_PEP01 + LEFT JOIN compta.t_comptes ON + w_PEP01.type_compta_id = t_comptes.type_compta_id AND + PECPTE = t_comptes.numero + WHERE t_comptes.oid IS NULL + ORDER BY 2; + + + + -- Comptes généraux des extra comptable + UPDATE compta.t_comptes SET + compte_general_id = t_comptes_c.oid, + collectif = CASE WHEN t_comptes.oid = t_comptes_c.oid THEN '1' ELSE '0' END + FROM w_PEP01 + JOIN compta.t_comptes t_comptes_c ON type_compta_gene_id = t_comptes_c.type_compta_id AND + PECPTE_GENE = t_comptes_c.numero + WHERE w_PEP01.PECPTE = t_comptes.numero AND + w_PEP01.type_compta_id = t_comptes.type_compta_id AND + ( + t_comptes.compte_general_id IS DISTINCT FROM t_comptes_c.oid OR + t_comptes.collectif IS DISTINCT FROM (CASE WHEN t_comptes.oid = t_comptes_c.oid THEN '1' ELSE '0' END) + ); + + -- Partenaires + INSERT INTO compta.t_partenaires(oid, code, code_original, texte, texte_court) + SELECT 0, chr(127) || '***', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM compta.t_partenaires); + + INSERT INTO compta.t_partenaires (code, code_original, texte, texte_court) + SELECT code, code, texte, texte FROM + ( + SELECT 'C' || substr(numero, 5, 5) as code, MAX(texte) as texte + FROM compta.t_comptes + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('42', '43', '91', '92') ) GROUP BY 1 + UNION + SELECT 'F' || substr(numero, 4, 5) as code, MAX(texte) as texte + FROM compta.t_comptes + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('40') ) GROUP BY 1 + UNION + SELECT 'M' || substr(numero, 5, 5) as code, MAX(texte) as texte + FROM compta.t_comptes + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('46', '47', '48') ) GROUP BY 1 + ) subview + WHERE subview.code NOT IN (select code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL); + + UPDATE compta.t_comptes SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('42', '43', '91', '92') ) + AND t_partenaires.code_original = 'C' || substr(t_comptes.numero, 5, 5) + AND (partenaire_id <> t_partenaires.oid OR partenaire_id IS NULL); + + + UPDATE compta.t_comptes SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('40') ) + AND t_partenaires.code_original = 'F' || substr(t_comptes.numero, 4, 5) + AND (partenaire_id <> t_partenaires.oid OR partenaire_id IS NULL); + + + UPDATE compta.t_comptes SET partenaire_id = t_partenaires.oid + FROM compta.t_partenaires + WHERE type_compta_id IN (select oid FROM compta.t_types_compta where code IN ('46', '47', '48') ) + AND t_partenaires.code_original = 'M' || substr(t_comptes.numero, 5, 5) + AND (partenaire_id <> t_partenaires.oid OR partenaire_id IS NULL); + + UPDATE compta.t_comptes SET partenaire_id = 0 WHERE partenaire_id IS NULL; + + + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_SIGEMS.XML b/import_compta/iCTI_import_compta_SIGEMS.XML new file mode 100644 index 0000000..59ccba7 --- /dev/null +++ b/import_compta/iCTI_import_compta_SIGEMS.XML @@ -0,0 +1,1065 @@ + + + + + + + + 0 AND + JNAL.CODEJ NOT IN (SELECT code_original FROM compta.t_journaux WHERE report_automatique_mois_suivant = '9'); + + + -- Ecritures CTI + DROP TABLE IF EXISTS w_historique_ecritures_total; + CREATE TEMP TABLE w_historique_ecritures_total AS + SELECT mois_comptable, + t_comptes.numero as compte_numero_extra, + SUM(CASE WHEN ajustement = '0' THEN montant_debit ELSE 0 END) as debit, + SUM(CASE WHEN ajustement = '0' THEN montant_credit ELSE 0 END) as credit, + SUM(CASE WHEN ajustement = '2' THEN montant_debit ELSE 0 END) as debit_ajustement, + SUM(CASE WHEN ajustement = '2' THEN montant_credit ELSE 0 END) as credit_ajustement, + SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + JOIN compta.t_comptes ON p_historique_ecritures_total.compte_extra_id = t_comptes.oid + WHERE mois_comptable >= 200801 AND ajustement IN ('0','2') AND + is_budget IS DISTINCT FROM '1' + GROUP BY 1,2 + ORDER BY 1,2; + + -- Ecritures prestataire + DROP TABLE IF EXISTS w_ECRIT; + CREATE TEMP TABLE w_ECRIT AS + SELECT + ECRIT_COMPTA.*, + COALESCE(ECRIT_COMPTALIBEL.ECR_LIBEL,'') AS ECR_LIBEL, + ECRIT_COMPTA.ECR_STE||'-'||ECRIT_COMPTA.ECR_AGE AS site_code, + date_part('year',ECRIT_COMPTA.ECR_DATE) * 100 + date_part('month',ECRIT_COMPTA.ECR_DATE) AS mois_comptable, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' AND ECRIT_COMPTA.ECR_CEMT <> ECRIT_COMPTA.ECR_CPTE THEN ECRIT_COMPTA.ECR_CPTE ELSE ECRIT_COMPTA.ECR_CEMT END AS compte_numero, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' AND ECRIT_COMPTA.ECR_CEMT <> ECRIT_COMPTA.ECR_CPTE THEN ECRIT_COMPTA.ECR_CPTE ELSE ECRIT_COMPTA.ECR_CEMT || '-' || ECRIT_COMPTA.ECR_CPTE END AS compte_numero_extra, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' THEN '' ELSE ECRIT_COMPTA.ECR_PLAN || ECRIT_COMPTA.ECR_CPTE END AS partenaire_code, + 'C'::text AS ECR_SRC, + COALESCE(ECRIT_COMPTAANA.ECR_CPTE, '') AS ECR_SANA, + COALESCE(ECRIT_COMPTAANA.ECR_CREDIT, ECRIT_COMPTA.ECR_CREDIT) AS ECR_CREDIT_ANA, + COALESCE(ECRIT_COMPTAANA.ECR_DEBIT, ECRIT_COMPTA.ECR_DEBIT) AS ECR_DEBIT_ANA, + JNAL.TYP AS JNAL_TYP, + JNAL.CODEJ AS JNAL_CODEJ, + JNAL.REFBASE AS JNAL_REFBASE, + ''::text AS compte_numero_contre + FROM prod_sigems.ECRIT_COMPTA + JOIN w_STE ON ECRIT_COMPTA.ECR_STE || CASE WHEN '[SITES]' = '' THEN '' ELSE '-' || ECRIT_COMPTA.ECR_AGE END = SEL_STE + JOIN prod_sigems.JNAL ON ECRIT_COMPTA.ECR_JNAL = JNAL.CODEJ + LEFT JOIN prod_sigems.ECRIT_COMPTALIBEL ON ECRIT_COMPTA.ECR_NUM = ECRIT_COMPTALIBEL.ECR_NUM + LEFT JOIN prod_sigems.ECRIT_COMPTAANA ON ECRIT_COMPTA.ECR_NUM = ECRIT_COMPTAANA.ECR_NEMET AND + ECRIT_COMPTAANA.ECR_ANNUL <> 'S' + WHERE ECRIT_COMPTA.ECR_DATE >= '20100101' AND + ECRIT_COMPTA.ECR_ANNUL <> 'T' AND + ECRIT_COMPTA.ECR_ANNUL <> 'S' AND + ECRIT_COMPTA.ECR_PIECE <> 'CENTRALI' AND + ECRIT_COMPTA.ECR_PLAN NOT IN ('A'); + + -- Ajustement ecarts analytiques + DROP TABLE IF EXISTS w_ECRIT_ecartana; + CREATE TEMP TABLE w_ECRIT_ecartana AS + SELECT ECR_NUM, count(*) AS nb_ana, MAX(ECR_CREDIT) - SUM(ECR_CREDIT_ANA) AS ECR_CREDIT_ecart, MAX(ECR_DEBIT) - SUM(ECR_DEBIT_ANA) AS ECR_DEBIT_ecart + FROM w_ECRIT + GROUP BY 1 + HAVING ( + SUM(ECR_CREDIT_ANA) IS DISTINCT FROM MAX(ECR_CREDIT) OR + SUM(ECR_DEBIt_ANA) IS DISTINCT FROM MAX(ECR_DEBIt) + ) ; + + UPDATE w_ECRIT SET + ECR_CREDIT_ANA = ECR_CREDIT, + ECR_DEBIT_ANA = ECr_DEBIT + FROM w_ECRIT_ecartana + WHERE w_ECRIT_ecartana.ECR_NUM = w_ECRIT.ECR_NUM AND + nb_ana = 1 + ; + + INSERT INTO w_ECRIT + SELECT + ECRIT_COMPTA.*, + COALESCE(ECRIT_COMPTALIBEL.ECR_LIBEL,'') AS ECR_LIBEL, + ECRIT_COMPTA.ECR_STE||'-'||ECRIT_COMPTA.ECR_AGE AS site_code, + date_part('year',ECRIT_COMPTA.ECR_DATE) * 100 + date_part('month',ECRIT_COMPTA.ECR_DATE) AS mois_comptable, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' AND ECRIT_COMPTA.ECR_CEMT <> ECRIT_COMPTA.ECR_CPTE THEN ECRIT_COMPTA.ECR_CPTE ELSE ECRIT_COMPTA.ECR_CEMT END AS compte_numero, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' AND ECRIT_COMPTA.ECR_CEMT <> ECRIT_COMPTA.ECR_CPTE THEN ECRIT_COMPTA.ECR_CPTE ELSE ECRIT_COMPTA.ECR_CEMT || '-' || ECRIT_COMPTA.ECR_CPTE END AS compte_numero_extra, + CASE WHEN ECRIT_COMPTA.ECR_CEMT = '' THEN '' ELSE ECRIT_COMPTA.ECR_PLAN || ECRIT_COMPTA.ECR_CPTE END AS partenaire_code, + 'C'::text AS ECR_SRC, + COALESCE('') AS ECR_SANA, + ECR_CREDIT_ecart AS ECR_CREDIT_ANA, + ECR_DEBIT_ecart AS ECR_DEBIT_ANA, + JNAL.TYP AS JNAL_TYP, + JNAL.CODEJ AS JNAL_CODEJ, + JNAL.REFBASE AS JNAL_REFBASE, + ''::text AS compte_numero_contre + FROM prod_sigems.ECRIT_COMPTA + JOIN w_ECRIT_ecartana ON w_ECRIT_ecartana.ECR_NUM = ECRIT_COMPTA.ECR_NUM AND nb_ana > 1 + JOIN prod_sigems.JNAL ON ECRIT_COMPTA.ECR_JNAL = JNAL.CODEJ + LEFT JOIN prod_sigems.ECRIT_COMPTALIBEL ON ECRIT_COMPTA.ECR_NUM = ECRIT_COMPTALIBEL.ECR_NUM + ; + + UPDATE w_ECRIT SET + ECR_CREDIT = ECR_CREDIT_ANA, + ECR_DEBIT = ECR_DEBIT_ANA + WHERE ECR_CREDIT <> ECR_CREDIT_ANA OR + ECR_DEBIT <> ECR_DEBIT_ANA; + + + -- Extourne des écritures de situation + DROP TABLE IF EXISTS w_mois; + CREATE TEMP TABLE w_mois AS + SELECT + exercice_comptable, + mois, + date_part('year',date(mois||'01') + interval '1 month') * 100 + date_part('month',date(mois||'01') + interval '1 month') AS mois_suivant, + exercice_mois_comptable_1 + FROM base.p_calendrier_mois; + + UPDATE w_mois + SET mois_suivant = mois + WHERE substr(mois_suivant,5,2) = substr(exercice_mois_comptable_1,5,2); + + DROP TABLE IF EXISTS w_exercice; + CREATE TEMP TABLE w_exercice AS + SELECT exercice_comptable, + MIN(date_debut) AS date_debut_exercice, + MAX(date_fin) AS date_fin_exercice + FROM base.p_calendrier_mois + GROUP BY 1; + + + -- Extourne automatique mois suivant de toutes les écritures du journal + DROP TABLE IF EXISTS w_ECRIT_report; + CREATE TEMP TABLE w_ECRIT_report AS + SELECT w_ECRIT.* + FROM w_ECRIT + JOIN compta.t_journaux ON code_original = JNAL_CODEJ + WHERE JNAL_TYP = 'S' AND ECR_ANNUL = '' AND + report_automatique_mois_suivant = '1'; + + UPDATE w_ECRIT_report SET + ECR_CREDIT = ECR_DEBIT, + ECR_DEBIT = ECR_CREDIT, + mois_comptable = mois_suivant + FROM w_mois + WHERE w_mois.mois = mois_comptable; + + INSERT INTO w_ECRIT + SELECT * + FROM w_ECRIT_report; + + + + -- Ne pas tenir compte des ecritures de situation au permier jour et au dernier jour de l'exercice + DELETE FROM w_ECRIT + USING compta.t_journaux, w_exercice + WHERE code_original = JNAL_CODEJ AND + JNAL_TYP = 'S' AND ECR_ANNUL = '' AND + report_automatique_mois_suivant = '2' AND + date(ECR_DATE) = date_debut_exercice; + + DELETE FROM w_ECRIT + USING compta.t_journaux, w_exercice + WHERE code_original = JNAL_CODEJ AND + JNAL_TYP = 'S' AND ECR_ANNUL = '' AND + report_automatique_mois_suivant = '2' AND + date(ECR_DATE) = date_fin_exercice; + + + -- Extourne automatique mois suivant en testant qu'au premier jour le solde soit à 0 + DROP TABLE IF EXISTS w_ECRIT_situ; + CREATE TEMP TABLE w_ECRIT_situ AS + SELECT w_ECRIT.*, + to_char(date(ECR_DATE - interval '1 day' + interval '1 month'),'YYYYMM')::numeric AS mois_zero + FROM w_ECRIT + JOIN compta.t_journaux ON code_original = JNAL_CODEJ + WHERE JNAL_TYP = 'S' AND ECR_ANNUL = '' AND + report_automatique_mois_suivant IN ('2') ; + + + INSERT INTO w_ECRIT + ( + ECR_STE, + ECR_AGE, + site_code, + ECR_JNAL, + ECR_PLAN, + ECR_CPTE, + ECR_CEMT, + ECR_SRC, + ECR_SANA, + compte_numero, + compte_numero_extra, + compte_numero_contre, + partenaire_code, + jnal_typ, + jnal_codej, + jnal_refbase, + mois_comptable, + + ECR_DATE, + + ECR_PIECE, + ECR_NUM, + ECR_FOLIO, + ECR_NLIG, + ECR_CHEQ, + ECR_ANNUL, + ECR_LIBEL, + + ECR_DEBIT, + ECR_CREDIT + ) + SELECT ECR_STE, + ECR_AGE, + site_code, + ECR_JNAL, + ECR_PLAN, + ECR_CPTE, + ECR_CEMT, + 'C'::text AS ECR_SRC, + ECR_SANA, + compte_numero, + compte_numero_extra, + compte_numero_contre, + partenaire_code, + jnal_typ, + jnal_codej, + jnal_refbase, + mois_zero AS mois_comptable, + + p_calendrier_mois.date_debut AS ECR_DATE, + + 'CTI'::text AS ECR_PIECE, + 0::numeric AS ECR_NUM, + 0::numeric AS ECR_FOLIO, + 0::numeric AS ECR_NLIG, + ''::text AS ECR_CHEQ, + ''::text AS ECR_ANNUL, + 'Extourne automatique CTI'::text AS ECR_LIBEL, + + SUM(ECR_CREDIT) AS ECR_DEBIT, + SUM(ECR_DEBIT) AS ECR_CREDIT + + FROM w_ECRIT_situ + JOIN base.p_calendrier_mois ON mois = mois_zero + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 + HAVING SUM(ECR_CREDIT) <> 0 OR SUM(ECR_DEBIT) <> 0 + ORDER BY 1,2; + + + -- Comptabilité analytiques + INSERT INTO w_ECRIT + SELECT + ECRIT_COMPTA.*, + COALESCE(ECRIT_COMPTALIBEL.ECR_LIBEL,'') AS ECR_LIBEL, + ECRIT_COMPTA.ECR_STE||'-'||ECRIT_COMPTA.ECR_AGE AS site_code, + date_part('year',ECRIT_COMPTA.ECR_DATE) * 100 + date_part('month',ECRIT_COMPTA.ECR_DATE) AS mois_comptable, + ECRIT_COMPTA.ECR_CEMT AS compte_numero, + ECRIT_COMPTA.ECR_CEMT AS compte_numero_extra, + ''::text AS partenaire_code, + 'A'::text AS ECR_SRC, + ECR_CPTE AS ECR_SANA, + ECRIT_COMPTA.ECR_CREDIT AS ECR_CREDIT_ANA, + ECRIT_COMPTA.ECR_DEBIT AS ECR_DEBIT_ANA, + JNAL.TYP AS JNAL_TYP, + JNAL.CODEJ AS JNAL_CODEJ, + JNAL.REFBASE AS JNAL_REFBASE, + ''::text AS compte_numero_contre + FROM prod_sigems.ECRIT_COMPTAANALYTIQUE ECRIT_COMPTA + JOIN w_STE ON ECRIT_COMPTA.ECR_STE || CASE WHEN '[SITES]' = '' THEN '' ELSE '-' || ECRIT_COMPTA.ECR_AGE END = SEL_STE + JOIN prod_sigems.JNAL ON ECRIT_COMPTA.ECR_JNAL = JNAL.CODEJ + LEFT JOIN prod_sigems.ECRIT_COMPTAANALYTIQUELIBEL ECRIT_COMPTALIBEL ON ECRIT_COMPTA.ECR_NUM = ECRIT_COMPTALIBEL.ECR_NUM + WHERE ECRIT_COMPTA.ECR_DATE >= '20100101' AND + ECRIT_COMPTA.ECR_ANNUL <> 'T' AND + ECRIT_COMPTA.ECR_ANNUL <> 'S' AND + ECRIT_COMPTA.ECR_PIECE <> 'CENTRALI' AND + ECRIT_COMPTA.ECR_PLAN IN ('A') + ; + + + + CREATE INDEX w_ECRIT_i1 ON w_ECRIT USING btree (ECR_NUM); + CREATE INDEX w_ECRIT_i2 ON w_ECRIT USING btree (mois_comptable); + CREATE INDEX w_ECRIT_i3 ON w_ECRIT USING btree (compte_numero); + CREATE INDEX w_ECRIT_i4 ON w_ECRIT USING btree (compte_numero_extra); + CREATE INDEX w_ECRIT_i5 ON w_ECRIT USING btree (partenaire_code); + CREATE INDEX w_ECRIT_i6 ON w_ECRIT USING btree (ECR_JNAL); + CREATE INDEX w_ECRIT_i7 ON w_ECRIT USING btree (site_code); + CREATE INDEX w_ECRIT_i8 ON w_ECRIT USING btree (ECR_SANA); + + + -- Attribution du code partenaire (tiers) sur les lignes d'écritures d'une même pièce comptable + -- Lignes d'écritures des partenaires + DROP TABLE IF EXISTS lignes_tiers + ; + + CREATE TEMP TABLE lignes_tiers AS + SELECT + ecr_piece, + w_ECRIT.ECR_PLAN || ECR_CPTE AS partenaire_code + FROM w_ECRIT + WHERE ecr_plan = 'F' + ; + + -- Mise à jour de la table de travail des écritures comptables + UPDATE w_ECRIT + SET partenaire_code = lignes_tiers.partenaire_code + FROM lignes_tiers + WHERE w_ECRIT.ecr_piece = lignes_tiers.ecr_piece + ; + + + DROP TABLE IF EXISTS w_TECRIT; + CREATE TEMP TABLE w_TECRIT AS + SELECT + 0::numeric AS exercice_comptable, + mois_comptable, + compte_numero_extra, + Count(*) AS COUNT, + round(SUM(CASE WHEN JNAL_TYP <> 'S' AND ECR_SRC <> 'A' THEN ECR_DEBIT ELSE 0 END),2) AS ECR_DEBIT, + round(SUM(CASE WHEN JNAL_TYP <> 'S' AND ECR_SRC <> 'A' THEN ECR_CREDIT ELSE 0 END),2) AS ECR_CREDIT, + round(SUM(CASE WHEN JNAL_TYP = 'S' OR ECR_SRC = 'A' THEN ECR_DEBIT ELSE 0 END),2) AS ECR_DEBIT_ajustement, + round(SUM(CASE WHEN JNAL_TYP = 'S' OR ECR_SRC = 'A' THEN ECR_CREDIT ELSE 0 END),2) AS ECR_CREDIT_ajustement + FROM w_ECRIT + GROUP BY 1,2,3 + ORDER BY 1,2,3; + + CREATE INDEX w_TECRIT_i1 ON w_ECRIT USING btree (mois_comptable); + CREATE INDEX w_TECRIT_i2 ON w_ECRIT USING btree (compte_numero_extra); + + UPDATE w_TECRIT + SET exercice_comptable = p_calendrier_mois.exercice_comptable + FROM base.p_calendrier_mois + WHERE p_calendrier_mois.mois = w_TECRIT.mois_comptable; + + + + + + DROP TABLE IF EXISTS w_mois_modifies; + CREATE TEMP TABLE w_mois_modifies AS + SELECT w_TECRIT.mois_comptable, w_TECRIT.exercice_comptable + FROM w_TECRIT + LEFT JOIN w_historique_ecritures_total ON + w_historique_ecritures_total.mois_comptable = w_TECRIT.mois_comptable AND + w_historique_ecritures_total.compte_numero_extra = w_TECRIT.compte_numero_extra + GROUP BY 1,2 + HAVING MAX(CASE WHEN w_historique_ecritures_total.count IS DISTINCT FROM w_TECRIT.count OR + w_historique_ecritures_total.debit IS DISTINCT FROM w_TECRIT.ECR_DEBIT OR + w_historique_ecritures_total.credit IS DISTINCT FROM w_TECRIT.ECR_CREDIT OR + w_historique_ecritures_total.debit_ajustement IS DISTINCT FROM w_TECRIT.ECR_DEBIT_ajustement OR + w_historique_ecritures_total.credit_ajustement IS DISTINCT FROM w_TECRIT.ECR_CREDIT_ajustement + THEN 1 ELSE 0 END) = 1; + + ALTER TABLE w_mois_modifies ADD CONSTRAINT w_mois_modifies_pk PRIMARY KEY(mois_comptable); + + CTISELECT_PROPERTY_READ 'MOISMODIFIES', COALESCE(base.cti_group_concat(mois_comptable),'0') + FROM w_mois_modifies; + + + + echo Mois modifiés : [MOISMODIFIES]; + + -- Morceau de code temporaire pouvant être enlever à partir de Juin 2024 + -- L'insertion en base de données ne s'effectue uniquement sur la détection d'un changement de montant pour un mois donné + -- A la prochaine détection d'un changement : + -- Correction de la mauvaise attribution du code partenaire sur toutes les écritures antérieures et actuelles + UPDATE compta.p_historique_ecritures + SET partenaire_id = subview.partenaire_id + FROM ( + SELECT + w_ECRIT.ecr_num, + t_partenaires.oid AS partenaire_id + FROM w_ECRIT + JOIN lignes_tiers ON lignes_tiers.ecr_piece = w_ECRIT.ecr_piece + JOIN compta.t_partenaires ON t_partenaires.code = lignes_tiers.partenaire_code + WHERE w_ECRIT.ecr_plan = 'G' + ) AS subview + WHERE + p_historique_ecritures.cle_originale = subview.ecr_num + AND p_historique_ecritures.partenaire_id = 0 + ; + + -- Les vues de l'application se base sur la table p_historique_ecritures_total se basant elle même sur p_historique_ecritures précédemment modifiée + UPDATE compta.p_historique_ecritures_total + SET partenaire_id = p_historique_ecritures.partenaire_id + FROM compta.p_historique_ecritures + WHERE + p_historique_ecritures_total.compte_id = p_historique_ecritures.compte_id + AND p_historique_ecritures_total.mois_comptable = p_historique_ecritures.mois_comptable + AND p_historique_ecritures_total.journal_id = p_historique_ecritures.journal_id + AND p_historique_ecritures_total.section_analytique_id = p_historique_ecritures.section_analytique_id + AND p_historique_ecritures_total.section_analytique_2_id = p_historique_ecritures.section_analytique_2_id + AND p_historique_ecritures_total.section_analytique_3_id = p_historique_ecritures.section_analytique_3_id + AND p_historique_ecritures_total.section_analytique_4_id = p_historique_ecritures.section_analytique_4_id + AND p_historique_ecritures_total.section_analytique_5_id = p_historique_ecritures.section_analytique_5_id + AND p_historique_ecritures_total.section_analytique_6_id = p_historique_ecritures.section_analytique_6_id + AND p_historique_ecritures_total.section_analytique_7_id = p_historique_ecritures.section_analytique_7_id + AND p_historique_ecritures_total.section_analytique_8_id = p_historique_ecritures.section_analytique_8_id + AND p_historique_ecritures_total.section_analytique_9_id = p_historique_ecritures.section_analytique_9_id + AND p_historique_ecritures_total.clinique_honoraire = p_historique_ecritures.clinique_honoraire + AND p_historique_ecritures_total.exercice_comptable = p_historique_ecritures.exercice_comptable + AND p_historique_ecritures_total.type_compta_id = p_historique_ecritures.type_compta_id + AND p_historique_ecritures_total.site_id = p_historique_ecritures.site_id + AND p_historique_ecritures_total.compte_extra_id = p_historique_ecritures.compte_extra_id + AND p_historique_ecritures_total.comptabilisee = p_historique_ecritures.comptabilisee + AND p_historique_ecritures_total.fin_exercice = p_historique_ecritures.fin_exercice + AND p_historique_ecritures_total.ajustement = p_historique_ecritures.ajustement + AND p_historique_ecritures_total.inter_site = p_historique_ecritures.inter_site + AND p_historique_ecritures_total.ecriture_consolidee = p_historique_ecritures.ecriture_consolidee + ; + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + '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; + + + + + ]]> + + + + + + + + + + + + + + + 'S' + JOIN compta.t_sites ON (VAL_STE || CASE WHEN '[SITES]' = '' THEN '' ELSE '-' || VAL_AGE END) = t_sites.code_original + JOIN compta.t_journaux ON VAL_JNAL = t_journaux.code_original + WHERE VAL_DATE1 >= '20100101' AND + (VAL_CREDIT <> 0 OR VAL_DEBIT <> 0) + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4; + + DROP TABLE IF EXISTS w_VALID_periode; + CREATE TEMP TABLE w_VALID_periode AS + SELECT MIN(mois_comptable) AS mois_comptable_debut, + MAX(mois_comptable) AS mois_comptable_fin + FROM w_VALID; + + CREATE INDEX w_VALID_i1 ON w_VALID USING btree (mois_comptable); + + INSERT INTO w_VALID + SELECT + p_historique_ecritures_total.mois_comptable, + p_historique_ecritures_total.site_id, + p_historique_ecritures_total.clinique_honoraire, + p_historique_ecritures_total.journal_id, + SUM(p_historique_ecritures_total.montant_debit), + SUM(p_historique_ecritures_total.montant_credit) + FROM compta.p_historique_ecritures_total + JOIN w_VALID_periode ON mois_comptable BETWEEN mois_comptable_debut AND mois_comptable_fin + LEFT JOIN w_VALID ON + ( + p_historique_ecritures_total.mois_comptable = w_VALID.mois_comptable AND + p_historique_ecritures_total.site_id = w_VALID.site_id AND + p_historique_ecritures_total.clinique_honoraire = w_VALID.clinique_honoraire AND + p_historique_ecritures_total.journal_id = w_VALID.journal_id + ) + WHERE ajustement ='0' AND + is_budget IS DISTINCT FROM '1' + GROUP by 1,2,3,4 + HAVING MAX(w_VALID.montant_debit) IS NULL + ORDER BY 1,2,3,4; + + TRUNCATE compta.p_chiffrier_comptable; + + INSERT INTO compta.p_chiffrier_comptable + ( + mois_comptable, + site_id, + clinique_honoraire, + montant_debit, + montant_credit + ) + SELECT + mois_comptable, + site_id, + clinique_honoraire, + SUM(montant_debit), + SUM(montant_credit) + FROM w_VALID + GROUP BY 1,2,3 + HAVING SUM(montant_debit) <> 0 OR + SUM(montant_credit) <> 0; + + ]]> + + + + + + + + + ECR_CPTE THEN ECR_CPTE ELSE ECR_CEMT END AS numero, + CASE WHEN ECR_CEMT = '' AND ECR_CEMT <> ECR_CPTE THEN ECR_CPTE ELSE ECR_CEMT || '-' || ECR_CPTE END AS numero_extra, + 0::bigint AS type_compta_id, + 0::bigint AS type_compta_extra_id + FROM prod_sigems.ECRIT_COMPTA + GROUP BY 1,2,3,4,5,6,7; + + UPDATE w_COMPTE + SET type_compta_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero LIKE '6%' OR numero LIKE '7%' ) AND + t_types_compta.code = 'GES'; + + UPDATE w_COMPTE + SET type_compta_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero LIKE '8%' ) AND + t_types_compta.code = 'RES'; + + UPDATE w_COMPTE + SET type_compta_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero NOT LIKE '6%' AND numero NOT LIKE '7%' AND numero NOT LIKE '8%') AND + t_types_compta.code = 'BIL'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero LIKE '6%' OR numero LIKE '7%') AND + (ECR_PLAN = 'G' OR ECR_PLAN = 'H') AND + t_types_compta.code = 'GES'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero LIKE '8%') AND + (ECR_PLAN = 'G' OR ECR_PLAN = 'H') AND + t_types_compta.code = 'RES'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE (numero NOT LIKE '6%' AND numero NOT LIKE '7%' AND numero NOT LIKE '8%') AND + (ECR_PLAN = 'G' OR ECR_PLAN = 'H') AND + t_types_compta.code = 'BIL'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE ECR_PLAN = 'F' AND + t_types_compta.code = 'FOU'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE ECR_PLAN = 'C' AND + t_types_compta.code = 'CLI'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE ECR_PLAN = 'M' AND + t_types_compta.code = 'MED'; + + UPDATE w_COMPTE + SET type_compta_extra_id = t_types_compta.oid + FROM compta.t_types_compta + WHERE ECR_PLAN NOT IN ('G', 'H') AND + type_compta_extra_id = 0 AND + t_types_compta.code = 'DIV'; + + + -- Comptes généraux + UPDATE compta.t_comptes SET + type_compta_id = subview.type_compta_id, + texte = subview.texte + FROM + ( + SELECT + type_compta_id, + numero, + MAX(COMPTE.INT1||' '||COMPTE.INT2) AS texte + FROM w_COMPTE + JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.NUM = ECR_CEMT + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero AND + ( + t_comptes.type_compta_id IS DISTINCT FROM subview.type_compta_id OR + t_comptes.texte IS DISTINCT FROM subview.texte + ); + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + type_compta_id, + numero, + MAX(COMPTE.INT1||' '||COMPTE.INT2) AS texte, + 0 AS compte_general_id, + MIN(CASE WHEN ECR_PLAN IN ('H','M') THEN 'H' ELSE 'C' END) AS clinique_honoraire, + MAX(CASE WHEN numero LIKE '512%' THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + 0::bigint AS partenaire_id + FROM w_COMPTE + LEFT JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.NUM = ECR_CEMT + WHERE numero NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) AND + w_COMPTE.numero <> '' + GROUP BY 1,2 + ORDER BY 2; + + -- Partenaires + INSERT INTO compta.t_partenaires(code_original, code, texte, texte_court) + SELECT ECR_PART, ECR_PART, MAX(COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE)), MAX(COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE)) + FROM w_COMPTE + LEFT JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.TYP = ECR_PLAN AND + COMPTE.NUM = ECR_CPTE + WHERE ECR_PART <> '' AND + ECR_PART NOT IN (SELECT code_original FROM compta.t_partenaires WHERE code_original IS NOT NULL) + GROUP BY 1,2; + + UPDATE compta.t_partenaires SET + texte = COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE), + texte_court = COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE) + FROM w_COMPTE + LEFT JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.TYP = ECR_PLAN AND + COMPTE.NUM = ECR_CPTE + WHERE ECR_PART = code_original AND + ( + t_partenaires.texte IS DISTINCT FROM COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE) OR + t_partenaires.texte_court IS DISTINCT FROM COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CPTE) + ); + + + -- Comptes auxiliaires + UPDATE compta.t_comptes SET + type_compta_id = subview.type_compta_extra_id, + texte = subview.texte_extra, + partenaire_id = subview.partenaire_id + FROM + ( + SELECT + type_compta_extra_id, + numero_extra, + MAX(COALESCE(t_partenaires.oid,0)) AS partenaire_id, + MAX(COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CEMT)) AS texte_extra + FROM w_COMPTE + LEFT JOIN compta.t_partenaires ON ECR_PART = t_partenaires.code_original + LEFT JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.TYP = ECR_PLAN AND + COMPTE.NUM = ECR_CPTE + WHERE w_COMPTE.numero <> '' + GROUP BY 1,2 + ) subview + WHERE t_comptes.numero = subview.numero_extra AND + ( + t_comptes.type_compta_id IS DISTINCT FROM subview.type_compta_extra_id OR + t_comptes.texte IS DISTINCT FROM subview.texte_extra OR + t_comptes.partenaire_id IS DISTINCT FROM subview.partenaire_id + ); + + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra, partenaire_id) + SELECT + w_COMPTE.type_compta_extra_id, + w_COMPTE.numero_extra, + MAX(COALESCE(COMPTE.INT1||' '||COMPTE.INT2,ECR_CEMT)) AS texte, + MAX(t_comptes.oid) AS compte_general_id, + MIN(CASE WHEN ECR_PLAN IN ('H','M') THEN 'H' ELSE 'C' END) AS clinique_honoraire, + MAX(CASE WHEN w_COMPTE.numero LIKE '512%' THEN '1' ELSE '0' END) AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra, + MAX(COALESCE(t_partenaires.oid,0)) AS partenaire_id + FROM w_COMPTE + LEFT JOIN compta.t_partenaires ON ECR_PART = t_partenaires.code_original + LEFT JOIN prod_sigems.COMPTE ON COMPTE.STE = ECR_STE AND + COMPTE.TYP = ECR_PLAN AND + COMPTE.NUM = ECR_CPTE + JOIN compta.t_comptes ON t_comptes.numero = w_COMPTE.numero + WHERE w_COMPTE.numero_extra NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) AND + w_COMPTE.numero <> '' + GROUP BY 1,2 + ORDER BY 2; + + + + + UPDATE compta.t_comptes SET + compte_general_id = oid + WHERE compte_general_id = 0 OR compte_general_id IS NULL; + + + + + + + + ]]> + + + + + diff --git a/import_compta/iCTI_import_compta_TALENTIA_FINANCE.XML b/import_compta/iCTI_import_compta_TALENTIA_FINANCE.XML new file mode 100644 index 0000000..16b965e --- /dev/null +++ b/import_compta/iCTI_import_compta_TALENTIA_FINANCE.XML @@ -0,0 +1,1083 @@ + + + + + + + + + + + + + + + + + + + + + + 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_1 ON AXE1 = t_sections_analytiques_1.code_original AND t_sections_analytiques_1.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_2 ON AXE2 = t_sections_analytiques_2.code_original AND t_sections_analytiques_2.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_3 ON AXE3 = t_sections_analytiques_3.code_original AND t_sections_analytiques_3.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_4 ON AXE4 = t_sections_analytiques_4.code_original AND t_sections_analytiques_4.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_5 ON AXE5 = t_sections_analytiques_5.code_original AND t_sections_analytiques_5.oid <> 0 + LEFT JOIN compta.t_partenaires ON w_ZZGEC.NCPTPART = t_partenaires.code_original AND t_partenaires.oid <> 0 + ; + + -- Ecritures ajustement analytique + INSERT INTO compta.p_historique_ecritures + (site_id, + type_compta_id, + compte_id, + date_ecriture, + exercice_comptable, + mois_comptable, + clinique_honoraire, + journal_id, + section_analytique_id, + section_analytique_2_id, + section_analytique_3_id, + section_analytique_4_id, + section_analytique_5_id, + section_analytique_6_id, + partenaire_id, + compte_extra_id, + comptabilisee, + fin_exercice, + ajustement, + inter_site, + cle_originale, + identifiant_operation, + compte_contrepartie_id, + texte, + date_facture_fournisseur, + piece, + dossier, + date_echeance, + journal_paiement_id, + mode_paiement_id, + numero_cheque, + montant_credit, + montant_debit) + SELECT + COALESCE(t_sites.oid,0) AS site_id, + t_comptes.type_compta_id, + t_comptes.oid AS compte_id, + date(w_ZZGEA.DTEC::text) AS date_ecriture, + substr(w_ZZGEA.DTCT,1,4)::numeric AS exercice_comptable, + substr(w_ZZGEA.DTCT,1,6)::numeric AS mois_comptable, + 'C'::text AS clinique_honoraire, + t_journaux.oid AS journal_id, + COALESCE(t_sections_analytiques_0.oid,0) AS section_analytique_id, + COALESCE(t_sections_analytiques_1.oid,0) AS section_analytique_2_id, + COALESCE(t_sections_analytiques_2.oid,0) AS section_analytique_3_id, + COALESCE(t_sections_analytiques_3.oid,0) AS section_analytique_4_id, + COALESCE(t_sections_analytiques_4.oid,0) AS section_analytique_5_id, + COALESCE(t_sections_analytiques_5.oid,0) AS section_analytique_6_id, + COALESCE(t_partenaires.oid,0) AS partenaire_id, + t_comptes_extra.oid AS compte_extra_id, + '0'::text AS comptabilisee, + '0'::text AS fin_exercice, + '2' AS ajustement, + '0'::text AS inter_site, + w_ZZGEA.CORI || '-' || w_ZZGEA.NPIE || '-' || w_ZZGEA.DNOR AS cle_originale, + w_ZZGEA.CORI || '-' || w_ZZGEA.NPIE || '-' || w_ZZGEA.DNOR AS identifiant_operation, + COALESCE(t_comptes_contrepartie.oid,0) AS compte_contrepartie_id, + substr(LECR,1,100) AS texte, + '20991231' AS date_facture_fournisseur, + '' AS piece, + '' AS dossier, + '20991231'::date AS date_echeance, + 0::bigint AS journal_paiement_id, + 0::bigint AS mode_paiement_id, + ''::text AS numero_cheque, + COALESCE(MOA1_C), + COALESCE(MOA1_D) + FROM w_ZZGEA + LEFT JOIN compta.t_sites ON ETAB_CTI = t_sites.code_original + JOIN compta.t_comptes ON w_ZZGEA.CPTC = t_comptes.numero + JOIN compta.t_comptes t_comptes_extra ON NCPT_CTI = t_comptes_extra.numero + LEFT JOIN compta.t_comptes t_comptes_contrepartie ON CCTC = t_comptes_contrepartie.numero + JOIN compta.t_journaux ON JRNRCORI = t_journaux.code_original + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_0 ON AXE0 = t_sections_analytiques_0.code_original AND t_sections_analytiques_0.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_1 ON AXE1 = t_sections_analytiques_1.code_original AND t_sections_analytiques_1.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_2 ON AXE2 = t_sections_analytiques_2.code_original AND t_sections_analytiques_2.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_3 ON AXE3 = t_sections_analytiques_3.code_original AND t_sections_analytiques_3.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_4 ON AXE4 = t_sections_analytiques_4.code_original AND t_sections_analytiques_4.oid <> 0 + LEFT JOIN compta.t_sections_analytiques t_sections_analytiques_5 ON AXE5 = t_sections_analytiques_5.code_original AND t_sections_analytiques_5.oid <> 0 + LEFT JOIN compta.t_partenaires ON NCPTPART = t_partenaires.code_original AND t_partenaires.oid <> 0 + WHERE oid_GEC = 0 + ; + + + 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'); + + + + ]]> + + + + + + + + + + + + + + + + + + + + = '2014' AND NCPT BETWEEN '1' AND '9' + GROUP BY 1,2,3 + ; + + INSERT INTO compta.p_chiffrier_comptable + ( + mois_comptable, + site_id, + clinique_honoraire, + montant_debit, + montant_credit + ) + SELECT + (EXER||to_char(mois,'FM00'))::numeric AS mois_comptable, + COALESCE(t_sites.oid,0) AS site_id, + 'C'::text AS clinique_honoraire, + SUM( + CASE mois + WHEN 01 THEN D1AN+D101 + WHEN 02 THEN D102 + WHEN 03 THEN D103 + WHEN 04 THEN D104 + WHEN 05 THEN D105 + WHEN 06 THEN D106 + WHEN 07 THEN D107 + WHEN 08 THEN D108 + WHEN 09 THEN D109 + WHEN 10 THEN D110 + WHEN 11 THEN D111 + WHEN 12 THEN D112 + END + ), + SUM( + CASE mois + WHEN 01 THEN C1AN+C101 + WHEN 02 THEN C102 + WHEN 03 THEN C103 + WHEN 04 THEN C104 + WHEN 05 THEN C105 + WHEN 06 THEN C106 + WHEN 07 THEN C107 + WHEN 08 THEN C108 + WHEN 09 THEN C109 + WHEN 10 THEN C110 + WHEN 11 THEN C111 + WHEN 12 THEN C112 + END + ) + FROM prod_talentia_finance.IFTW2FGHM_ZHGLD + JOIN + ( + SELECT generate_series AS mois FROM generate_series(1,12) + ) subview ON 1=1 + LEFT JOIN compta.t_sites ON (CSTE||ETAB) = t_sites.code_original + WHERE EXER >= '2014' AND NCPT BETWEEN '1' AND '9' + GROUP BY 1,2,3 + ; + + + + TRUNCATE compta.p_chiffrier_comptable_compte; + + INSERT INTO compta.p_chiffrier_comptable_compte + ( + mois_comptable, + compte_id, + site_id, + clinique_honoraire, + montant_debit, + montant_credit + ) + SELECT + (EXER||to_char(mois,'FM00'))::numeric AS mois_comptable, + COALESCE(t_comptes.oid,0) AS compte_id, + COALESCE(t_sites.oid,0) AS site_id, + 'C'::text AS clinique_honoraire, + SUM( + CASE mois + WHEN 01 THEN D1AN+D101 + WHEN 02 THEN D102 + WHEN 03 THEN D103 + WHEN 04 THEN D104 + WHEN 05 THEN D105 + WHEN 06 THEN D106 + WHEN 07 THEN D107 + WHEN 08 THEN D108 + WHEN 09 THEN D109 + WHEN 10 THEN D110 + WHEN 11 THEN D111 + WHEN 12 THEN D112 + END + ), + SUM( + CASE mois + WHEN 01 THEN C1AN+C101 + WHEN 02 THEN C102 + WHEN 03 THEN C103 + WHEN 04 THEN C104 + WHEN 05 THEN C105 + WHEN 06 THEN C106 + WHEN 07 THEN C107 + WHEN 08 THEN C108 + WHEN 09 THEN C109 + WHEN 10 THEN C110 + WHEN 11 THEN C111 + WHEN 12 THEN C112 + END + ) + FROM prod_talentia_finance.IFTW2FGHM_ZZGLD + JOIN + ( + SELECT generate_series AS mois FROM generate_series(1,12) + ) subview ON 1=1 + LEFT JOIN compta.t_sites ON (CSTE||ETAB) = t_sites.code_original + LEFT JOIN compta.t_comptes ON NCPT = t_comptes.numero + WHERE EXER >= '2014' AND NCPT BETWEEN '1' AND '9' + GROUP BY 1,2,3 + ; + + INSERT INTO compta.p_chiffrier_comptable_compte + ( + mois_comptable, + compte_id, + site_id, + clinique_honoraire, + montant_debit, + montant_credit + ) + SELECT + (EXER||to_char(mois,'FM00'))::numeric AS mois_comptable, + COALESCE(t_comptes.oid,0) AS compte_id, + COALESCE(t_sites.oid,0) AS site_id, + 'C'::text AS clinique_honoraire, + SUM( + CASE mois + WHEN 01 THEN D1AN+D101 + WHEN 02 THEN D102 + WHEN 03 THEN D103 + WHEN 04 THEN D104 + WHEN 05 THEN D105 + WHEN 06 THEN D106 + WHEN 07 THEN D107 + WHEN 08 THEN D108 + WHEN 09 THEN D109 + WHEN 10 THEN D110 + WHEN 11 THEN D111 + WHEN 12 THEN D112 + END + ), + SUM( + CASE mois + WHEN 01 THEN C1AN+C101 + WHEN 02 THEN C102 + WHEN 03 THEN C103 + WHEN 04 THEN C104 + WHEN 05 THEN C105 + WHEN 06 THEN C106 + WHEN 07 THEN C107 + WHEN 08 THEN C108 + WHEN 09 THEN C109 + WHEN 10 THEN C110 + WHEN 11 THEN C111 + WHEN 12 THEN C112 + END + ) + FROM prod_talentia_finance.IFTW2FGHM_ZHGLD + JOIN + ( + SELECT generate_series AS mois FROM generate_series(1,12) + ) subview ON 1=1 + LEFT JOIN compta.t_sites ON (CSTE||ETAB) = t_sites.code_original + LEFT JOIN compta.t_comptes ON NCPT = t_comptes.numero + WHERE EXER >= '2014' AND NCPT BETWEEN '1' AND '9' + GROUP BY 1,2,3 + ; + + ]]> + + + + + + + + + + 'RESULT' AND ZZPOR.JRNR <> '' + ; + + UPDATE w_ZZGEC + SET DTCT = subview.DTCT, + JRNR = 'AN' + FROM + ( + SELECT MIN(DTCT) AS DTCT + FROM w_ZZGEC + WHERE source = 'ZZGEC' AND + JRNR <> 'AN' AND + CPTC LIKE '6%' + ) subview + WHERE w_ZZGEC.source = 'ZZGEC' AND + w_ZZGEC.DTEC < subview.DTCT + ; + + + + INSERT INTO w_ZZGEC + SELECT + nextval('s_ZZGEC'::regclass) AS oid, + 'ZHGEC'::text AS source, + ZZGEC.CSTE, + ZZGEC.ETAB, + ZZGEC.CORI, + ZZPOR.JRNR, + ZZGEC.CORI AS JRNRCORI, + DNOR, + NPIE, + LECR, + SENS, + DTCT AS DTEC, + DTCT, + ZZGEC.CSTE||ZZGEC.ETAB AS ETAB_CTI, + CASE WHEN NCPT = CPTC THEN CPTC ELSE CPTC || '-' || NCPT END AS NCPT_CTI, + NCPT, + CASE WHEN NCPT = CPTC THEN '' ELSE NCPT END AS NCPTPART, + CPTC, + CONT AS CONT_CTI, + CONT, + CONT AS CCTC, + CASE WHEN SENS = 'C' THEN MON1 ELSE 0 END AS MON1_C, + CASE WHEN SENS = 'D' THEN MON1 ELSE 0 END AS MON1_D + FROM prod_talentia_finance.IFTW2FGHM_ZHGEC ZZGEC + JOIN prod_talentia_finance.IFTW2FGHM_ZZPOR ZZPOR ON + ZZGEC.CORI = ZZPOR.CORI + WHERE JRNR <> '' AND ZZGEC.CORI <> 'RESULT' AND ZZGEC.CORI <> 'ANOUV' AND + DTCT >= 20140101 AND ZZPOR.JRNR <> '' + ; + + INSERT INTO w_ZZGEC + SELECT + nextval('s_ZZGEC'::regclass) AS oid, + 'ZHGLG'::text AS source, + ZZGEC.CSTE, + ZZGEC.ETAB, + 'ANOUV' AS CORI, + 'AN' AS JRNR, + 'AN' AS JRNRCORI, + 0 AS DNOR, + '' AS NPIE, + 'A NOUVEAUX' AS LECR, + 'D' AS SENS, + (EXER||'0101')::numeric AS DTEC, + (EXER||'0101')::numeric AS DTCT, + ZZGEC.CSTE||ZZGEC.ETAB AS ETAB_CTI, + CASE WHEN NCPT = CPTC THEN CPTC ELSE CPTC || '-' || NCPT END AS NCPT_CTI, + NCPT, + '' AS NCPTPART, + CPTC, + '' AS CONT_CTI, + '', + '' AS CCTC, + 0 AS MON1_C, + D1AN AS MON1_D + FROM prod_talentia_finance.IFTW2FGHM_ZHGLD ZZGEC + WHERE D1AN <> 0 AND + NCPT = CPTC AND + EXER >= '2014' + ; + + INSERT INTO w_ZZGEC + SELECT + nextval('s_ZZGEC'::regclass) AS oid, + 'ZHGLG'::text AS source, + ZZGEC.CSTE, + ZZGEC.ETAB, + 'ANOUV' AS CORI, + 'AN' AS JRNR, + 'AN' AS JRNRCORI, + 0 AS DNOR, + '' AS NPIE, + 'A NOUVEAUX' AS LECR, + 'C' AS SENS, + (EXER||'0101')::numeric AS DTEC, + (EXER||'0101')::numeric AS DTCT, + ZZGEC.CSTE||ZZGEC.ETAB AS ETAB_CTI, + CASE WHEN NCPT = CPTC THEN CPTC ELSE CPTC || '-' || NCPT END AS NCPT_CTI, + NCPT, + '' AS NCPTPART, + CPTC, + '' AS CONT_CTI, + '', + '' AS CCTC, + C1AN AS MON1_C, + 0 AS MON1_D + FROM prod_talentia_finance.IFTW2FGHM_ZHGLD ZZGEC + WHERE C1AN <> 0 AND + NCPT = CPTC AND + EXER >= '2014' + ; + + UPDATE w_ZZGEC + SET CCTC = subview.CPTC + FROM + ( + SELECT NCPT, (MAX(Array[to_char(nb,'FM000000000000'), CPTC]))[2] AS CPTC + FROM + ( + SELECT NCPT, CPTC, count(*) AS nb + FROM w_ZZGEC + GROUP BY 1,2 + ) subview + GROUP BY 1 + ) subview + WHERE w_ZZGEC.CONT <> '' AND + w_ZZGEC.CONT = subview.NCPT + ; + + UPDATE w_ZZGEC + SET JRNRCORI = 'AN' + WHERE JRNR = 'AN' + ; + + ANALYSE w_ZZGEC; + + + + + + DROP TABLE IF EXISTS w_ZZGEA; + CREATE TEMP TABLE w_ZZGEA AS + SELECT + 'ZZGEC'::text AS source, + 0::bigint AS oid_GEC, + ZZGEA.CSTE, + ZZGEA.ETAB, + ZZGEA.CORI, + ZZPOR.JRNR, + ZZGEA.CORI AS JRNRCORI, + DNOR, + NPIE, + LECR, + SENS, + DTCT AS DTEC, + DTCT, + ZZGEA.CSTE||ZZGEA.ETAB AS ETAB_CTI, + CASE WHEN NCPT = CPTC THEN CPTC ELSE CPTC || '-' || NCPT END AS NCPT_CTI, + NCPT, + CASE WHEN NCPT = CPTC THEN '' ELSE NCPT END AS NCPTPART, + CPTC, + ''::text AS CONT_CTI, + ''::text AS CONT, + ''::text AS CCTC, + CASE WHEN AXE0 <> '' THEN AXE0||'-0' ELSE '' END AS AXE0, + CASE WHEN AXE1 <> '' THEN AXE1||'-1' ELSE '' END AS AXE1, + CASE WHEN AXE2 <> '' THEN AXE2||'-2' ELSE '' END AS AXE2, + CASE WHEN AXE3 <> '' THEN AXE3||'-3' ELSE '' END AS AXE3, + CASE WHEN AXE4 <> '' THEN AXE4||'-4' ELSE '' END AS AXE4, + CASE WHEN AXE5 <> '' THEN AXE5||'-5' ELSE '' END AS AXE5, + CASE WHEN AXE6 <> '' THEN AXE6||'-6' ELSE '' END AS AXE6, + CASE WHEN AXE7 <> '' THEN AXE7||'-7' ELSE '' END AS AXE7, + CASE WHEN AXE8 <> '' THEN AXE8||'-8' ELSE '' END AS AXE8, + CASE WHEN AXE9 <> '' THEN AXE9||'-9' ELSE '' END AS AXE9, + CASE WHEN SENS = 'C' THEN MOA1 ELSE 0 END AS MOA1_C, + CASE WHEN SENS = 'D' THEN MOA1 ELSE 0 END AS MOA1_D + FROM prod_talentia_finance.IFTW2FGHM_ZZGEA ZZGEA + JOIN prod_talentia_finance.IFTW2FGHM_ZZPOR ZZPOR ON + ZZGEA.CORI = ZZPOR.CORI + ; + + INSERT INTO w_ZZGEA + SELECT + 'ZHGEC'::text AS source, + 0::bigint AS oid_GEC, + ZZGEA.CSTE, + ZZGEA.ETAB, + ZZGEA.CORI, + ZZPOR.JRNR, + ZZGEA.CORI AS JRNRCORI, + DNOR, + NPIE, + LECR, + SENS, + DTCT AS DTEC, + DTCT, + ZZGEA.CSTE||ZZGEA.ETAB AS ETAB_CTI, + CASE WHEN NCPT = CPTC THEN CPTC ELSE CPTC || '-' || NCPT END AS NCPT_CTI, + NCPT, + CASE WHEN NCPT = CPTC THEN '' ELSE NCPT END AS NCPTPART, + CPTC, + ''::text AS CONT_CTI, + ''::text AS CONT, + ''::text AS CCTC, + CASE WHEN AXE0 <> '' THEN AXE0||'-0' ELSE '' END AS AXE0, + CASE WHEN AXE1 <> '' THEN AXE1||'-1' ELSE '' END AS AXE1, + CASE WHEN AXE2 <> '' THEN AXE2||'-2' ELSE '' END AS AXE2, + CASE WHEN AXE3 <> '' THEN AXE3||'-3' ELSE '' END AS AXE3, + CASE WHEN AXE4 <> '' THEN AXE4||'-4' ELSE '' END AS AXE4, + CASE WHEN AXE5 <> '' THEN AXE5||'-5' ELSE '' END AS AXE5, + CASE WHEN AXE6 <> '' THEN AXE6||'-6' ELSE '' END AS AXE6, + CASE WHEN AXE7 <> '' THEN AXE7||'-7' ELSE '' END AS AXE7, + CASE WHEN AXE8 <> '' THEN AXE8||'-8' ELSE '' END AS AXE8, + CASE WHEN AXE9 <> '' THEN AXE9||'-9' ELSE '' END AS AXE9, + CASE WHEN SENS = 'C' THEN MOA1 ELSE 0 END AS MOA1_C, + CASE WHEN SENS = 'D' THEN MOA1 ELSE 0 END AS MOA1_D + FROM prod_talentia_finance.IFTW2FGHM_ZHGEA ZZGEA + JOIN prod_talentia_finance.IFTW2FGHM_ZZPOR ZZPOR ON + ZZGEA.CORI = ZZPOR.CORI + WHERE DTCT >= 20140101 + ; + + + + DROP TABLE IF EXISTS w_ZZGEA_GEC; + CREATE TEMP TABLE w_ZZGEA_GEC AS + SELECT source, CSTE, ETAB, NPIE, DNOR, CPTC, DTCT, + 0::bigint AS oid_GEC, + SUM(MOA1_C) AS MOA1_C, + SUM(MOA1_D) AS MOA1_D + FROM w_ZZGEA + GROUP BY 1,2,3,4,5,6,7 + ORDER BY 1,2,3,4,5,6,7 + ; + + ANALYSE w_ZZGEA_GEC; + + + UPDATE w_ZZGEA ZZGEA + SET oid_GEC = subview.oid_GEC + FROM + ( + SELECT ZZGEA.source, ZZGEA.CSTE, ZZGEA.ETAB, ZZGEA.NPIE, ZZGEA.DNOR, ZZGEA.DTCT, ZZGEA.CPTC, MAX(ZZGEC.oid) AS oid_GEC + FROM w_ZZGEA_GEC ZZGEA + JOIN w_ZZGEC ZZGEC ON + ZZGEA.source = ZZGEC.source AND + ZZGEA.CSTE = ZZGEC.CSTE AND + ZZGEA.ETAB = ZZGEC.ETAB AND + ZZGEA.CPTC = ZZGEC.CPTC AND + ZZGEA.DTCT = ZZGEC.DTCT AND + ZZGEA.NPIE = ZZGEC.NPIE AND + ZZGEA.DNOR = ZZGEC.DNOR + WHERE MON1_C - MON1_D = MOA1_C - MOA1_D + GROUP BY 1,2,3,4,5,6,7 + HAVING count(*) = 1 + ) subview + WHERE ZZGEA.source = subview.source AND + ZZGEA.CSTE = subview.CSTE AND + ZZGEA.ETAB = subview.ETAB AND + ZZGEA.CPTC = subview.CPTC AND + ZZGEA.DTCT = subview.DTCT AND + ZZGEA.NPIE = subview.NPIE AND + ZZGEA.DNOR = subview.DNOR + ; + + + + + + + + DROP TABLE IF EXISTS w_ZZGEA_GEC; + CREATE TEMP TABLE w_ZZGEA_GEC AS + SELECT source, CSTE, ETAB, NPIE, CORI, DNOR, CPTC, DTCT, + 0::bigint AS oid_GEC, + SUM(MOA1_C) AS MOA1_C, + SUM(MOA1_D) AS MOA1_D + FROM w_ZZGEA + WHERE oid_GEC = 0 + GROUP BY 1,2,3,4,5,6,7,8 + ORDER BY 1,2,3,4,5,6,7,8 + ; + + ANALYSE w_ZZGEA_GEC; + + + UPDATE w_ZZGEA ZZGEA + SET oid_GEC = subview.oid_GEC + FROM + ( + SELECT ZZGEA.source, ZZGEA.CSTE, ZZGEA.ETAB, ZZGEA.CORI, ZZGEA.NPIE, ZZGEA.DNOR, ZZGEA.DTCT, ZZGEA.CPTC, MAX(ZZGEC.oid) AS oid_GEC + FROM w_ZZGEA_GEC ZZGEA + JOIN w_ZZGEC ZZGEC ON + ZZGEA.source = ZZGEC.source AND + ZZGEA.CSTE = ZZGEC.CSTE AND + ZZGEA.ETAB = ZZGEC.ETAB AND + ZZGEA.CPTC = ZZGEC.CPTC AND + ZZGEA.CORI = ZZGEC.CORI AND + ZZGEA.DTCT = ZZGEC.DTCT AND + ZZGEA.NPIE = ZZGEC.NPIE AND + ZZGEA.DNOR = ZZGEC.DNOR + WHERE MON1_C - MON1_D = MOA1_C - MOA1_D + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) = 1 + ) subview + WHERE ZZGEA.source = subview.source AND + ZZGEA.CSTE = subview.CSTE AND + ZZGEA.ETAB = subview.ETAB AND + ZZGEA.CPTC = subview.CPTC AND + ZZGEA.CORI = subview.CORI AND + ZZGEA.DTCT = subview.DTCT AND + ZZGEA.NPIE = subview.NPIE AND + ZZGEA.DNOR = subview.DNOR + ; + + + UPDATE w_ZZGEA ZZGEA + SET SENS = ZZGEC.SENS, + MOA1_C = 0-MOA1_D, + MOA1_D = 0-MOA1_C + FROM w_ZZGEC ZZGEC + WHERE zzGEA.oid_GEC = zzGEC.oid AND + ZZGEC.sens <> ZZGEA.SENS + ; + ]]> + + + + + oid AND partenaire_id = 0; + + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + NCPT_CTI AS numero, + MAX(ZZGPC.LCPT || ' - ' || ZZTPC.LCPT) AS texte, + MAX(t_comptes.oid) AS compte_general_id, + 'C' AS clinique_honoraire, + '0' AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra + FROM + ( + SELECT ZZGEC.NCPT_CTI, CPTC, NCPT + FROM w_ZZGEC ZZGEC + WHERE NCPT <> CPTC + GROUP BY 1,2,3 + ) subview + JOIN prod_talentia_finance.IFTW2FGHM_ZZGPC ZZGPC ON subview.CPTC = ZZGPC.NCPT + JOIN w_ZZTPC ZZTPC ON subview.NCPT = ZZTPC.NCPT + JOIN compta.t_types_compta ON ZZTPC.TYPT_CTI = t_types_compta.code_original + JOIN compta.t_comptes ON CPTC = t_comptes.numero + WHERE NCPT_CTI NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ORDER BY 2 + ; + + + + ]]> + + + + + + + + + + + + + + + + + + diff --git a/import_compta/iCTI_import_compta_TALENTIA_FINANCE_CSV.XML b/import_compta/iCTI_import_compta_TALENTIA_FINANCE_CSV.XML new file mode 100644 index 0000000..2982d15 --- /dev/null +++ b/import_compta/iCTI_import_compta_TALENTIA_FINANCE_CSV.XML @@ -0,0 +1,664 @@ + + + + + + + + + + + + + '' THEN ecr_ana.fk_axe0 || '-0' ELSE '' END AS analytique_0_code, + CASE WHEN ecr_ana.fk_axe1 <> '' THEN ecr_ana.fk_axe1 || '-1' ELSE '' END AS analytique_1_code, + CASE WHEN ecr_ana.fk_axe2 <> '' THEN ecr_ana.fk_axe2 || '-2' ELSE '' END AS analytique_2_code, + CASE WHEN ecr_ana.fk_axe3 <> '' THEN ecr_ana.fk_axe3 || '-3' ELSE '' END AS analytique_3_code, + CASE WHEN ecr_ana.fk_axe4 <> '' THEN ecr_ana.fk_axe4 || '-4' ELSE '' END AS analytique_4_code, + CASE WHEN ecr_ana.fk_axe5 <> '' THEN ecr_ana.fk_axe5 || '-5' ELSE '' END AS analytique_5_code + FROM prod_talentia_finance_csv.fi_gen_ecriture_gene AS ecr_gen + LEFT JOIN prod_talentia_finance_csv.fi_gen_ecriture_analytique AS ecr_ana ON ecr_ana.ecriture_gene_id = ecr_gen.id + WHERE ecr_gen.date_comptable::date >= '[ENV_COMPTA_ANNEEDEBUT]0101' + ; + + UPDATE w_ecritures_generales + SET cti_compte_contrepartie_numero = subview.CPTC + FROM + ( + SELECT compte_numero, (MAX(Array[to_char(nb,'FM000000000000'), centralisateur_code]))[2] AS CPTC + FROM + ( + SELECT compte_numero, centralisateur_code, count(*) AS nb + FROM w_ecritures_generales + GROUP BY 1,2 + ORDER BY 1,2,3 + ) subview + GROUP BY 1 + ) subview + WHERE w_ecritures_generales.compte_contrepartie_numero <> '' AND + w_ecritures_generales.compte_contrepartie_numero = subview.compte_numero + ; + + -- Ecritures analytiques + DROP TABLE IF EXISTS w_ecritures_analytiques + ; + + CREATE TEMP TABLE w_ecritures_analytiques AS + SELECT + ufk_numero_ordre AS ordre_numero, + fk_numero_piece AS piece_numero, + fk_societe AS societe_code, + fk_etablissement AS etablissement_code, + fk_societe|| fk_etablissement AS site_code, + fk_compte AS compte_numero, + fk_centralisateur AS centralisateur_code, + CASE WHEN fk_centralisateur = fk_compte THEN fk_compte ELSE fk_centralisateur || '-' || fk_compte END AS cti_compte_numero, + date_comptable::date AS date_ecriture, + substr(to_char(date_comptable::date, 'YYYYMM'), 1, 4) AS exercice_comptable, + substr(to_char(date_comptable::date, 'YYYYMM'), 1, 6) AS mois_comptable, + 'C'::text AS clinique_honoraire, + fk_origine AS journal_code, + CASE WHEN fk_centralisateur = fk_compte THEN '' ELSE fk_compte END AS partenaire_code, + '0'::text AS comptabilisee, + '0'::text AS fin_exercice, + '0'::text AS ajustement, + '0'::text AS inter_site, + fk_origine || '-' || fk_numero_piece || '-' || ufk_numero_ordre AS cle_originale, + fk_origine || '-' || fk_numero_piece || '-' || ufk_numero_ordre AS identifiant_operation, + '0'::text AS compte_contrepartie_numero, + '0'::text AS cti_compte_contrepartie_numero, + '2099-12-31'::date AS date_facture_fournisseur, + ''::text AS dossier, + '2099-12-31'::date AS date_echeance, + 0::bigint AS journal_paiement_id, + 0::bigint AS mode_paiement_id, + ''::text AS numero_cheque, + -- Ecritures analytiques + libelle_ecriture AS texte, + CASE WHEN sens = '-1' THEN montant_ana_monnaie1::numeric ELSE 0::numeric END AS montant_credit, + CASE WHEN sens = '1' THEN montant_ana_monnaie1::numeric ELSE 0::numeric END AS montant_debit, + CASE WHEN fk_axe0 <> '' THEN fk_axe0 || '-0' ELSE '' END AS analytique_0_code, + CASE WHEN fk_axe1 <> '' THEN fk_axe1 || '-1' ELSE '' END AS analytique_1_code, + CASE WHEN fk_axe2 <> '' THEN fk_axe2 || '-2' ELSE '' END AS analytique_2_code, + CASE WHEN fk_axe3 <> '' THEN fk_axe3 || '-3' ELSE '' END AS analytique_3_code, + CASE WHEN fk_axe4 <> '' THEN fk_axe4 || '-4' ELSE '' END AS analytique_4_code, + CASE WHEN fk_axe5 <> '' THEN fk_axe5 || '-5' ELSE '' END AS analytique_5_code + FROM prod_talentia_finance_csv.fi_gen_ecriture_analytique + WHERE + ecriture_gene_id IS NULL + AND date_comptable::date >= '[ENV_COMPTA_ANNEEDEBUT]0101' + ; + + -- Regroupement de toutes les écritures comptables + DROP TABLE IF EXISTS w_ecritures + ; + + CREATE TEMP TABLE w_ecritures AS + SELECT * + FROM w_ecritures_generales + ; + + INSERT INTO w_ecritures SELECT * FROM w_ecritures_analytiques + ; + + + ]]> + + + + + + + + + + + + + + = '[ENV_COMPTA_ANNEEDEBUT]01' + ; + + ]]> + + + = '[ENV_COMPTA_ANNEEDEBUT]01' + ; + + ]]> + + + + + + + + + + + oid AND partenaire_id = 0; + + -- Comptes des tiers + INSERT INTO compta.t_comptes( + type_compta_id, numero, texte, compte_general_id, clinique_honoraire, + banque, collectif, type_compta_extra_id, numero_extra) + with comptes_prestataires_ecritures AS ( + SELECT + CASE WHEN fk_centralisateur = fk_compte THEN fk_compte ELSE fk_centralisateur || '-' || fk_compte END AS cti_compte_numero, + fk_centralisateur AS centralisateur_code, -- CPTC + fk_compte AS compte_numero -- NCPT + FROM prod_talentia_finance_csv.fi_gen_ecriture_gene + WHERE fk_compte <> fk_centralisateur + GROUP BY 1,2,3 + ) + SELECT + COALESCE(t_types_compta.oid,0) AS type_compta_id, + comptes_prestataires_ecritures.cti_compte_numero, + MAX(fi_gen_plan_comptable.lib_compte || ' - ' || w_comptes_tiers.compte_texte) AS texte, + MAX(t_comptes.oid) AS compte_general_id, + 'C' AS clinique_honoraire, + '0' AS banque, + '0' AS collectif, + 0 AS type_compta_extra_id, + '' AS numero_extra + FROM comptes_prestataires_ecritures + JOIN prod_talentia_finance_csv.fi_gen_plan_comptable ON fi_gen_plan_comptable.uk_numero_compte = comptes_prestataires_ecritures.centralisateur_code + JOIN w_comptes_tiers ON w_comptes_tiers.compte_numero = comptes_prestataires_ecritures.compte_numero + JOIN compta.t_types_compta ON w_comptes_tiers.cti_type_compte = t_types_compta.code_original + JOIN compta.t_comptes ON centralisateur_code = t_comptes.numero + WHERE comptes_prestataires_ecritures.cti_compte_numero NOT IN (SELECT numero FROM compta.t_comptes WHERE numero IS NOT NULL) + GROUP BY 1,2 + ; + + ]]> + + + + + \ No newline at end of file diff --git a/php/COMPTA_getTableRecords.php b/php/COMPTA_getTableRecords.php new file mode 100644 index 0000000..a0f1913 --- /dev/null +++ b/php/COMPTA_getTableRecords.php @@ -0,0 +1,1561 @@ +"; +$httpString = $httpString . "\n"; + +if ($tableName == "t_sites") { + $httpString = $httpString . getCombo_finess(); + $httpString = $httpString . getRecords_sites(); +} +if ($tableName == "t_journaux") { + $httpString = $httpString . getRecords_journaux(); +} +if ($tableName == "t_types_compta") { + $httpString = $httpString . getRecords_types_compta(); +} +if ($tableName == "t_classes_comptes") { + $httpString = $httpString . getRecords_classes_comptes(); +} +if ($tableName == "t_comptes") { + $httpString = $httpString . getRecords_comptes(); + if ($getOption != "refresh") { + $httpString = $httpString . getCombo_types_compta(); + } +} +if ($tableName == "t_comptes_extra") { + $httpString = $httpString . getRecords_comptes_extra(); +} +if ($tableName == "t_partenaires") { + $httpString = $httpString . getRecords_partenaires(); +} +if ($tableName == "t_ecritures_ajustement") { + $httpString = $httpString . getRecords_ecritures_ajustement(); + if ($getOption != "refresh") { + $httpString = $httpString . getCombo_sites(); + $httpString = $httpString . getCombo_journaux(); + $httpString = $httpString . getCombo_sections(); + $httpString = $httpString . getCombo_comptes(); + $httpString = $httpString . getCombo_mois(); + } +} +if ($tableName == "t_budget") { + $httpString = $httpString . getRecords_budget(); + if ($getOption != "refresh") { + $httpString = $httpString . getCombo_sites(); + } +} +if ($tableName == "t_divers") { + $httpString .= getRecords_divers(); +} + + +$httpString = $httpString . "\n"; + + +$httpString = compress64($httpString); + +echo "$httpString"; + + + + +function getRecords_journaux() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT oid, code, texte, code_original, clinique_honoraire, a_nouveaux, "; + $sqlcmd = $sqlcmd . "subview.count "; + $sqlcmd = $sqlcmd . "FROM compta.t_journaux "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT journal_id, sum(nombre_ecritures) as count "; + $sqlcmd = $sqlcmd . "FROM compta.p_historique_ecritures_total "; + $sqlcmd = $sqlcmd . "GROUP BY journal_id) subview "; + $sqlcmd = $sqlcmd . "ON (t_journaux.oid = subview.journal_id) "; + $sqlcmd = $sqlcmd . "WHERE oid > 0 AND subview.count > 0 ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $code_original = toHTML(trim($record[3])); + $clinique_honoraire = toHTML(trim($record[4])); + $a_nouveaux = toHTML(trim($record[5])); + $nbref = $record[6] + 0; + + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + +function getRecords_sites() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT t_sites.oid, + t_sites.code, + t_sites.texte, + t_sites.code_original, + t_sites.clinique_honoraire, + COALESCE(t_sites.finess_id,0), + COALESCE(t_finess.code || ' ' || t_finess.texte,''), + subview.count + FROM compta.t_sites + LEFT JOIN base.t_finess ON finess_id = t_finess.oid + LEFT JOIN + (SELECT site_id, SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + WHERE site_id > 0 + GROUP BY site_id) subview + ON (t_sites.oid = subview.site_id) + WHERE t_sites.oid > 0 AND + subview.count > 0 + ORDER BY t_sites.code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $code_original = toHTML(trim($record[3])); + $clinique_honoraire = toHTML(trim($record[4])); + $finess_id = toHTML(trim($record[5])); + $finess_texte = toHTML(trim($record[6])); + + $nbref = $record[7] + 0; + + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + + + +function getRecords_types_compta() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT oid, code, texte, code_original, "; + $sqlcmd = $sqlcmd . "subview.count "; + $sqlcmd = $sqlcmd . "FROM compta.t_types_compta "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT type_compta_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY type_compta_id) subview "; + $sqlcmd = $sqlcmd . "ON (t_types_compta.oid = subview.type_compta_id) "; + $sqlcmd = $sqlcmd . "WHERE oid > 0 AND subview.count > 0 ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $code_original = toHTML(trim($record[3])); + $nbref = $record[4] + 0; + + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + + + +function getRecords_classes_comptes() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT oid, code, texte, clinique, honoraire, "; + $sqlcmd = $sqlcmd . "CASE WHEN subview_1.count IS NOT null THEN subview_1.count "; + $sqlcmd = $sqlcmd . "WHEN subview_2.count IS NOT null THEN subview_2.count "; + $sqlcmd = $sqlcmd . "WHEN subview_3.count IS NOT null THEN subview_3.count "; + $sqlcmd = $sqlcmd . "WHEN subview_4.count IS NOT null THEN subview_4.count "; + $sqlcmd = $sqlcmd . "WHEN subview_5.count IS NOT null THEN subview_5.count "; + $sqlcmd = $sqlcmd . "WHEN subview_6.count IS NOT null THEN subview_6.count "; + $sqlcmd = $sqlcmd . "ELSE 0 "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "FROM compta.t_classes_comptes "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_1_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_1_id) subview_1 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_1.classe_1_id) "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_2_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_2_id) subview_2 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_2.classe_2_id) "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_3_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_3_id) subview_3 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_3.classe_3_id) "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_4_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_4_id) subview_4 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_4.classe_4_id) "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_5_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_5_id) subview_5 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_5.classe_5_id) "; + $sqlcmd = $sqlcmd . "LEFT JOIN "; + $sqlcmd = $sqlcmd . "(SELECT classe_6_id, count(*) as count "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes "; + $sqlcmd = $sqlcmd . "GROUP BY classe_6_id) subview_6 "; + $sqlcmd = $sqlcmd . "ON (t_classes_comptes.oid = subview_6.classe_6_id) "; + $sqlcmd = $sqlcmd . "WHERE oid > 0 ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $clinique = toHTML(trim($record[3])); + $honoraire = toHTML(trim($record[4])); + $nbref = $record[5] + 0; + + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + + +function getRecords_comptes() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT oid, numero, texte, clinique_honoraire, banque, solde_initial, inter_site, + collectif, type_compta_extra_id, numero_extra, texte_extra, + subview.count + FROM compta.t_comptes + JOIN + (SELECT COALESCE(compte_nonsigne_id,compte_id) AS compte_id, sum(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + JOIN compta.t_comptes ON compte_id = t_comptes.oid + GROUP BY 1) subview + ON t_comptes.oid = subview.compte_id + WHERE oid > 0 and oid = compte_general_id + ORDER BY numero"; + $result = $database->exec($sqlcmd); + + $httpString_tmp = ""; + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $numero = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $clinique_honoraire = toHTML(trim($record[3])); + $banque = toHTML(trim($record[4])); + $solde_initial = toHTML(trim($record[5])); + $inter_site = toHTML(trim($record[6])); + $collectif = toHTML(trim($record[7])); + $type_compta_extra_id = $record[8] + 0; + $numero_extra = toHTML(trim($record[9])); + $texte_extra = toHTML(trim($record[10])); + $nbref = $record[11] + 0; + + $comment = ""; + if ($banque == "1") { + $comment = "BANQUE "; + } + if ($collectif == "1") { + $comment = "COLLECTIF "; + } + if ($inter_site == "1") { + $comment = $comment . "INTER-SITE "; + } + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + + } + + $httpString = "$httpString$httpString_tmp"; + + return $httpString; + + + +} + +function getRecords_comptes_extra() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT t_comptes.oid, t_comptes.numero, t_comptes.texte, t_comptes.clinique_honoraire, + t_types_compta.texte, inter_site, + subview.count + FROM compta.t_comptes + LEFT JOIN + (SELECT compte_extra_id, SUM(nombre_ecritures) as count + FROM compta.p_historique_ecritures_total + GROUP BY compte_extra_id) subview + ON (t_comptes.oid = subview.compte_extra_id) + , compta.t_types_compta + WHERE t_comptes.oid > 0 and t_comptes.oid <> t_comptes.compte_general_id + AND t_comptes.type_compta_id = t_types_compta.oid + AND subview.count > 0 + ORDER BY t_comptes.numero"; + $result = $database->exec($sqlcmd); + + $httpString_tmp = ""; + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $numero = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $clinique_honoraire = toHTML(trim($record[3])); + $type_compta = toHTML(trim($record[4])); + $inter_site = toHTML(trim($record[5])); + $nbref = $record[6] + 0; + + $comment = ""; + if ($banque == "1") { + $comment = "BANQUE"; + } + if ($inter_site == "1") { + $comment = "INTER-SITE"; + } + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + + } + + $httpString = "$httpString$httpString_tmp"; + + return $httpString; + + + +} + +function getRecords_partenaires() { + +global $database; + + $httpString = ""; + + + $sqlcmd = "SELECT oid, code, texte, texte_court, code_original, intra_groupe, + subview.comptes, subview.count + FROM compta.t_partenaires + LEFT JOIN + (SELECT partenaire_id, SUM(nombre_ecritures) as count, base.cti_group_concat(DISTINCT compte_numero || ' ' || SUBSTR(compte_texte, 1 , 15)) as comptes + FROM compta.v_historique_ecritures_total_1 + GROUP BY partenaire_id) subview + ON (t_partenaires.oid = subview.partenaire_id) + WHERE oid > 0 AND subview.count > 0 ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $texte_court = toHTML(trim($record[3])); + $code_original = toHTML(trim($record[4])); + $intra_groupe = toHTML(trim($record[5])); + $comptes = toHTML(trim($record[6])); + $nbref = $record[5] + 0; + + $comment = ""; + if ($intra_groupe == "1") { + $comment = "INTRA-GROUPE"; + } + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + + +function getRecords_ecritures_ajustement() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + $sqlcmd = " + DROP TABLE IF EXISTS w_calendrier_mois; + CREATE TEMP TABLE w_calendrier_mois AS + SELECT p_calendrier_mois.mois, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (0) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_1, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (1,89) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_2, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (2,90) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_3, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (3,91) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_4, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (4,92) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_5, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (5,93) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_6, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (6,94) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_7, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (7,95) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_8, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (8,96) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_9, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (9,97) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_10, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (10,98) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_11, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (11,99) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_12 + FROM base.p_calendrier_mois + JOIN base.p_calendrier_mois p_calendrier_mois_exercice ON p_calendrier_mois_exercice.exercice_comptable = p_calendrier_mois.exercice_comptable + WHERE p_calendrier_mois.exercice_comptable IN (SELECT DISTINCT exercice_comptable FROM compta.p_mois_comptables) + GROUP BY 1 + ORDER BY 1"; + $result = $database->exec($sqlcmd); + + $sqlcmd = "SELECT + -1 AS oid, + date(now()) AS date_ecriture, + MAX(mois_comptable) AS mois_comptable, + '' AS clinique_honoraire, + '' AS journal_code, + '' AS section_analytique_code, + 0 AS site_id, + '' AS compte_numero, + '' AS texte, + '0' AS report_automatique_mois_suivant, + '' AS est_balance, + '0' AS est_import_data, + '' AS import_data, + 0.00 AS montant_debit, + 0.00 AS montant_credit, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00, + 0.00 + FROM compta.p_historique_ecritures_total + UNION ALL + SELECT + t_ecritures_ajustement.oid, + t_ecritures_ajustement.date_ecriture, + t_ecritures_ajustement.mois_comptable, + t_ecritures_ajustement.clinique_honoraire, + t_ecritures_ajustement.journal_code, + t_ecritures_ajustement.section_analytique_code, + t_ecritures_ajustement.site_id, + CASE WHEN t_ecritures_ajustement.est_import_data = '1' THEN 'TABLEUR' ELSE t_ecritures_ajustement.compte_numero END, + t_ecritures_ajustement.texte, + t_ecritures_ajustement.report_automatique_mois_suivant, + t_ecritures_ajustement.est_balance, + t_ecritures_ajustement.est_import_data, + t_ecritures_ajustement.import_data, + t_ecritures_ajustement.montant_debit, + t_ecritures_ajustement.montant_credit, + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_1 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_1 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_2 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_2 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_3 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_3 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_4 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_4 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_5 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_5 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_6 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_6 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_7 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_7 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_8 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_8 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_9 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_9 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_10 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_10 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_11 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_11 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + , + MAX( + CASE + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_12 AND t_ecritures_ajustement.montant_debit <> 0 THEN t_ecritures_ventilees.montant_credit + WHEN t_ecritures_ventilees.mois_comptable = mois_exercice_12 AND t_ecritures_ajustement.montant_credit <> 0 THEN t_ecritures_ventilees.montant_debit + ELSE 0 END + ) + FROM compta.t_ecritures_ajustement + JOIN w_calendrier_mois ON t_ecritures_ajustement.mois_comptable = w_calendrier_mois.mois + LEFT JOIN compta.t_ecritures_ajustement t_ecritures_ventilees ON t_ecritures_ventilees.ecriture_maitre_id = t_ecritures_ajustement.oid + WHERE t_ecritures_ajustement.oid > 0 AND COALESCE(t_ecritures_ajustement.ecriture_maitre_id,0) = 0 + GROUP BY 1,2,3,4,5,6,7,8,9 + ORDER BY 3 DESC,2"; + $result = $database->exec($sqlcmd); + + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $nodeName = "RECORD"; + + $oid = $record[0] + 0; + if ($oid < 0) { + $nodeName = "ADDRECORD"; + } + $date_ecriture = toHTML(trim($record[1])); + $mois_comptable = toHTML(trim($record[2])); + $clinique_honoraire = toHTML(trim($record[3])); + $journal_code = toHTML(trim($record[4])); + $section_code = toHTML(trim($record[5])); + $site_id = toHTML(trim($record[6])); + $compte_numero = toHTML(trim($record[7])); + $texte = toHTML(trim($record[8])); + $report_automatique_mois_suivant = toHTML(trim($record[9])); + $est_balance = toHTML(trim($record[10])); + $est_import_data = toHTML(trim($record[11])); + $import_data = toHTML(trim($record[12])); + $montant_debit = $record[13] + 0; + $montant_credit = $record[14] + 0; + $montant_ventile_1 = $record[15] + 0; + $montant_ventile_2 = $record[16] + 0; + $montant_ventile_3 = $record[17] + 0; + $montant_ventile_4 = $record[18] + 0; + $montant_ventile_5 = $record[19] + 0; + $montant_ventile_6 = $record[20] + 0; + $montant_ventile_7 = $record[21] + 0; + $montant_ventile_8 = $record[22] + 0; + $montant_ventile_9 = $record[23] + 0; + $montant_ventile_10 = $record[24] + 0; + $montant_ventile_11 = $record[25] + 0; + $montant_ventile_12 = $record[26] + 0; + $nbref = 0; + + + + $httpString_tmp = $httpString_tmp . "\r\n + <$nodeName + oid=\"$oid\" + date_ecriture=\"$date_ecriture\" + mois_comptable=\"$mois_comptable\" + clinique_honoraire=\"$clinique_honoraire\" + journal_code=\"$journal_code\" + section_code=\"$section_code\" + site_id=\"$site_id\" + compte_numero=\"$compte_numero\" + texte=\"$texte\" + report_automatique_mois_suivant=\"$report_automatique_mois_suivant\" + est_balance=\"$est_balance\" + import_data=\"$import_data\" + est_import_data=\"$est_import_data\" + montant_debit=\"+$montant_debit\" + montant_credit=\"+$montant_credit\" + montant_ventile_1=\"+$montant_ventile_1\" + montant_ventile_2=\"+$montant_ventile_2\" + montant_ventile_3=\"+$montant_ventile_3\" + montant_ventile_4=\"+$montant_ventile_4\" + montant_ventile_5=\"+$montant_ventile_5\" + montant_ventile_6=\"+$montant_ventile_6\" + montant_ventile_7=\"+$montant_ventile_7\" + montant_ventile_8=\"+$montant_ventile_8\" + montant_ventile_9=\"+$montant_ventile_9\" + montant_ventile_10=\"+$montant_ventile_10\" + montant_ventile_11=\"+$montant_ventile_11\" + montant_ventile_12=\"+$montant_ventile_12\" + nbref=\"+0\" + />"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + + } + + $httpString = "$httpString$httpString_tmp"; + + return $httpString; + + + +} + + + + +function getRecords_budget() { + +global $database; + + $httpString = ""; + + $httpString = $httpString . "\r\n"; + + + $sqlcmd = "SELECT oid, code, texte, site_id, is_actif, exercice_comptable, import_data + FROM compta.t_budget + WHERE oid > 0 + ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + + + // lignes + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0]; + $code = toHTML(trim($record[1])); + $texte = toHTML(trim($record[2])); + $site_id = toHTML(trim($record[3])); + $is_actif = toHTML(trim($record[4])); + $exercice_comptable = toHTML(trim($record[5])); + $import_data = toHTML(trim($record[6])); + + + $comment = "Exercice $exercice_comptable"; + if ($is_actif == "1") { + $comment = "$comment (ACTIF)"; + } + else { + $comment = "$comment (INACTIF)"; + $is_actif = "0"; + } + + + $httpString = $httpString . "\r\n"; + + } + } + + + } + + return $httpString; + + + +} + +function getRecords_divers() { + + global $database; + + $httpString = ""; + $sqlcmd = " + SELECT + code, + texte, + valeur, + valeur_date, + description, + CASE WHEN show_info_module THEN 1 ELSE 0 END AS show_info_module + FROM compta.t_divers + ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result !== false) { + $ok = TRUE; + + while ($ok === TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + if ($record !== FALSE) { + $ok = TRUE; + + $code = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + $valeur = toHTML(trim($record[2])); + $valeur_date = toHTML(trim($record[3])); + $description = toHTML(trim($record[4])); + $show_info_module = toHTML(trim($record[5])); + + $httpString .= "\r\n"; + + $sqlcmd = "SELECT code, code || ' ' || texte, + CASE WHEN oid NOT IN (SELECT p_oids.oid FROM compta.p_oids WHERE p_oids.code_table::text = 'journaux_h'::text) THEN '1' ELSE '0' END, + CASE WHEN oid IN (SELECT p_oids.oid FROM compta.p_oids WHERE p_oids.code_table::text = 'journaux_h'::text) THEN '1' ELSE '0' END + FROM compta.t_journaux + WHERE oid <> 0 + ORDER BY code "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $code = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + $clinique = toHTML(trim($record[2])); + $honoraire = toHTML(trim($record[3])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + +function getCombo_sections() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + $sqlcmd = "SELECT code, code || ' ' || texte + FROM compta.t_sections_analytiques + ORDER BY code "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $code = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + +function getCombo_sites() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + $sqlcmd = "SELECT oid, texte, + CASE WHEN oid IN (SELECT p_oids.oid FROM compta.p_oids WHERE p_oids.code_table::text = 'sites_c'::text group by 1) THEN '1' ELSE '0' END, + CASE WHEN oid IN (SELECT p_oids.oid FROM compta.p_oids WHERE p_oids.code_table::text = 'sites_h'::text group by 1) THEN '1' ELSE '0' END + FROM compta.t_sites + WHERE oid <> 0 + ORDER BY code "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + $clinique = toHTML(trim($record[2])); + $honoraire = toHTML(trim($record[3])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + +function getCombo_finess() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + $httpString_tmp = $httpString_tmp . "\r\n"; + + $sqlcmd = "SELECT oid, code || ' ' || texte + FROM base.t_finess + WHERE oid <> 0 + ORDER BY code "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + +function getCombo_types_compta() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + $sqlcmd = "SELECT oid, code || ' ' || texte + FROM compta.t_types_compta WHERE specialite NOT IN ('BIL', 'GES') + ORDER BY code"; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $oid = $record[0] + 0; + $texte = toHTML(trim($record[1])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + + +function getCombo_mois() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + + + $sqlcmd = "SELECT p_calendrier_mois.mois, + p_calendrier_mois.texte, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (0) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_1, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (1,89) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_2, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (2,90) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_3, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (3,91) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_4, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (4,92) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_5, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (5,93) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_6, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (6,94) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_7, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (7,95) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_8, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (8,96) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_9, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (9,97) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_10, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (10,98) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_11, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (11,99) THEN p_calendrier_mois_exercice.mois ELSE 0 END) AS mois_exercice_12, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (0) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_1, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (1,89) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_2, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (2,90) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_3, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (3,91) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_4, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (4,92) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_5, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (5,93) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_6, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (6,94) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_7, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (7,95) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_8, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (8,96) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_9, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (9,97) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_10, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (10,98) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_11, + MAX(CASE WHEN p_calendrier_mois_exercice.mois - p_calendrier_mois_exercice.exercice_mois_comptable_1 IN (11,99) THEN p_calendrier_mois_exercice.texte ELSE '' END) AS mois_exercice_texte_12 + FROM base.p_calendrier_mois + JOIN base.p_calendrier_mois p_calendrier_mois_exercice ON p_calendrier_mois_exercice.exercice_comptable = p_calendrier_mois.exercice_comptable + WHERE p_calendrier_mois.exercice_comptable IN (SELECT DISTINCT exercice_comptable FROM compta.p_mois_comptables) + GROUP BY 1,2 + ORDER BY p_calendrier_mois.mois DESC "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $code = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + + $mois_exercice_1 = toHTML(trim($record[2])); + $mois_exercice_2 = toHTML(trim($record[3])); + $mois_exercice_3 = toHTML(trim($record[4])); + $mois_exercice_4 = toHTML(trim($record[5])); + $mois_exercice_5 = toHTML(trim($record[6])); + $mois_exercice_6 = toHTML(trim($record[7])); + $mois_exercice_7 = toHTML(trim($record[8])); + $mois_exercice_8 = toHTML(trim($record[9])); + $mois_exercice_9 = toHTML(trim($record[10])); + $mois_exercice_10 = toHTML(trim($record[11])); + $mois_exercice_11 = toHTML(trim($record[12])); + $mois_exercice_12 = toHTML(trim($record[13])); + + $mois_exercice_texte_1 = toHTML(trim($record[14])); + $mois_exercice_texte_2 = toHTML(trim($record[15])); + $mois_exercice_texte_3 = toHTML(trim($record[16])); + $mois_exercice_texte_4 = toHTML(trim($record[17])); + $mois_exercice_texte_5 = toHTML(trim($record[18])); + $mois_exercice_texte_6 = toHTML(trim($record[19])); + $mois_exercice_texte_7 = toHTML(trim($record[20])); + $mois_exercice_texte_8 = toHTML(trim($record[21])); + $mois_exercice_texte_9 = toHTML(trim($record[22])); + $mois_exercice_texte_10 = toHTML(trim($record[23])); + $mois_exercice_texte_11 = toHTML(trim($record[24])); + $mois_exercice_texte_12 = toHTML(trim($record[25])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + +function getCombo_comptes() { + +global $database; + + $httpString = ""; + + $httpString_tmp = ""; + + + $httpString = $httpString . "\r\n"; + + $sqlcmd = "(SELECT numero, texte, CASE WHEN clinique_honoraire = 'C' THEN '1' ELSE '0' END, CASE WHEN clinique_honoraire = 'H' THEN '1' ELSE '0' END, '0' "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes WHERE t_comptes.compte_general_id = t_comptes.oid) "; + $sqlcmd = $sqlcmd . "UNION ALL (SELECT numero, texte, CASE WHEN clinique_honoraire = 'C' THEN '1' ELSE '0' END, CASE WHEN clinique_honoraire = 'H' THEN '1' ELSE '0' END, '1' "; + $sqlcmd = $sqlcmd . "FROM compta.t_comptes WHERE t_comptes.compte_general_id <> t_comptes.oid) "; + $sqlcmd = $sqlcmd . "ORDER BY 1, 5 "; + $result = $database->exec($sqlcmd); + + if ($result != false) { + $ok = TRUE; + + while ($ok == TRUE) { + $ok = FALSE; + + $record = $database->nextRecordInto(); + + + if ($record != FALSE) { + $ok = TRUE; + + $numero = toHTML(trim($record[0])); + $texte = toHTML(trim($record[1])); + $clinique = toHTML(trim($record[2])); + $honoraire = toHTML(trim($record[3])); + + $httpString_tmp = $httpString_tmp . "\r\n"; + + if (strlen($httpString_tmp) > 64000) { + $httpString = "$httpString$httpString_tmp"; + $httpString_tmp = ""; + } + + } + } + + } + + $httpString = "$httpString$httpString_tmp"; + + $httpString = $httpString . "\r\n"; + + return $httpString; + + + +} + + + + + + +?> \ No newline at end of file diff --git a/php/COMPTA_setTableRecord.php b/php/COMPTA_setTableRecord.php new file mode 100644 index 0000000..11abd4e --- /dev/null +++ b/php/COMPTA_setTableRecord.php @@ -0,0 +1,1186 @@ +logParameterChanges('compta', $tableName, $recordNode, $database); +} catch (Exception $e) { + echo $e->getMessage(); +} + +$httpString = ""; +$httpString = $httpString . ""; +$httpString = $httpString . "\n"; + +if ($tableName == "t_sites") { + $httpString = $httpString . setRecords_sites(); +} +if ($tableName == "t_journaux") { + $httpString = $httpString . setRecords_journaux(); +} +if ($tableName == "t_types_compta") { + $httpString = $httpString . setRecords_types_compta(); +} +if ($tableName == "t_classes_comptes") { + $httpString = $httpString . setRecords_classes_comptes(); +} +if ($tableName == "t_comptes") { + $httpString = $httpString . setRecords_comptes(); +} +if ($tableName == "t_comptes_extra") { + $httpString = $httpString . setRecords_comptes_extra(); +} +if ($tableName == "t_partenaires") { + $httpString = $httpString . setRecords_partenaires(); +} +if ($tableName == "t_ecritures_ajustement") { + $httpString = $httpString . setRecords_ecritures_ajustement(); +} +if ($tableName == "t_budget") { + $httpString = $httpString . setRecords_budget(); +} +if ($tableName == "t_divers") { + $httpString .= setRecords_divers(); +} + + +erase_cache(); + + + +$httpString = $httpString . "\n"; + +$httpString = compress64($httpString); + + +echo "$httpString"; + + +function setRecords_journaux() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $code_original = utf8_decode($recordNode["code_original"]); + $clinique_honoraire = utf8_decode($recordNode["clinique_honoraire"]); + $a_nouveaux = utf8_decode($recordNode["a_nouveaux"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_journaux SET "; + $sqlcmd = $sqlcmd . "code = '$code', "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "a_nouveaux = '$a_nouveaux' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + + +} + +function setRecords_sites() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $code_original = utf8_decode($recordNode["code_original"]); + $clinique_honoraire = utf8_decode($recordNode["clinique_honoraire"]); + $finess_id = floatval($recordNode["finess_id"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_sites SET "; + $sqlcmd = $sqlcmd . "code = '$code', "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "clinique_honoraire = '$clinique_honoraire', "; + $sqlcmd = $sqlcmd . "finess_id = $finess_id "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + // Chaque site peut être associé à un FINESS (pour essentiels) + $sqlcmd = "UPDATE compta.t_sites SET + finess_code = t_finess.code, + finess_texte = t_finess.texte + FROM base.t_finess + WHERE finess_id = t_finess.oid AND + ( + finess_code IS DISTINCT FROM t_finess.code or + finess_texte IS DISTINCT FROM t_finess.texte + )"; + $result = $database->exec($sqlcmd); + +} + + +function setRecords_types_compta() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $code_original = utf8_decode($recordNode["code_original"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_types_compta SET "; + $sqlcmd = $sqlcmd . "code = '$code', "; + $sqlcmd = $sqlcmd . "texte = '$texte' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + + $sqlcmd = "UPDATE compta.t_comptes_c SET "; + $sqlcmd = $sqlcmd . "type_compta_code = '$code', "; + $sqlcmd = $sqlcmd . "type_compta_texte = '$texte' "; + $sqlcmd = $sqlcmd . "WHERE type_compta_id = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + +} + + +function setRecords_classes_comptes() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $code_original = utf8_decode($recordNode["code_original"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_classes_comptes SET "; + $sqlcmd = $sqlcmd . "texte = '$texte' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "classe_1_code = t_classe_1.code, "; + $sqlcmd = $sqlcmd . "classe_1_texte = t_classe_1.texte, "; + $sqlcmd = $sqlcmd . "classe_2_code = t_classe_2.code, "; + $sqlcmd = $sqlcmd . "classe_2_texte = t_classe_2.texte, "; + $sqlcmd = $sqlcmd . "classe_3_code = t_classe_3.code, "; + $sqlcmd = $sqlcmd . "classe_3_texte = t_classe_3.texte, "; + $sqlcmd = $sqlcmd . "classe_4_code = t_classe_4.code, "; + $sqlcmd = $sqlcmd . "classe_4_texte = t_classe_4.texte, "; + $sqlcmd = $sqlcmd . "classe_5_code = t_classe_5.code, "; + $sqlcmd = $sqlcmd . "classe_5_texte = t_classe_5.texte, "; + $sqlcmd = $sqlcmd . "classe_6_code = t_classe_6.code, "; + $sqlcmd = $sqlcmd . "classe_6_texte = t_classe_6.texte "; + $sqlcmd = $sqlcmd . "FROM "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_1, "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_2, "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_3, "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_4, "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_5, "; + $sqlcmd = $sqlcmd . "compta.t_classes_comptes t_classe_6 "; + $sqlcmd = $sqlcmd . "WHERE "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_1_id = t_classe_1.oid "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_2_id = t_classe_2.oid "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_3_id = t_classe_3.oid "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_4_id = t_classe_4.oid "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_5_id = t_classe_5.oid "; + $sqlcmd = $sqlcmd . "AND t_comptes_c.classe_6_id = t_classe_6.oid "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c SET "; + $sqlcmd = $sqlcmd . "arbre_classe_1_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_1_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_1_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_2_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_2_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_2_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_3_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_3_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_3_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_4_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_4_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_4_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_5_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_5_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_5_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_6_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_6_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_6_texte = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_7_id = 0, "; + $sqlcmd = $sqlcmd . "arbre_classe_7_code = '', "; + $sqlcmd = $sqlcmd . "arbre_classe_7_texte = ''; "; + $sqlcmd = $sqlcmd . "WHERE "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_1_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_1_texte <> '' THEN classe_1_id "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' THEN classe_2_id "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' THEN classe_3_id "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' THEN classe_4_id "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' THEN classe_5_id "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' THEN classe_6_id "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_1_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_1_texte <> '' THEN classe_1_code "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' THEN classe_2_code "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' THEN classe_3_code "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' THEN classe_4_code "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' THEN classe_5_code "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' THEN classe_6_code "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_1_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_1_texte <> '' THEN classe_1_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' THEN classe_2_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' THEN classe_3_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' THEN classe_4_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' THEN classe_5_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' THEN classe_6_texte "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_2_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_id "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_id "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_id "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_id "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_id "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_2_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_code "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_code "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_code "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_code "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_code "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_2_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_2_texte <> '' AND arbre_classe_1_code <> classe_2_code THEN classe_2_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code THEN classe_3_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code THEN classe_4_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code THEN classe_5_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code THEN classe_6_texte "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE arbre_classe_1_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_3_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_id "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_id "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_id "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_id "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_3_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_code "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_code "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_code "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_code "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_3_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " WHEN classe_3_texte <> '' AND arbre_classe_1_code <> classe_3_code AND arbre_classe_2_code <> classe_3_code THEN classe_3_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_4_texte <> '' AND arbre_classe_1_code <> classe_4_code AND arbre_classe_2_code <> classe_4_code THEN classe_4_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_5_texte <> '' AND arbre_classe_1_code <> classe_5_code AND arbre_classe_2_code <> classe_5_code THEN classe_5_texte "; + $sqlcmd = $sqlcmd . " WHEN classe_6_texte <> '' AND arbre_classe_1_code <> classe_6_code AND arbre_classe_2_code <> classe_6_code THEN classe_6_texte "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE arbre_classe_1_code <> numero AND arbre_classe_2_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_4_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_4_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_4_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE arbre_classe_1_code <> numero AND arbre_classe_2_code <> numero AND arbre_classe_3_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_5_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_5_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_5_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE arbre_classe_1_code <> numero AND arbre_classe_2_code <> numero AND arbre_classe_3_code <> numero AND arbre_classe_4_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = $sqlcmd . "SET "; + $sqlcmd = $sqlcmd . "arbre_classe_6_id = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE oid "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_6_code = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE numero "; + $sqlcmd = $sqlcmd . "END, "; + $sqlcmd = $sqlcmd . "arbre_classe_6_texte = "; + $sqlcmd = $sqlcmd . "CASE "; + $sqlcmd = $sqlcmd . " 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 "; + $sqlcmd = $sqlcmd . " ELSE texte "; + $sqlcmd = $sqlcmd . "END "; + $sqlcmd = $sqlcmd . "WHERE arbre_classe_1_code <> numero AND arbre_classe_2_code <> numero AND arbre_classe_3_code <> numero AND arbre_classe_4_code <> numero AND arbre_classe_5_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + + + $sqlcmd = "UPDATE compta.t_comptes_c "; + $sqlcmd = "SET "; + $sqlcmd = "arbre_classe_7_id = oid, "; + $sqlcmd = "arbre_classe_7_code = numero, "; + $sqlcmd = "arbre_classe_7_texte = texte "; + $sqlcmd = "WHERE arbre_classe_1_code <> numero AND arbre_classe_2_code <> numero AND arbre_classe_3_code <> numero AND arbre_classe_4_code <> numero AND arbre_classe_5_code <> numero AND arbre_classe_6_code <> numero "; + $sqlcmd = $sqlcmd . "AND "; + $sqlcmd = $sqlcmd . "(t_comptes_c.classe_1_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_2_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_3_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_4_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_5_id = $oid "; + $sqlcmd = $sqlcmd . "OR t_comptes_c.classe_6_id = $oid) "; + $result = $database->exec($sqlcmd); + + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + +} + + +function setRecords_comptes() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $numero = toSQL(utf8_decode($recordNode["numero"])); + $texte = toSQL(utf8_decode($recordNode["texte"])); + $numero_original = toSQL(utf8_decode($recordNode["numero_original"])); + $clinique_honoraire = utf8_decode($recordNode["clinique_honoraire"]); + $banque = utf8_decode($recordNode["banque"]); + $solde_initial = utf8_decode($recordNode["solde_initial"]); + $solde_initial = str_replace(",", ".", $solde_initial); + $solde_initial = $solde_initial + 0; + $inter_site = utf8_decode($recordNode["inter_site"]); + + $collectif = utf8_decode($recordNode["collectif"]); + $type_compta_extra_id = $recordNode["type_compta_extra_id"] + 0; + $numero_extra = toSQL(utf8_decode($recordNode["numero_extra"])); + $texte_extra = toSQL(utf8_decode($recordNode["texte_extra"])); + if ($collectif != "1") { + $type_compta_extra_id = 0; + $numero_extra = ""; + $texte_extra = ""; + } + else { + if ($numero_extra == "") { + $numero_extra = "$numero.*"; + } + if ($texte_extra == "") { + $texte_extra = "$texte.*"; + } + } + + if ($action != "delete" && $action != "copy") { + $numero = toSQL($numero); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_comptes SET + texte = '$texte', + banque = '$banque', + solde_initial = $solde_initial, + inter_site = '$inter_site', + collectif = '$collectif', + type_compta_extra_id = $type_compta_extra_id, + numero_extra = '$numero_extra', + texte_extra = '$texte_extra' + WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + + // Mise à jour du compte banque sur les comptes signés + $sqlcmd = " UPDATE compta.t_comptes SET + banque = '$banque' + WHERE 1=1 + AND compte_general_id = $oid + AND banque != '$banque'; + "; + $result = $database->exec($sqlcmd); + + $sqlcmd = "UPDATE compta.t_comptes_c SET "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "banque = '$banque' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + +} + +function setRecords_ecritures_ajustement() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $mois_comptable = utf8_decode($recordNode["mois_comptable"]); + $clinique_honoraire = utf8_decode($recordNode["clinique_honoraire"]); + $journal_code = utf8_decode($recordNode["journal_code"]); + $section_code = utf8_decode($recordNode["section_code"]); + $compte_numero = utf8_decode($recordNode["compte_numero"]); + $texte = utf8_decode($recordNode["texte"]); + $report_automatique_mois_suivant = utf8_decode($recordNode["report_automatique_mois_suivant"]); + $est_balance = utf8_decode($recordNode["est_balance"]); + $est_import_data = utf8_decode($recordNode["est_import_data"]); + $import_data = utf8_decode($recordNode["import_data"]); + + $montant = str_replace("," , "." , $recordNode["montant_debit"]); + $montant_debit = floatval($montant); + $montant = str_replace("," , "." , $recordNode["montant_credit"]); + $montant_credit = floatval($montant); + + $mois_ventile[1] = utf8_decode($recordNode["mois_ventile_1"]); + $mois_ventile[2] = utf8_decode($recordNode["mois_ventile_2"]); + $mois_ventile[3] = utf8_decode($recordNode["mois_ventile_3"]); + $mois_ventile[4] = utf8_decode($recordNode["mois_ventile_4"]); + $mois_ventile[5] = utf8_decode($recordNode["mois_ventile_5"]); + $mois_ventile[6] = utf8_decode($recordNode["mois_ventile_6"]); + $mois_ventile[7] = utf8_decode($recordNode["mois_ventile_7"]); + $mois_ventile[8] = utf8_decode($recordNode["mois_ventile_8"]); + $mois_ventile[9] = utf8_decode($recordNode["mois_ventile_9"]); + $mois_ventile[10] = utf8_decode($recordNode["mois_ventile_10"]); + $mois_ventile[11] = utf8_decode($recordNode["mois_ventile_11"]); + $mois_ventile[12] = utf8_decode($recordNode["mois_ventile_12"]); + + $montant_ventile[1] = floatval(str_replace("," , "." , $recordNode["montant_ventile_1"])); + $montant_ventile[2] = floatval(str_replace("," , "." , $recordNode["montant_ventile_2"])); + $montant_ventile[3] = floatval(str_replace("," , "." , $recordNode["montant_ventile_3"])); + $montant_ventile[4] = floatval(str_replace("," , "." , $recordNode["montant_ventile_4"])); + $montant_ventile[5] = floatval(str_replace("," , "." , $recordNode["montant_ventile_5"])); + $montant_ventile[6] = floatval(str_replace("," , "." , $recordNode["montant_ventile_6"])); + $montant_ventile[7] = floatval(str_replace("," , "." , $recordNode["montant_ventile_7"])); + $montant_ventile[8] = floatval(str_replace("," , "." , $recordNode["montant_ventile_8"])); + $montant_ventile[9] = floatval(str_replace("," , "." , $recordNode["montant_ventile_9"])); + $montant_ventile[10] = floatval(str_replace("," , "." , $recordNode["montant_ventile_10"])); + $montant_ventile[11] = floatval(str_replace("," , "." , $recordNode["montant_ventile_11"])); + $montant_ventile[12] = floatval(str_replace("," , "." , $recordNode["montant_ventile_12"])); + + + + + if ($clinique_honoraire != "H") { + $clinique_honoraire != "C"; + } + $journal_code = toSQL($journal_code); + $section_code = toSQL($section_code); + $compte_numero = toSQL($compte_numero); + $texte = toSQL($texte); + $import_data = toSQL($import_data); + + + $date_ecriture = date("Y-m-d"); + + if ($action != "delete" && $action != "copy") { + + $ecriture_maitre_id = 0; + + // creation ou mise à jour de l'écriture + if ($oid == -1) { + + $sqlcmd = "INSERT INTO compta.t_ecritures_ajustement( + date_ecriture, + mois_comptable, + clinique_honoraire, + journal_code, + section_analytique_code, + compte_numero, + texte, + report_automatique_mois_suivant, + est_balance, + est_import_data, + import_data, + montant_debit, + montant_credit, + ecriture_maitre_id) + VALUES( + '$date_ecriture', + $mois_comptable, + '$clinique_honoraire', + '$journal_code', + '$section_code', + '$compte_numero', + '$texte', + '$report_automatique_mois_suivant', + '$est_balance', + '$est_import_data', + '$import_data', + $montant_debit, + $montant_credit, + $ecriture_maitre_id + ) "; + $result = $database->exec($sqlcmd); + if ($result == FALSE) { + + } + else { + $result = $database->exec("SELECT max(oid) FROM compta.t_ecritures_ajustement "); + if ($result != false) { + $record = $database->nextRecordInto(); + if ($record != FALSE) { + $ecriture_maitre_id = $record[0]; + } + } + } + } + else { + $sqlcmd = "UPDATE compta.t_ecritures_ajustement SET + date_ecriture='$date_ecriture', + mois_comptable=$mois_comptable, + clinique_honoraire='$clinique_honoraire', + journal_code='$journal_code', + section_analytique_code='$section_code', + compte_numero='$compte_numero', + texte='$texte', + report_automatique_mois_suivant='$report_automatique_mois_suivant', + est_balance='$est_balance', + est_import_data='$est_import_data', + import_data='$import_data', + montant_debit=$montant_debit, + montant_credit=$montant_credit, + ecriture_maitre_id=$ecriture_maitre_id + WHERE oid = $oid"; + + $result = $database->exec($sqlcmd); + + $ecriture_maitre_id = $oid; + + } + + // Ecritures ventilees + $sqlcmd = "DELETE FROM compta.t_ecritures_ajustement WHERE ecriture_maitre_id = $ecriture_maitre_id;"; + + for ($c = 1; $c <= 12; $c++) { + if ($montant_ventile[$c]<> 0 ) { + if ($montant_debit <> 0 ) { + $montant_ventile_debit = 0; + $montant_ventile_credit = $montant_ventile[$c]; + } + else { + $montant_ventile_debit = $montant_ventile[$c]; + $montant_ventile_credit = 0; + } + $mois_comptable_ventile = $mois_ventile[$c]; + $sqlcmd = $sqlcmd . + "INSERT INTO compta.t_ecritures_ajustement( + date_ecriture, + mois_comptable, + clinique_honoraire, + journal_code, + section_analytique_code, + compte_numero, + texte, + montant_debit, + montant_credit, + ecriture_maitre_id) + VALUES( + '$date_ecriture', + $mois_comptable_ventile, + '$clinique_honoraire', + '$journal_code', + '$section_code', + '$compte_numero', + '$texte', + $montant_ventile_debit, + $montant_ventile_credit, + $ecriture_maitre_id + ); "; + } + } + + + + $result = $database->exec($sqlcmd); + + + } + + if ($action == "copy") { + + $sqlcmd = "INSERT INTO compta.t_ecritures_ajustement( "; + $sqlcmd = $sqlcmd . "date_ecriture, mois_comptable, clinique_honoraire, journal_code, compte_numero, texte, montant_debit, montant_credit) "; + $sqlcmd = $sqlcmd . "SELECT '$date_ecriture', mois_comptable, clinique_honoraire, journal_code, compte_numero, 'Copie de ' || texte, montant_debit, montant_credit "; + $sqlcmd = $sqlcmd . "FROM compta.t_ecritures_ajustement "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + + $result = $database->exec($sqlcmd); + + } + + + if ($action == "delete") { + $sqlcmd = "DELETE FROM compta.t_ecritures_ajustement WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + // Menage des liens usages + $sqlcmd = "DELETE FROM compta.t_ecritures_ajustement + WHERE COALESCE(ecriture_maitre_id,0) <> 0 AND + ecriture_maitre_id NOT IN (SELECT oid FROM compta.t_ecritures_ajustement) "; + $result = $database->exec($sqlcmd); + + // Mise à jour historique + $sqlcmd = "SELECT compta.cti_gen_ajustements(0) "; + $result = $database->exec($sqlcmd); + +} + + +function setRecords_comptes_extra() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $numero = utf8_decode($recordNode["numero"]); + $texte = utf8_decode($recordNode["texte"]); + $numero_original = utf8_decode($recordNode["numero_original"]); + $clinique_honoraire = utf8_decode($recordNode["clinique_honoraire"]); + $banque = utf8_decode($recordNode["banque"]); + $inter_site = utf8_decode($recordNode["inter_site"]); + + + if ($action != "delete" && $action != "copy") { + $numero = toSQL($numero); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_comptes SET "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "banque = '$banque', "; + $sqlcmd = $sqlcmd . "inter_site = '$inter_site' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + + $sqlcmd = "UPDATE compta.t_comptes_c SET "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "banque = '$banque' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + +} + +function setRecords_partenaires() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $texte_court = utf8_decode($recordNode["texte_court"]); + $code_original = utf8_decode($recordNode["code_original"]); + $intra_groupe = utf8_decode($recordNode["intra_groupe"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + + // creation ou mise à jour de la liste + if ($oid == -1) { + + + } + else { + + $sqlcmd = "UPDATE compta.t_partenaires SET "; + $sqlcmd = $sqlcmd . "code = '$code', "; + $sqlcmd = $sqlcmd . "texte = '$texte', "; + $sqlcmd = $sqlcmd . "texte_court = '$texte_court', "; + $sqlcmd = $sqlcmd . "intra_groupe = '$intra_groupe' "; + $sqlcmd = $sqlcmd . "WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + + +} + + + +function setRecords_budget() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $site_id = floatval($recordNode["site_id"]); + $exercice_comptable = floatval($recordNode["exercice_comptable"]); + $is_actif = utf8_decode($recordNode["is_actif"]); + $import_data = utf8_decode($recordNode["import_data"]); + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + $import_data = toSQL($import_data); + + // creation ou mise à jour de la liste + if ($oid == -1) { + $sqlcmd = "INSERT INTO compta.t_budget ( + code, + texte, + site_id, + is_actif, + exercice_comptable, + import_data + ) + VALUES( + '$code', + '$texte', + $site_id, + '$is_actif', + $exercice_comptable, + '$import_data' + )"; + $result = $database->exec($sqlcmd); + if ($result == FALSE) { + + } + else { + $result = $database->exec("SELECT max(oid) FROM compta.t_budget WHERE code = '$code' "); + if ($result != false) { + $record = $database->nextRecordInto(); + if ($record != FALSE) { + $oid = $record[0]; + } + } + } + } + else { + + $sqlcmd = "UPDATE compta.t_budget SET + code = '$code', + texte = '$texte', + site_id = $site_id, + is_actif = '$is_actif', + exercice_comptable = $exercice_comptable, + import_data = '$import_data' + WHERE oid = $oid"; + $result = $database->exec($sqlcmd); + } + + $sqlcmd = "SELECT compta.cti_gen_budget($oid)"; + $result = $database->exec($sqlcmd); + + + } + + if ($action == "copy") { + + + + } + + + if ($action == "delete") { + + } + +} + +function setRecords_divers() { + + global $database; + global $action; + global $recordNode; + + $oid = $recordNode["oid"]; + $code = utf8_decode($recordNode["code"]); + $texte = utf8_decode($recordNode["texte"]); + $valeur = floatval($recordNode["valeur"]); + $valeur_date = utf8_decode($recordNode["valeur_date"]); + $description = utf8_decode($recordNode["description"]); + $show_info_module = utf8_decode($recordNode["show_info_module"]); + + /* + +$sqlcmd = " + SELECT + code, + texte, + valeur, + valeur_date, + description, + CASE WHEN show_info_module THEN 1 ELSE 0 END AS show_info_module + FROM $schema.$tableName + ORDER BY code + + */ + + + if ($action != "delete" && $action != "copy") { + $code = toSQL($code); + $texte = toSQL($texte); + $import_data = toSQL($import_data); + + // creation ou mise à jour de la liste + $sqlcmd = " + UPDATE compta.t_divers SET + texte = '$texte', + valeur = '$valeur', + valeur_date = nullif('$valeur_date', '')::date, + description = '$description', + show_info_module = CASE WHEN $show_info_module = 1 THEN true ELSE false END + WHERE code = '$code'"; + $result = $database->exec($sqlcmd); + + if ($code == "MOIS_DEBUT") { + // Màj de base.p_calendrier_mois. + $sqlcmd = " + UPDATE base.p_calendrier_mois SET + exercice_comptable = to_char(date_debut - '$valeur month'::interval + '1 month'::interval, 'YYYY')::numeric, + exercice_mois_comptable_1 = (to_char(date_debut - '$valeur month'::interval + '1 month'::interval, 'YYYY')||ltrim(to_char($valeur, '00')))::numeric + ; + "; + $result = $database->exec($sqlcmd); + } + } + + if ($action == "copy") {} + + if ($action == "delete") {} +} + + +function erase_cache() { + + global $database; + + // Effacer cache ancienne version + if ($database->cticache == "true") { + $sqlcmd = "SELECT cti_cache_erase as result from cache.cti_cache_erase('iCTI_compta')"; + $result = $database->exec($sqlcmd); + } + + // Effacer cache nouvelle version + cleanAllCache("iCTI_compta"); + + +} + + +?> \ No newline at end of file diff --git a/settings.XML b/settings.XML new file mode 100644 index 0000000..22e4544 --- /dev/null +++ b/settings.XML @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000001.XML b/settings/COMPTA000001.XML new file mode 100644 index 0000000..0712a97 --- /dev/null +++ b/settings/COMPTA000001.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000002.XML b/settings/COMPTA000002.XML new file mode 100644 index 0000000..3a7a6dc --- /dev/null +++ b/settings/COMPTA000002.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000003.XML b/settings/COMPTA000003.XML new file mode 100644 index 0000000..7cd4c85 --- /dev/null +++ b/settings/COMPTA000003.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000004.XML b/settings/COMPTA000004.XML new file mode 100644 index 0000000..50425dc --- /dev/null +++ b/settings/COMPTA000004.XML @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000006.XML b/settings/COMPTA000006.XML new file mode 100644 index 0000000..64a05de --- /dev/null +++ b/settings/COMPTA000006.XML @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000007.XML b/settings/COMPTA000007.XML new file mode 100644 index 0000000..881a4a4 --- /dev/null +++ b/settings/COMPTA000007.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000008.XML b/settings/COMPTA000008.XML new file mode 100644 index 0000000..22270df --- /dev/null +++ b/settings/COMPTA000008.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000009.XML b/settings/COMPTA000009.XML new file mode 100644 index 0000000..5217e5a --- /dev/null +++ b/settings/COMPTA000009.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000010.XML b/settings/COMPTA000010.XML new file mode 100644 index 0000000..c2b44c3 --- /dev/null +++ b/settings/COMPTA000010.XML @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000011.XML b/settings/COMPTA000011.XML new file mode 100644 index 0000000..da988d0 --- /dev/null +++ b/settings/COMPTA000011.XML @@ -0,0 +1,428 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000012.XML b/settings/COMPTA000012.XML new file mode 100644 index 0000000..655f026 --- /dev/null +++ b/settings/COMPTA000012.XML @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000013.XML b/settings/COMPTA000013.XML new file mode 100644 index 0000000..85f882c --- /dev/null +++ b/settings/COMPTA000013.XML @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000017.XML b/settings/COMPTA000017.XML new file mode 100644 index 0000000..657f0eb --- /dev/null +++ b/settings/COMPTA000017.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000018.XML b/settings/COMPTA000018.XML new file mode 100644 index 0000000..87ddfa6 --- /dev/null +++ b/settings/COMPTA000018.XML @@ -0,0 +1,418 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000019-2.XML b/settings/COMPTA000019-2.XML new file mode 100644 index 0000000..f53b41e --- /dev/null +++ b/settings/COMPTA000019-2.XML @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/settings/COMPTA000019-3.XML b/settings/COMPTA000019-3.XML new file mode 100644 index 0000000..555db67 --- /dev/null +++ b/settings/COMPTA000019-3.XML @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/settings/COMPTA000019-4.XML b/settings/COMPTA000019-4.XML new file mode 100644 index 0000000..d935192 --- /dev/null +++ b/settings/COMPTA000019-4.XML @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/settings/COMPTA000019.XML b/settings/COMPTA000019.XML new file mode 100644 index 0000000..09d8708 --- /dev/null +++ b/settings/COMPTA000019.XML @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/settings/COMPTA000020.XML b/settings/COMPTA000020.XML new file mode 100644 index 0000000..efd48bc --- /dev/null +++ b/settings/COMPTA000020.XML @@ -0,0 +1,509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000021.XML b/settings/COMPTA000021.XML new file mode 100644 index 0000000..929820d --- /dev/null +++ b/settings/COMPTA000021.XML @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000022.XML b/settings/COMPTA000022.XML new file mode 100644 index 0000000..493c34e --- /dev/null +++ b/settings/COMPTA000022.XML @@ -0,0 +1,947 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000023.XML b/settings/COMPTA000023.XML new file mode 100644 index 0000000..fca49eb --- /dev/null +++ b/settings/COMPTA000023.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000024.XML b/settings/COMPTA000024.XML new file mode 100644 index 0000000..2502734 --- /dev/null +++ b/settings/COMPTA000024.XML @@ -0,0 +1,614 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000025.XML b/settings/COMPTA000025.XML new file mode 100644 index 0000000..3df88c5 --- /dev/null +++ b/settings/COMPTA000025.XML @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000026.XML b/settings/COMPTA000026.XML new file mode 100644 index 0000000..ed96b36 --- /dev/null +++ b/settings/COMPTA000026.XML @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000027.XML b/settings/COMPTA000027.XML new file mode 100644 index 0000000..9a8e889 --- /dev/null +++ b/settings/COMPTA000027.XML @@ -0,0 +1,1030 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000028.XML b/settings/COMPTA000028.XML new file mode 100644 index 0000000..17ab1e8 --- /dev/null +++ b/settings/COMPTA000028.XML @@ -0,0 +1,625 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000029.XML b/settings/COMPTA000029.XML new file mode 100644 index 0000000..a9e2bf7 --- /dev/null +++ b/settings/COMPTA000029.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000030.XML b/settings/COMPTA000030.XML new file mode 100644 index 0000000..1671db1 --- /dev/null +++ b/settings/COMPTA000030.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000031.XML b/settings/COMPTA000031.XML new file mode 100644 index 0000000..313912f --- /dev/null +++ b/settings/COMPTA000031.XML @@ -0,0 +1,438 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000032.XML b/settings/COMPTA000032.XML new file mode 100644 index 0000000..664885f --- /dev/null +++ b/settings/COMPTA000032.XML @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000033.XML b/settings/COMPTA000033.XML new file mode 100644 index 0000000..51a0ac9 --- /dev/null +++ b/settings/COMPTA000033.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000034.XML b/settings/COMPTA000034.XML new file mode 100644 index 0000000..87bd1fb --- /dev/null +++ b/settings/COMPTA000034.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000035.XML b/settings/COMPTA000035.XML new file mode 100644 index 0000000..fd58cdb --- /dev/null +++ b/settings/COMPTA000035.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000036.XML b/settings/COMPTA000036.XML new file mode 100644 index 0000000..f8a77ee --- /dev/null +++ b/settings/COMPTA000036.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000037.XML b/settings/COMPTA000037.XML new file mode 100644 index 0000000..2e67271 --- /dev/null +++ b/settings/COMPTA000037.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000038.XML b/settings/COMPTA000038.XML new file mode 100644 index 0000000..7512292 --- /dev/null +++ b/settings/COMPTA000038.XML @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000039.XML b/settings/COMPTA000039.XML new file mode 100644 index 0000000..36cc800 --- /dev/null +++ b/settings/COMPTA000039.XML @@ -0,0 +1,612 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000040.XML b/settings/COMPTA000040.XML new file mode 100644 index 0000000..e185a42 --- /dev/null +++ b/settings/COMPTA000040.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000041.XML b/settings/COMPTA000041.XML new file mode 100644 index 0000000..fe5b931 --- /dev/null +++ b/settings/COMPTA000041.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000043.XML b/settings/COMPTA000043.XML new file mode 100644 index 0000000..718adf0 --- /dev/null +++ b/settings/COMPTA000043.XML @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000044.XML b/settings/COMPTA000044.XML new file mode 100644 index 0000000..e200c49 --- /dev/null +++ b/settings/COMPTA000044.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000045.XML b/settings/COMPTA000045.XML new file mode 100644 index 0000000..af43dd2 --- /dev/null +++ b/settings/COMPTA000045.XML @@ -0,0 +1,854 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000046.XML b/settings/COMPTA000046.XML new file mode 100644 index 0000000..b4e6b2c --- /dev/null +++ b/settings/COMPTA000046.XML @@ -0,0 +1,1052 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000047.XML b/settings/COMPTA000047.XML new file mode 100644 index 0000000..0956a2e --- /dev/null +++ b/settings/COMPTA000047.XML @@ -0,0 +1,1021 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000048.XML b/settings/COMPTA000048.XML new file mode 100644 index 0000000..cfb9acb --- /dev/null +++ b/settings/COMPTA000048.XML @@ -0,0 +1,934 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000049.XML b/settings/COMPTA000049.XML new file mode 100644 index 0000000..7779f39 --- /dev/null +++ b/settings/COMPTA000049.XML @@ -0,0 +1,1030 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000050.XML b/settings/COMPTA000050.XML new file mode 100644 index 0000000..69e27e3 --- /dev/null +++ b/settings/COMPTA000050.XML @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000051.XML b/settings/COMPTA000051.XML new file mode 100644 index 0000000..5fda849 --- /dev/null +++ b/settings/COMPTA000051.XML @@ -0,0 +1,301 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000052.XML b/settings/COMPTA000052.XML new file mode 100644 index 0000000..350b92b --- /dev/null +++ b/settings/COMPTA000052.XML @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000053.XML b/settings/COMPTA000053.XML new file mode 100644 index 0000000..85255a1 --- /dev/null +++ b/settings/COMPTA000053.XML @@ -0,0 +1,332 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000054.XML b/settings/COMPTA000054.XML new file mode 100644 index 0000000..6e93d7b --- /dev/null +++ b/settings/COMPTA000054.XML @@ -0,0 +1,213 @@ + + + + <![CDATA[= + var title:String = '' + + if (SELECT.VAL_OPTION != 'V') { + title = title + 'INValidation '; + } + else { + title = title + 'Validation '; + } + title = title + ' chiffrier comptable '; + + if (SELECT.PERIODE != '-1') { + if (SELECT.TOPERIODE != '-1') { + title = title + ' de ' + SELECT.PERIODE_LABEL + ' à ' + SELECT.TOPERIODE_LABEL; + } + else { + title = title + ' à partir de ' + SELECT.PERIODE_LABEL; + } + } + else { + if (SELECT.TOPERIODE != '-1') { + title = title + ' jusque ' + SELECT.TOPERIODE_LABEL; + } + } + + + return title; + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000055.XML b/settings/COMPTA000055.XML new file mode 100644 index 0000000..d2feea8 --- /dev/null +++ b/settings/COMPTA000055.XML @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000056.XML b/settings/COMPTA000056.XML new file mode 100644 index 0000000..fd6cbb9 --- /dev/null +++ b/settings/COMPTA000056.XML @@ -0,0 +1,3 @@ + + + diff --git a/settings/COMPTA000057.XML b/settings/COMPTA000057.XML new file mode 100644 index 0000000..9a57e7d --- /dev/null +++ b/settings/COMPTA000057.XML @@ -0,0 +1,969 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000058.XML b/settings/COMPTA000058.XML new file mode 100644 index 0000000..9a796fa --- /dev/null +++ b/settings/COMPTA000058.XML @@ -0,0 +1,915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000059.XML b/settings/COMPTA000059.XML new file mode 100644 index 0000000..887def2 --- /dev/null +++ b/settings/COMPTA000059.XML @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000060.XML b/settings/COMPTA000060.XML new file mode 100644 index 0000000..ab791c2 --- /dev/null +++ b/settings/COMPTA000060.XML @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000061.XML b/settings/COMPTA000061.XML new file mode 100644 index 0000000..864f895 --- /dev/null +++ b/settings/COMPTA000061.XML @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000062.XML b/settings/COMPTA000062.XML new file mode 100644 index 0000000..2f1c1be --- /dev/null +++ b/settings/COMPTA000062.XML @@ -0,0 +1,915 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000063.XML b/settings/COMPTA000063.XML new file mode 100644 index 0000000..91204a5 --- /dev/null +++ b/settings/COMPTA000063.XML @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000064.XML b/settings/COMPTA000064.XML new file mode 100644 index 0000000..add89f5 --- /dev/null +++ b/settings/COMPTA000064.XML @@ -0,0 +1,958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000065.XML b/settings/COMPTA000065.XML new file mode 100644 index 0000000..3a41210 --- /dev/null +++ b/settings/COMPTA000065.XML @@ -0,0 +1,927 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000066.XML b/settings/COMPTA000066.XML new file mode 100644 index 0000000..ed85e2f --- /dev/null +++ b/settings/COMPTA000066.XML @@ -0,0 +1,593 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000067.XML b/settings/COMPTA000067.XML new file mode 100644 index 0000000..765a6cf --- /dev/null +++ b/settings/COMPTA000067.XML @@ -0,0 +1,963 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000068.XML b/settings/COMPTA000068.XML new file mode 100644 index 0000000..5a1f68e --- /dev/null +++ b/settings/COMPTA000068.XML @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA000069.XML b/settings/COMPTA000069.XML new file mode 100644 index 0000000..7cfc1f0 --- /dev/null +++ b/settings/COMPTA000069.XML @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA_components.XML b/settings/COMPTA_components.XML new file mode 100644 index 0000000..53dfb68 --- /dev/null +++ b/settings/COMPTA_components.XML @@ -0,0 +1,5759 @@ + + + + + + + + + + '1' AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice <> '1' " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice = '1' "; + } + if ('[QMOIS]' != '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement IN ('1','2','3') " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' == '1') { + $select = $select . "AND (v_historique_ecritures_1.fin_exercice = '1' OR v_historique_ecritures_1.ajustement IN ('1','2','3')) " ; + } + if ('[QINTER]' == 'I') { + $select = $select . "AND v_historique_ecritures_1.inter_site = '1' " ; + } + if ('[QINTER]' == 'O') { + $select = $select . "AND v_historique_ecritures_1.inter_site <> '1' " ; + } + + if ('[QCONS]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '1' AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '2' " ; + } + + $JOURNAL_X = '-1'; + $JOURNAL_X_CODES = ''; + $COMPTE_X = '-1'; + $COMPTE_X_CODES = ''; + $COMPTE_EXTRA_X = '-1'; + $COMPTE_EXTRA_X_CODES = ''; + $TYPE_COMPTA_X = '-1'; + $TYPE_COMPTA_X_CODES = ''; + $TYPE_COMPTA_EXTRA_X = '-1'; + $TYPE_COMPTA_EXTRA_X_CODES = ''; + $COMPTE_BUDGET_X = '-1'; + $COMPTE_BUDGET_X_CODES = ''; + $PARTENAIRE_X = '-1'; + $PARTENAIRE_X_CODES = ''; + $POLE_X = '[POLE]'; + $POLE_X_CODES = '[POLE_CODES]'; + $SITE_X = '-1'; + $SITE_X_CODES = ''; + $SECTION_ANALYTIQUE_X = '-1'; + if ('[CH]' == 'C' ) { + $JOURNAL_X = '[JOURNAL_C]'; + $JOURNAL_X_CODES = '[JOURNAL_C_CODES]'; + $COMPTE_X = '[COMPTE_C]'; + $COMPTE_X_CODES = '[COMPTE_C_CODES]'; + $COMPTE_CONTRE_X = '[COMPTE_CONTRE_C]'; + $COMPTE_CONTRE_X_CODES = '[COMPTE_CONTRE_C_CODES]'; + $COMPTE_EXTRA_X = '[COMPTE_EXTRA_C]'; + $COMPTE_EXTRA_X_CODES = '[COMPTE_EXTRA_C_CODES]'; + $TYPE_COMPTA_X = '[TYPE_COMPTA_C]'; + $TYPE_COMPTA_X_CODES = '[TYPE_COMPTA_C_CODES]'; + $TYPE_COMPTA_EXTRA_X = '[TYPE_COMPTA_EXTRA_C]'; + $TYPE_COMPTA_EXTRA_X_CODES = '[TYPE_COMPTA_EXTRA_C_CODES]'; + $COMPTE_BUDGET_X = '[COMPTE_BUDGET_C]'; + $COMPTE_BUDGET_X_CODES = '[COMPTE_BUDGET_C_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + $SECTION_ANALYTIQUE_X = '[SECTION_ANALYTIQUE_C]'; + $SECTION_ANALYTIQUE_2_X = '[SECTION_ANALYTIQUE_2_C]'; + $SECTION_ANALYTIQUE_3_X = '[SECTION_ANALYTIQUE_3_C]'; + $SECTION_ANALYTIQUE_4_X = '[SECTION_ANALYTIQUE_4_C]'; + $SECTION_ANALYTIQUE_5_X = '[SECTION_ANALYTIQUE_5_C]'; + $SECTION_ANALYTIQUE_6_X = '[SECTION_ANALYTIQUE_6_C]'; + $SECTION_ANALYTIQUE_7_X = '[SECTION_ANALYTIQUE_7_C]'; + $SECTION_ANALYTIQUE_8_X = '[SECTION_ANALYTIQUE_8_C]'; + $SECTION_ANALYTIQUE_9_X = '[SECTION_ANALYTIQUE_9_C]'; + } + if ('[CH]' == 'H' ) { + $JOURNAL_X = '[JOURNAL_H]'; + $JOURNAL_X_CODES = '[JOURNAL_H_CODES]'; + $COMPTE_X = '[COMPTE_H]'; + $COMPTE_X_CODES = '[COMPTE_H_CODES]'; + $COMPTE_CONTRE_X = '-1'; + $COMPTE_CONTRE_X_CODES = ''; + $COMPTE_EXTRA_X = '[COMPTE_EXTRA_H]'; + $COMPTE_EXTRA_X_CODES = '[COMPTE_EXTRA_H_CODES]'; + $TYPE_COMPTA_X = '[TYPE_COMPTA_H]'; + $TYPE_COMPTA_X_CODES = '[TYPE_COMPTA_H_CODES]'; + $TYPE_COMPTA_EXTRA_X = '[TYPE_COMPTA_EXTRA_H]'; + $TYPE_COMPTA_EXTRA_X_CODES = '[TYPE_COMPTA_EXTRA_H_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + $SECTION_ANALYTIQUE_X = '-1'; + $SECTION_ANALYTIQUE_2_X = '-1'; + $SECTION_ANALYTIQUE_3_X = '-1'; + $SECTION_ANALYTIQUE_4_X = '-1'; + $SECTION_ANALYTIQUE_5_X = '-1'; + $SECTION_ANALYTIQUE_6_X = '-1'; + $SECTION_ANALYTIQUE_7_X = '-1'; + $SECTION_ANALYTIQUE_8_X = '-1'; + $SECTION_ANALYTIQUE_9_X = '-1'; + } + + if ($JOURNAL_X != '-1') { + $mode = substr($JOURNAL_X,0,2); + $oid = $JOURNAL_X; + if ($mode == 'LS') { + $section_id = 'journal_section_id[' . substr($JOURNAL_X,2,2) . ']'; + $oid = substr($JOURNAL_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $JOURNAL_X != 'SAISIECODE' ) { + $mode = 'JR'; + $oid = substr($JOURNAL_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($JOURNAL_X,2);} + if ($JOURNAL_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($JOURNAL_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.journal_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'JR') {$subselect_select = " v_historique_ecritures_1.journal_id = $oid";} + if ($JOURNAL_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT oid FROM compta.t_journaux WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($COMPTE_X != '-1') { + $mode = substr($COMPTE_X,0,2); + $oid = $COMPTE_X; + if ($mode == 'LS') { + $section_id = 'compte_section_id[' . substr($COMPTE_X,2,2) . ']'; + $oid = substr($COMPTE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_X,2);} + if ($COMPTE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) OR + v_historique_ecritures_1.compte_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) + )";} + if ($mode == 'SL') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) AND + v_historique_ecritures_1.compte_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) + )";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_X == 'SAISIECODE') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes) OR + v_historique_ecritures_1.compte_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes) + )";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($COMPTE_CONTRE_X != '-1') { + $mode = substr($COMPTE_CONTRE_X,0,2); + $oid = $COMPTE_CONTRE_X; + if ($mode == 'LS') { + $section_id = 'compte_contrepartie_section_id[' . substr($COMPTE_CONTRE_X,2,2) . ']'; + $oid = substr($COMPTE_CONTRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_CONTRE_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_CONTRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_CONTRE_X,2);} + if ($COMPTE_CONTRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_CONTRE_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.compte_contrepartie_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) ";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.compte_contrepartie_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) ";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_contrepartie_id = $oid";} + if ($mode == 'CL') {$subselect_select = " ( + v_historique_ecritures_1.compte_contrepartie_classe_1_id = $oid OR + v_historique_ecritures_1.compte_contrepartie_classe_2_id = $oid OR + v_historique_ecritures_1.compte_contrepartie_classe_3_id = $oid OR + v_historique_ecritures_1.compte_contrepartie_classe_4_id = $oid OR + v_historique_ecritures_1.compte_contrepartie_classe_5_id = $oid + )";} + if ($COMPTE_CONTRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.compte_contrepartie_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes) ";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($COMPTE_EXTRA_X != '-1') { + $mode = substr($COMPTE_EXTRA_X,0,2); + $oid = $COMPTE_EXTRA_X; + if ($mode == 'LS') { + $section_id = 'compte_extra_section_id[' . substr($COMPTE_EXTRA_X,2,2) . ']'; + $oid = substr($COMPTE_EXTRA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_EXTRA_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_EXTRA_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_EXTRA_X,2);} + if ($COMPTE_EXTRA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_EXTRA_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.compte_extra_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.compte_extra_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_extra_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_EXTRA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.compte_extra_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($COMPTE_BUDGET_X != '-1') { + $mode = substr($COMPTE_BUDGET_X,0,2); + $oid = $COMPTE_BUDGET_X; + if ($mode == 'LS') { + $section_id = 'compte_budget_section_id[' . substr($COMPTE_BUDGET_X,2,2) . ']'; + $oid = substr($COMPTE_BUDGET_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_BUDGET_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_BUDGET_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_BUDGET_X,2);} + if ($COMPTE_BUDGET_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_BUDGET_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.compte_budget_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.compte_budget_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_budget_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_BUDGET_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.compte_budget_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($PARTENAIRE_X != '-1') { + $mode = substr($PARTENAIRE_X,0,2); + $oid = $PARTENAIRE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($PARTENAIRE_X,2,2) . ']'; + $oid = substr($PARTENAIRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $PARTENAIRE_X != 'SAISIECODE' ) { + $mode = 'PA'; + $oid = substr($PARTENAIRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($PARTENAIRE_X,2);} + if ($PARTENAIRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($PARTENAIRE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.partenaire_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'PA') {$subselect_select = " v_historique_ecritures_1.partenaire_id = $oid";} + if ($PARTENAIRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT oid FROM compta.t_partenaires WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SITE_X != '-1') { + $mode = substr($SITE_X,0,2); + $oid = $SITE_X; + if ($mode == 'LS') { + $section_id = 'site_section_id[' . substr($SITE_X,2,2) . ']'; + $oid = substr($SITE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'FI' && $SITE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($SITE_X,2); + } + if ($mode == 'FI' ) { + $oid = substr($SITE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SITE_X,2);} + if ($SITE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($SITE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.site_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($mode == 'DT') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($mode == 'FI') {$subselect_select = " v_historique_ecritures_1.finess_id = $oid";} + if ($SITE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT oid FROM compta.t_sites WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($POLE_X != '-1') { + $mode = substr($POLE_X,0,2); + $oid = $POLE_X; + if ($mode == 'LS') { + $section_id = 'pole_section_id[' . substr($POLE_X,2,2) . ']'; + $oid = substr($POLE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $POLE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($POLE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($POLE_X,2);} + if ($POLE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($POLE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.pole_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.pole_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.pole_id = $oid";} + if ($POLE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.pole_id IN (SELECT oid FROM compta.t_pole WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_X != '-1') { + $mode = substr($TYPE_COMPTA_X,0,2); + $oid = $TYPE_COMPTA_X; + if ($mode == 'LS') { + $section_id = 'type_compta_section_id[' . substr($TYPE_COMPTA_X,2,2) . ']'; + $oid = substr($TYPE_COMPTA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $TYPE_COMPTA_X != 'SAISIECODE' ) { + $mode = 'TY'; + $oid = substr($TYPE_COMPTA_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($TYPE_COMPTA_X,2);} + if ($TYPE_COMPTA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($TYPE_COMPTA_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.type_compta_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'TY') {$subselect_select = " v_historique_ecritures_1.type_compta_id = $oid";} + if ($TYPE_COMPTA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT oid FROM compta.t_types_compta WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_EXTRA_X != '-1') { + $mode = substr($TYPE_COMPTA_EXTRA_X,0,2); + $oid = $TYPE_COMPTA_EXTRA_X; + if ($mode == 'LS') { + $section_id = 'type_compta_extra_section_id[' . substr($TYPE_COMPTA_EXTRA_X,2,2) . ']'; + $oid = substr($TYPE_COMPTA_EXTRA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $TYPE_COMPTA_EXTRA_X != 'SAISIECODE' ) { + $mode = 'TY'; + $oid = substr($TYPE_COMPTA_EXTRA_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($TYPE_COMPTA_EXTRA_X,2);} + if ($TYPE_COMPTA_EXTRA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($TYPE_COMPTA_EXTRA_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'TY') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id = $oid";} + if ($TYPE_COMPTA_EXTRA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id IN (SELECT oid FROM compta.t_types_compta WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_X,0,2); + $oid = $SECTION_ANALYTIQUE_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_section_id[' . substr($SECTION_ANALYTIQUE_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_2_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_2_X,0,2); + $oid = $SECTION_ANALYTIQUE_2_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_2_section_id[' . substr($SECTION_ANALYTIQUE_2_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_2_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_2_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_2_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_2_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_3_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_3_X,0,2); + $oid = $SECTION_ANALYTIQUE_3_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_3_section_id[' . substr($SECTION_ANALYTIQUE_3_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_3_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_3_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_3_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_3_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_4_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_4_X,0,2); + $oid = $SECTION_ANALYTIQUE_4_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_4_section_id[' . substr($SECTION_ANALYTIQUE_4_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_4_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_4_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_4_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_4_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_5_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_5_X,0,2); + $oid = $SECTION_ANALYTIQUE_5_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_5_section_id[' . substr($SECTION_ANALYTIQUE_5_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_5_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_5_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_5_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_5_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_6_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_6_X,0,2); + $oid = $SECTION_ANALYTIQUE_6_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_6_section_id[' . substr($SECTION_ANALYTIQUE_6_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_6_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_6_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_6_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_6_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($SECTION_ANALYTIQUE_7_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_7_X,0,2); + $oid = $SECTION_ANALYTIQUE_7_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_7_section_id[' . substr($SECTION_ANALYTIQUE_7_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_7_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_7_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_7_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_7_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_7_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_7_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_7_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_7_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_8_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_8_X,0,2); + $oid = $SECTION_ANALYTIQUE_8_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_8_section_id[' . substr($SECTION_ANALYTIQUE_8_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_8_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_8_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_8_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_8_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_8_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_8_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_8_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_8_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_9_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_9_X,0,2); + $oid = $SECTION_ANALYTIQUE_9_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_9_section_id[' . substr($SECTION_ANALYTIQUE_9_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_9_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_9_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_9_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_9_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_9_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_9_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_9_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_9_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + return $select; + + EVAL] + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '1' AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice <> '1' " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice = '1' "; + } + if ('[QMOIS]' != '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement IN ('1','2','3') " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' == '1') { + $select = $select . "AND (v_historique_ecritures_1.fin_exercice = '1' OR v_historique_ecritures_1.ajustement IN ('1','2','3')) " ; + } + if ('[QINTER]' == 'I') { + $select = $select . "AND v_historique_ecritures_1.inter_site = '1' " ; + } + if ('[QINTER]' == 'O') { + $select = $select . "AND v_historique_ecritures_1.inter_site <> '1' " ; + } + + if ('[QCONS]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '1' AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '2' " ; + } + + $JOURNAL_X = '-1'; + $JOURNAL_X_CODES = ''; + $COMPTE_X = '-1'; + $COMPTE_X_CODES = ''; + $TYPE_COMPTA_X = '-1'; + $TYPE_COMPTA_X_CODES = ''; + $PARTENAIRE_X = '-1'; + $PARTENAIRE_X_CODES = ''; + $SITE_X = '-1'; + $SITE_X_CODES = ''; + if ('[CH]' == 'C' ) { + $JOURNAL_X = '[JOURNAL_C]'; + $JOURNAL_X_CODES = '[JOURNAL_C_CODES]'; + $COMPTE_X = '[COMPTE_C]'; + $COMPTE_X_CODES = '[COMPTE_C_CODES]'; + $TYPE_COMPTA_X = '[TYPE_COMPTA_C]'; + $TYPE_COMPTA_X_CODES = '[TYPE_COMPTA_C_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + + } + if ('[CH]' == 'H' ) { + $JOURNAL_X = '[JOURNAL_H]'; + $JOURNAL_X_CODES = '[JOURNAL_H_CODES]'; + $COMPTE_X = '[COMPTE_H]'; + $COMPTE_X_CODES = '[COMPTE_H_CODES]'; + $TYPE_COMPTA_X = '[TYPE_COMPTA_H]'; + $TYPE_COMPTA_X_CODES = '[TYPE_COMPTA_H_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + + } + + if ($JOURNAL_X != '-1') { + $mode = substr($JOURNAL_X,0,2); + $oid = $JOURNAL_X; + if ($mode == 'LS') { + $section_id = 'journal_section_id[' . substr($JOURNAL_X,2,2) . ']'; + $oid = substr($JOURNAL_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $JOURNAL_X != 'SAISIECODE' ) { + $mode = 'JR'; + $oid = substr($JOURNAL_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($JOURNAL_X,2);} + if ($JOURNAL_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($JOURNAL_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.journal_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'JR') {$subselect_select = " v_historique_ecritures_1.journal_id = $oid";} + if ($JOURNAL_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT oid FROM compta.t_journaux WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($COMPTE_X != '-1') { + $mode = substr($COMPTE_X,0,2); + $oid = $COMPTE_X; + if ($mode == 'LS') { + $section_id = 'compte_section_id[' . substr($COMPTE_X,2,2) . ']'; + $oid = substr($COMPTE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_X,2);} + if ($COMPTE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) OR + v_historique_ecritures_1.compte_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) + )";} + if ($mode == 'SL') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) AND + v_historique_ecritures_1.compte_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid) + )";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_X == 'SAISIECODE') {$subselect_select = " ( + v_historique_ecritures_1.compte_signe_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes) OR + v_historique_ecritures_1.compte_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes) + )";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($PARTENAIRE_X != '-1') { + $mode = substr($PARTENAIRE_X,0,2); + $oid = $PARTENAIRE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($PARTENAIRE_X,2,2) . ']'; + $oid = substr($PARTENAIRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $PARTENAIRE_X != 'SAISIECODE' ) { + $mode = 'PA'; + $oid = substr($PARTENAIRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($PARTENAIRE_X,2);} + if ($PARTENAIRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($PARTENAIRE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.partenaire_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'PA') {$subselect_select = " v_historique_ecritures_1.partenaire_id = $oid";} + if ($PARTENAIRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT oid FROM compta.t_partenaires WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SITE_X != '-1') { + $mode = substr($SITE_X,0,2); + $oid = $SITE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($SITE_X,2,2) . ']'; + $oid = substr($SITE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $SITE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($SITE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SITE_X,2);} + if ($SITE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($SITE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.site_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($SITE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT oid FROM compta.t_sites WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_X != '-1') { + $mode = substr($TYPE_COMPTA_X,0,2); + $oid = $TYPE_COMPTA_X; + if ($mode == 'LS') { + $section_id = 'type_compta_section_id[' . substr($TYPE_COMPTA_X,2,2) . ']'; + $oid = substr($TYPE_COMPTA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $TYPE_COMPTA_X != 'SAISIECODE' ) { + $mode = 'TY'; + $oid = substr($TYPE_COMPTA_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($TYPE_COMPTA_X,2);} + if ($TYPE_COMPTA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($TYPE_COMPTA_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.type_compta_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'TY') {$subselect_select = " v_historique_ecritures_1.type_compta_id = $oid";} + if ($TYPE_COMPTA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT oid FROM compta.t_types_compta WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + + return $select; + + EVAL] + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '1' AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice <> '1' " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice = '1' "; + } + if ('[QMOIS]' != '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement IN ('1','2','3') " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' == '1') { + $select = $select . "AND (v_historique_ecritures_1.fin_exercice = '1' OR v_historique_ecritures_1.ajustement IN ('1','2','3')) " ; + } + if ('[QINTER]' == 'I') { + $select = $select . "AND v_historique_ecritures_1.inter_site = '1' " ; + } + if ('[QINTER]' == 'O') { + $select = $select . "AND v_historique_ecritures_1.inter_site <> '1' " ; + } + + if ('[QCONS]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '1' AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '2' " ; + } + + $JOURNAL_X = '-1'; + $JOURNAL_X_CODES = ''; + $COMPTE_EXTRA_X = '-1'; + $COMPTE_EXTRA_X_CODES = ''; + $TYPE_COMPTA_EXTRA_X = '-1'; + $TYPE_COMPTA_EXTRA_X_CODES = ''; + $PARTENAIRE_X = '-1'; + $PARTENAIRE_X_CODES = ''; + $SITE_X = '-1'; + $SITE_X_CODES = ''; + if ('[CH]' == 'C' ) { + $JOURNAL_X = '[JOURNAL_C]'; + $JOURNAL_X_CODES = '[JOURNAL_C_CODES]'; + $COMPTE_EXTRA_X = '[COMPTE_EXTRA_C]'; + $COMPTE_EXTRA_X_CODES = '[COMPTE_EXTRA_C_CODES]'; + $TYPE_COMPTA_EXTRA_X = '[TYPE_COMPTA_EXTRA_C]'; + $TYPE_COMPTA_EXTRA_X_CODES = '[TYPE_COMPTA_EXTRA_C_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + } + if ('[CH]' == 'H' ) { + $JOURNAL_X = '[JOURNAL_H]'; + $JOURNAL_X_CODES = '[JOURNAL_H_CODES]'; + $COMPTE_EXTRA_X = '[COMPTE_EXTRA_H]'; + $COMPTE_EXTRA_X_CODES = '[COMPTE_EXTRA_H_CODES]'; + $TYPE_COMPTA_EXTRA_X = '[TYPE_COMPTA_EXTRA_H]'; + $TYPE_COMPTA_EXTRA_X_CODES = '[TYPE_COMPTA_EXTRA_H_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + } + + if ($JOURNAL_X != '-1') { + $mode = substr($JOURNAL_X,0,2); + $oid = $JOURNAL_X; + if ($mode == 'LS') { + $section_id = 'journal_section_id[' . substr($JOURNAL_X,2,2) . ']'; + $oid = substr($JOURNAL_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $JOURNAL_X != 'SAISIECODE' ) { + $mode = 'JR'; + $oid = substr($JOURNAL_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($JOURNAL_X,2);} + if ($JOURNAL_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($JOURNAL_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.journal_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'JR') {$subselect_select = " v_historique_ecritures_1.journal_id = $oid";} + if ($JOURNAL_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT oid FROM compta.t_journaux WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($COMPTE_EXTRA_X != '-1') { + $mode = substr($COMPTE_EXTRA_X,0,2); + $oid = $COMPTE_EXTRA_X; + if ($mode == 'LS') { + $section_id = 'compte_extra_section_id[' . substr($COMPTE_EXTRA_X,2,2) . ']'; + $oid = substr($COMPTE_EXTRA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_EXTRA_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_EXTRA_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_EXTRA_X,2);} + if ($COMPTE_EXTRA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_EXTRA_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.compte_extra_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.compte_extra_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_extra_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_EXTRA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.compte_extra_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($PARTENAIRE_X != '-1') { + $mode = substr($PARTENAIRE_X,0,2); + $oid = $PARTENAIRE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($PARTENAIRE_X,2,2) . ']'; + $oid = substr($PARTENAIRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $PARTENAIRE_X != 'SAISIECODE' ) { + $mode = 'PA'; + $oid = substr($PARTENAIRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($PARTENAIRE_X,2);} + if ($PARTENAIRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($PARTENAIRE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.partenaire_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'PA') {$subselect_select = " v_historique_ecritures_1.partenaire_id = $oid";} + if ($PARTENAIRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT oid FROM compta.t_partenaires WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SITE_X != '-1') { + $mode = substr($SITE_X,0,2); + $oid = $SITE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($SITE_X,2,2) . ']'; + $oid = substr($SITE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $SITE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($SITE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SITE_X,2);} + if ($SITE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($SITE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.site_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($SITE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT oid FROM compta.t_sites WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_EXTRA_X != '-1') { + $mode = substr($TYPE_COMPTA_EXTRA_X,0,2); + $oid = $TYPE_COMPTA_EXTRA_X; + if ($mode == 'LS') { + $section_id = 'type_compta_extra_section_id[' . substr($TYPE_COMPTA_EXTRA_X,2,2) . ']'; + $oid = substr($TYPE_COMPTA_EXTRA_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $TYPE_COMPTA_EXTRA_X != 'SAISIECODE' ) { + $mode = 'TY'; + $oid = substr($TYPE_COMPTA_EXTRA_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($TYPE_COMPTA_EXTRA_X,2);} + if ($TYPE_COMPTA_EXTRA_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($TYPE_COMPTA_EXTRA_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'TY') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id = $oid";} + if ($TYPE_COMPTA_EXTRA_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.type_compta_extra_id IN (SELECT oid FROM compta.t_types_compta WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + return $select; + + EVAL] + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '1' AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice <> '1' " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice = '1' "; + } + if ('[QMOIS]' != '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement IN ('1','2','3') " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' == '1') { + $select = $select . "AND (v_historique_ecritures_1.fin_exercice = '1' OR v_historique_ecritures_1.ajustement IN ('1','2','3')) " ; + } + if ('[QINTER]' == 'I') { + $select = $select . "AND v_historique_ecritures_1.inter_site = '1' " ; + } + if ('[QINTER]' == 'O') { + $select = $select . "AND v_historique_ecritures_1.inter_site <> '1' " ; + } + + if ('[QCONS]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '1' AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '2' " ; + } + + $JOURNAL_X = '-1'; + $JOURNAL_X_CODES = ''; + $COMPTE_BUDGET_X = '-1'; + $COMPTE_BUDGET_X_CODES = ''; + $PARTENAIRE_X = '-1'; + $PARTENAIRE_X_CODES = ''; + $SITE_X = '-1'; + $SITE_X_CODES = ''; + $TYPE_COMPTA_X = 'LI'; + if ('[CH]' == 'C' ) { + $JOURNAL_X = '[JOURNAL_C]'; + $JOURNAL_X_CODES = '[JOURNAL_C_CODES]'; + $COMPTE_BUDGET_X = '[COMPTE_BUDGET_C]'; + $COMPTE_BUDGET_X_CODES = '[COMPTE_BUDGET_C_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + } + if ('[CH]' == 'H' ) { + $JOURNAL_X = '[JOURNAL_H]'; + $JOURNAL_X_CODES = '[JOURNAL_H_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + } + + if ($JOURNAL_X != '-1') { + $mode = substr($JOURNAL_X,0,2); + $oid = $JOURNAL_X; + if ($mode == 'LS') { + $section_id = 'journal_section_id[' . substr($JOURNAL_X,2,2) . ']'; + $oid = substr($JOURNAL_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $JOURNAL_X != 'SAISIECODE' ) { + $mode = 'JR'; + $oid = substr($JOURNAL_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($JOURNAL_X,2);} + if ($JOURNAL_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($JOURNAL_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.journal_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'JR') {$subselect_select = " v_historique_ecritures_1.journal_id = $oid";} + if ($JOURNAL_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT oid FROM compta.t_journaux WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($COMPTE_BUDGET_X != '-1') { + $mode = substr($COMPTE_BUDGET_X,0,2); + $oid = $COMPTE_BUDGET_X; + if ($mode == 'LS') { + $section_id = 'compte_budget_section_id[' . substr($COMPTE_BUDGET_X,2,2) . ']'; + $oid = substr($COMPTE_BUDGET_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'CL' && $mode != 'LS' && $COMPTE_BUDGET_X != 'SAISIECODE' ) { + $mode = 'CP'; + $oid = substr($COMPTE_BUDGET_X,2); + } + if ($mode == 'LI' || $mode == 'SL' || $mode == 'CL') {$oid = substr($COMPTE_BUDGET_X,2);} + if ($COMPTE_BUDGET_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($COMPTE_BUDGET_X_CODES, 'numero');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.compte_budget_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.compte_budget_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'CP') {$subselect_select = " v_historique_ecritures_1.compte_budget_id = $oid";} + if ($mode == 'CL') {$subselect_select = " (v_historique_ecritures_1.classe_1_id = $oid OR v_historique_ecritures_1.classe_2_id = $oid OR + v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_3_id = $oid OR v_historique_ecritures_1.classe_5_id = $oid)";} + if ($COMPTE_BUDGET_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.compte_budget_id IN (SELECT oid FROM compta.t_comptes WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($PARTENAIRE_X != '-1') { + $mode = substr($PARTENAIRE_X,0,2); + $oid = $PARTENAIRE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($PARTENAIRE_X,2,2) . ']'; + $oid = substr($PARTENAIRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $PARTENAIRE_X != 'SAISIECODE' ) { + $mode = 'PA'; + $oid = substr($PARTENAIRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($PARTENAIRE_X,2);} + if ($PARTENAIRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($PARTENAIRE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.partenaire_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'PA') {$subselect_select = " v_historique_ecritures_1.partenaire_id = $oid";} + if ($PARTENAIRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT oid FROM compta.t_partenaires WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SITE_X != '-1') { + $mode = substr($SITE_X,0,2); + $oid = $SITE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($SITE_X,2,2) . ']'; + $oid = substr($SITE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $SITE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($SITE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SITE_X,2);} + if ($SITE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($SITE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.site_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($SITE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT oid FROM compta.t_sites WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_X != '-1') { + $mode = substr($TYPE_COMPTA_X,0,2); + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = (SELECT oid FROM compta.t_listes WHERE code='CTITYPEGES'))";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + return $select; + + EVAL] + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + '1' AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement NOT IN ('1','2','3') " ; + } + if ('[QMOIS]' == '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice <> '1' " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' != '1') { + $select = $select . "AND v_historique_ecritures_1.fin_exercice = '1' "; + } + if ('[QMOIS]' != '1' & '[Q13]' != '1' & '[QAJ]' == '1') { + $select = $select . "AND v_historique_ecritures_1.ajustement IN ('1','2','3') " ; + } + if ('[QMOIS]' != '1' & '[Q13]' == '1' & '[QAJ]' == '1') { + $select = $select . "AND (v_historique_ecritures_1.fin_exercice = '1' OR v_historique_ecritures_1.ajustement IN ('1','2','3')) " ; + } + if ('[QINTER]' == 'I') { + $select = $select . "AND v_historique_ecritures_1.inter_site = '1' " ; + } + if ('[QINTER]' == 'O') { + $select = $select . "AND v_historique_ecritures_1.inter_site <> '1' " ; + } + + if ('[QCONS]' != '1') { + $select = $select . "AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '1' AND v_historique_ecritures_1.ecriture_consolidee IS DISTINCT FROM '2' " ; + } + + $JOURNAL_X = '-1'; + $JOURNAL_X_CODES = ''; + $PARTENAIRE_X = '-1'; + $PARTENAIRE_X_CODES = ''; + $SITE_X = '-1'; + $SITE_X_CODES = ''; + $SECTION_ANALYTIQUE_X = '-1'; + $TYPE_COMPTA_X = 'LI'; + if ('[CH]' == 'C' ) { + $JOURNAL_X = '[JOURNAL_C]'; + $JOURNAL_X_CODES = '[JOURNAL_C_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + $SECTION_ANALYTIQUE_X = '[SECTION_ANALYTIQUE_C]'; + $SECTION_ANALYTIQUE_2_X = '[SECTION_ANALYTIQUE_2_C]'; + $SECTION_ANALYTIQUE_3_X = '[SECTION_ANALYTIQUE_3_C]'; + $SECTION_ANALYTIQUE_4_X = '[SECTION_ANALYTIQUE_4_C]'; + $SECTION_ANALYTIQUE_5_X = '[SECTION_ANALYTIQUE_5_C]'; + $SECTION_ANALYTIQUE_6_X = '[SECTION_ANALYTIQUE_6_C]'; + } + if ('[CH]' == 'H' ) { + $JOURNAL_X = '[JOURNAL_H]'; + $JOURNAL_X_CODES = '[JOURNAL_H_CODES]'; + $PARTENAIRE_X = '[PARTENAIRE_C]'; + $PARTENAIRE_X_CODES = '[PARTENAIRE_C_CODES]'; + $SITE_X = '[SITE_C]'; + $SITE_X_CODES = '[SITE_C_CODES]'; + $SECTION_ANALYTIQUE_X = '-1'; + $SECTION_ANALYTIQUE_2_X = '-1'; + $SECTION_ANALYTIQUE_3_X = '-1'; + $SECTION_ANALYTIQUE_4_X = '-1'; + $SECTION_ANALYTIQUE_5_X = '-1'; + $SECTION_ANALYTIQUE_6_X = '-1'; + } + + if ($JOURNAL_X != '-1') { + $mode = substr($JOURNAL_X,0,2); + $oid = $JOURNAL_X; + if ($mode == 'LS') { + $section_id = 'journal_section_id[' . substr($JOURNAL_X,2,2) . ']'; + $oid = substr($JOURNAL_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $JOURNAL_X != 'SAISIECODE' ) { + $mode = 'JR'; + $oid = substr($JOURNAL_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($JOURNAL_X,2);} + if ($JOURNAL_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($JOURNAL_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.journal_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'JR') {$subselect_select = " v_historique_ecritures_1.journal_id = $oid";} + if ($JOURNAL_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.journal_id IN (SELECT oid FROM compta.t_journaux WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + if ($PARTENAIRE_X != '-1') { + $mode = substr($PARTENAIRE_X,0,2); + $oid = $PARTENAIRE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($PARTENAIRE_X,2,2) . ']'; + $oid = substr($PARTENAIRE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $PARTENAIRE_X != 'SAISIECODE' ) { + $mode = 'PA'; + $oid = substr($PARTENAIRE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($PARTENAIRE_X,2);} + if ($PARTENAIRE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($PARTENAIRE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.partenaire_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'PA') {$subselect_select = " v_historique_ecritures_1.partenaire_id = $oid";} + if ($PARTENAIRE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.partenaire_id IN (SELECT oid FROM compta.t_partenaires WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SITE_X != '-1') { + $mode = substr($SITE_X,0,2); + $oid = $SITE_X; + if ($mode == 'LS') { + $section_id = 'partenaire_section_id[' . substr($SITE_X,2,2) . ']'; + $oid = substr($SITE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $SITE_X != 'SAISIECODE' ) { + $mode = 'SI'; + $oid = substr($SITE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SITE_X,2);} + if ($SITE_X == 'SAISIECODE') {$where_codes = sql_codes_list_a($SITE_X_CODES, 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.site_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SI') {$subselect_select = " v_historique_ecritures_1.site_id = $oid";} + if ($SITE_X == 'SAISIECODE') {$subselect_select = " v_historique_ecritures_1.site_id IN (SELECT oid FROM compta.t_sites WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($TYPE_COMPTA_X != '-1') { + $mode = substr($TYPE_COMPTA_X,0,2); + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.type_compta_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = (SELECT oid FROM compta.t_listes WHERE code='CTITYPEGES'))";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_X,0,2); + $oid = $SECTION_ANALYTIQUE_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_section_id[' . substr($SECTION_ANALYTIQUE_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_2_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_2_X,0,2); + $oid = $SECTION_ANALYTIQUE_2_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_2_section_id[' . substr($SECTION_ANALYTIQUE_2_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_2_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_2_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_2_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_2_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_2_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_3_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_3_X,0,2); + $oid = $SECTION_ANALYTIQUE_3_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_3_section_id[' . substr($SECTION_ANALYTIQUE_3_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_3_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_3_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_3_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_3_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_3_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_4_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_4_X,0,2); + $oid = $SECTION_ANALYTIQUE_4_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_4_section_id[' . substr($SECTION_ANALYTIQUE_4_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_4_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_4_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_4_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_4_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_4_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_5_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_5_X,0,2); + $oid = $SECTION_ANALYTIQUE_5_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_5_section_id[' . substr($SECTION_ANALYTIQUE_5_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_5_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_5_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_5_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_5_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_5_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + if ($SECTION_ANALYTIQUE_6_X != '-1') { + $mode = substr($SECTION_ANALYTIQUE_6_X,0,2); + $oid = $SECTION_ANALYTIQUE_6_X; + if ($mode == 'LS') { + $section_id = 'section_analytique_6_section_id[' . substr($SECTION_ANALYTIQUE_6_X,2,2) . ']'; + $oid = substr($SECTION_ANALYTIQUE_6_X,4); + } + if ($mode != 'LI' && $mode != 'SL' && $mode != 'LS' && $mode != 'C*') { + $mode = 'SA'; + $oid = substr($SECTION_ANALYTIQUE_6_X,2); + } + if ($mode == 'LI' || $mode == 'SL') {$oid = substr($SECTION_ANALYTIQUE_6_X,2);} + if ($mode == 'C*') {$where_codes = sql_codes_list_a(substr($SECTION_ANALYTIQUE_6_X,2), 'code');} + + $subselect_select = ''; + + if ($mode == 'LI') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'SL') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id NOT IN (SELECT to_id FROM compta.t_listes_contenu WHERE liste_id = $oid)";} + if ($mode == 'LS') {$subselect_select = " v_historique_ecritures_1.$section_id = $oid";} + if ($mode == 'SA') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id = $oid";} + if ($mode == 'C*') {$subselect_select = " v_historique_ecritures_1.section_analytique_6_id IN (SELECT oid FROM compta.t_sections_analytiques WHERE $where_codes)";} + + if ($subselect_select != '') {$select = $select. " AND $subselect_select ";} + + } + + + return $select; + + EVAL] + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + diff --git a/settings/COMPTA_dboptimizer.XML b/settings/COMPTA_dboptimizer.XML new file mode 100644 index 0000000..a7a5a9d --- /dev/null +++ b/settings/COMPTA_dboptimizer.XML @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/COMPTA_globals.XML b/settings/COMPTA_globals.XML new file mode 100644 index 0000000..6e1c1a4 --- /dev/null +++ b/settings/COMPTA_globals.XML @@ -0,0 +1,1361 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/settings/dashboard_indicators/iCTI_compta_analytique_SHS.XML b/settings/dashboard_indicators/iCTI_compta_analytique_SHS.XML new file mode 100644 index 0000000..3affc52 --- /dev/null +++ b/settings/dashboard_indicators/iCTI_compta_analytique_SHS.XML @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/settings/dashboard_indicators/iCTI_compta_chiffrier_comptable.XML b/settings/dashboard_indicators/iCTI_compta_chiffrier_comptable.XML new file mode 100644 index 0000000..611f31e --- /dev/null +++ b/settings/dashboard_indicators/iCTI_compta_chiffrier_comptable.XML @@ -0,0 +1,23 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/settings/dashboard_indicators/iCTI_compta_integrite_tables.XML b/settings/dashboard_indicators/iCTI_compta_integrite_tables.XML new file mode 100644 index 0000000..180b27d --- /dev/null +++ b/settings/dashboard_indicators/iCTI_compta_integrite_tables.XML @@ -0,0 +1,45 @@ + + + + + + + + + + + + + diff --git a/settings/dashboard_indicators/iCTI_compta_nouveau_parametre.XML b/settings/dashboard_indicators/iCTI_compta_nouveau_parametre.XML new file mode 100644 index 0000000..7e2d90b --- /dev/null +++ b/settings/dashboard_indicators/iCTI_compta_nouveau_parametre.XML @@ -0,0 +1,25 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/settings/dashboard_indicators/iCTI_import_compta.XML b/settings/dashboard_indicators/iCTI_import_compta.XML new file mode 100644 index 0000000..dade0c8 --- /dev/null +++ b/settings/dashboard_indicators/iCTI_import_compta.XML @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/swf/CTI_COMPTA_Synchronize.mxml b/swf/CTI_COMPTA_Synchronize.mxml new file mode 100644 index 0000000..a7e4ce4 --- /dev/null +++ b/swf/CTI_COMPTA_Synchronize.mxml @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/swf/CTI_COMPTA_TablesManager.mxml b/swf/CTI_COMPTA_TablesManager.mxml new file mode 100644 index 0000000..a4db468 --- /dev/null +++ b/swf/CTI_COMPTA_TablesManager.mxml @@ -0,0 +1,2196 @@ + + + + + = 0) { + + if (textSearch_GUI.text != "") { + result = false + + for each (var attributeName:String in list_collection.attributesArray) { + if (item[attributeName].toString().toUpperCase().indexOf(textSearch_GUI.text.toUpperCase()) >= 0) { + result=true; + break; + } + } + + } + + if (result == true) { + if (refSearch_GUI.selected == true) { + if (item.hasOwnProperty("nbref")) { + if (Number(item.nbref.toString()) <= 0) { + if (item.hasOwnProperty("nbref2")) { + if (Number(item.nbref.toString()) <= 0) { + result = false; + } + } + else { + result = false; + } + } + } + + } + } + } + + + return result; + } + + // Filter function + public function AJU_site_id_Filter(item:Object):Boolean + { + var result:Boolean = true; + + if (AJU_clinique_honoraire_GUI.selectedIndex < 1) { + if (item.c != "1") { + result = false + } + } + else { + if (item.h != "1") { + result = false + } + } + + + return result; + } + + + // Filter function + public function AJU_journal_code_Filter(item:Object):Boolean + { + var result:Boolean = true; + + if (AJU_clinique_honoraire_GUI.selectedIndex < 1) { + if (item.c != "1") { + result = false + } + } + else { + if (item.h != "1") { + result = false + } + } + + + return result; + } + + public function AJU_compte_numero_Filter(item:Object):Boolean + { + var result:Boolean = true; + + if (AJU_clinique_honoraire_GUI.selectedIndex < 1) { + if (item.c != "1") { + result = false + } + } + else { + if (item.h != "1") { + result = false + } + } + + + return result; + } + + public function AJU_clinique_honoraire_Change():void { + + AJU_site_id_GUI.dataProvider.refresh(); + AJU_site_id_GUI.selectedIndex = 0 + + AJU_journal_code_GUI.dataProvider.refresh(); + AJU_journal_code_GUI.selectedIndex = 0 + + AJU_compte_numero_Provider.refresh(); + + AJU_compte_texte_GUI.text = ""; + var compte_item:Object = AJU_compte_numero_Provider.search("oid",AJU_compte_numero_GUI.text) + if (compte_item != null) { + AJU_compte_texte_GUI.text = compte_item.texte + } + + recordUpdated = true + } + + public function AJU_compte_numero_Change():void { + + AJU_compte_texte_GUI.text = ""; + + var compte_item:Object = AJU_compte_numero_Provider.search("oid",AJU_compte_numero_GUI.text) + if (compte_item != null) { + AJU_compte_texte_GUI.text = compte_item.texte + } + + + recordUpdated = true + } + + + // Filter function + public function BUD_site_id_Filter(item:Object):Boolean + { + var result:Boolean = true; + + if (item.c != "1") { + result = false + } + + + return result; + } + + + public function getRecord():void { + if (recordUpdated == true) { + return; + } + + if (list_GUI.selectedIndex < 0) { + return; + } + + currendRecordItem = list_GUI.selectedItem as Object + + showDetail() + } + + public function addRecord():void { + if (recordUpdated == true) { + return; + } + + currendRecordItem = ObjectUtil.copy(addRecordBase) + + showDetail() + } + + public function showDetail():void { + var i:Number + var item:Object + + if (currendRecordItem == null) { + return; + } + + list_GUI.selectedIndex = -1 + + + if (tableCode == "SIT") { + SIT_oid_GUI.text = currendRecordItem.oid.toString(); + SIT_nbref_GUI.text = currendRecordItem.nbref.toString(); + SIT_code_GUI.text = currendRecordItem.code.toString(); + SIT_texte_GUI.text = currendRecordItem.texte.toString(); + SIT_code_original_GUI.text = currendRecordItem.code_original.toString(); + SIT_clinique_honoraire_GUI.selectedIndex = 0; + if (currendRecordItem.clinique_honoraire.toString() == "H") { + SIT_clinique_honoraire_GUI.selectedIndex = 1; + } + SIT_finess_id_GUI.selectedIndex = 0; + i = -1; + for each (item in SIT_finess_id_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.finess_id.toString()) { + SIT_finess_id_GUI.selectedIndex = i; + } + } + } + + if (tableCode == "JRN") { + JRN_oid_GUI.text = currendRecordItem.oid.toString(); + JRN_nbref_GUI.text = currendRecordItem.nbref.toString(); + JRN_code_GUI.text = currendRecordItem.code.toString(); + JRN_texte_GUI.text = currendRecordItem.texte.toString(); + JRN_code_original_GUI.text = currendRecordItem.code_original.toString(); + JRN_clinique_honoraire_GUI.text = currendRecordItem.clinique_honoraire.toString(); + if (currendRecordItem.clinique_honoraire.toString() == "C") { + JRN_clinique_honoraire_GUI.text = "CLINIQUE" + } + if (currendRecordItem.clinique_honoraire.toString() == "H") { + JRN_clinique_honoraire_GUI.text = "HONORAIRE" + } + if (currendRecordItem.a_nouveaux.toString() == "1") { + JRN_a_nouveaux_GUI.selected = true + } + else { + JRN_a_nouveaux_GUI.selected = false + } + } + + if (tableCode == "TCO") { + TCO_oid_GUI.text = currendRecordItem.oid.toString(); + TCO_nbref_GUI.text = currendRecordItem.nbref.toString(); + TCO_code_GUI.text = currendRecordItem.code.toString(); + TCO_texte_GUI.text = currendRecordItem.texte.toString(); + TCO_code_original_GUI.text = currendRecordItem.code_original.toString(); + } + + if (tableCode == "CLS") { + CLS_oid_GUI.text = currendRecordItem.oid.toString(); + CLS_nbref_GUI.text = currendRecordItem.nbref.toString(); + CLS_code_GUI.text = currendRecordItem.code.toString(); + CLS_texte_GUI.text = currendRecordItem.texte.toString(); + if (currendRecordItem.clinique.toString() == "1") { + CLS_clinique_honoraire_GUI.text = "CLINIQUE" + if (currendRecordItem.honoraire.toString() == "1") { + CLS_clinique_honoraire_GUI.text = CLS_clinique_honoraire_GUI.text + " et HONORAIRE" + } + } + else { + if (currendRecordItem.honoraire.toString() == "1") { + CLS_clinique_honoraire_GUI.text = "HONORAIRE" + } + } + } + + if (tableCode == "CPT") { + CPT_detailTab.selectedIndex = 0 + + CPT_oid_GUI.text = currendRecordItem.oid.toString(); + CPT_nbref_GUI.text = currendRecordItem.nbref.toString(); + CPT_numero_GUI.text = currendRecordItem.numero.toString(); + CPT_texte_GUI.text = currendRecordItem.texte.toString(); + CPT_clinique_honoraire_GUI.text = currendRecordItem.clinique_honoraire.toString(); + if (currendRecordItem.clinique_honoraire.toString() == "C") { + CPT_clinique_honoraire_GUI.text = "CLINIQUE" + } + if (currendRecordItem.clinique_honoraire.toString() == "H") { + CPT_clinique_honoraire_GUI.text = "HONORAIRE" + } + if (currendRecordItem.banque.toString() == "1") { + CPT_banque_GUI.selected = true + } + else { + CPT_banque_GUI.selected = false + } + CPT_solde_initial_GUI.text = currendRecordItem.solde_initial.toString(); + if (currendRecordItem.inter_site.toString() == "1") { + CPT_inter_site_GUI.selected = true + } + else { + CPT_inter_site_GUI.selected = false + } + + if (currendRecordItem.collectif.toString() == "1") { + CPT_collectif_GUI.selected = true + } + else { + CPT_collectif_GUI.selected = false + } + + CPT_type_compta_extra_GUI.dataProvider.refresh(); + CPT_type_compta_extra_GUI.selectedIndex = 0; + i = -1; + for each (item in CPT_type_compta_extra_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.type_compta_extra_id.toString()) { + CPT_type_compta_extra_GUI.selectedIndex = i; + } + } + CPT_numero_extra_GUI.text = currendRecordItem.numero_extra.toString(); + CPT_texte_extra_GUI.text = currendRecordItem.texte_extra.toString(); + } + + if (tableCode == "CPX") { + CPX_oid_GUI.text = currendRecordItem.oid.toString(); + CPX_nbref_GUI.text = currendRecordItem.nbref.toString(); + CPX_numero_GUI.text = currendRecordItem.numero.toString(); + CPX_texte_GUI.text = currendRecordItem.texte.toString(); + CPX_clinique_honoraire_GUI.text = currendRecordItem.clinique_honoraire.toString(); + if (currendRecordItem.clinique_honoraire.toString() == "C") { + CPX_clinique_honoraire_GUI.text = "CLINIQUE" + } + if (currendRecordItem.clinique_honoraire.toString() == "H") { + CPX_clinique_honoraire_GUI.text = "HONORAIRE" + } + CPX_type_compta_GUI.text = currendRecordItem.type_compta.toString(); + if (currendRecordItem.inter_site.toString() == "1") { + CPX_inter_site_GUI.selected = true + } + else { + CPX_inter_site_GUI.selected = false + } + + } + + if (tableCode == "PAR") { + PAR_oid_GUI.text = currendRecordItem.oid.toString(); + PAR_nbref_GUI.text = currendRecordItem.nbref.toString(); + PAR_code_GUI.text = currendRecordItem.code.toString(); + PAR_texte_GUI.text = currendRecordItem.texte.toString(); + PAR_texte_court_GUI.text = currendRecordItem.texte_court.toString(); + PAR_code_original_GUI.text = currendRecordItem.code_original.toString(); + PAR_comptes_GUI.text = currendRecordItem.comptes.toString(); + if (currendRecordItem.intra_groupe.toString() == "1") { + PAR_intra_groupe_GUI.selected = true + } + else { + PAR_intra_groupe_GUI.selected = false + } + } + + if (tableCode == "AJU") { + AJU_oid_GUI.text = currendRecordItem.oid.toString(); + AJU_date_ecriture_GUI.text = currendRecordItem.date_ecriture.toString(); + + AJU_date_ecriture_label_GUI.text = ""; + if (currendRecordItem.date_ecriture.toString() != "") { + AJU_date_ecriture_label_GUI.text = "Saisie le " + currendRecordItem.date_ecriture.toString(); + } + + AJU_mois_comptable_GUI.selectedIndex = 0; + i = -1; + for each (item in AJU_mois_comptable_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.mois_comptable.toString()) { + AJU_mois_comptable_GUI.selectedIndex = i; + } + } + + AJU_clinique_honoraire_GUI.selectedIndex = 0; + if (currendRecordItem.clinique_honoraire.toString() == "H") { + AJU_clinique_honoraire_GUI.selectedIndex = 1; + } + + AJU_site_id_GUI.dataProvider.refresh(); + + AJU_site_id_GUI.selectedIndex = 0; + i = -1; + for each (item in AJU_site_id_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.site_id.toString()) { + AJU_site_id_GUI.selectedIndex = i; + } + } + + AJU_journal_code_GUI.dataProvider.refresh(); + + AJU_journal_code_GUI.selectedIndex = 0; + i = -1; + for each (item in AJU_journal_code_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.journal_code.toString()) { + AJU_journal_code_GUI.selectedIndex = i; + } + } + + AJU_section_code_GUI.dataProvider.refresh(); + + AJU_section_code_GUI.selectedIndex = 0; + i = -1; + for each (item in AJU_section_code_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.section_code.toString()) { + AJU_section_code_GUI.selectedIndex = i; + } + } + + AJU_compte_numero_GUI.text = currendRecordItem.compte_numero.toString(); + + AJU_compte_texte_GUI.text = ""; + var compte_item:Object = AJU_compte_numero_Provider.search("oid",AJU_compte_numero_GUI.text) + if (compte_item != null) { + AJU_compte_texte_GUI.text = compte_item.texte + } + + + AJU_texte_GUI.text = currendRecordItem.texte.toString(); + AJU_report_automatique_mois_suivant_GUI.selected = false + if (currendRecordItem.report_automatique_mois_suivant.toString() == "1") { + AJU_report_automatique_mois_suivant_GUI.selected = true + } + + AJU_est_import_data_GUI.selected = false + if (currendRecordItem.est_import_data.toString() == "1") { + AJU_est_import_data_GUI.selected = true + } + AJU_import_data_GUI.text = currendRecordItem.import_data.toString(); + + AJU_est_balance_GUI.selectedIndex = 0; + if (currendRecordItem.est_balance.toString() == "M") { + AJU_est_balance_GUI.selectedIndex = 1; + } + if (currendRecordItem.est_balance.toString() == "X") { + AJU_est_balance_GUI.selectedIndex = 2; + } + + + AJU_debit_credit_GUI.selectedIndex = 0; + AJU_montant_GUI.text = "0"; + + if (currendRecordItem.montant_credit.toString() == "0") { + AJU_montant_GUI.text = currendRecordItem.montant_debit.toString(); + } + else { + AJU_debit_credit_GUI.selectedIndex = 1; + AJU_montant_GUI.text = currendRecordItem.montant_credit.toString(); + } + + AJU_set_mois_comptables(); + AJU_montant_1_GUI.text = currendRecordItem.montant_ventile_1.toString(); + AJU_montant_2_GUI.text = currendRecordItem.montant_ventile_2.toString(); + AJU_montant_3_GUI.text = currendRecordItem.montant_ventile_3.toString(); + AJU_montant_4_GUI.text = currendRecordItem.montant_ventile_4.toString(); + AJU_montant_5_GUI.text = currendRecordItem.montant_ventile_5.toString(); + AJU_montant_6_GUI.text = currendRecordItem.montant_ventile_6.toString(); + AJU_montant_7_GUI.text = currendRecordItem.montant_ventile_7.toString(); + AJU_montant_8_GUI.text = currendRecordItem.montant_ventile_8.toString(); + AJU_montant_9_GUI.text = currendRecordItem.montant_ventile_9.toString(); + AJU_montant_10_GUI.text = currendRecordItem.montant_ventile_10.toString(); + AJU_montant_11_GUI.text = currendRecordItem.montant_ventile_11.toString(); + AJU_montant_12_GUI.text = currendRecordItem.montant_ventile_12.toString(); + + AJU_set_montant_ventile_total() + + } + + if (tableCode == "BUD") { + BUD_oid_GUI.text = currendRecordItem.oid.toString(); + BUD_code_GUI.text = currendRecordItem.code.toString(); + BUD_texte_GUI.text = currendRecordItem.texte.toString(); + if (currendRecordItem.is_actif.toString() == "1") { + BUD_is_actif_GUI.selected = true + } + else { + BUD_is_actif_GUI.selected = false + } + BUD_exercice_comptable_GUI.selectedIndex = 0; + i = -1; + for each (item in BUD_exercice_comptable_GUI.dataProvider) { + i++; + if (item.data == currendRecordItem.exercice_comptable.toString()) { + BUD_exercice_comptable_GUI.selectedIndex = i; + } + } + + BUD_site_id_GUI.dataProvider.refresh(); + + BUD_site_id_GUI.selectedIndex = 0; + i = -1; + for each (item in BUD_site_id_GUI.dataProvider) { + i++; + if (item.oid == currendRecordItem.site_id.toString()) { + BUD_site_id_GUI.selectedIndex = i; + } + } + + BUD_import_data_GUI.text = currendRecordItem.import_data.toString(); + } + + if (tableCode == "DIV") { + DIV_code_GUI.text = currendRecordItem.code.toString(); + DIV_texte_GUI.text = currendRecordItem.texte.toString(); + DIV_valeur_GUI.text = currendRecordItem.valeur.toString(); + DIV_valeur_date_GUI.text = currendRecordItem.valeur_date.toString(); + DIV_description_GUI.text = currendRecordItem.description.toString(); + DIV_show_info_module_GUI.selected = currendRecordItem.show_info_module.toString() == "1"; + } + + recordUpdated = false; + detailBox_GUI.height = 400 + } + + private function askCancel():void { + + + if (recordUpdated == false) { + hideRecord() + return; + } + + Alert.yesLabel = "OUI"; + Alert.noLabel = "NON"; + var alert:Alert = Alert.show("Les données ont été changées, désirez vous les annuler ?", title, 3, this, alertClickHandler, question_class); + + + + + function alertClickHandler(event:CloseEvent):void { + if (event.detail==Alert.YES) { + hideRecord() + } + else { + + } + } + + + } + + + + private function hideRecord():void { + + detailBox_GUI.height = 0 + currendRecordItem = null; + recordUpdated = false; + } + + + private function askDelete():void { + + + + Alert.yesLabel = "OUI"; + Alert.noLabel = "NON"; + var alert:Alert = Alert.show("Désirez vous vraiment supprimer " + texte_GUI.text + " ?", title, 3, this, alertClickHandler, question_class); + + + + + function alertClickHandler(event:CloseEvent):void { + if (event.detail==Alert.YES) { + deleteRecord() + } + else { + + } + } + + + } + + public function deleteRecord():void { + + updateRecord("delete") + + } + + public function copyRecord():void { + + updateRecord("copy") + + } + + public function saveRecord():void { + + updateRecord("save") + + + } + + public function updateRecord(action:String):void { + + var urlVariables:URLVariables = new URLVariables() + urlVariables.tableName = tableName; + urlVariables.action = action; + var recordNode:XML = new XML(); + if (tableCode == "SIT") { + recordNode.@oid = SIT_oid_GUI.text + recordNode.@code = SIT_code_GUI.text + recordNode.@texte = SIT_texte_GUI.text + recordNode.@code_original = SIT_code_original_GUI.text + recordNode.@clinique_honoraire = SIT_clinique_honoraire_GUI.selectedItem.data + recordNode.@finess_id = SIT_finess_id_GUI.selectedItem.oid + } + if (tableCode == "JRN") { + recordNode.@oid = JRN_oid_GUI.text + recordNode.@code = JRN_code_GUI.text + recordNode.@texte = JRN_texte_GUI.text + recordNode.@code_original = JRN_code_original_GUI.text + recordNode.@clinique_honoraire = JRN_clinique_honoraire_GUI.text.substr(0,1) + if (JRN_a_nouveaux_GUI.selected == true) { + recordNode.@a_nouveaux = "1" + } + else { + recordNode.@a_nouveaux = "0" + } + } + if (tableCode == "TCO") { + recordNode.@oid = TCO_oid_GUI.text + recordNode.@code = TCO_code_GUI.text + recordNode.@texte = TCO_texte_GUI.text + recordNode.@code_original = TCO_code_original_GUI.text + } + if (tableCode == "CLS") { + recordNode.@oid = CLS_oid_GUI.text + recordNode.@code = CLS_code_GUI.text + recordNode.@texte = CLS_texte_GUI.text + } + + if (tableCode == "CPT") { + recordNode.@oid = CPT_oid_GUI.text + recordNode.@numero = CPT_numero_GUI.text + recordNode.@texte = CPT_texte_GUI.text + recordNode.@clinique_honoraire = CPT_clinique_honoraire_GUI.text.substr(0,1) + if (CPT_banque_GUI.selected == true) { + recordNode.@banque = "1" + } + else { + recordNode.@banque = "0" + } + recordNode.@solde_initial = CPT_solde_initial_GUI.text + if (CPT_inter_site_GUI.selected == true) { + recordNode.@inter_site = "1" + } + else { + recordNode.@inter_site = "0" + } + recordNode.@inter_site = "0" + + if (CPT_collectif_GUI.selected == true) { + recordNode.@collectif = "1" + } + else { + recordNode.@collectif = "0" + } + recordNode.@type_compta_extra_id = CPT_type_compta_extra_GUI.selectedItem.oid + recordNode.@numero_extra = CPT_numero_extra_GUI.text + recordNode.@texte_extra = CPT_texte_extra_GUI.text + } + + if (tableCode == "CPX") { + recordNode.@oid = CPX_oid_GUI.text + recordNode.@numero = CPX_numero_GUI.text + recordNode.@texte = CPX_texte_GUI.text + recordNode.@clinique_honoraire = CPX_clinique_honoraire_GUI.text.substr(0,1) + recordNode.@banque = "0" + if (CPX_inter_site_GUI.selected == true) { + recordNode.@inter_site = "1" + } + else { + recordNode.@inter_site = "0" + } + recordNode.@inter_site = "0" + } + + if (tableCode == "PAR") { + recordNode.@oid = PAR_oid_GUI.text + recordNode.@code = PAR_code_GUI.text + recordNode.@texte = PAR_texte_GUI.text + recordNode.@texte_court = PAR_texte_court_GUI.text + recordNode.@code_original = PAR_code_original_GUI.text + if (PAR_intra_groupe_GUI.selected == true) { + recordNode.@intra_groupe = "1" + } + else { + recordNode.@intra_groupe = "0" + } + } + + if (tableCode == "AJU") { + recordNode.@oid = AJU_oid_GUI.text + recordNode.@date_ecriture = AJU_date_ecriture_GUI.text + recordNode.@mois_comptable = AJU_mois_comptable_GUI.selectedItem.oid + recordNode.@site_id = AJU_site_id_GUI.selectedItem.oid + recordNode.@journal_code = AJU_journal_code_GUI.selectedItem.oid + recordNode.@section_code = AJU_section_code_GUI.selectedItem.oid + recordNode.@compte_numero = AJU_compte_numero_GUI.text + recordNode.@texte = AJU_texte_GUI.text + recordNode.@report_automatique_mois_suivant = "0" + if (AJU_report_automatique_mois_suivant_GUI.selected) { + recordNode.@report_automatique_mois_suivant = "1" + } + recordNode.@est_import_data = "0" + if (AJU_est_import_data_GUI.selected) { + recordNode.@est_import_data = "1" + } + recordNode.@import_data = AJU_import_data_GUI.text + recordNode.@est_balance = AJU_est_balance_GUI.selectedItem.data + recordNode.@clinique_honoraire = AJU_clinique_honoraire_GUI.selectedItem.data + + recordNode.@montant_debit = "0" + recordNode.@montant_credit = "0" + if (AJU_debit_credit_GUI.selectedIndex != 1) { + recordNode.@montant_debit = AJU_montant_GUI.text + } + else { + recordNode.@montant_credit = AJU_montant_GUI.text + } + + recordNode.@mois_ventile_1 = 0 + recordNode.@mois_ventile_2 = 0 + recordNode.@mois_ventile_3 = 0 + recordNode.@mois_ventile_4 = 0 + recordNode.@mois_ventile_5 = 0 + recordNode.@mois_ventile_6 = 0 + recordNode.@mois_ventile_7 = 0 + recordNode.@mois_ventile_8 = 0 + recordNode.@mois_ventile_9 = 0 + recordNode.@mois_ventile_10 = 0 + recordNode.@mois_ventile_11 = 0 + recordNode.@mois_ventile_12 = 0 + recordNode.@montant_ventile_1 = 0 + recordNode.@montant_ventile_2 = 0 + recordNode.@montant_ventile_3 = 0 + recordNode.@montant_ventile_4 = 0 + recordNode.@montant_ventile_5 = 0 + recordNode.@montant_ventile_6 = 0 + recordNode.@montant_ventile_7 = 0 + recordNode.@montant_ventile_8 = 0 + recordNode.@montant_ventile_9 = 0 + recordNode.@montant_ventile_10 = 0 + recordNode.@montant_ventile_11 = 0 + recordNode.@montant_ventile_12 = 0 + + var selectedMois:int = AJU_mois_comptable_GUI.selectedIndex + recordNode.@mois_ventile_1 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_1.toString() + recordNode.@mois_ventile_2 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_2.toString() + recordNode.@mois_ventile_3 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_3.toString() + recordNode.@mois_ventile_4 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_4.toString() + recordNode.@mois_ventile_5 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_5.toString() + recordNode.@mois_ventile_6 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_6.toString() + recordNode.@mois_ventile_7 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_7.toString() + recordNode.@mois_ventile_8 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_8.toString() + recordNode.@mois_ventile_9 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_9.toString() + recordNode.@mois_ventile_10 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_10.toString() + recordNode.@mois_ventile_11 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_11.toString() + recordNode.@mois_ventile_12 = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_12.toString() + + recordNode.@montant_ventile_1 = AJU_montant_1_GUI.text + recordNode.@montant_ventile_2 = AJU_montant_2_GUI.text + recordNode.@montant_ventile_3 = AJU_montant_3_GUI.text + recordNode.@montant_ventile_4 = AJU_montant_4_GUI.text + recordNode.@montant_ventile_5 = AJU_montant_5_GUI.text + recordNode.@montant_ventile_6 = AJU_montant_6_GUI.text + recordNode.@montant_ventile_7 = AJU_montant_7_GUI.text + recordNode.@montant_ventile_8 = AJU_montant_8_GUI.text + recordNode.@montant_ventile_9 = AJU_montant_9_GUI.text + recordNode.@montant_ventile_10 = AJU_montant_10_GUI.text + recordNode.@montant_ventile_11 = AJU_montant_11_GUI.text + recordNode.@montant_ventile_12 = AJU_montant_12_GUI.text + + } + + if (tableCode == "BUD") { + recordNode.@oid = BUD_oid_GUI.text + recordNode.@code = BUD_code_GUI.text + recordNode.@texte = BUD_texte_GUI.text + if (BUD_is_actif_GUI.selected == true) { + recordNode.@is_actif = "1" + } + else { + recordNode.@is_actif = "0" + } + recordNode.@exercice_comptable = BUD_exercice_comptable_GUI.selectedItem.data + recordNode.@import_data = BUD_import_data_GUI.text + recordNode.@site_id = BUD_site_id_GUI.selectedItem.oid + } + + if (tableCode == "DIV") { + recordNode.@code = DIV_code_GUI.text + recordNode.@texte = DIV_texte_GUI.text + recordNode.@valeur = DIV_valeur_GUI.text + recordNode.@valeur_date = DIV_valeur_date_GUI.text + recordNode.@description = DIV_description_GUI.text + if (DIV_show_info_module_GUI.selected == true) { + recordNode.@show_info_module = "1" + } else { + recordNode.@show_info_module = "0" + } + } + + + urlVariables.recordNode = recordNode.toXMLString(); + + CTI_Utilitaires.startRequestHTTP("modules/compta/php/COMPTA_setTableRecord.php",urlVariables,exec,true) + + function exec(resultatService:XML):void { + + getData() + + detailBox_GUI.height = 0 + currendRecordItem = null; + recordUpdated = false; + } + + + } + + + public function AJU_mois_comptable_handler():void { + recordUpdated = true + AJU_set_mois_comptables() + } + + public function AJU_set_mois_comptables():void { + AJU_mois_comptable_1_GUI.text = "" + AJU_mois_comptable_2_GUI.text = "" + AJU_mois_comptable_3_GUI.text = "" + AJU_mois_comptable_4_GUI.text = "" + AJU_mois_comptable_5_GUI.text = "" + AJU_mois_comptable_6_GUI.text = "" + AJU_mois_comptable_7_GUI.text = "" + AJU_mois_comptable_8_GUI.text = "" + AJU_mois_comptable_9_GUI.text = "" + AJU_mois_comptable_10_GUI.text = "" + AJU_mois_comptable_11_GUI.text = "" + AJU_mois_comptable_12_GUI.text = "" + + var selectedMois:int = AJU_mois_comptable_GUI.selectedIndex + + AJU_mois_comptable_1_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_1.toString() + AJU_mois_comptable_2_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_2.toString() + AJU_mois_comptable_3_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_3.toString() + AJU_mois_comptable_4_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_4.toString() + AJU_mois_comptable_5_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_5.toString() + AJU_mois_comptable_6_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_6.toString() + AJU_mois_comptable_7_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_7.toString() + AJU_mois_comptable_8_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_8.toString() + AJU_mois_comptable_9_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_9.toString() + AJU_mois_comptable_10_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_10.toString() + AJU_mois_comptable_11_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_11.toString() + AJU_mois_comptable_12_GUI.text = AJU_mois_comptable_GUI.dataProvider[selectedMois].mois_exercice_texte_12.toString() + + } + + public function AJU_montant_ventile_handler():void { + AJU_set_montant_ventile_total() + + recordUpdated = true + } + + public function AJU_set_montant_ventile_total():void { + AJU_montant_ventile_GUI.text = + CTI_Formatters.numberFormat( + stringToNumber(AJU_montant_1_GUI.text) + + stringToNumber(AJU_montant_2_GUI.text) + + stringToNumber(AJU_montant_3_GUI.text) + + stringToNumber(AJU_montant_4_GUI.text) + + stringToNumber(AJU_montant_5_GUI.text) + + stringToNumber(AJU_montant_6_GUI.text) + + stringToNumber(AJU_montant_7_GUI.text) + + stringToNumber(AJU_montant_8_GUI.text) + + stringToNumber(AJU_montant_9_GUI.text) + + stringToNumber(AJU_montant_10_GUI.text) + + stringToNumber(AJU_montant_11_GUI.text) + + stringToNumber(AJU_montant_12_GUI.text), "0,00") + } + + + public function AJU_ventile():void { + var AJU_montant:Number = stringToNumber(AJU_montant_GUI.text) + var AJU_montant_x:Number = Math.round(AJU_montant*100/12)/100 + AJU_montant_1_GUI.text = CTI_Formatters.numberFormat(AJU_montant_x, "0,00") + AJU_montant_2_GUI.text = AJU_montant_1_GUI.text + AJU_montant_3_GUI.text = AJU_montant_1_GUI.text + AJU_montant_4_GUI.text = AJU_montant_1_GUI.text + AJU_montant_5_GUI.text = AJU_montant_1_GUI.text + AJU_montant_6_GUI.text = AJU_montant_1_GUI.text + AJU_montant_7_GUI.text = AJU_montant_1_GUI.text + AJU_montant_8_GUI.text = AJU_montant_1_GUI.text + AJU_montant_9_GUI.text = AJU_montant_1_GUI.text + AJU_montant_10_GUI.text = AJU_montant_1_GUI.text + AJU_montant_11_GUI.text = AJU_montant_1_GUI.text + AJU_montant_12_GUI.text = CTI_Formatters.numberFormat(AJU_montant - AJU_montant_x*11,"0,00") + + AJU_montant_ventile_handler() + } + + + + public function print():void { + + var printReport:CTI_Print = new CTI_Print() + + if (printReport.start("COMPTA_TablesManager", titlePrint) == false) { + return; + } + + printReport.addDataGrid(list_GUI) + + printReport.print(); + + } + + public function exportExcel():void { + var xml:XML = new XML() + + + var ongletNode:XML + var similiTabNode:XML + var selectionsNode:XML + var datagridNode:XML + var columnNode:XML + var dataNode:XML + var rowNode:XML + + xml.@viewName = this.viewName; + xml.@title = this.title; + + selectionsNode = new XML() + selectionsNode.displayText = "" + + if (refSearch_GUI.selected == true) { + selectionsNode.@displayText = selectionsNode.displayText + "Uniquement les codes référencés. "; + } + if (textSearch_GUI.text != "") { + selectionsNode.@displayText = selectionsNode.displayText + "(Filtre : " + textSearch_GUI.text + ") "; + } + + + + xml.appendChild(selectionsNode); + + + ongletNode = new XML(); + ongletNode.@excelLabel = tableCode; + xml.appendChild(ongletNode); + + similiTabNode = new XML(); + similiTabNode.@excelLabel = "Liste"; + ongletNode.appendChild(similiTabNode); + + datagridNode = new XML(); + datagridNode.@total = "false"; + ongletNode.appendChild(datagridNode); + + for each (var column:DataGridColumn in list_GUI.columns) { + columnNode = new XML(); + columnNode.@dataField = column.dataField; + columnNode.@headerText = column.headerText; + columnNode.@type = "Char"; + columnNode.@textAlign = column.getStyle("textAlign"); + datagridNode.appendChild(columnNode); + } + + dataNode = new XML(); + similiTabNode.appendChild(dataNode); + + + for each (var itemNode:Object in list_collection) { + if (itemNode.oid != "-1") { + rowNode = new XML() + var c:int = 0; + for each (column in list_GUI.columns) { + c++; + rowNode.@["c" + c.toString()] = itemNode[column.dataField] + } + dataNode.appendChild(rowNode); + } + } + + + CTI_ExcelUtilitaires.exportExcel(xml); + } + + public function exportPDF():void { + var xml:XML = new XML() + + + var ongletNode:XML + var selectionsNode:XML + var datagridNode:XML + var columnNode:XML + var dataNode:XML + var rowNode:XML + + xml.@viewName = this.viewName; + xml.@title = this.title; + + selectionsNode = new XML() + selectionsNode.displayText = "" + + if (refSearch_GUI.selected == true) { + selectionsNode.displayText = selectionsNode.displayText + "Uniquement les codes référencés. "; + } + if (textSearch_GUI.text != "") { + selectionsNode.displayText = selectionsNode.displayText + "(Filtre : " + textSearch_GUI.text + ") "; + } + + + + xml.appendChild(selectionsNode); + + + ongletNode = new XML(); + ongletNode.@excelLabel = tableCode; + xml.appendChild(ongletNode); + + datagridNode = new XML(); + datagridNode.@total = "false"; + ongletNode.appendChild(datagridNode); + + for each (var column:DataGridColumn in list_GUI.columns) { + columnNode = new XML(); + columnNode.@dataField = column.dataField; + columnNode.@headerText = column.headerText; + columnNode.@type = "Char"; + columnNode.@textAlign = column.getStyle("textAlign"); + datagridNode.appendChild(columnNode); + } + + dataNode = new XML(); + ongletNode.appendChild(dataNode); + + + for each (var itemNode:Object in list_collection) { + if (itemNode.oid != "-1") { + rowNode = new XML() + var c:int = 0; + for each (column in list_GUI.columns) { + c++; + rowNode.@["c" + c.toString()] = itemNode[column.dataField] + } + dataNode.appendChild(rowNode); + } + } + + + CTI_PDFUtilitaires.exportPDF(xml); + + xml = null; + } + + public function stringToNumber(fromString:String):Number { + var wtext:String = fromString.replace(",", ".") + wtext = wtext.replace(" ", "") + return Number(wtext) + } + + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/swf/buildCTI_COMPTA_Synchronize.bat b/swf/buildCTI_COMPTA_Synchronize.bat new file mode 100644 index 0000000..dfbcf66 --- /dev/null +++ b/swf/buildCTI_COMPTA_Synchronize.bat @@ -0,0 +1,9 @@ +@echo off +SET ori_path=%cd% +CD ..\..\base\swf +SET sources_path=%cd% +CD %ori_path% +:: sources_path permet d'inclure le répertoire CTI qui contient les composants maison +SET OPTS=-use-network=false -optimize=true -debug=true -source-path="%sources_path%" +C:\flex_sdk_350\bin\mxmlc.exe %OPTS% .\CTI_COMPTA_Synchronize.mxml -output ..\..\..\CTI_COMPTA_Synchronize.swf +PAUSE \ No newline at end of file diff --git a/swf/buildCTI_COMPTA_TablesManager.bat b/swf/buildCTI_COMPTA_TablesManager.bat new file mode 100644 index 0000000..ba9f166 --- /dev/null +++ b/swf/buildCTI_COMPTA_TablesManager.bat @@ -0,0 +1,9 @@ +@echo off +SET ori_path=%cd% +CD ..\..\base\swf +SET sources_path=%cd% +CD %ori_path% +:: sources_path permet d'inclure le répertoire CTI qui contient les composants maison +SET OPTS=-use-network=false -optimize=true -debug=true -source-path="%sources_path%" +C:\flex_sdk_350\bin\mxmlc.exe %OPTS% .\CTI_COMPTA_TablesManager.mxml -output ..\..\..\CTI_COMPTA_TablesManager.swf +PAUSE \ No newline at end of file diff --git a/swf/build_compta.bat b/swf/build_compta.bat new file mode 100644 index 0000000..344ac72 --- /dev/null +++ b/swf/build_compta.bat @@ -0,0 +1,5 @@ +@echo off + +CALL build_compta_silently.bat + +PAUSE \ No newline at end of file diff --git a/swf/build_compta_silently.bat b/swf/build_compta_silently.bat new file mode 100644 index 0000000..0227765 --- /dev/null +++ b/swf/build_compta_silently.bat @@ -0,0 +1,12 @@ +@echo off +SET ori_path=%cd% +CD ..\..\base\swf +SET sources_path=%cd% +CD %ori_path% +:: sources_path permet d'inclure le répertoire CTI qui contient les composants maison +SET OPTS=-use-network=false -optimize=true -debug=false -source-path="%sources_path%" + +FOR /r . %%F IN (*.mxml) DO ( + IF EXIST "%%~nF.mxml" echo %%~nF.mxml + IF EXIST "%%~nF.mxml" C:\flex_sdk_350\bin\mxmlc.exe %OPTS% .\%%~nF.mxml -output ..\..\..\%%~nF.swf +)