From 8a9470576f4f0b1024d327c35a6cb3faa125b4f5 Mon Sep 17 00:00:00 2001 From: Antony Le Courtes <antony.lecourtes@unicaen.fr> Date: Wed, 22 Jul 2020 11:04:56 +0200 Subject: [PATCH] =?UTF-8?q?Forcer=20dur=C3=A9e=20de=20vie=20=C3=A0=201=20s?= =?UTF-8?q?i=20case=20'Uniquement=20en=20cas=20de=20changement=20de=20RIB'?= =?UTF-8?q?=20est=20coch=C3=A9e=20par=20l'utilisateur=20pour=20=C3=A9viter?= =?UTF-8?q?=20les=20mauvais=20param=C3=A9trages=20des=20pi=C3=A8ces=20join?= =?UTF-8?q?tes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../ModifierTypePieceJointeStatutForm.php | 50 +++++------ .../modifier-type-piece-jointe-statut.phtml | 83 ++++++++++++------- 3 files changed, 77 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d0171aa06..48dd2e3d43 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ * Intégration (en cours) de la formule de calcul de Poitiers. * Stockage de la date d'envoi par e-mail du contrat * Nouvel indicateur 361 permettant de suivre les retours de contrats envoyés par email +* Piece justificative : forcer la durée de vie à 1 si la case "Uniquement en cas de changement de RIB" est cochée par l'utilisateur pour éviter les mauvais paramétrages des pièces jointes # OSE 14.8 diff --git a/module/Application/src/Application/Form/PieceJointe/ModifierTypePieceJointeStatutForm.php b/module/Application/src/Application/Form/PieceJointe/ModifierTypePieceJointeStatutForm.php index cd2589952a..28dcaaa4d3 100755 --- a/module/Application/src/Application/Form/PieceJointe/ModifierTypePieceJointeStatutForm.php +++ b/module/Application/src/Application/Form/PieceJointe/ModifierTypePieceJointeStatutForm.php @@ -23,7 +23,6 @@ class ModifierTypePieceJointeStatutForm extends AbstractForm use TypePieceJointeStatutServiceAwareTrait; - public function init() { $hydrator = new TypePieceJointeStatutHydrator(); @@ -101,15 +100,17 @@ class ModifierTypePieceJointeStatutForm extends AbstractForm 'label' => "Durée de vie de la pièce jointe (en année)", ], 'attributes' => [ - 'min' => '1', - 'value' => '1', + 'min' => '1', + 'value' => '1', + 'class' => 'form-control', + 'info_icon' => "Si vous avez coché 'Uniquement en cas de changement de RIB', la durée de vie sera automatiquement à 1", ], ]); $this->add([ - 'type' => 'Checkbox', - 'name' => 'obligatoire-hnp', - 'options' => [ + 'type' => 'Checkbox', + 'name' => 'obligatoire-hnp', + 'options' => [ 'label' => "Pièce jointe obligatoire même si les heures sont non payables", ], ]); @@ -195,10 +196,10 @@ class ModifierTypePieceJointeStatutForm extends AbstractForm public function getInputFilterSpecification() { return [ - 'typePieceJointe' => [ + 'typePieceJointe' => [ 'required' => true, ], - 'seuil-hetd' => [ + 'seuil-hetd' => [ 'required' => false, 'validators' => [ [ @@ -213,22 +214,22 @@ class ModifierTypePieceJointeStatutForm extends AbstractForm ], ], ], - 'changement-rib' => [ + 'changement-rib' => [ 'required' => true, ], - 'fc' => [ + 'fc' => [ 'required' => true, ], - 'obligatoire-hnp' => [ + 'obligatoire-hnp' => [ 'required' => true, ], - 'annee-debut' => [ + 'annee-debut' => [ 'required' => false, ], - 'annee-fin' => [ + 'annee-fin' => [ 'required' => false, ], - 'duree-vie' => [ + 'duree-vie' => [ 'required' => true, ], ]; @@ -245,7 +246,6 @@ class TypePieceJointeStatutHydrator implements HydratorInterface use AnneeServiceAwareTrait; - /** * Hydrate $object with the provided $data. * @@ -259,7 +259,7 @@ class TypePieceJointeStatutHydrator implements HydratorInterface //$object->setPremierRecrutement($data['premier-recrutement']); $object->setChangementRIB($data['changement-rib']); $object->setObligatoire($data['typePieceJointe']); - $object->setSeuilHetd((empty($data['seuil-hetd'])?null:$data['seuil-hetd'])); + $object->setSeuilHetd((empty($data['seuil-hetd']) ? null : $data['seuil-hetd'])); if (array_key_exists('annee-debut', $data)) { $object->setAnneeDebut($this->getServiceAnnee()->get($data['annee-debut'])); } @@ -285,17 +285,17 @@ class TypePieceJointeStatutHydrator implements HydratorInterface public function extract($object) { $data = [ - 'id' => $object->getId(), - 'typePieceJointe' => $object->getObligatoire(), + 'id' => $object->getId(), + 'typePieceJointe' => $object->getObligatoire(), //'premier-recrutement' => $object->getPremierRecrutement(), - 'seuil-hetd' => $object->getSeuilHeures(), + 'seuil-hetd' => $object->getSeuilHeures(), //'premier-recrutement' => $object->getPremierRecrutement(), - 'changement-rib' => $object->getChangementRIB(), - 'fc' => $object->getFC(), - 'duree-vie' => $object->getDureeVie(), - 'annee-debut' => $object->getAnneeDebut() ? $object->getAnneeDebut()->getId() : null, - 'annee-fin' => $object->getAnneeFin() ? $object->getAnneeFin()->getId() : null, - 'obligatoire-hnp' => $object->isObligatoireHNP(), + 'changement-rib' => $object->getChangementRIB(), + 'fc' => $object->getFC(), + 'duree-vie' => $object->getDureeVie(), + 'annee-debut' => $object->getAnneeDebut() ? $object->getAnneeDebut()->getId() : null, + 'annee-fin' => $object->getAnneeFin() ? $object->getAnneeFin()->getId() : null, + 'obligatoire-hnp' => $object->isObligatoireHNP(), ]; return $data; diff --git a/module/Application/view/application/piece-jointe/modifier-type-piece-jointe-statut.phtml b/module/Application/view/application/piece-jointe/modifier-type-piece-jointe-statut.phtml index 47ef815511..2e2592577a 100755 --- a/module/Application/view/application/piece-jointe/modifier-type-piece-jointe-statut.phtml +++ b/module/Application/view/application/piece-jointe/modifier-type-piece-jointe-statut.phtml @@ -21,44 +21,44 @@ echo $this->messenger()->addCurrentMessagesFromFlashMessenger(); ?> - <div class="row"> - <div class="col-md-12"> - <?= $this->formControlGroup($form->get('typePieceJointe')); ?> - </div> +<div class="row"> + <div class="col-md-12"> + <?= $this->formControlGroup($form->get('typePieceJointe')); ?> </div> - <div class="row"> - <div class="col-md-12"> - <?= $this->formControlGroup($form->get('changement-rib')); ?> - </div> +</div> +<div class="row"> + <div class="col-md-12"> + <?= $this->formControlGroup($form->get('changement-rib')); ?> </div> - <div class="row"> - <div class="col-md-12"> - <?= $this->formControlGroup($form->get('fc')); ?> - </div> +</div> +<div class="row"> + <div class="col-md-12"> + <?= $this->formControlGroup($form->get('fc')); ?> </div> - <div class="row"> - <div class="col-md-12"> - <?= $this->formControlGroup($form->get('obligatoire-hnp')); ?> - </div> +</div> +<div class="row"> + <div class="col-md-12"> + <?= $this->formControlGroup($form->get('obligatoire-hnp')); ?> </div> - <div class="row"> - <div class="col-md-4"> - <?= $this->formControlGroup($form->get('seuil-hetd')); ?> - </div> - <div class=col-md-4> - <?= $this->formControlGroup($form->get('annee-debut')); ?> - </div> - <div class=col-md-4> - <?= $this->formControlGroup($form->get('annee-fin')); ?> - </div> +</div> +<div class="row"> + <div class="col-md-4"> + <?= $this->formControlGroup($form->get('seuil-hetd')); ?> </div> - <div class="row"> - <div class="col-md-4"> - <?= $this->formControlGroup($form->get('duree-vie')); ?> - </div> - + <div class=col-md-4> + <?= $this->formControlGroup($form->get('annee-debut')); ?> + </div> + <div class=col-md-4> + <?= $this->formControlGroup($form->get('annee-fin')); ?> + </div> +</div> +<div class="row"> + <div class="col-md-4"> + <?= $this->formControlGroup($form->get('duree-vie')); ?> </div> +</div> + <?= $this->formSubmit($form->get('submit')); ?> <?php if (($canEdit) && ($form->getObject()->getId())) : ?> @@ -82,4 +82,23 @@ echo $this->messenger()->addCurrentMessagesFromFlashMessenger(); echo $this->formRow($form->get('security')); echo $this->formHidden($form->get('id')); -echo $this->form()->closeTag(); \ No newline at end of file +echo $this->form()->closeTag(); + +?> + +<script type="text/javascript"> + + $(document).ready(function () { + + $("input[name='changement-rib']").change(function () { + var dureeVie = $("input[name='duree-vie']") + if (this.checked) { + dureeVie.val('1'); + dureeVie.attr('disabled', 'disabled'); + } else { + dureeVie.removeAttr('disabled'); + } + }) + }); + +</script> \ No newline at end of file -- GitLab