From 9564f6d3b6fe030c06e64753d260444d2a9f2d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr> Date: Tue, 3 May 2022 14:39:30 +0200 Subject: [PATCH] Petits correctifs DDL --- data/ddl/package/UNICAEN_TBL/body.sql | 79 ++++++++++--------- data/ddl/view/V_EXPORT_PAIEMENT_WINPAIE.sql | 3 +- data/ddl/view/V_INTERVENANT_HISTORIQUE.sql | 3 +- data/ddl/view/V_TBL_PLAFOND_ELEMENT.sql | 1 + data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql | 11 +-- data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql | 5 +- data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql | 5 +- .../ddl/view/V_TBL_PLAFOND_VOLUME_HORAIRE.sql | 5 +- 8 files changed, 62 insertions(+), 50 deletions(-) diff --git a/data/ddl/package/UNICAEN_TBL/body.sql b/data/ddl/package/UNICAEN_TBL/body.sql index f266482679..850a067846 100644 --- a/data/ddl/package/UNICAEN_TBL/body.sql +++ b/data/ddl/package/UNICAEN_TBL/body.sql @@ -416,6 +416,14 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS OPEN c FOR ' SELECT + v.ANNEE_ID, + v.ANNEE_AGREMENT, + v.TYPE_AGREMENT_ID, + v.INTERVENANT_ID, + v.CODE_INTERVENANT, + v.STRUCTURE_ID, + v.AGREMENT_ID, + v.DUREE_VIE, CASE WHEN t.ANNEE_ID = v.ANNEE_ID AND COALESCE(t.ANNEE_AGREMENT,0) = COALESCE(v.ANNEE_AGREMENT,0) @@ -425,15 +433,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) AND COALESCE(t.AGREMENT_ID,0) = COALESCE(v.AGREMENT_ID,0) AND t.DUREE_VIE = v.DUREE_VIE - THEN -1 ELSE t.ID END ID, - v.ANNEE_ID, - v.ANNEE_AGREMENT, - v.TYPE_AGREMENT_ID, - v.INTERVENANT_ID, - v.CODE_INTERVENANT, - v.STRUCTURE_ID, - v.AGREMENT_ID, - v.DUREE_VIE + THEN -1 ELSE t.ID END ID FROM (' || QUERY_APPLY_PARAMS(viewQuery, useParams) || ') v FULL JOIN TBL_AGREMENT t ON @@ -1795,6 +1795,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement @@ -1890,12 +1891,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 4 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 4 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -1910,7 +1912,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 2 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 2 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -1925,7 +1927,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 1 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 1 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -1943,7 +1945,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 5 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 5 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -1958,7 +1960,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 8 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 8 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -2065,12 +2067,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 3 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 3 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, @@ -2109,7 +2112,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 6 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 6 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, @@ -2217,12 +2220,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 7 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 7 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, @@ -2242,7 +2246,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS UNION ALL - SELECT 25 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 25 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vh.type_volume_horaire_id type_volume_horaire_id, @@ -2351,6 +2355,7 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement @@ -2404,11 +2409,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS s.element_pedagogique_id element_pedagogique_id, s.type_intervention_id type_intervention_id, s.heures heures, - COALESCE(c.heures * c.groupes,0) plafond + COALESCE(c.heures * c.groupes,0) plafond, + pe.id plafond_etat_id FROM s JOIN type_intervention ti ON ti.id = s.type_intervention_id JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN plafond_etat pe ON pe.code = ''informatif'' LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id AND c.type_intervention_id = COALESCE(ti.type_intervention_maquette_id,ti.id) WHERE @@ -2576,33 +2583,33 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN t.ANNEE_ID = v.ANNEE_ID AND t.INTERVENANT_ID = v.INTERVENANT_ID - AND t.ACTIF = v.ACTIF AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID + AND t.ACTIF = v.ACTIF AND t.STRUCTURE_ID = v.STRUCTURE_ID - AND t.NBVH = v.NBVH - AND t.VALIDE = v.VALIDE AND COALESCE(t.INTERVENANT_STRUCTURE_ID,0) = COALESCE(v.INTERVENANT_STRUCTURE_ID,0) AND t.SERVICE_REFERENTIEL_ID = v.SERVICE_REFERENTIEL_ID AND t.FONCTION_REFERENTIEL_ID = v.FONCTION_REFERENTIEL_ID AND t.TYPE_INTERVENANT_ID = v.TYPE_INTERVENANT_ID AND t.TYPE_INTERVENANT_CODE = v.TYPE_INTERVENANT_CODE AND t.TYPE_VOLUME_HORAIRE_CODE = v.TYPE_VOLUME_HORAIRE_CODE + AND t.NBVH = v.NBVH AND t.HEURES = v.HEURES + AND t.VALIDE = v.VALIDE THEN -1 ELSE t.ID END ID, v.ANNEE_ID, v.INTERVENANT_ID, - v.ACTIF, v.TYPE_VOLUME_HORAIRE_ID, + v.ACTIF, v.STRUCTURE_ID, - v.NBVH, - v.VALIDE, v.INTERVENANT_STRUCTURE_ID, v.SERVICE_REFERENTIEL_ID, v.FONCTION_REFERENTIEL_ID, v.TYPE_INTERVENANT_ID, v.TYPE_INTERVENANT_CODE, v.TYPE_VOLUME_HORAIRE_CODE, - v.HEURES + v.NBVH, + v.HEURES, + v.VALIDE FROM (' || QUERY_APPLY_PARAMS(viewQuery, useParams) || ') v FULL JOIN TBL_REFERENTIEL t ON @@ -2738,13 +2745,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS CASE WHEN t.ANNEE_ID = v.ANNEE_ID AND t.INTERVENANT_ID = v.INTERVENANT_ID - AND COALESCE(t.INTERVENANT_STRUCTURE_ID,0) = COALESCE(v.INTERVENANT_STRUCTURE_ID,0) - AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) - AND t.TYPE_INTERVENANT_ID = v.TYPE_INTERVENANT_ID - AND t.TYPE_INTERVENANT_CODE = v.TYPE_INTERVENANT_CODE AND t.ACTIF = v.ACTIF - AND COALESCE(t.ELEMENT_PEDAGOGIQUE_ID,0) = COALESCE(v.ELEMENT_PEDAGOGIQUE_ID,0) AND t.SERVICE_ID = v.SERVICE_ID + AND COALESCE(t.ELEMENT_PEDAGOGIQUE_ID,0) = COALESCE(v.ELEMENT_PEDAGOGIQUE_ID,0) + AND t.TYPE_INTERVENANT_ID = v.TYPE_INTERVENANT_ID + AND t.TYPE_INTERVENANT_CODE = v.TYPE_INTERVENANT_CODE + AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0) + AND COALESCE(t.INTERVENANT_STRUCTURE_ID,0) = COALESCE(v.INTERVENANT_STRUCTURE_ID,0) AND COALESCE(t.ELEMENT_PEDAGOGIQUE_PERIODE_ID,0) = COALESCE(v.ELEMENT_PEDAGOGIQUE_PERIODE_ID,0) AND COALESCE(t.ETAPE_ID,0) = COALESCE(v.ETAPE_ID,0) AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0) @@ -2758,13 +2765,13 @@ CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS THEN -1 ELSE t.ID END ID, v.ANNEE_ID, v.INTERVENANT_ID, - v.INTERVENANT_STRUCTURE_ID, - v.STRUCTURE_ID, - v.TYPE_INTERVENANT_ID, - v.TYPE_INTERVENANT_CODE, v.ACTIF, - v.ELEMENT_PEDAGOGIQUE_ID, v.SERVICE_ID, + v.ELEMENT_PEDAGOGIQUE_ID, + v.TYPE_INTERVENANT_ID, + v.TYPE_INTERVENANT_CODE, + v.STRUCTURE_ID, + v.INTERVENANT_STRUCTURE_ID, v.ELEMENT_PEDAGOGIQUE_PERIODE_ID, v.ETAPE_ID, v.TYPE_VOLUME_HORAIRE_ID, diff --git a/data/ddl/view/V_EXPORT_PAIEMENT_WINPAIE.sql b/data/ddl/view/V_EXPORT_PAIEMENT_WINPAIE.sql index 5c7ac01e28..4c9779553a 100644 --- a/data/ddl/view/V_EXPORT_PAIEMENT_WINPAIE.sql +++ b/data/ddl/view/V_EXPORT_PAIEMENT_WINPAIE.sql @@ -1,5 +1,4 @@ -CREATE -OR REPLACE FORCE VIEW V_EXPORT_PAIEMENT_WINPAIE AS +CREATE OR REPLACE FORCE VIEW V_EXPORT_PAIEMENT_WINPAIE AS SELECT annee_id, type_intervenant_id, structure_id, diff --git a/data/ddl/view/V_INTERVENANT_HISTORIQUE.sql b/data/ddl/view/V_INTERVENANT_HISTORIQUE.sql index 54cddafe1d..39a83e1351 100644 --- a/data/ddl/view/V_INTERVENANT_HISTORIQUE.sql +++ b/data/ddl/view/V_INTERVENANT_HISTORIQUE.sql @@ -1,5 +1,4 @@ -CREATE -OR REPLACE FORCE VIEW V_INTERVENANT_HISTORIQUE AS +CREATE OR REPLACE FORCE VIEW V_INTERVENANT_HISTORIQUE AS WITH historique AS ( --Initialisation des données personnelles SELECT d.intervenant_id intervenant_id, diff --git a/data/ddl/view/V_TBL_PLAFOND_ELEMENT.sql b/data/ddl/view/V_TBL_PLAFOND_ELEMENT.sql index 2b8ba0b21e..de3e591e05 100644 --- a/data/ddl/view/V_TBL_PLAFOND_ELEMENT.sql +++ b/data/ddl/view/V_TBL_PLAFOND_ELEMENT.sql @@ -10,6 +10,7 @@ SELECT CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement diff --git a/data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql b/data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql index 8fd218ab96..98016474b8 100644 --- a/data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql +++ b/data/ddl/view/V_TBL_PLAFOND_INTERVENANT.sql @@ -9,12 +9,13 @@ SELECT CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 4 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 4 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -29,7 +30,7 @@ FROM UNION ALL - SELECT 2 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 2 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -44,7 +45,7 @@ FROM UNION ALL - SELECT 1 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 1 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -62,7 +63,7 @@ FROM UNION ALL - SELECT 5 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 5 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, @@ -77,7 +78,7 @@ FROM UNION ALL - SELECT 8 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 8 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, fr.type_volume_horaire_id type_volume_horaire_id, diff --git a/data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql b/data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql index 6466238a7d..33bf4bd73f 100644 --- a/data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql +++ b/data/ddl/view/V_TBL_PLAFOND_REFERENTIEL.sql @@ -10,12 +10,13 @@ SELECT CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 3 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 3 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, @@ -54,7 +55,7 @@ FROM UNION ALL - SELECT 6 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 6 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, diff --git a/data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql b/data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql index dc443921dd..54af11c006 100644 --- a/data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql +++ b/data/ddl/view/V_TBL_PLAFOND_STRUCTURE.sql @@ -10,12 +10,13 @@ SELECT CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement FROM ( - SELECT 7 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 7 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vhr.type_volume_horaire_id type_volume_horaire_id, @@ -35,7 +36,7 @@ FROM UNION ALL - SELECT 25 PLAFOND_ID, NULL PLAFOND, p.* FROM ( + SELECT 25 PLAFOND_ID, NULL PLAFOND, NULL PLAFOND_ETAT_ID, p.* FROM ( SELECT i.annee_id annee_id, vh.type_volume_horaire_id type_volume_horaire_id, diff --git a/data/ddl/view/V_TBL_PLAFOND_VOLUME_HORAIRE.sql b/data/ddl/view/V_TBL_PLAFOND_VOLUME_HORAIRE.sql index 53f181aa69..bc258723fa 100644 --- a/data/ddl/view/V_TBL_PLAFOND_VOLUME_HORAIRE.sql +++ b/data/ddl/view/V_TBL_PLAFOND_VOLUME_HORAIRE.sql @@ -11,6 +11,7 @@ SELECT CASE WHEN p.type_volume_horaire_id = 1 THEN ps.plafond_etat_prevu_id WHEN p.type_volume_horaire_id = 2 THEN ps.plafond_etat_realise_id + ELSE COALESCE(p.plafond_etat_id,1) END plafond_etat_id, COALESCE(pd.heures, 0) derogation, CASE WHEN p.heures > COALESCE(p.PLAFOND,ps.heures,0) + COALESCE(pd.heures, 0) + 0.05 THEN 1 ELSE 0 END depassement @@ -64,11 +65,13 @@ FROM s.element_pedagogique_id element_pedagogique_id, s.type_intervention_id type_intervention_id, s.heures heures, - COALESCE(c.heures * c.groupes,0) plafond + COALESCE(c.heures * c.groupes,0) plafond, + pe.id plafond_etat_id FROM s JOIN type_intervention ti ON ti.id = s.type_intervention_id JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id + JOIN plafond_etat pe ON pe.code = 'informatif' LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id AND c.type_intervention_id = COALESCE(ti.type_intervention_maquette_id,ti.id) WHERE -- GitLab