src/Controller/Website/ResumeController.php line 141

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\Course;
  7. use EADPlataforma\Entity\Enrollment;
  8. use EADPlataforma\Entity\Whishlist;
  9. use EADPlataforma\Entity\CourseCertificate;
  10. use EADPlataforma\Entity\Category;
  11. use EADPlataforma\Entity\ProductOffer;
  12. use EADPlataforma\Entity\ProductCoupon;
  13. use EADPlataforma\Enum\ErrorEnum;
  14. use EADPlataforma\Enum\ProductEnum;
  15. use EADPlataforma\Enum\CategoryEnum;
  16. use EADPlataforma\Enum\EnrollmentEnum;
  17. use EADPlataforma\Enum\CourseCertificateEnum;
  18. use EADPlataforma\Enum\TagsMarketingEnum;
  19. /**
  20.  * @Route(
  21.  *      schemes         = {"http|https"}
  22.  * )
  23.  * @Cache(
  24.  *      maxage          = "0",
  25.  *      smaxage         = "0",
  26.  *      expires         = "now",
  27.  *      public          = false
  28.  * )
  29.  */
  30. class ResumeController extends AbstractWebsiteController {
  31.     /**
  32.      * @Route(
  33.      *      path          = "/resume/",
  34.      *      name          = "resume",
  35.      *      methods       = {"GET"}
  36.      * )
  37.      */
  38.     public function myResumePage(Request $request){
  39.         $this->checkUserSession($request);
  40.         
  41.         $categoryRepository $this->em->getRepository(Category::class);
  42.         $categoriesEnrollment $categoryRepository->getCategoriesInEnrollments();
  43.         $this->data['categoriesEnrollment'] = $categoriesEnrollment;
  44.         $productCategoriesWishlist $categoryRepository->getCategoriesInWishlist();
  45.         $this->data['productCategoriesWishlist'] = $productCategoriesWishlist;
  46.         $this->data['couponTotal'] = 0;
  47.         if($this->configuration->isModuleActive("product_coupon_module")){
  48.             $productCouponRepository $this->em->getRepository(ProductCoupon::class);
  49.             $this->data['couponTotal'] = $productCouponRepository->countPublicProductCoupons();
  50.         }
  51.         $courseRepository $this->em->getRepository(Course::class);
  52.         $this->data['coursesFree'] = $courseRepository->getCoursesFree(true);
  53.         $this->data['generateCertificate'] = CourseCertificateEnum::YES;
  54.         return $this->renderEAD('user/resume/user-resume.html.twig');
  55.     }
  56.     /**
  57.      * @Route(
  58.      *      path          = "/resume/courses",
  59.      *      name          = "resumeCourse",
  60.      *      methods       = {"GET"}
  61.      * )
  62.      */
  63.     public function getResumeCourses(Request $request) {
  64.         $this->checkUserSession($request);
  65.         $offset = (int)$request->get('offset');
  66.         $searchText = (string)$request->get('searchText');
  67.         $onlyStarted = (bool)$request->get('onlyStarted');
  68.         $notStarted = (bool)$request->get('notStarted');
  69.         $completed = (bool)$request->get('completed');
  70.         $all = (bool)$request->get('all');
  71.         $categories $request->get('categories');
  72.         $statusFilter = (!empty($request->get('statusFilter')) ? $request->get('statusFilter') : []);
  73.         if(is_string($statusFilter)){
  74.             $statusFilter explode(','$statusFilter);
  75.         }
  76.         $enrollmentRepository $this->em->getRepository(Enrollment::class);
  77.         $wrap = ($offset == 0);
  78.         $status null;
  79.         if(!$all){
  80.             $status EnrollmentEnum::STATUS_ACTIVE;
  81.         }
  82.         $enrollments $enrollmentRepository->getResumeEnrollment(
  83.             $this->user->getId(),
  84.             $statusFilter,
  85.             $status,
  86.             $searchText,
  87.             $categories,
  88.             $offset,
  89.             10
  90.         );
  91.         $this->data['coursesFree'] = [];
  92.         if(
  93.             $wrap && 
  94.             (empty($statusFilter) || in_array(EnrollmentEnum::SITUATION_NOT_STARTED$statusFilter))
  95.         ){
  96.             $courseRepository $this->em->getRepository(Course::class);
  97.             $this->data['coursesFree'] = $courseRepository->getCoursesFree(
  98.                 true
  99.                 $searchText
  100.                 $categories
  101.             );
  102.         }
  103.         $this->data['enrollments'] = $enrollments;
  104.         $this->data['url'] = $this->generalService->generateUrl('resumeCourse');
  105.         $this->data['rows'] = count($enrollments);
  106.         $this->data['offset'] = $offset 10;
  107.         $this->data['wrap'] = $wrap;
  108.         
  109.         $this->data['total'] = $enrollmentRepository->countResumeEnrollment(
  110.             $this->user->getId(),
  111.             $statusFilter,
  112.             $status,
  113.             $searchText,
  114.             $categories
  115.         ) + count($this->data['coursesFree']);
  116.         $this->data['showBtn'] = ($this->data['offset'] < $this->data['total']);
  117.         return $this->renderEAD('user/resume/courses.html.twig');
  118.     }
  119.     /**
  120.      * @Route(
  121.      *      path          = "/resume/certificates",
  122.      *      name          = "resumeCertificate",
  123.      *      methods       = {"GET"}
  124.      * )
  125.      */
  126.     public function getResumeCertificates(Request $request) {
  127.       
  128.         $this->checkUserSession($request);
  129.         $offset $request->get('offset');
  130.         $searchText $request->get('searchText');
  131.         $categories $request->get('categories');
  132.       
  133.         $certificateRepository $this->em->getRepository(CourseCertificate::class);
  134.         $certificates $certificateRepository->getResumeCourseCertificate(
  135.             $this->user->getId(), 
  136.             $offset,
  137.             $searchText,
  138.             $categories
  139.         );
  140.         $wrap = ($offset == 0)? true false;
  141.         $this->data['enrollments'] = null;        
  142.         $this->data['certificates'] = $certificates;
  143.         $this->data['url'] = $this->generalService->generateUrl('resumeCertificate');
  144.         $this->data['rows'] = count($certificates);        
  145.         $this->data['offset'] = $offset 10;
  146.         $this->data['wrap'] = $wrap;
  147.         $this->data['total'] = $certificateRepository->getCountResumeCourseCertificate(
  148.             $this->user->getId(),
  149.             $searchText,
  150.             $categories
  151.         );
  152.        
  153.         $this->data['showBtn'] = ($this->data['offset'] < $this->data['total']);
  154.         
  155.         return $this->renderEAD('user/resume/certificates.html.twig');
  156.     }
  157.     /**
  158.      * @Route(
  159.      *      path          = "/resume/whishlist",
  160.      *      name          = "resumeWhishlist",
  161.      *      methods       = {"GET"}
  162.      * )
  163.      */
  164.     public function getResumeWhishes(Request $request) {
  165.         
  166.         $this->checkUserSession($request);
  167.         
  168.         $offset $request->get('offset');
  169.         $searchText $request->get('searchText');
  170.         $categories $request->get('categories');
  171.         $categories explode(','$categories);
  172.         $productOfferRepository $this->em->getRepository(ProductOffer::class);
  173.         $whishlist $productOfferRepository->getResumeWhishList(
  174.             $this->user->getId(),
  175.             $offset,
  176.             $searchText,
  177.             $categories
  178.         );
  179.         $wrap = ($offset == 0) ? true false;
  180.         $this->data['enrollments'] = null;
  181.         $this->data['certificates'] = null;
  182.         $this->data['whishlist'] = $whishlist;
  183.         $this->data['url'] = $this->generalService->generateUrl('resumeWhishlist');
  184.         $this->data['rows'] = count($whishlist);
  185.         $this->data['offset'] = $offset 10;
  186.         $this->data['wrap'] = $wrap;
  187.         $this->data['total'] = $productOfferRepository->getCountResumeWhishList(
  188.             $this->user->getId(),
  189.             $offset,
  190.             $searchText,
  191.             $categories
  192.         );
  193.       
  194.         $this->data['showBtn'] = ($this->data['offset'] < $this->data['total']);
  195.     
  196.         return $this->renderEAD('user/resume/whishlist.html.twig');
  197.     }
  198. }