diff --git a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php index 6d9d61355..beaff22d4 100644 --- a/src/Bundle/ChillActivityBundle/Controller/ActivityController.php +++ b/src/Bundle/ChillActivityBundle/Controller/ActivityController.php @@ -173,10 +173,9 @@ class ActivityController extends AbstractController $activityType = $em->getRepository(\Chill\ActivityBundle\Entity\ActivityType::class) ->find($activityType_id); - + $activityData = null; if ($request->query->has('activityData')) { $activityData = $request->query->get('activityData'); - dump($activityData); } if (!$activityType instanceof \Chill\ActivityBundle\Entity\ActivityType || @@ -184,10 +183,9 @@ class ActivityController extends AbstractController $params = $this->buildParamsToUrl($person, $accompanyingPeriod); - if (NULL !== $activityData) { + if (null !== $activityData) { $params['activityData'] = $activityData; } - return $this->redirectToRoute('chill_activity_activity_select_type', $params); } @@ -208,30 +206,36 @@ class ActivityController extends AbstractController if ($request->query->has('activityData')) { $activityData = $request->query->get('activityData'); - $durationTimeInMinutes = $activityData['durationTime']; - $hours = floor($durationTimeInMinutes / 60); - $minutes = $durationTimeInMinutes % 60; - - $duration = \DateTime::createFromFormat("H:i", $hours.':'.$minutes); - if ($duration) { - $entity->setDurationTime($duration); + if (array_key_exists('durationTime', $activityData)) { + $durationTimeInMinutes = $activityData['durationTime']; + $hours = floor($durationTimeInMinutes / 60); + $minutes = $durationTimeInMinutes % 60; + $duration = \DateTime::createFromFormat("H:i", $hours.':'.$minutes); + if ($duration) { + $entity->setDurationTime($duration); + } } - $date = \DateTime::createFromFormat('Y-m-d', $activityData['date']); - if ($date) { - $entity->setDate($date); + if (array_key_exists('date', $activityData)) { + $date = \DateTime::createFromFormat('Y-m-d', $activityData['date']); + if ($date) { + $entity->setDate($date); + } } - foreach($activityData['personsId'] as $personId){ - $person = $em->getRepository(\Chill\PersonBundle\Entity\Person::class)->find($personId); - $entity->addPerson($person); + if (array_key_exists('personsId', $activityData)) { + foreach($activityData['personsId'] as $personId){ + $concernedPerson = $em->getRepository(\Chill\PersonBundle\Entity\Person::class)->find($personId); + $entity->addPerson($concernedPerson); + } } - foreach($activityData['professionalsId'] as $professionalsId){ - $professional = $em->getRepository(\Chill\ThirdPartyBundle\Entity\ThirdParty::class)->find($professionalsId); - $entity->addThirdParty($professional); + if (array_key_exists('professionalsId', $activityData)) { + foreach($activityData['professionalsId'] as $professionalsId){ + $professional = $em->getRepository(\Chill\ThirdPartyBundle\Entity\ThirdParty::class)->find($professionalsId); + $entity->addThirdParty($professional); + } } - } // TODO revoir le Voter de Activity pour tenir compte qu'une activité peut appartenir a une période @@ -251,6 +255,7 @@ class ActivityController extends AbstractController $this->addFlash('success', $this->get('translator')->trans('Success : activity created!')); $params = $this->buildParamsToUrl($person, $accompanyingPeriod); + $params['id'] = $entity->getId(); return $this->redirectToRoute('chill_activity_activity_show', $params);