diff --git a/data/ddl/package/FORMULE_POITIERS/body.sql b/data/ddl/package/FORMULE_POITIERS/body.sql index 77ee99182d8ac462b11a4e310c5a68fc35cc50d5..2dd96b8da292befd7bc34f8396c3e06110cde614 100644 --- a/data/ddl/package/FORMULE_POITIERS/body.sql +++ b/data/ddl/package/FORMULE_POITIERS/body.sql @@ -157,7 +157,7 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE - RETURN cell('AW',l) + cell('AY',l); + RETURN (cell('AW',l) + cell('AY',l)) * vh.TAUX_FI; END IF; @@ -192,32 +192,32 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS - -- X=SI($H20="Référentiel";0;$BB20*E20) + -- X=SI($H20="Référentiel";0;$BC20*E20) WHEN c = 'X' AND v >= 1 THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE - RETURN cell('BB',l) * vh.taux_fi; + RETURN cell('BC',l) * vh.taux_fi; END IF; - -- Y=SI($H20="Référentiel";0;$BB20*F20) + -- Y=SI($H20="Référentiel";0;$BC20*F20) WHEN c = 'Y' AND v >= 1 THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE - RETURN cell('BB',l) * vh.taux_fa; + RETURN cell('BC',l) * vh.taux_fa; END IF; - -- Z=SI($H20="Référentiel";0;$BB20*G20) + -- Z=SI($H20="Référentiel";0;$BC20*G20) WHEN c = 'Z' AND v >= 1 THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN RETURN 0; ELSE - RETURN cell('BB',l) * vh.taux_fc; + RETURN cell('BC',l) * vh.taux_fc; END IF; @@ -228,10 +228,10 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS - -- AB=SI($H20="Référentiel";$BC20;0) + -- AB=SI($H20="Référentiel";$BE20;0) WHEN c = 'AB' AND v >= 1 THEN IF vh.volume_horaire_ref_id IS NOT NULL THEN - RETURN cell('BC',l); + RETURN cell('BE',l); ELSE RETURN 0; END IF; @@ -305,16 +305,15 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS - -- AJ=SI(AI$35<i_param_1;AI20;AI20/AI$35*i_param_1) - -- Modifié!!! + -- AJ=SI(AI$35<$AJ$9;AI20;SI(AI$35=0;0;AI20/AI$35*$AJ$9)) WHEN c = 'AJ' AND v >= 1 THEN - IF cell('AI35') < i.param_1 THEN + IF cell('AI35') < CELL('AJ9') THEN RETURN cell('AI',l); ELSE IF cell('AI35') = 0 THEN RETURN 0; ELSE - RETURN cell('AI',l) / cell('AI35') * i.param_1; + RETURN cell('AI',l) / cell('AI35') * CELL('AJ9'); END IF; END IF; @@ -477,8 +476,18 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS - -- BC=SI(i_depassement_service_du_sans_hc="Non";SI($AD20<>2;0;$M20*$AF20*$BA20);0) + -- BC=SI(BB$35>0;BB20/BB$35*MIN(BB$35;$AJ$11);0) WHEN c = 'BC' AND v >= 1 THEN + IF CELL('BB35') > 0 THEN + RETURN CELL('BB',l) / CELL('BB35') * LEAST( CELL('BB35'), CELL('AJ11') ); + ELSE + RETURN 0; + END IF; + + + + -- BD=SI(i_depassement_service_du_sans_hc="Non";SI($AD20<>2;0;$M20*$AF20*$BA20);0) + WHEN c = 'BD' AND v >= 1 THEN IF NOT i.DEPASSEMENT_SERVICE_DU_SANS_HC THEN --SI($AD20<>2;0;$M20*$AF20*$BA20) IF cell('AD',l) <> 2 THEN @@ -492,6 +501,17 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS + -- BE=SI(BD$35>0;BD20/BD$35*MIN(BD$35;$AJ$10;$AJ$11-$BC$35);0) + WHEN c = 'BE' AND v >= 1 THEN + IF CELL('BD35') > 0 THEN + --BD20/BD$35*MIN(BD$35;$AJ$10;$AJ$11-$BC$35) + RETURN CELL('BD',l) / CELL('BD35') * LEAST( CELL('BD35'), CELL('AJ10'), CELL('AJ11')-CELL('BC35') ); + ELSE + RETURN 0; + END IF; + + + -- AG35=SOMME(AG20:AG34) WHEN c = 'AG35' AND v >= 1 THEN RETURN calcFnc('total', 'AG'); @@ -588,6 +608,18 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS + -- BD35=SOMME(BD20:BD34) + WHEN c = 'BD35' AND v >= 1 THEN + RETURN calcFnc('total', 'BD'); + + + + -- BE35=SOMME(BE20:BE34) + WHEN c = 'BE35' AND v >= 1 THEN + RETURN calcFnc('total', 'BE'); + + + -- AW37=AW35 WHEN c = 'AW37' AND v >= 1 THEN RETURN cell('AW35'); @@ -612,6 +644,33 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS + -- AJ9=SI(i_heures_decharge=0;0;i_param_1*i_service_du/i_heures_decharge) + WHEN c = 'AJ9' AND v >= 1 THEN + IF i.heures_service_statutaire = 0 THEN + RETURN 0; + ELSE + RETURN i.param_1 * i.service_du / i.heures_service_statutaire; + END IF; + + + -- AJ10=SI(i_heures_decharge=0;0;i_param_2*i_service_du/i_heures_decharge) + WHEN c = 'AJ10' AND v >= 1 THEN + IF i.heures_service_statutaire = 0 THEN + RETURN 0; + ELSE + RETURN i.param_2 * i.service_du / i.heures_service_statutaire; + END IF; + + + -- AJ11=SI(i_heures_decharge=0;0;i_param_3*i_service_du/i_heures_decharge) + WHEN c = 'AJ11' AND v >= 1 THEN + IF i.heures_service_statutaire = 0 THEN + RETURN 0; + ELSE + RETURN i.param_3 * i.service_du / i.heures_service_statutaire; + END IF; + + ELSE OSE_TEST.echo(c); raise_application_error( -20001, 'La colonne c=' || c || ', l=' || l || ' n''existe pas!'); @@ -646,7 +705,7 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_POITIERS AS fi.*, si.plafond_referentiel_service param_1, si.plafond_referentiel_hc param_2, - NULL param_3, + si.plafond_hc_hors_remu_fc param_3, NULL param_4, NULL param_5 FROM diff --git a/data/nomenclatures.php b/data/nomenclatures.php index 09b486374d59836f7cd95246d54a85c717970d6f..e07a26af585828808cd83ca4a1563cd65385b2b0 100644 --- a/data/nomenclatures.php +++ b/data/nomenclatures.php @@ -186,6 +186,7 @@ return [ 'PACKAGE_NAME' => 'FORMULE_POITIERS', 'I_PARAM_1_LIBELLE' => 'Heures max. référentiel en service', 'I_PARAM_2_LIBELLE' => 'Heures max. référentiel en HC', + 'I_PARAM_3_LIBELLE' => 'Heures max. enseignement en HC', ], ], diff --git a/module/Application/src/Application/Form/Intervenant/EditionForm.php b/module/Application/src/Application/Form/Intervenant/EditionForm.php index 947fe8d0939ee5ed225a2288cd0e5dcf26602457..04dd7640dca05a211ff7eba9b69e37c735ed12d4 100755 --- a/module/Application/src/Application/Form/Intervenant/EditionForm.php +++ b/module/Application/src/Application/Form/Intervenant/EditionForm.php @@ -218,19 +218,25 @@ class EditionForm extends AbstractForm $this->add($utilisateur); $this->add([ - 'name' => 'login', - 'type' => 'Text', - 'options' => [ + 'name' => 'login', + 'type' => 'Text', + 'attributes' => [ + 'autocomplete' => 'false', + ], + 'options' => [ 'label' => 'Login', ], ]); $this->add([ - 'name' => 'password', - 'type' => 'Password', - 'options' => [ - 'label' => 'Mot de passe', + 'name' => 'password', + 'type' => 'Password', + 'attributes' => [ + 'autocomplete' => 'false', + ], + 'options' => [ + 'label' => 'Mot de passe (6 caractères min.)', ], ]); @@ -411,6 +417,17 @@ class EditionForm extends AbstractForm } } } + if (!$object->getId()) { + $syncElements = ['syncStatut', 'syncStructure', 'source', 'sourceCode']; + foreach ($syncElements as $elementName) { + $element = $this->get($elementName); + + /** @var Element $element */ + $element->setAttribute('readonly', true); + $element->setAttribute('disabled', true); + $element->setAttribute('title', 'Paramètres de synchronisation inutiles dans le cas de la création d\'une nouvelle fiche'); + } + } } }