Commit 1d8de559 authored by joriot221's avatar joriot221
Browse files

Merge branch 'master' into VFJ_18_RefusPiece

parents dde40bfa fed538a6
Loading
Loading
Loading
Loading
+2 −0
Changes for CHANGELOG.md: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ Objectif : Plafonds personnalisables & refonte gestion des statuts
* Un nouveau modèle de contrat sera possible avec la ventilation des heures de services par types d'intervention (CM/TD/TP)
* Des périodes pourront être ajoutés, supprimés ou modifiés depuis l'administration des périodes.
* Les types de formations et les groupes les contenant pourront être ajoutés, supprimés ou modifiés depuis l'administration des types de formations.
* Nouvel état de sortie sur l'export des agréments, rendant celui-ci maintenant paramétrable par les établissements (#42944)
* Module Export Siham : possiblité de récupérer plusieurs typeUO pour alimenter la liste des structures pour la PEC et la REN (#41454)
* Ajout d'un module de gestion des Notes sur l'intervenant : 
  * Possibilité de rajouter une note écrite (informations, message important etc...) sur une fiche intervenant (Tâche #25565)
  * Possibilité d'envoyer un email à intervenant avec historisation de l'email directement depuis la fiche intervenant (Tâche #26546)
+19 −38
Changes for admin/src/DataGen.php: 19 added lines, 38 removed lines.
Original line number Diff line number Diff line
<?php





class DataGen
{
    use \BddAdmin\Logger\LoggerAwareTrait;
@@ -67,6 +64,11 @@ class DataGen
            'options' => ['update' => false, 'delete' => false],
            'key'     => 'NUMERO',
        ],
        [
            'table'   => 'TYPE_NOTE',
            'context' => ['install', 'update'],
            'key'     => 'CODE',
        ],
        [
            'table'   => 'TYPE_VOLUME_HORAIRE',
            'context' => ['install', 'update'],
@@ -117,7 +119,7 @@ class DataGen
            'table'   => 'PRIVILEGE',
            'context' => ['install', 'update', 'privileges'],
            'key'     => ['CATEGORIE_ID', 'CODE'],
            'options' => ['columns' => ['CATEGORIE_ID' => ['transformer' => 'SELECT ID FROM CATEGORIE_PRIVILEGE WHERE CODE = %s']]],
            'options' => ['columns' => ['CATEGORIE_ID' => ['transformer' => 'SELECT id FROM categorie_privilege WHERE code = %s']]],
        ],
        [
            'table'   => 'TYPE_INDICATEUR',
@@ -233,15 +235,15 @@ class DataGen
            'table'   => 'ROLE',
            'context' => ['install'],
            'key'     => 'CODE',
            'options' => ['columns' => ['PERIMETRE_ID' => ['transformer' => 'SELECT ID FROM PERIMETRE WHERE CODE = %s']]],
            'options' => ['columns' => ['PERIMETRE_ID' => ['transformer' => 'SELECT id FROM perimetre WHERE code = %s']]],
        ],
        [
            'table'   => 'ROLE_PRIVILEGE',
            'context' => ['install'],
            'key'     => ['ROLE_ID', 'PRIVILEGE_ID'],
            'options' => ['columns' => [
                'ROLE_ID'      => ['transformer' => 'SELECT ID FROM ROLE WHERE HISTO_DESTRUCTION IS NULL AND CODE = %s'],
                'PRIVILEGE_ID' => ['transformer' => 'SELECT P.ID FROM PRIVILEGE P JOIN CATEGORIE_PRIVILEGE CP ON CP.ID = P.CATEGORIE_ID WHERE CP.CODE || \'-\' || P.CODE = %s'],
                'ROLE_ID'      => ['transformer' => 'SELECT id FROM role WHERE histo_destruction IS NULL AND code = %s'],
                'PRIVILEGE_ID' => ['transformer' => 'SELECT p.id FROM privilege p JOIN categorie_privilege cp ON cp.id = p.categorie_id WHERE cp.code || \'-\' || p.code = %s'],
            ],],
        ],
        [
@@ -249,8 +251,8 @@ class DataGen
            'context' => ['install'],
            'key'     => ['UTILISATEUR_ID', 'ROLE_ID'],
            'options' => ['columns' => [
                'ROLE_ID'        => ['transformer' => 'SELECT ID FROM ROLE WHERE HISTO_DESTRUCTION IS NULL AND CODE = %s'],
                'UTILISATEUR_ID' => ['transformer' => 'SELECT ID FROM UTILISATEUR WHERE USERNAME = %s'],
                'ROLE_ID'        => ['transformer' => 'SELECT id FROM role WHERE histo_destruction IS NULL AND code = %s'],
                'UTILISATEUR_ID' => ['transformer' => 'SELECT id FROM utilisateur WHERE username = %s'],
            ],],
        ],

@@ -285,7 +287,7 @@ class DataGen
            'table'   => 'GRADE',
            'context' => ['install'],
            'key'     => 'SOURCE_CODE',
            'options' => ['columns' => ['CORPS_ID' => ['transformer' => 'SELECT ID FROM CORPS WHERE SOURCE_CODE = %s']]],
            'options' => ['columns' => ['CORPS_ID' => ['transformer' => 'SELECT id FROM corps WHERE source_code = %s']]],
        ],
        [
            'table'   => 'DISCIPLINE',
@@ -301,7 +303,7 @@ class DataGen
            'table'   => 'FONCTION_REFERENTIEL',
            'context' => ['install'],
            'key'     => 'CODE',
            'options' => ['columns' => ['DOMAINE_FONCTIONNEL_ID' => ['transformer' => 'SELECT ID FROM DOMAINE_FONCTIONNEL WHERE SOURCE_CODE = %s']]],
            'options' => ['columns' => ['DOMAINE_FONCTIONNEL_ID' => ['transformer' => 'SELECT id FROM domaine_fonctionnel WHERE source_code = %s']]],
        ],
        [
            'table'   => 'MOTIF_MODIFICATION_SERVICE',
@@ -317,7 +319,7 @@ class DataGen
            'table'   => 'STATUT',
            'context' => ['install'],
            'key'     => 'CODE',
            'options' => ['columns' => ['TYPE_INTERVENANT_ID' => ['transformer' => 'SELECT ID FROM TYPE_INTERVENANT WHERE CODE = %s']]],
            'options' => ['columns' => ['TYPE_INTERVENANT_ID' => ['transformer' => 'SELECT id FROM type_intervenant WHERE code = %s']]],
        ],
        [
            'table'   => 'TYPE_PIECE_JOINTE',
@@ -329,8 +331,8 @@ class DataGen
            'context' => ['install'],
            'key'     => ['STATUT_ID', 'TYPE_PIECE_JOINTE_ID'],
            'options' => ['columns' => [
                'STATUT_ID'            => ['transformer' => 'SELECT ID FROM STATUT WHERE HISTO_DESTRUCTION IS NULL AND CODE = %s'],
                'TYPE_PIECE_JOINTE_ID' => ['transformer' => 'SELECT ID FROM TYPE_PIECE_JOINTE WHERE HISTO_DESTRUCTION IS NULL AND CODE = %s'],
                'STATUT_ID'            => ['transformer' => 'SELECT id FROM statut WHERE histo_destruction IS NULL AND code = %s'],
                'TYPE_PIECE_JOINTE_ID' => ['transformer' => 'SELECT id FROM type_piece_jointe WHERE histo_destruction IS NULL AND code = %s'],
            ],],
        ],
        [
@@ -338,9 +340,9 @@ class DataGen
            'context' => ['install'],
            'key'     => ['ETAPE_SUIV_ID', 'ETAPE_PREC_ID'],
            'options' => ['columns' => [
                'ETAPE_PREC_ID'       => ['transformer' => 'SELECT ID FROM WF_ETAPE WHERE CODE = %s'],
                'ETAPE_SUIV_ID'       => ['transformer' => 'SELECT ID FROM WF_ETAPE WHERE CODE = %s'],
                'TYPE_INTERVENANT_ID' => ['transformer' => 'SELECT ID FROM TYPE_INTERVENANT WHERE CODE = %s'],
                'ETAPE_PREC_ID'       => ['transformer' => 'SELECT id FROM wf_etape WHERE code = %s'],
                'ETAPE_SUIV_ID'       => ['transformer' => 'SELECT id FROM wf_etape WHERE code = %s'],
                'TYPE_INTERVENANT_ID' => ['transformer' => 'SELECT id FROM type_intervenant WHERE code = %s'],
            ],],
        ],

@@ -354,7 +356,6 @@ class DataGen
    ];



    public function __construct(OseAdmin $oseAdmin)
    {
        $this->oseAdmin = $oseAdmin;
@@ -362,28 +363,24 @@ class DataGen
    }



    public function install(string $table = null)
    {
        return $this->action('install', $table);
    }



    public function update(string $table = null)
    {
        return $this->action('update', $table);
    }



    public function updatePrivileges()
    {
        return $this->action('privileges');
    }



    private function action(string $action, string $table = null)
    {
        $this->logBegin($this->actions[$action]);
@@ -403,7 +400,6 @@ class DataGen
    }



    private function syncTable(string $table, array $params)
    {
        $tableObject = $this->oseAdmin->getBdd()->getTable($table);
@@ -452,7 +448,6 @@ class DataGen
    }



    private function getAnneeCourante(): int
    {
        $now = new \DateTime();
@@ -465,7 +460,6 @@ class DataGen
    }



    public function ANNEE()
    {
        $annees = [];
@@ -490,7 +484,6 @@ class DataGen
    }



    public function DEPARTEMENT()
    {
        $departements = [];
@@ -518,7 +511,6 @@ class DataGen
    }



    public function IMPORT_TABLES()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/import_tables.php';
@@ -536,14 +528,12 @@ class DataGen
    }



    public function ETAT_SORTIE()
    {
        return require $this->oseAdmin->getOseDir() . 'data/etats_sortie.php';
    }



    public function CATEGORIE_PRIVILEGE()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/privileges.php';
@@ -560,7 +550,6 @@ class DataGen
    }



    public function PRIVILEGE()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/privileges.php';
@@ -582,7 +571,6 @@ class DataGen
    }



    public function FORMULE()
    {
        $data = $this->nomenclature['FORMULE'];
@@ -601,7 +589,6 @@ class DataGen
    }



    public function PLAFOND()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/plafonds.php';
@@ -623,7 +610,6 @@ class DataGen
    }



    public function PLAFOND_ETAT()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/plafonds.php';
@@ -644,7 +630,6 @@ class DataGen
    }



    public function PLAFOND_PERIMETRE()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/plafonds.php';
@@ -664,7 +649,6 @@ class DataGen
    }



    public function TYPE_INDICATEUR()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/indicateurs.php';
@@ -683,7 +667,6 @@ class DataGen
    }



    public function INDICATEUR()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/indicateurs.php';
@@ -707,7 +690,6 @@ class DataGen
    }



    public function WF_ETAPE()
    {
        $data = require $this->oseAdmin->getOseDir() . 'data/workflow_etapes.php';
@@ -723,7 +705,6 @@ class DataGen
    }



    public function PARAMETRE()
    {
        $bdd = $this->oseAdmin->getBdd();
+6 −8
Changes for data/ddl/view/V_AGREMENT_EXPORT_CSV.sql: 6 added lines, 8 removed lines.
Original line number Diff line number Diff line
CREATE OR REPLACE FORCE VIEW V_AGREMENT_EXPORT_CSV AS
CREATE
OR REPLACE FORCE VIEW V_AGREMENT_EXPORT_CSV AS
  WITH heures_s AS (
  SELECT
    i.id                                      intervenant_id,
@@ -26,14 +27,13 @@ WITH heures_s AS (
    ep.structure_id,
    i.structure_id
)
SELECT
SELECT a.libelle                                                 annee,
       a.id                                                      annee_id,
       i.id                                                      intervenant_id,
       s2.id                                                     intervenant_structure_id,
       s2.libelle_court                                          intervenant_structure_libelle,
       s.id                                                      structure_id,

  a.libelle                                                                   annee,
       s.libelle_court                                           structure_libelle,
       i.code                                                    intervenant_code,
       i.nom_usuel                                               intervenant_nom_usuel,
@@ -56,15 +56,13 @@ SELECT
       COALESCE(heures_s.total, fr.total)                        hetd_total,




       tagr.libelle                                              type_agrement,
       CASE WHEN agr.id IS NULL THEN 0 ELSE 1 END                agree,
       CASE WHEN agr.id IS NULL THEN 'En attente' ELSE 'Oui' END agree_txt,
       agr.date_decision                                         date_decision,
       u.display_name                                            modificateur,
       agr.histo_modification                                    date_modification
FROM
            tbl_agrement             ta
FROM tbl_agrement ta
         JOIN intervenant i ON i.id = ta.intervenant_id
         JOIN statut si ON si.id = i.statut_id
         JOIN annee a ON a.id = ta.annee_id
@@ -84,4 +82,4 @@ FROM
    AND fr.etat_volume_horaire_id = evh.id

         LEFT JOIN heures_s ON heures_s.intervenant_id = i.id
                                       AND heures_s.structure_id = s.id
 No newline at end of file
    AND heures_s.structure_id = s.id;
 No newline at end of file
+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
+82 −7

File changed.

Preview size limit exceeded, changes collapsed.

Loading