From 5455392dcade5577b1d1189776859b1d0528e26a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr>
Date: Mon, 8 Feb 2021 11:29:59 +0100
Subject: [PATCH] Correction formule de Poitiers

---
 CHANGELOG.md                               |  5 +++++
 data/ddl/package/FORMULE_POITIERS/body.sql | 21 ++++++++++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0d1414443f..d594f55e30 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,11 @@ Objectif : Doubles statuts et refonte des données personnelles
 * Possibilité de mettre à jour par synchronisation et manuellement un élément pédagogique spécifique par déclenchement d'import
 * Ajout d'un nouveau privilège 'Archivage' pour donner la possiblité à un statut d'intervenant de mettre à jour une pièce jointe lorsque celle ci a été fourni une année antérieure à l'année en cours (Bouton "Modifier si besoin")
 
+## Corrections de bugs
+
+* La suppression d'intervenants est maintenant pleinement opérationnelle et les erreurs sont mieux affichées
+* Formule de Poitiers modifiée
+
 ## Notes de mise à jour
 
 * PHP 7.4 minimum requis : attention à bien mettre à jour vos serveurs
diff --git a/data/ddl/package/FORMULE_POITIERS/body.sql b/data/ddl/package/FORMULE_POITIERS/body.sql
index 2dd96b8da2..bd8c059175 100644
--- a/data/ddl/package/FORMULE_POITIERS/body.sql
+++ b/data/ddl/package/FORMULE_POITIERS/body.sql
@@ -193,31 +193,46 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS
 
 
     -- X=SI($H20="Référentiel";0;$BC20*E20)
+    -- X=SI($H20="Référentiel";0;SI(i_type_intervenant_code="E";$BB20;$BC20)*E20)
     WHEN c = 'X' AND v >= 1 THEN
       IF vh.volume_horaire_ref_id IS NOT NULL THEN
         RETURN 0;
       ELSE
-        RETURN cell('BC',l) * vh.taux_fi;
+        IF i.type_intervenant_code = 'E' THEN
+          RETURN cell('BB',l) * vh.taux_fi;
+        ELSE
+          RETURN cell('BC',l) * vh.taux_fi;
+        END IF;
       END IF;
 
 
 
     -- Y=SI($H20="Référentiel";0;$BC20*F20)
+    -- Y=SI($H20="Référentiel";0;SI(i_type_intervenant_code="E";$BB20;$BC20)*F20)
     WHEN c = 'Y' AND v >= 1 THEN
       IF vh.volume_horaire_ref_id IS NOT NULL THEN
         RETURN 0;
       ELSE
-        RETURN cell('BC',l) * vh.taux_fa;
+        IF i.type_intervenant_code = 'E' THEN
+          RETURN cell('BB',l) * vh.taux_fa;
+        ELSE
+          RETURN cell('BC',l) * vh.taux_fa;
+        END IF;
       END IF;
 
 
 
     -- Z=SI($H20="Référentiel";0;$BC20*G20)
+    -- Z=SI($H20="Référentiel";0;SI(i_type_intervenant_code="E";$BB20;$BC20)*G20)
     WHEN c = 'Z' AND v >= 1 THEN
       IF vh.volume_horaire_ref_id IS NOT NULL THEN
         RETURN 0;
       ELSE
-        RETURN cell('BC',l) * vh.taux_fc;
+        IF i.type_intervenant_code = 'E' THEN
+          RETURN cell('BB',l) * vh.taux_fc;
+        ELSE
+          RETURN cell('BC',l) * vh.taux_fc;
+        END IF;
       END IF;
 
 
-- 
GitLab