From c30bd74e6f65cb0954f2a128a6c609b79f395fb2 Mon Sep 17 00:00:00 2001 From: Matthieu Lamalle Date: Wed, 29 Jul 2020 11:46:35 +0200 Subject: [PATCH] =?UTF-8?q?Passage=20d'un=20timer=20en=20heure=20suppl?= =?UTF-8?q?=C3=A9mentaire=20si=20hors=20des=20plages=20horaires=20de=20tra?= =?UTF-8?q?vail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/TimerController.php | 31 +++++++++++++++++-- .../src/Controller/ValidationController.php | 14 ++------- .../templates/Timer/list.html.twig | 9 ++++-- .../Validation/validationtimer.html.twig | 8 +++-- 4 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/schedule-2.0/src/Controller/TimerController.php b/src/schedule-2.0/src/Controller/TimerController.php index c9391d2..9859e28 100644 --- a/src/schedule-2.0/src/Controller/TimerController.php +++ b/src/schedule-2.0/src/Controller/TimerController.php @@ -90,6 +90,18 @@ class TimerController extends AbstractController $end = \DateTime::createFromFormat('D M d Y H:i:s e+',$request->request->get('end')); $duration = new \DateTime(date("H:i:s", ($request->request->get('duration')/1000))); $duration->sub(new \DateInterval('PT1H')); + $activepenalty = $request->request->get('activepenalty'); + $additionalhour= $request->request->get('additionalhour'); + + $officeworkstart = clone $start; + $officeworkend = clone $officeworkstart; + $officeworkstart->SetTime(9,0,0); + $officeworkend->SetTime(17,30,0); + if ($start < $officeworkstart || $end > $officeworkend) { + $timer->setAdditionalHour(true); + }else{ + $timer->setAdditionalHour($additionalhour); + } $timer = new Entity(); $timer->setUser($user); @@ -98,6 +110,7 @@ class TimerController extends AbstractController $timer->setEnd($end); $timer->setDuration($duration); $timer->setDescription($description); + $timer->setActivePenalty($activepenalty); $em->persist($timer); $em->flush(); @@ -127,6 +140,20 @@ class TimerController extends AbstractController if ($form->get('submit')->isClicked() && $form->isValid()) { $data = $form->getData(); $data->setUser($user); + + $start = $data->getStart(); + $end = $data->getEnd(); + $additionalhour = $data->getAdditionalHour(); + + $officeworkstart = clone $start; + $officeworkend = clone $officeworkstart; + $officeworkstart->SetTime(9,0,0); + $officeworkend->SetTime(17,30,0); + if ($start < $officeworkstart || $end > $officeworkend) { + $data->setAdditionalHour(true); + }else{ + $data->setAdditionalHour($additionalhour); + } $em->persist($data); $em->flush(); @@ -222,8 +249,8 @@ class TimerController extends AbstractController $tbtimer["id"] = $timer->getId(); $tbtimer["taskname"] = $timer->getTask()->getDisplayname(); $tbtimer["user"] = $timer->getUser()->getUsername(); - $tbtimer["start"] = $timer->getId(); - $tbtimer["end"] = $timer->getId(); + $tbtimer["start"] = $timer->getStart()->format("Y-m-d H:i"); + $tbtimer["end"] = $timer->getEnd()->format("Y-m-d H:i"); $tbtimer["duration"] = $timer->getDuration(); $tbtimer["activepenalty"] = $timer->getActivePenalty(); $tbtimer["additionalhour"] = $timer->getAdditionalHour(); diff --git a/src/schedule-2.0/src/Controller/ValidationController.php b/src/schedule-2.0/src/Controller/ValidationController.php index ebac3f1..6134e8d 100755 --- a/src/schedule-2.0/src/Controller/ValidationController.php +++ b/src/schedule-2.0/src/Controller/ValidationController.php @@ -593,22 +593,12 @@ class ValidationController extends AbstractController ->getQuery()->getResult(); foreach($timers as $timer) { - $tbtimer["id"] = $timer->getId(); - $tbtimer["taskname"] = $timer->getTask()->getDisplayname(); - $tbtimer["user"] = $timer->getUser()->getUsername(); - $tbtimer["start"] = $timer->getId(); - $tbtimer["end"] = $timer->getId(); - $tbtimer["duration"] = $timer->getDuration(); - $tbtimer["activepenalty"] = $timer->getActivePenalty(); - $tbtimer["additionalhour"] = $timer->getAdditionalHour(); - $tbtimer["description"] = $timer->getDescription(); - $tbtimer = [ "id"=>$timer->getId(), "taskname"=>$timer->getTask()->getDisplayname(), "user"=>$timer->getUser()->getUsername(), - "start"=>$timer->getId(), - "end"=>$timer->getId(), + "start"=>$timer->getStart()->format("Y-m-d H:i"), + "end"=>$timer->getEnd()->format("Y-m-d H:i"), "duration"=>$timer->getDuration(), "activepenalty"=>$timer->getActivePenalty(), "additionalhour"=>$timer->getAdditionalHour(), diff --git a/src/schedule-2.0/templates/Timer/list.html.twig b/src/schedule-2.0/templates/Timer/list.html.twig index cbe2a89..45c7a26 100644 --- a/src/schedule-2.0/templates/Timer/list.html.twig +++ b/src/schedule-2.0/templates/Timer/list.html.twig @@ -56,8 +56,13 @@ SUIVI HORAIRE {{ timer.task.displayname }} - {{ timer.activepenalty ? "Astreinte active" : "" }} - {{ timer.additionalhour ? "Heures supplémentaires" : "" }} + + + {{ timer.activepenalty ? " Astreinte active" : "" }} + + + {{ timer.additionalhour ? " Heures supplémentaires" : "" }} +

{{ timer.description }}

{{ timer.start|date("d/m/Y H:i") }} diff --git a/src/schedule-2.0/templates/Validation/validationtimer.html.twig b/src/schedule-2.0/templates/Validation/validationtimer.html.twig index 85963e7..b70af14 100644 --- a/src/schedule-2.0/templates/Validation/validationtimer.html.twig +++ b/src/schedule-2.0/templates/Validation/validationtimer.html.twig @@ -68,8 +68,12 @@ {{ timer.taskname }} - {{ timer.activepenalty ? "Astreinte active" : "" }} - {{ timer.additionalhour ? "Heures supplémentaires" : "" }} + + {{ timer.activepenalty ? " Astreinte active" : "" }} + + + {{ timer.additionalhour ? " Heures supplémentaires" : "" }} +

{{ timer.description }}