Commit fa908a73 authored by Antony Le Courtes's avatar Antony Le Courtes
Browse files

Ajout des heures pour l'extraction budgétaire SIHAM

parent 6a5f9624
Loading
Loading
Loading
Loading
+46 −47
Changes for data/ddl/view/V_IMPUTATION_BUDGETAIRE_SIHAM.sql: 46 added lines, 47 removed lines.
Original line number Diff line number Diff line
CREATE OR REPLACE FORCE VIEW V_IMPUTATION_BUDGETAIRE_SIHAM AS
SELECT
             'P'                  TYPE,
CREATE
OR REPLACE FORCE VIEW V_IMPUTATION_BUDGETAIRE_SIHAM AS
SELECT 'P'                                                                                type,
       NULL                                                                               uo,
       intervenant_matricule                                                              matricule,
       date_debut                                                                         date_debut,
       date_fin                                                                           date_fin,
             CASE WHEN rem_fc_d714 > 0 THEN '1542' ELSE
       CASE
           WHEN rem_fc_d714 > 0 THEN '1542'
           ELSE
               CASE WHEN type_intervenant_code = 'P' THEN '0204' ELSE '2251' END
           END                                                                            code_indemnite,
       eotp_code                                                                          operation,
@@ -13,17 +15,22 @@ SELECT
       domaine_fonctionnel_code                                                           destination,
       NULL                                                                               fonds,
       NULL                                                                               poste_reservation_credit,
             to_char((CASE WHEN pourc_ecart >= 0 THEN
                 CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
       to_char((CASE
                    WHEN pourc_ecart >= 0 THEN
                        CASE
                            WHEN rank() OVER (PARTITION BY periode_id, intervenant_id, etat ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / abs(pourc_ecart) * 0.001)
                            ELSE hetd_pourc END
                    ELSE
                 CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
                        CASE
                            WHEN rank() OVER (PARTITION BY periode_id, intervenant_id, etat ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / abs(pourc_ecart) * 0.001)
                            ELSE hetd_pourc END
           END)) * 100                                                                    pourcentage,
       --  pourc_ecart,
       --  pourc_diff,
             NULL           nombres_heures,
             NULL FLMODI,
             NULL NUMORD,
             NULL NUMGRP,
       (lpad(floor(hetd), 2, '0')) || ':' || lpad(floor((hetd - floor(hetd)) * 60), 2, 0) nombres_heures,
       NULL                                                                               flmodi,
       NULL                                                                               numord,
       NULL                                                                               numgrp,
       annee_id,
       periode_id,
       intervenant_id,
@@ -36,17 +43,13 @@ SELECT
       hetd_montant,
       rem_fc_d714,
       type_intervenant_id
      FROM
           (
           SELECT
                  dep3.*,
FROM (
         SELECT dep3.*,
                1 - CASE WHEN hetd > 0 THEN SUM(hetd_pourc) OVER ( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END pourc_ecart


         FROM (

                SELECT
                       periode_id,
                  SELECT periode_id,
                         type_intervenant_id,
                         type_intervenant_code,
                         intervenant_id,
@@ -69,23 +72,22 @@ SELECT
                         domaine_fonctionnel_code,
                         domaine_fonctionnel_libelle,
                         hetd,
                       ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END, 3 ) hetd_pourc,
                       ROUND( hetd * taux_horaire, 2 ) hetd_montant,
                       ROUND( fc_majorees * taux_horaire, 2 ) rem_fc_d714,
                         round(CASE WHEN hetd > 0 THEN hetd / SUM(hetd) OVER( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END, 3) hetd_pourc,
                         round(hetd * taux_horaire, 2)                                                                                      hetd_montant,
                         round(fc_majorees * taux_horaire, 2)                                                                               rem_fc_d714,
                         exercice_aa,
                       ROUND( exercice_aa * taux_horaire, 2 ) exercice_aa_montant,
                         round(exercice_aa * taux_horaire, 2)                                                                               exercice_aa_montant,
                         exercice_ac,
                       ROUND( exercice_ac * taux_horaire, 2 ) exercice_ac_montant,
                         round(exercice_ac * taux_horaire, 2)                                                                               exercice_ac_montant,


                         (CASE WHEN hetd > 0 THEN hetd / SUM(hetd) OVER( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END)
                             -
                       ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END, 3 ) pourc_diff
                         round(CASE WHEN hetd > 0 THEN hetd / SUM(hetd) OVER( PARTITION BY periode_id, intervenant_id, etat) ELSE 0 END, 3) pourc_diff

                  FROM (
                           WITH dep AS ( -- détails par état de paiement
                         SELECT
                                CASE WHEN th.code = 'fc_majorees' THEN 1 ELSE 0 END                 is_fc_majoree,
                               SELECT CASE WHEN th.code = 'fc_majorees' THEN 1 ELSE 0 END                        is_fc_majoree,
                                      p.id                                                                       periode_id,
                                      i.id                                                                       intervenant_id,
                                      i.annee_id                                                                 annee_id,
@@ -99,14 +101,17 @@ SELECT
                                          END                                                                    etat,

                                      TRIM(to_char(add_months(a.date_debut, p.ecart_mois), 'dd/mm/yyyy'))        date_debut,
                                TRIM(to_char( last_day(add_months( a.date_debut, p.ecart_mois )), 'dd/mm/yyyy' )) date_fin,
                                      TRIM(to_char(last_day(add_months(a.date_debut, p.ecart_mois)),
                                                   'dd/mm/yyyy'))                                                date_fin,
                                      mep.date_mise_en_paiement                                                  date_mise_en_paiement,
                                      ti.libelle                                                                 statut,
                                      i.source_code                                                              intervenant_code,
                                      i.code_rh                                                                  intervenant_matricule,
                                      i.nom_usuel || ' ' || i.prenom                                             intervenant_nom,
                                      i.numero_insee                                                             intervenant_numero_insee,
                                CASE WHEN cc.parent_id IS NULL THEN cc.source_code ELSE cc2.source_code END    centre_cout_code,
                                      CASE
                                          WHEN cc.parent_id IS NULL THEN cc.source_code
                                          ELSE cc2.source_code END                                               centre_cout_code,
                                      CASE WHEN cc.parent_id IS NULL THEN cc.libelle ELSE cc2.libelle END        centre_cout_libelle,
                                      CASE WHEN cc.parent_id IS NOT NULL THEN cc.source_code ELSE NULL END       eotp_code,
                                      CASE WHEN cc.parent_id IS NOT NULL THEN cc.libelle ELSE NULL END           eotp_libelle,
@@ -116,12 +121,13 @@ SELECT
                                      CASE WHEN th.code = 'fc_majorees' THEN mep.heures ELSE 0 END               fc_majorees,
                                      mis.heures_aa                                                              exercice_aa,
                                      mis.heures_ac                                                              exercice_ac,
                                OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) )      taux_horaire
                         FROM
                                     tbl_paiement mis
                                JOIN mise_en_paiement        mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL
                                      ose_formule.get_taux_horaire_hetd(nvl(mep.date_mise_en_paiement, sysdate)) taux_horaire
                               FROM tbl_paiement mis
                                        JOIN mise_en_paiement mep
                                             ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL
                                        JOIN type_heures th ON th.id = mep.type_heures_id
                                JOIN centre_cout              cc ON  cc.id = mep.centre_cout_id      -- pas d'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur
                                        JOIN centre_cout cc
                                             ON cc.id = mep.centre_cout_id -- pas d'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur
                                        LEFT JOIN centre_cout cc2 ON cc.parent_id = cc2.id
                                        JOIN intervenant i ON i.id = mis.intervenant_id AND i.histo_destruction IS NULL
                                        JOIN annee a ON a.id = i.annee_id
@@ -131,8 +137,7 @@ SELECT
                                        LEFT JOIN domaine_fonctionnel df ON df.id = mis.domaine_fonctionnel_id
                                        LEFT JOIN periode p ON p.id = mep.periode_paiement_id
                           )
                     SELECT
                            periode_id,
                           SELECT periode_id,
                                  type_intervenant_id,
                                  MAX(type_intervenant_code) type_intervenant_code,
                                  intervenant_id,
@@ -159,10 +164,8 @@ SELECT
                                  SUM(exercice_aa)           exercice_aa,
                                  SUM(exercice_ac)           exercice_ac,
                                  taux_horaire
                     FROM
                          dep
                     GROUP BY
                              periode_id,
                           FROM dep
                           GROUP BY periode_id,
                                    type_intervenant_id,
                                    intervenant_id,
                                    annee_id,
@@ -185,15 +188,11 @@ SELECT
                                    domaine_fonctionnel_libelle,
                                    taux_horaire,
                                    is_fc_majoree
                     )
                         dep2
                )
                    dep3
           )
               dep4
                       ) dep2
              ) dep3
     ) dep4

  ORDER BY
               annee_id,
ORDER BY annee_id,
         type_intervenant_id,
         periode_id,
         intervenant_nom
 No newline at end of file
+50 −7
Changes for data/etats_sortie.php: 50 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ return [
        'LIBELLE'        => 'Extraction Winpaie',
        'PDF_TRAITEMENT' => null,
        'AUTO_BREAK'     => false,
        'REQUETE'        => 'SELECT * FROM V_EXPORT_PAIEMENT_WINPAIE',
        'REQUETE'        => 'SELECT * FROM v_export_paiement_winpaie',
        'CSV_PARAMS'     => '{
    "ANNEE_ID": {
        "visible": false
@@ -62,7 +62,7 @@ return [
        'LIBELLE'        => 'État de paiement',
        'PDF_TRAITEMENT' => '/data/Etats de sortie/etat_paiement.php',
        'AUTO_BREAK'     => true,
        'REQUETE'        => 'SELECT * FROM V_ETAT_PAIEMENT',
        'REQUETE'        => 'SELECT * FROM v_etat_paiement',
        'CSV_PARAMS'     => '{
    "ANNEE_ID"                  : { "visible": false },
    "TYPE_INTERVENANT_ID"       : { "visible": false },
@@ -104,11 +104,54 @@ return [
        'REQUETE'        => 'SELECT 
    *
FROM 
    V_EXPORT_SERVICE
    v_export_service
ORDER BY 
    INTERVENANT_NOM, 
    SERVICE_STRUCTURE_ENS_LIBELLE, 
    ETAPE_LIBELLE, ETABLISSEMENT_LIBELLE,
    ELEMENT_LIBELLE, FONCTION_REFERENTIEL_LIBELLE',
    intervenant_nom, 
    service_structure_ens_libelle, 
    etape_libelle, etablissement_libelle,
    element_libelle, fonction_referentiel_libelle',
    ],
    [
        'CODE'           => 'imputation-budgetaire',
        'LIBELLE'        => 'Export des imputations budgétaires',
        'PDF_TRAITEMENT' => null,
        'AUTO_BREAK'     => false,
        'REQUETE'        => 'SELECT * FROM v_imputation_budgetaire_siham',
        'CSV_PARAMS'     => '{
"ANNEE_ID"            : { "visible": false },
    "PERIODE_ID"            : { "visible": false },
    "INTERVENANT_ID"            : { "visible": false },
    "TYPE_INTERVENANT_ID"            : { "visible": false },
    "CENTRE_COUT_ID"            : { "visible": false },
    "DOMAINE_FONCTIONNEL_ID"            : { "visible": false },
    "ETAT"            : { "visible": false },
    "COMPOSANTE"            : { "visible": false },
    "DATE_MISE_EN_PAIEMENT"            : { "visible": false },
    "PERIODE"            : { "visible": false },
    "DOMAINE_FONCTIONNEL_CODE"            : { "visible": false },
    "HETD_POURC"            : { "visible": false },
    "HETD" : { "visible": false },
    "HETD_MONTANT"            : { "visible": false },
    "REM_FC_D714"            : { "visible": false },
    "NOMBRES_HEURES"    : { "visible": false },
                
    
    "TYPE"                     : { "libelle": "Type" },
    "UO"                      : { "libelle": "UO" },
    "MATRICULE"                      : { "libelle": "Matricule" },
    "DATE_DEBUT"                      : {"type": "date", "libelle": "Date de début" },
    "DATE_FIN"                      : { "type": "date","libelle": "Date de fin" },
    "CODE_INDEMNITE"                      : { "libelle": "Code indemnité" },
    "OPERATION"                      : { "libelle": "Opération" },
    "CENTRE_COUT"                      : { "libelle": "Centre de coût" },
    "DESTINATION"                      : { "libelle": "Destination" },
    "FONDS"                      : { "libelle": "Fonds" },
    "POSTE_RESERVATION_CREDIT"                      : { "libelle": "Poste de réservation de crédit" },
    "POURCENTAGE"                      : {"type": "float", "libelle": "Pourcentage" },
    "NOMBRES_HEURES"                      : { "libelle": "Nombre d\'heures" },
    "FLMODI"                      : { "libelle": "FLMODI" },
    "NUMORD"                      : { "libelle": "NUMORD" },
    "NUMGRP"                      : { "libelle": "NUMGRP" }
}',
    ],
];