/** * @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(); }
/** * @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); }
/** * @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())); }