src/Controller/Website/EnrollmentController.php line 34

Open in your IDE?
  1. <?php
  2. namespace EADPlataforma\Controller\Website;
  3. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use EADPlataforma\Entity\Enrollment;
  7. use EADPlataforma\Entity\ExamUser;
  8. use EADPlataforma\Entity\ProductOffer;
  9. use EADPlataforma\Enum\EnrollmentEnum;
  10. use EADPlataforma\Enum\ProductEnum;
  11. /**
  12.  * @Route(
  13.  *      schemes         = {"http|https"}
  14.  * )
  15.  * @Cache(
  16.  *      maxage          = "0",
  17.  *      smaxage         = "0",
  18.  *      expires         = "now",
  19.  *      public          = false
  20.  * )
  21.  */
  22. class EnrollmentController extends AbstractWebsiteController {
  23.     /**
  24.      * @Route(
  25.      *      path          = "/enrollments/",
  26.      *      name          = "enrollentList",
  27.      *      methods       = {"GET"}
  28.      * )
  29.      */
  30.     public function getEnrollents(Request $request) {
  31.        
  32.         $this->checkUserSession($request);
  33.         $enrollmentRepository $this->em->getRepository(Enrollment::class);
  34.         $enrollmentTotal $enrollmentRepository->countUserEnrollment($this->user->getId(), true);
  35.         $this->data['enrollmentTotal'] = $enrollmentTotal;
  36.         
  37.         return $this->renderEAD('user/enrollment/enrollment-list.html.twig');
  38.     }
  39.     /**
  40.      * @Route(
  41.      *      path          = "/enrollment/{id}",
  42.      *      name          = "enrollmentDetail",
  43.      *      methods       = {"GET"}
  44.      * )
  45.      */
  46.     public function getEnrollmentDetail(Request $request) {
  47.        
  48.         $this->checkUserSession($request);
  49.         $enrollmentId $request->get('id');
  50.         $enrollmentRepository $this->em->getRepository(Enrollment::class);
  51.         $enrollment $enrollmentRepository->findOneBy([
  52.             "id" => $enrollmentId,
  53.             "user" => $this->user->getId(),
  54.             "deleted" => EnrollmentEnum::ITEM_NO_DELETED
  55.         ]);
  56.         
  57.         if (!$enrollment) {
  58.             return $this->redirectToRoute('notFound');
  59.         }
  60.         if(empty($enrollment->getDateStart()) || empty($enrollment->getLessonTimeWatch())){
  61.             $enrollment $enrollmentRepository->updateDataAccessLog($enrollment);
  62.         }
  63.         $user $enrollment->getUser();
  64.         $course $enrollment->getCourse();
  65.         if ($user->getId() != $this->user->getId()) {
  66.             return $this->redirectToRoute('notFound');
  67.         }
  68.         $history $enrollmentRepository->getHistoryByEnrollment($enrollment);
  69.         $examUserRepository $this->em->getRepository(ExamUser::class);
  70.         $userExams $examUserRepository->getStudentReportCard($user->getId(), $course->getId());
  71.         $finalAvarage $examUserRepository->getFinalAvarege($user->getId(), $course->getId());
  72.         $productOfferRepository $this->em->getRepository(ProductOffer::class);
  73.         $productOffersCertificate $productOfferRepository->getProductOffersByCourse(
  74.             $course
  75.             ProductEnum::CERTIFICATE
  76.         );
  77.         $numberUtil $this->generalService->getUtil('NumberUtil');
  78.         foreach ($productOffersCertificate as $key => $productOffer) {
  79.             $productOffer->parcelInfo $numberUtil->getNumberMaxParcel(
  80.                 $productOffer->getPriceReal(true),
  81.                 $productOfferRepository->getInstallmentNumberMax($productOffer),
  82.                 $productOfferRepository->getFreeInstallment($productOffer),
  83.                 $productOffer->getSaleOption(),
  84.                 $productOffer->getTypeCheckout(),
  85.                 false
  86.             );
  87.             $productOfferCertificate[$key] = $productOffer;
  88.         }
  89.         $this->data['enrollment'] = $enrollment;
  90.         $this->data['history'] = $history;
  91.         $this->data['userExams'] = $userExams;
  92.         $this->data['finalAvarage'] = $finalAvarage;
  93.         $this->data['productOffersCertificate'] = $productOffersCertificate;
  94.         
  95.         return $this->renderEAD('user/enrollment/enrollment-detail.html.twig');
  96.     }
  97. }