diff --git a/module/Application/view/application/structure/partial/campagne.phtml b/module/Application/view/application/structure/partial/campagne.phtml index 301cecdd9b3c3cfe35188498588d72c2ef36f257..18de7c41d1c4c3189046f336699714ae7598b56f 100644 --- a/module/Application/view/application/structure/partial/campagne.phtml +++ b/module/Application/view/application/structure/partial/campagne.phtml @@ -5,6 +5,7 @@ use Application\Entity\Db\Structure; use Application\Provider\Privilege\AgentPrivileges; use EntretienProfessionnel\Entity\Db\Campagne; use EntretienProfessionnel\Provider\Privilege\EntretienproPrivileges; +use EntretienProfessionnel\Provider\Privilege\SursisPrivileges; /** * @var Campagne $campagne @@ -19,6 +20,10 @@ $canModifierEntretien = $this->isAllowed(EntretienproPrivileges::getResourceId(E $canHistoriserEntretien = $this->isAllowed(EntretienproPrivileges::getResourceId(EntretienproPrivileges::ENTRETIENPRO_HISTORISER)); $canDetruireEntretien = $this->isAllowed(EntretienproPrivileges::getResourceId(EntretienproPrivileges::ENTRETIENPRO_DETRUIRE)); +$canSursisAjouter = $this->isAllowed(SursisPrivileges::getResourceId(SursisPrivileges::SURSIS_AJOUTER)); +$canSursisModifier = $this->isAllowed(SursisPrivileges::getResourceId(SursisPrivileges::SURSIS_MODIFIER)); +$canSursisSupprimer = $this->isAllowed(SursisPrivileges::getResourceId(SursisPrivileges::SURSIS_SUPPRIMER)); + $complete = []; $encours = []; $sans = []; @@ -149,7 +154,37 @@ foreach ($agents as $agent) { <tr> <td> <?php echo $entretien->getAgent()->getDenomination(); ?></td> <td> <?php echo $entretien->getResponsable()->getDisplayName(); ?> </td> - <td> <?php echo $entretien->getDateEntretien()->format('d/m/Y'); ?> </td> + <td> + <?php $sursis = $entretien->getSursisActive(); ?> + <?php if ($sursis === null) : ?> + <?php echo $entretien->getDateEntretien()->format('d/m/Y'); ?> + <?php if ($canSursisAjouter) : ?> + <a <?php /** @see \EntretienProfessionnel\Controller\SursisController::modifierAction() */ ?> + href="<?php echo $this->url('entretien-professionnel/sursis/ajouter', ['entretien-professionnel' => $entretien->getId()], [], true); ?>" + class="ajax-modal" data-event="modification" + > + <span class="icon sursis"></span></a> + <?php endif; ?> + <?php else : ?> + <span class="texte-sursis" title="<?php echo $sursis->getDescription(); ?>"> + <?php echo $sursis->getSursis()->format('d/m/Y'); ?> + </span> + <?php if ($canSursisModifier) : ?> + <a <?php /** @see \EntretienProfessionnel\Controller\SursisController::modifierAction() */ ?> + href="<?php echo $this->url('entretien-professionnel/sursis/modifier', ['sursis' => $sursis->getId()], [], true); ?>" + class="ajax-modal" data-event="modification" + > + <span class="icon sursis"></span></a> + <?php endif; ?> + <?php if ($canSursisSupprimer) : ?> + <a <?php /** @see \EntretienProfessionnel\Controller\SursisController::supprimerAction() */ ?> + href="<?php echo $this->url('entretien-professionnel/sursis/supprimer', ['sursis' => $sursis->getId()], [], true); ?>" + class="ajax-modal" data-event="modification" + > + <span class="icon detruire"></span></a> + <?php endif; ?> + <?php endif; ?> + </td> <td> <?php if ($entretien->getValidationResponsable() !== null) : ?> <span @@ -279,6 +314,12 @@ foreach ($agents as $agent) { </tbody> </table> +<style> + span.texte-sursis { + color:darkred; + font-style: italic; + } +</style> <script> $(function() { $("body").on("entretien", function (event) { diff --git a/module/EntretienProfessionnel/config/merged/sursis.config.php b/module/EntretienProfessionnel/config/merged/sursis.config.php index 45c6858351ba74239bb934c45daba96fc43850d4..3023045ebe83b1ef1965a116c7a618b1b9de05a7 100644 --- a/module/EntretienProfessionnel/config/merged/sursis.config.php +++ b/module/EntretienProfessionnel/config/merged/sursis.config.php @@ -124,14 +124,14 @@ return [ ], ], ], - 'detruire' => [ + 'supprimer' => [ 'type' => Segment::class, 'may_terminate' => true, 'options' => [ - 'route' => '/detruire/:sursis', + 'route' => '/supprimer/:sursis', 'defaults' => [ 'controller' => SursisController::class, - 'action' => 'detruire', + 'action' => 'supprimer', ], ], ], diff --git a/module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/SursisController.php b/module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/SursisController.php index ebe45954dca0af3bfe5aa1269ea0701d44d5b4d6..03d62302acd2f1187d4ed3b92eacbb7c3609dddd 100644 --- a/module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/SursisController.php +++ b/module/EntretienProfessionnel/src/EntretienProfessionnel/Controller/SursisController.php @@ -32,7 +32,7 @@ class SursisController extends AbstractActionController { $sursis->setEntretien($entretien); $form = $this->getSursisForm(); - $form->setAttribute('action', $this->url()->fromRoute('sursis/ajouter', ['entretien-professionnel' => $entretien->getId()], [], true)); + $form->setAttribute('action', $this->url()->fromRoute('entretien-professionnel/sursis/ajouter', ['entretien-professionnel' => $entretien->getId()], [], true)); $form->bind($sursis); $request = $this->getRequest(); @@ -57,7 +57,7 @@ class SursisController extends AbstractActionController { $sursis = $this->getSursisService()->getRequestedSursis($this); $form = $this->getSursisForm(); - $form->setAttribute('action', $this->url()->fromRoute('sursis/modifier', ['sursis' => $sursis->getId()], [], true)); + $form->setAttribute('action', $this->url()->fromRoute('entretien-professionnel/sursis/modifier', ['sursis' => $sursis->getId()], [], true)); $form->bind($sursis); $request = $this->getRequest(); @@ -111,7 +111,7 @@ class SursisController extends AbstractActionController { $vm->setVariables([ 'title' => "Suppression d'un sursis", 'text' => "La suppression est définitive êtes-vous sûr·e de vouloir continuer ?", - 'action' => $this->url()->fromRoute('entretien-professionnel/default/supprimer', ["sursis" => $sursis->getId()], [], true), + 'action' => $this->url()->fromRoute('entretien-professionnel/sursis/supprimer', ["sursis" => $sursis->getId()], [], true), ]); } return $vm; diff --git a/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisForm.php b/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisForm.php index a4517ce5ffaf6f56f8a68014d5f8fffca5e921fe..2e393520b42b766cc6d8f70039281419b809a2c3 100644 --- a/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisForm.php +++ b/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisForm.php @@ -2,7 +2,7 @@ namespace EntretienProfessionnel\Form\Sursis; -use UnicaenApp\Form\Element\Date; +use Zend\Form\Element\Date; use Zend\Form\Element\Textarea; use Zend\Form\Form; use Zend\InputFilter\Factory; @@ -17,6 +17,7 @@ class SursisForm extends Form 'name' => 'date', 'options' => [ 'label' => "Fin du sursis * :", + 'format' => 'd/m/Y', ], 'attributes' => [ 'id' => 'date', diff --git a/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisHydrator.php b/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisHydrator.php index b2cc2402268f8a464e680fbf415a09bc71ffb4da..c6f2b78ed79ec5c3418b372485f18302850c5bb1 100644 --- a/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisHydrator.php +++ b/module/EntretienProfessionnel/src/EntretienProfessionnel/Form/Sursis/SursisHydrator.php @@ -15,7 +15,7 @@ class SursisHydrator implements HydratorInterface { public function extract($object) { $data = [ - 'date' => $object->getSursis()->format('Y-m-d'), + 'date' => ($object->getSursis())?$object->getSursis()->format('d/m/Y'):null, 'description' => $object->getDescription(), ]; return $data; @@ -28,7 +28,7 @@ class SursisHydrator implements HydratorInterface { */ public function hydrate(array $data, $object) { - $date = (isset($data['date']))?DateTime::createFromFormat('Y-m-d', $data['date']):null; + $date = (isset($data['date']))?DateTime::createFromFormat('d/m/Y H:i:s', $data['date']." 23:59:59"):null; $description = (isset($data['description']) AND trim($data['description']) !== "")?trim($data['description']):null; $object->setSursis($date); diff --git a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/formulaire.phtml b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/formulaire.phtml index dcbfbdf3cd1546e899b684fd1ae36889a5b21c9c..6470a040bc2ebed204a0fb486a8082aa25922ae9 100644 --- a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/formulaire.phtml +++ b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/formulaire.phtml @@ -23,7 +23,12 @@ $canRenseigner = ($isAgent OR $isConducteur OR $canValiderDrh OR $canVa $retour = $this->url('entretien-professionnel/renseigner', ['entretien' => $entretien->getId()], ['force_canonical' => false], true); $now = new DateTime(); -$dayAfter = $entretien->getDateEntretien()->add(new DateInterval('P1D')); +$date = DateTime::createFromFormat('d/m/Y à H:i', $entretien->getDateEntretien()->format('d/m/Y à H:i')); +$sursis = $entretien->getSursisActive(); +if ($sursis AND $sursis->getSursis() > $entretien->getDateEntretien()) { + $date = DateTime::createFromFormat('d/m/Y à H:i', $entretien->getDateEntretien()->format('d/m/Y à H:i')); +} +$dayAfter = $date->add(new DateInterval('P1D')); ?> <h2> Formulaire d'entretien </h2> diff --git a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/observation.phtml b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/observation.phtml index 07400f6d6861520903ce72db0cf59140dd499bd3..558627ceff8a43e75f4a98f596457e15cb492635 100644 --- a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/observation.phtml +++ b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/observation.phtml @@ -14,7 +14,13 @@ $canHistoriserObservation = true; $canDetruireObservation = true; $now = new DateTime(); -$entretien7 = $entretien->getDateEntretien()->add(new DateInterval('P7D')); +$date = DateTime::createFromFormat('d/m/Y à H:i', $entretien->getDateEntretien()->format('d/m/Y à H:i')); +$entretien7 = $date->add(new DateInterval('P7D')); +$sursis = $entretien->getSursisActive(); +if ($sursis AND $sursis->getSursis() > $entretien->getDateEntretien()) { + $entretien7 = $sursis->getSursis()->add(new DateInterval('P7D')); +} + ?> <h2> Observation lié à l'entretien professionnel</h2> diff --git a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/parcours.phtml b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/parcours.phtml index bc384b4441717ce6fb076dee6bb0365f439134ea..98a72b2b3b38785746c31cb5d7bdb74096e88956 100644 --- a/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/parcours.phtml +++ b/module/EntretienProfessionnel/view/entretien-professionnel/entretien-professionnel/partial/parcours.phtml @@ -41,7 +41,12 @@ $options['retour'] = $this->url('entretien-professionnel/renseigner', ['entretie $DEBUG = false; $now = new DateTime(); -$dayAfter = $entretien->getDateEntretien()->add(new DateInterval('P1D')); +$date = DateTime::createFromFormat('d/m/Y à H:i', $entretien->getDateEntretien()->format('d/m/Y à H:i')); +$sursis = $entretien->getSursisActive(); +if ($sursis AND $sursis->getSursis() > $entretien->getDateEntretien()) { + $date = DateTime::createFromFormat('d/m/Y à H:i', $entretien->getDateEntretien()->format('d/m/Y à H:i')); +} +$dayAfter = $date->add(new DateInterval('P1D')); ?> <?php if ($DEBUG) : ?>