Пример #1
0
 /**
  * @ParamConverter("result", class="AppBundle:Result", options={"mapping":{"result_id" = "id"}})
  */
 public function statusAction(Request $request, Result $result, $type, $status)
 {
     $result->setStatus($status);
     $manager = $this->getDoctrine()->getManager();
     $manager->persist($result);
     $manager->flush();
     return $this->redirectToRoute('app_search_results', ['type' => $type]);
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $host = $this->getContainer()->getParameter('host');
     $this->getContainer()->get('router')->getContext()->setHost($host);
     $em = $this->getContainer()->get('doctrine')->getEntityManager();
     $newPacks = $this->getContainer()->get('doctrine')->getRepository("AppBundle:Pack")->findBy(array('status' => Pack::STATUS_NEW));
     foreach ($newPacks as $newPack) {
         if ($newPack->getStartedAt()) {
             if ($newPack->getStartedAt()->format('Y-m-d') == date('Y-m-d')) {
                 $newPack->setStatus(Pack::STATUS_ONGOING);
             }
         }
     }
     $ongoingPacks = $this->getContainer()->get('doctrine')->getRepository("AppBundle:Pack")->findBy(array('status' => Pack::STATUS_ONGOING));
     foreach ($ongoingPacks as $ongoingPack) {
         $daysLeft = $ongoingPack->getDaysLeft() - 1;
         if ($daysLeft > 0) {
             $ongoingPack->setDaysLeft($daysLeft);
         } elseif ($daysLeft == 0) {
             $ongoingPack->setDaysLeft(0);
             $ongoingPack->setStatus(Pack::STATUS_FINISHED);
         }
         // one week before
         $nbDaysPassed = $ongoingPack->getNbDays() - $daysLeft + 7;
         $email = $ongoingPack->getPackType() == Pack::THEME ? $this->getContainer()->getParameter('sender_themes') : $this->getContainer()->getParameter('sender_custom');
         // Fin du pack (dernier bilan)
         if ($ongoingPack->getDaysLeft() == 7) {
             if ($ongoingPack->getNbDays() == 28) {
                 $result = new Result();
                 $result->setPack($ongoingPack);
                 $result->setCreatedAt(new \DateTime('now'));
                 $result->setResultType(Result::FOUR_WEEKS_FOOD_BODY);
                 $em->persist($result);
                 $em->flush();
                 $sujet = 'David costa : Bilan à 4 semaines';
                 $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtFourWeeks.html.twig', array('result' => $result));
                 $destinataire = $ongoingPack->getInitial()->getEmail();
                 $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                 $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                 $headers .= "Reply-To: " . $email . "\n";
                 $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                 mail($destinataire, $sujet, $message, $headers);
             } else {
                 $result = new Result();
                 $result->setPack($ongoingPack);
                 $result->setCreatedAt(new \DateTime('now'));
                 $result->setResultType(Result::ESTHETIC);
                 $em->persist($result);
                 $em->flush();
                 $sujet = 'David costa : Bilan esthétique';
                 $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtThreeMonths.html.twig', array('result' => $result));
                 $destinataire = $ongoingPack->getInitial()->getEmail();
                 $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                 $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                 $headers .= "Reply-To: " . $email . "\n";
                 $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                 mail($destinataire, $sujet, $message, $headers);
             }
         } else {
             if ($nbDaysPassed % 84 == 0) {
                 $result = new Result();
                 $result->setPack($ongoingPack);
                 $result->setCreatedAt(new \DateTime('now'));
                 $result->setResultType(Result::ESTHETIC);
                 $em->persist($result);
                 $em->flush();
                 $sujet = 'David costa : Bilan esthétique';
                 $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtThreeMonths.html.twig', array('result' => $result));
                 $destinataire = $ongoingPack->getInitial()->getEmail();
                 $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                 $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                 $headers .= "Reply-To: " . $email . "\n";
                 $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                 mail($destinataire, $sujet, $message, $headers);
             } else {
                 if ($nbDaysPassed % 14 == 0) {
                     //Bilan à 2 semaines
                     if ($nbDaysPassed / 14 % 2 == 1) {
                         if ($ongoingPack->getPackType() == Pack::FOOD) {
                             $result = new Result();
                             $result->setPack($ongoingPack);
                             $result->setCreatedAt(new \DateTime('now'));
                             $result->setResultType(Result::TWO_WEEKS_FOOD);
                             $em->persist($result);
                             $em->flush();
                             $sujet = 'David costa : Bilan à 2 semaines';
                             $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtTwoWeeks.html.twig', array('result' => $result));
                             $destinataire = $ongoingPack->getInitial()->getEmail();
                             $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                             $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                             $headers .= "Reply-To: " . $email . "\n";
                             $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                             mail($destinataire, $sujet, $message, $headers);
                         } else {
                             if ($ongoingPack->getPackType() == Pack::FOOD_BODY) {
                                 $result = new Result();
                                 $result->setPack($ongoingPack);
                                 $result->setCreatedAt(new \DateTime('now'));
                                 $result->setResultType(Result::TWO_WEEKS_FOOD_BODY);
                                 $em->persist($result);
                                 $em->flush();
                                 $sujet = 'David costa : Bilan à 2 semaines';
                                 $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtTwoWeeks.html.twig', array('result' => $result));
                                 $destinataire = $ongoingPack->getInitial()->getEmail();
                                 $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                                 $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                                 $headers .= "Reply-To: " . $email . "\n";
                                 $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                                 mail($destinataire, $sujet, $message, $headers);
                             }
                         }
                     } else {
                         if ($ongoingPack->getPackType() == Pack::FOOD) {
                             $result = new Result();
                             $result->setPack($ongoingPack);
                             $result->setCreatedAt(new \DateTime('now'));
                             $result->setResultType(Result::FOUR_WEEKS_FOOD);
                             $em->persist($result);
                             $em->flush();
                             $sujet = 'David costa : Bilan à 4 semaines';
                             $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtFourWeeks.html.twig', array('result' => $result));
                             $destinataire = $ongoingPack->getInitial()->getEmail();
                             $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                             $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                             $headers .= "Reply-To: " . $email . "\n";
                             $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                             mail($destinataire, $sujet, $message, $headers);
                         } else {
                             if ($ongoingPack->getPackType() == Pack::FOOD_BODY || $ongoingPack->getPackType() == Pack::THEME) {
                                 $result = new Result();
                                 $result->setPack($ongoingPack);
                                 $result->setCreatedAt(new \DateTime('now'));
                                 $result->setResultType(Result::FOUR_WEEKS_FOOD_BODY);
                                 $em->persist($result);
                                 $em->flush();
                                 $sujet = 'David costa : Bilan à 4 semaines';
                                 $message = $this->getContainer()->get('templating')->render('AppBundle:Emails:mailAtFourWeeks.html.twig', array('result' => $result));
                                 $destinataire = $ongoingPack->getInitial()->getEmail();
                                 $headers = "From: \"" . $email . "\"<" . $email . ">\n";
                                 $headers .= 'Cc: simonsays92120@gmail.com' . "\r\n";
                                 $headers .= "Reply-To: " . $email . "\n";
                                 $headers .= "Content-Type: text/html; charset=\"utf-8\"";
                                 mail($destinataire, $sujet, $message, $headers);
                             }
                         }
                     }
                 }
             }
         }
     }
     $em->flush();
 }
Пример #3
0
 /**
  * @Route("/API/end/")
  */
 public function endQuizAction()
 {
     try {
         $dane = json_decode(file_get_contents('php://input'), true);
         $em = $this->getDoctrine()->getManager();
         $attempt = $em->getRepository("AppBundle:Attempt")->find($dane['attempt']);
         $attempt->setEnd(new \DateTime());
         $result = new Result();
         $result->setAttempt($attempt);
         $result->setPoints($em->getRepository('AppBundle:Attempt')->getPointsByAttempt($attempt));
         $result->setMaxPoints($em->getRepository('AppBundle:Quiz')->getPointsByQuiz($attempt->getSession()->getQuiz()));
         $em->persist($result);
         $em->flush();
     } catch (Exception $e) {
         return new JsonResponse('', 500);
     }
     return new JsonResponse('', 200);
 }
Пример #4
0
 /**
  * @Route("/testid{id}/test/complete", name="testCompete")
  */
 public function completeTestAction($id, Request $request)
 {
     $test = $this->getDoctrine()->getRepository('AppBundle:Test')->find($id);
     $user = $this->getUser();
     $em = $this->getDoctrine()->getManager();
     $user->addTest($test);
     foreach ($request->get('_answerArray') as $answer) {
         $user->addAnswer($this->getDoctrine()->getRepository('AppBundle:Answer')->find($answer));
     }
     $result = new Result();
     $result->setTest($test);
     $result->setUser($user);
     $result->setRating($this->get('calculate')->calculateRating($user, $test));
     if (!$test->getExplanation()->isEmpty()) {
         $explanation = $this->get('calculate')->findExplanation($result->getRating(), $test);
         $result->setExplanation($explanation);
         $explanation->addResult($result);
     }
     $result->setDate(new \DateTime(date('d.m.Y')));
     $test->addResult($result);
     $user->addResult($result);
     $em->persist($test);
     $em->flush();
     return $this->redirectToRoute('userTest', array('id' => $user->getId(), 'testId' => $test->getId()));
 }