Commit 360eb0cc authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

[Mes Formations] Couleur pour les axes + mise en forme dans les plans de formation

parent b5a08e5f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -218,6 +218,7 @@ create table formation_axe
    libelle               varchar(1024)           not null,
    description           text,
    ordre                 integer   default 9999  not null,
    couleur               varchar(64),
    histo_creation        timestamp default now() not null,
    histo_createur_id     integer   default 0     not null
        constraint formation_axe_unicaen_utilisateur_user_id_fk
+39 −0
Original line number Diff line number Diff line
Version 4.2.0 (XX/11/2023)
====

Évolution
---
- [Mes Formations] Couleur pour les axes + mise en forme dans les plans de formation

Modification en BD
---

```postgresql
alter table formation_axe add couleur varchar(64);

```

Evolution des librairies
---



```bash
```

Mise à jour des bibliothèque pour PHP8.2
```bash
## Faire la montée en version de votre php, et de vos drivers
composer update
```

ou

```bash
rm -fr vendor
rm -fr composer.lock
composer install
```

Evolution des macros et templates
---
+0 −50
Original line number Diff line number Diff line
-- AGENT_STATUT ------------------
CREATE OR REPLACE VIEW V_EMC2_AGENT_STATUT (
                                            "ID_ORIG",
                                            "AGENT_ID",
                                            "STRUCTURE_ID",
                                            "DATE_DEBUT",
                                            "DATE_FIN",
                                            "T_TITULAIRE",
                                            "T_CDI",
                                            "T_CDD",
                                            "T_ADMINISTRATIF",
                                            "T_ENSEIGNANT",
                                            "T_CHERCHEUR",
                                            "T_VACATAIRE",
                                            "T_DOCTORANT",
                                            "T_DETACHE_IN",
                                            "T_DETACHE_OUT",
                                            "T_HEBERGE",
                                            "T_DISPO",
                                            "T_EMERITE",
                                            "T_RETRAITE"
    ) AS (
         SELECT
             DISTINCT (IST.ID) AS ID_ORIG,
                      IST.INDIVIDU_ID as AGENT_ID,
                      IST.STRUCTURE_ID as STRUCTURE_ID,
                      TO_CHAR(IST.D_DEBUT, 'YYYY-MM-DD HH:MM:SS') AS DATE_DEBUT,
                      TO_CHAR(IST.D_FIN, 'YYYY-MM-DD HH:MM:SS')   AS DATE_FIN,
                      IST.T_TITULAIRE,
                      IST.T_CDI,
                      IST.T_CDD,
                      IST.T_ADMINISTRATIF,
                      IST.T_ENSEIGNANT,
                      IST.T_CHERCHEUR,
                      IST.T_VACATAIRE,
                      IST.T_DOCTORANT,
                      IST.T_DETACHE_IN,
                      IST.T_DETACHE_OUT,
                      IST.T_HEBERGE,
                      IST.T_DISPO,
                      IST.T_EMERITE,
                      IST.T_RETRAITE
         FROM V_EMC2_AGENT VPA
                  JOIN INDIVIDU_STATUT IST ON VPA.C_INDIVIDU = IST.INDIVIDU_ID
                  JOIN STRUCTURE S ON IST.STRUCTURE_ID = S.ID
         WHERE 1=1
           AND IST.T_APPRENANT = 'N'
           AND IST.T_HEBERGE = 'N'
           AND IST.T_INVITE = 'N'
             );
 No newline at end of file
+0 −80
Original line number Diff line number Diff line
CREATE OR REPLACE VIEW V_STRUCTURE AS
(
WITH multi_heritage AS
         (SELECT STRUCTURE.ID                   id,
                 LEVEL                          niveau,
                 STRUCTURE_PARENT.PARENT_ID     parent_id,
                 CONNECT_BY_ROOT STRUCTURE.ID   racine_id, CONNECT_BY_ROOT STRUCTURE.CODE racine_code, SYS_CONNECT_BY_PATH(LIBELLE_COURT, ' > ') chemin,
                 SYS_CONNECT_BY_PATH(ID, ' > ') chemin_id
          FROM STRUCTURE
                   LEFT JOIN STRUCTURE_PARENT ON STRUCTURE.ID = STRUCTURE_PARENT.STRUCTURE_ID
    CONNECT BY NOCYCLE
    PRIOR STRUCTURE.ID = STRUCTURE_PARENT.PARENT_ID
START WITH STRUCTURE_PARENT.PARENT_ID IS NULL
    )
SELECT STRUCTURE.ID,
       STRUCTURE.CODE,
       STRUCTURE.SIGLE,
       STRUCTURE.LIBELLE_COURT,
       STRUCTURE.LIBELLE_LONG,
       STRUCTURE.LIBELLE_COMMUNICATION,
       STRUCTURE.SITE_URL,
       STRUCTURE.EMAIL_GENERIQUE,
       STRUCTURE.CODE_UAI,
       STRUCTURE.LOGO,
       STRUCTURE.TYPE_ID,
       STRUCTURE.TYPE_SUPANN,
       STRUCTURE.AFFICHAGE_ANNUAIRE,
       STRUCTURE_RECHERCHE.ID                                                          STRUCTURE_RECHERCHE_ID,
       STRUCTURE_RECHERCHE_POLE.LIBELLE                                                STRUCTURE_RECHERCHE_POLE,
       STRUCTURE.LOCAL_PRINCIPAL_ID,
       heritage.racine_id                                                              RACINE_ID,
       REPLACE(regexp_substr(heritage.chemin_id, ' > [^( > )]+( > |$)', 2), ' > ', '') NIV2_ID,
       heritage.parent_id                                                              PARENT_ID,
       heritage.niveau                                                                 NIVEAU,
       CASE
           WHEN heritage.racine_code = 'UNIV'
               THEN 1
           ELSE 0 END                                                                  INTERNE,
       STRUCTURE.DATE_OUVERTURE,
       STRUCTURE.DATE_FERMETURE,
       STRUCTURE.CENTRE_FINANCIER,
       heritage.chemin                                                                 CHEMIN
FROM STRUCTURE
         LEFT JOIN STRUCTURE_RECHERCHE ON STRUCTURE.ID = STRUCTURE_RECHERCHE.STRUCTURE_ID
         LEFT JOIN STRUCTURE_RECHERCHE_POLE ON STRUCTURE_RECHERCHE.POLE_RATTACHEMENT_ID = STRUCTURE_RECHERCHE_POLE.ID
         LEFT JOIN
     (SELECT DISTINCT id,
                      first_value(niveau)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         niveau,
                      first_value(parent_id)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         parent_id,
                      first_value(racine_id)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         racine_id,
                      first_value(racine_code)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         racine_code,
                      first_value(chemin)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         chemin,
                      first_value(chemin_id)
                                  OVER (PARTITION BY id ORDER BY racine_id ASC RANGE UNBOUNDED PRECEDING)         chemin_id
      FROM multi_heritage
      ORDER BY id ASC) heritage ON STRUCTURE.ID = heritage.id
WHERE HISTO_DESTRUCTION IS NULL
ORDER BY STRUCTURE.ID ASC
);

CREATE OR REPLACE VIEW V_EMC2_STRUCTURE AS (
   select
       ID,
       LIBELLE_COURT,
       LIBELLE_LONG,
       CODE,
       SIGLE,
       TYPE_ID,
       TO_CHAR(DATE_OUVERTURE,'YYYY-MM-DD HH:MM:SS') AS DATE_OUVERTURE,
       TO_CHAR(DATE_FERMETURE,'YYYY-MM-DD HH:MM:SS') AS DATE_FERMETURE,
       PARENT_ID,
       NIV2_ID,
       EMAIL_GENERIQUE
   FROM V_STRUCTURE;
);
 No newline at end of file
+0 −60
Original line number Diff line number Diff line
-- ---------------------------------------------
-- RESPONSABILITE DE STRUCTURE -----------------
-- ---------------------------------------------
CREATE OR REPLACE VIEW V_EMC2_FONCTION_RESPONSABLE AS
(
    SELECT F.ID, MAX(F.CODE) AS CODE, MIN(FL.LIBELLE) AS LIBELLE_1, MAX(FL.LIBELLE) AS LIBELLE_2
    FROM FONCTION F
             JOIN FONCTION_LIBELLE FL on FL.FONCTION_ID = F.ID
    WHERE F.ID IN (
        -- Directeur                                 et Sous-fonction
                   1,                                   2, 3, 4, 5, 121,
        -- Responsable de bureau
                   7,
        -- Directeur adjoint                         et Sous-fonction
                   11, 12,
        -- Directeur Général des Services            et Sous-fonction
                   16, 17, 141,
        -- Responsable                               et Sous-fonction
                   19, 20, 21, 161,
        -- Responsable Adminsitratif                 et Sous-fonction
                   22, 23, 24, 25, 26,
        -- Agent comptable                           et Sous-fonction
                   27, 28
    )
GROUP BY F.ID
    );

-- Requete recuperant les individus ayant une de ces fonctions "actives"
SELECT *
FROM INDIVIDU_FONCTION IFO
WHERE IFO.FONCTION_ID IN (SELECT ID FROM V_EMC2_FONCTION_RESPONSABLE)
  AND DATE_DEBUT <= sysdate
  AND (DATE_FIN IS NULL OR DATE_FIN >= sysdate)
  AND IFO.HISTO_DESTRUCTION IS NULL
;

-- Creation de la vue "finale" pour EMC2
CREATE OR REPLACE VIEW V_EMC2_STRUCTURE_RESPONSABLE AS
(
    SELECT IFO.ID                                         AS ID,
           IFO.INDIVIDU_ID                                AS AGENT_ID,
           IFO.STRUCTURE_ID                               AS STRUCTURE_ID,
           IFO.FONCTION_ID                                AS FONCTION_ID,
           TO_CHAR(IFO.DATE_DEBUT, 'YYYY-MM-DD HH:MM:SS') AS DATE_DEBUT,
           TO_CHAR(IFO.DATE_FIN, 'YYYY-MM-DD HH:MM:SS')   AS DATE_FIN
    FROM INDIVIDU_FONCTION IFO
    join V_EMC2_STRUCTURE VS ON VS.ID = IFO.STRUCTURE_ID
    WHERE IFO.FONCTION_ID IN (SELECT ID FROM V_EMC2_FONCTION_RESPONSABLE)
      AND IFO.HISTO_DESTRUCTION IS NULL
      AND IFO.DATE_DEBUT <= sysdate
      AND (IFO.DATE_FIN IS NULL OR IFO.DATE_FIN >= sysdate)
);

select I.PRENOM, NVL(I.NOM_USAGE, I.NOM_FAMILLE), S.LIBELLE_LONG, V.FONCTION_ID, V.DATE_DEBUT, V.DATE_FIN
from V_EMC2_STRUCTURE_RESPONSABLE V
join INDIVIDU I on I.C_INDIVIDU_CHAINE = V.AGENT_ID
join STRUCTURE S on S.ID = V.STRUCTURE_ID
join FONCTION F on V.FONCTION_ID = F.ID
order by I.NOM_USAGE, I.PRENOM, S.LIBELLE_COURT;
Loading