src/Controller/MemberRequestController.php line 62

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\CrmContact;
  4. use App\Form\BannedIpsForm;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use App\Form\Filters\CompanyContactFilter;
  11. use App\Form\Filters\ManageMemberRequestFilter;
  12. use App\Repository\CompanyContactRepository;
  13. use App\Service\ServiceStorage;
  14. #[Route('/request/new-join-requests')]
  15. class MemberRequestController extends AbstractController
  16. {
  17.     #[Route('/'defaults: ['page' => '1'], methods: ['GET'], name'quote_request_index')]
  18.     #[Route('/page/{page<[1-9]\d*>}'methods: ['GET'], name'quote_request_index_paginated')]
  19.     #[Cache(smaxage10)]
  20.     public function quoteindex(Request $request,int $page,EntityManagerInterface $entityManager,CompanyContactRepository $companyContactRepository): Response
  21.     {
  22.         $params $request->query->all();
  23.         $filter =[];
  24.         $filterForm $this->createForm(ManageMemberRequestFilter::class);
  25.         
  26.         if(isset($params['name_email'])) {
  27.             $filterForm['name_email']->setData($params['name_email']);
  28.             $filter['name_email'] = $params['name_email'];
  29.         }
  30.         if(isset($params['phone_number'])) {
  31.             $filterForm['phone_number']->setData($params['phone_number']);
  32.             $filter['phone_number'] = $params['phone_number'];
  33.         }
  34.        
  35.         if(isset($params['solved'])) {
  36.             $filterForm['solved']->setData($params['solved']);
  37.             $filter['solved'] = $params['solved'];
  38.         }
  39.         if(isset($params['createdAt'])) {
  40.             $filterForm['createdAt']->setData($params['createdAt']);
  41.             $filter['createdAt'] = $params['createdAt'];
  42.         }
  43.         $data $companyContactRepository->adminPaginatorFetchAllContact($page$filter);
  44.         return $this->render('quote-request/index.html.twig', [
  45.             'member_request' => false,
  46.             'paginator' => $data,
  47.             'page' => $page,
  48.             'filter' => $filter,
  49.             'form' => $filterForm->createView(),
  50.         ]);
  51.     }
  52.     #[Route('/unsolve/{id}'name'member_request_unsolve'methods: ['POST','GET'])]
  53.     public function unsolve(Request $requestCrmContact $companyContactEntityManagerInterface $entityManager): Response
  54.     {
  55.         if ($this->isCsrfTokenValid('unsolve'.$companyContact->getId(), $request->request->get('_token'))) {
  56.             $type $companyContact->getType();
  57.             $companyContact->setSolved(0);
  58.             $entityManager->persist($companyContact);
  59.             $entityManager->flush();
  60.             if($type == 'member_request'){
  61.                 return $this->redirectToRoute('help_and_support_index', [], Response::HTTP_SEE_OTHER);
  62.             }else if($type == 'contact'){
  63.                 return $this->redirectToRoute('quote_request_index', [], Response::HTTP_SEE_OTHER);
  64.             }
  65.             else{
  66.                 return $this->redirectToRoute('help_and_support_index', [], Response::HTTP_SEE_OTHER);
  67.             }
  68.         }
  69.         return $this->renderForm('member-request/_unsolve_form.html.twig', [
  70.             'companyContact' => $companyContact,
  71.         ]);
  72.     }
  73.     #[Route('/solve/{id}'name'member_request_solve'methods: ['POST','GET'])]
  74.     public function solve(Request $requestCrmContact $companyContactEntityManagerInterface $entityManager): Response
  75.     {
  76.         if ($this->isCsrfTokenValid('solve'.$companyContact->getId(), $request->request->get('_token'))) {
  77.             $type $companyContact->getType();
  78.             $companyContact->setSolved(1);
  79.             $entityManager->persist($companyContact);
  80.             $entityManager->flush();
  81.             if($type == 'member_request'){
  82.                 return $this->redirectToRoute('help_and_support_index', [], Response::HTTP_SEE_OTHER);
  83.             }else if($type == 'contact'){
  84.                 return $this->redirectToRoute('quote_request_index', [], Response::HTTP_SEE_OTHER);
  85.             }
  86.             else{
  87.                 return $this->redirectToRoute('help_and_support_index', [], Response::HTTP_SEE_OTHER);
  88.             }
  89.         }
  90.         return $this->renderForm('member-request/_solve_form.html.twig', [
  91.             'companyContact' => $companyContact,
  92.         ]);
  93.     }
  94.     /* #[Route('/solve/{id}', name: 'member_request_solve', methods: ['POST'])]
  95.     public function solve(Request $request, CrmContact $companyContact, EntityManagerInterface $entityManager): Response
  96.     {
  97.         $content = '';
  98.         if($companyContact->getSolved() == 1){
  99.             $companyContact->setSolved(0);
  100.             $content = '<i class="fa-regular fa-circle-xmark fs-4 link-danger"></i>';
  101.         }else{
  102.             $companyContact->setSolved(1);
  103.             $companyContact->setIsRead(1);
  104.             $content = '<i class="fa-regular fa-circle-check fs-4 link-success"></i>';
  105.         }
  106.         $entityManager->persist($companyContact);
  107.         $entityManager->flush();
  108.         $response = new Response($content);
  109.         $response->headers->set('Content-Type', 'text/html');
  110.         return $response;
  111.     } */
  112.     #[Route('/delete-quote-request/{id}'name:'delete_quote_request'methods:['POST''GET'])]
  113.     public function deleteQuoteRequest(Request $requestCrmContact $companyContactEntityManagerInterface $entityManager): Response{
  114.         if ($this->isCsrfTokenValid('delete'.$companyContact->getId(), $request->request->get('_token'))) {
  115.             if($request->isMethod('POST')){
  116.                 $entityManager->remove($companyContact);
  117.                 $entityManager->flush();
  118.                 $this->addFlash('error''Delete successfully.');
  119.                 if($request->request->get('redirect_page')){
  120.                     return $this->redirectToRoute('quote_request_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  121.                 }
  122.                 return $this->redirectToRoute('quote_request_index', [], Response::HTTP_SEE_OTHER);
  123.             }
  124.         }
  125.         return $this->renderForm('quote-request/_delete_form.html.twig', [
  126.             'crm_contact' => $companyContact,
  127.             'redirect_page' => $request->query->get('redirect_page')
  128.         ]);
  129.     }
  130.     #[Route('/delete-request/{id}'name:'delete_request'methods:['POST''GET'])]
  131.     public function deleteRequest(Request $requestCrmContact $companyContactEntityManagerInterface $entityManager): Response{
  132.         if ($this->isCsrfTokenValid('delete'.$companyContact->getId(), $request->request->get('_token'))) {
  133.             if($request->isMethod('POST')){
  134.                 $entityManager->remove($companyContact);
  135.                 $entityManager->flush();
  136.                 $this->addFlash('error''Delete successfully.');
  137.                 if($request->request->get('redirect_page')){
  138.                     return $this->redirectToRoute('help_and_support_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  139.                 }
  140.                 return $this->redirectToRoute('help_and_support_index', [], Response::HTTP_SEE_OTHER);
  141.             }
  142.         }
  143.         return $this->renderForm('member-request/_delete_form.html.twig', [
  144.             'crm_contact' => $companyContact,
  145.             'redirect_page' => $request->query->get('redirect_page')
  146.         ]);
  147.     }
  148.     #[Route('/image-download-storage/{storageId}'name:'image_download_storage'methods:['POST''GET'])]
  149.     public function imageDownloadFromStorage(Request $request$storageIdEntityManagerInterface $entityManager,ServiceStorage $serviceStorage): Response{
  150.         $imgObj $entityManager->getRepository(\App\Entity\CrmStorages::class)->findOneBy(array('storageId' => $storageId));
  151.         
  152.         if(!$imgObj){
  153.             return $this->redirectToRoute('quote_request_index', [], Response::HTTP_SEE_OTHER);
  154.         }else{
  155.             //$filepath = $serviceStorage->getFileUrl($storageId);
  156.             $filepath $serviceStorage->getFileUrl($storageId);
  157.             $filename $imgObj->getName();
  158.             $response = new Response();
  159.             $response->headers->set('Content-type''application/force-download');
  160.             $response->headers->set('Content-Disposition'sprintf('attachment; filename="%s"',$filename));
  161.             $response->setContent(file_get_contents($filepath));
  162.             $response->setStatusCode(200);
  163.             $response->headers->set('Content-Transfer-Encoding''binary');
  164.             $response->headers->set('Pragma''public');
  165.             $response->headers->set('Expires''0');
  166.             $response->headers->set('Cache-Control''must-revalidate');
  167.             return $response;
  168.         }
  169.     }
  170.     #[Route('/view-request/{id}'name:'view_request'methods:['POST''GET'])]
  171.     public function viewRequest(Request $requestCrmContact $companyContactEntityManagerInterface $entityManager): Response{
  172.         $companyContact->setIsRead(1);
  173.         $entityManager->persist($companyContact);
  174.         $entityManager->flush();
  175.         
  176.         return $this->renderForm('member-request/view.html.twig', [
  177.             'crm_contact' => $companyContact,
  178.             'redirect_page' => $request->query->get('redirect_page')
  179.         ]);
  180.     }
  181. }