From 32f743af4bdafc6cf843f21f815fbfee82037094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20L=C3=A9cluse?= <laurent.lecluse@unicaen.fr> Date: Tue, 4 Apr 2023 10:25:08 +0200 Subject: [PATCH] Formule de Picardie #47224 (cherry picked from commit 59771eec0c8be1034b5294d49bc0a24fb587be42) --- CHANGELOG.md | 9 ++- data/ddl/package/FORMULE_PICARDIE/body.sql | 70 ++++++++++++++-------- data/formules.php | 5 -- 3 files changed, 52 insertions(+), 32 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67b4d243c1..876d68458b 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Version stable -[OSE 20.0](#ose-20--28022023-) +[OSE 20.1](#ose-201--04042023-) # OSE 21 (à venir) @@ -11,7 +11,8 @@ * Taux HETD personnalisables -# OSE 20.1 (A venir) + +# OSE 20.1 (04/04/2023) ## Nouveautés @@ -27,7 +28,9 @@ * Correction d'une régression de la V20 sur le module Export Siham * Suppression d'un message d'erreur sur l'envoi de mail via les indicateurs (#49873) * Formule Paris 8 : correction d'un problème de code de composante - +* Formule Poitiers : (#46805) +* Formule La Réunion : (#24229) +* Formule de Picardie: (#47224) diff --git a/data/ddl/package/FORMULE_PICARDIE/body.sql b/data/ddl/package/FORMULE_PICARDIE/body.sql index 37d15961d2..2e6418ced4 100644 --- a/data/ddl/package/FORMULE_PICARDIE/body.sql +++ b/data/ddl/package/FORMULE_PICARDIE/body.sql @@ -218,10 +218,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AB=IF([.$H20]="Référentiel";[.$AQ20]+[.$BC20]+[.$BQ20];0) + -- AB=IF([.$H20]="Référentiel";[.$BQ20]+[.$BS20];0) WHEN 'AB' THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN - RETURN cell('AQ',l) + cell('BC',l) + cell('BQ',l); + RETURN cell('BQ',l) + cell('BS',l); ELSE RETURN 0; END IF; @@ -284,9 +284,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AJ=IF([.AH$17]=0;([.AG20]-[.AI20])/[.$AD20];0) + -- AJ=IF([.AI20]<[.AG20];([.AG20]-[.AI20])/[.$AD20];0) WHEN 'AJ' THEN - IF cell('AH17') = 0 THEN + IF cell('AI',l) < cell('AG',l) THEN RETURN (cell('AG',l) - cell('AI',l)) / cell('AD',l); ELSE RETURN 0; @@ -314,12 +314,18 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AN15=SUM([.AM$1:.AM$1048576]) - WHEN 'AN15' THEN + -- AN14=SUM([.AM$1:.AM$1048576]) + WHEN 'AN14' THEN RETURN calcFnc('somme','AM'); + -- AN15=MIN([.AN14];i_service_du/3) + WHEN 'AN15' THEN + RETURN LEAST(cell('AN14'), i.service_du / 3); + + + -- AN16=MIN([.AN15];[.AH17]) WHEN 'AN16' THEN RETURN LEAST(cell('AN15'), cell('AH17')); @@ -332,10 +338,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AN=IF([.AN$15]>0;[.AM20]/[.AN$15];0) + -- AN=IF([.AN$14]>0;[.AM20]/[.AN$14];0) WHEN 'AN' THEN - IF cell('AN15') > 0 THEN - RETURN cell('AM',l) / cell('AN15'); + IF cell('AN14') > 0 THEN + RETURN cell('AM',l) / cell('AN14'); ELSE RETURN 0; END IF; @@ -348,9 +354,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AP=IF([.AN$17]=0;([.AM20]-[.AO20])/[.$AD20];0) + -- AP=IF([.AO20]<[.AM20];([.AM20]-[.AO20])/[.$AD20];0) WHEN 'AP' THEN - IF cell('AN17') = 0 THEN + IF cell('AO',l) < cell('AM',l) THEN RETURN (cell('AM',l) - cell('AO',l)) / cell('AD',l); ELSE RETURN 0; @@ -412,9 +418,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AV=IF([.AT$17]=0;([.AS20]-[.AU20])/[.$AD20];0) + -- AV=IF([.AU20]<[.AS20];([.AS20]-[.AU20])/[.$AD20];0) WHEN 'AV' THEN - IF cell('AT17') = 0 THEN + IF cell('AU',l) < cell('AS',l) THEN RETURN (cell('AS',l) - cell('AU',l)) / cell('AD',l); ELSE RETURN 0; @@ -442,12 +448,18 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AZ15=SUM([.AY$1:.AY$1048576]) - WHEN 'AZ15' THEN + -- AZ14=SUM([.AY$1:.AY$1048576]) + WHEN 'AZ14' THEN RETURN calcFnc('somme','AY'); + -- AZ15=MIN([.AZ14];(i_service_du/3)-[.AN16]) + WHEN 'AZ15' THEN + RETURN LEAST(cell('AZ14'), (i.service_du / 3) - cell('AN16')); + + + -- AZ16=MIN([.AZ15];[.AT17]) WHEN 'AZ16' THEN RETURN LEAST(cell('AZ15'), cell('AT17')); @@ -460,10 +472,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- AZ=IF([.AZ$15]>0;[.AY20]/[.AZ$15];0) + -- AZ=IF([.AZ$14]>0;[.AY20]/[.AZ$14];0) WHEN 'AZ' THEN - IF cell('AZ15') > 0 THEN - RETURN cell('AY',l) / cell('AZ15'); + IF cell('AZ14') > 0 THEN + RETURN cell('AY',l) / cell('AZ14'); ELSE RETURN 0; END IF; @@ -476,9 +488,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- BB=IF([.AZ$17]=0;([.AY20]-[.BA20])/[.$AD20];0) + -- BB=IF([.BA20]<[.AY20];([.AY20]-[.BA20])/[.$AD20];0) WHEN 'BB' THEN - IF cell('AZ17') = 0 THEN + IF cell('BA',l) < cell('AY',l) THEN RETURN (cell('AY',l) - cell('BA',l)) / cell('AD',l); ELSE RETURN 0; @@ -540,9 +552,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- BH=IF([.BF$17]=0;([.BE20]-[.BG20])/[.$AD20];0) + -- BH=IF([.BG20]<[.BE20];([.BE20]-[.BG20])/[.$AD20];0) WHEN 'BH' THEN - IF cell('BF17') = 0 THEN + IF cell('BG',l) < cell('BE',l) THEN RETURN (cell('BE',l) - cell('BG',l)) / cell('AD',l); ELSE RETURN 0; @@ -604,9 +616,9 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS - -- BN=IF([.BL$17]=0;([.BK20]-[.BM20])/[.$AD20];0) + -- BN=IF([.BM20]<[.BK20];([.BK20]-[.BM20])/[.$AD20];0) WHEN 'BN' THEN - IF cell('BL17') = 0 THEN + IF cell('BM',l) < cell('BK',l) THEN RETURN (cell('BK',l) - cell('BM',l)) / cell('AD',l); ELSE RETURN 0; @@ -634,6 +646,16 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_PICARDIE AS + -- BS=IF(AND([.$D20]="Oui";[.$BL$17]=0;[.$H20]="Référentiel");([.AQ20]+[.BC20])*[.$AE20];0) + WHEN 'BS' THEN + IF vh.service_statutaire AND cell('BL17') = 0 AND vh.volume_horaire_ref_id IS NOT NULL THEN + RETURN (cell('AQ',l) + cell('BC',l)) * cell('AE',l); + ELSE + RETURN 0; + END IF; + + + ELSE dbms_output.put_line('La colonne c=' || c || ', l=' || l || ' n''existe pas!'); diff --git a/data/formules.php b/data/formules.php index abeb2a0c40..ace4c83eeb 100644 --- a/data/formules.php +++ b/data/formules.php @@ -110,10 +110,5 @@ return [ 26 => [ 'LIBELLE' => 'Université de Picardie Jules Verne', 'PACKAGE_NAME' => 'FORMULE_PICARDIE', - 'VH_PARAM_1_LIBELLE' => 'param 1', - 'VH_PARAM_2_LIBELLE' => 'param 2', - 'VH_PARAM_3_LIBELLE' => 'param 3', - 'VH_PARAM_4_LIBELLE' => 'param 4', - 'VH_PARAM_5_LIBELLE' => 'param 5', ], ]; \ No newline at end of file -- GitLab