src/Controller/ServiceRequestController.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Operator;
  4. use App\Entity\ServiceRequest;
  5. use App\Form\ServiceRequestType;
  6. use App\Repository\ServiceRequestRepository;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\HttpKernel\Profiler\Profiler;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. /**
  14.  * @Route("/service/request")
  15.  */
  16. class ServiceRequestController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/", name="service_request_index", methods={"GET"})
  20.      */
  21.     public function index(ServiceRequestRepository $serviceRequestRepository): Response
  22.     {
  23.         return $this->render(
  24.             'service_request/index.html.twig',
  25.             [
  26.                 'service_requests' => $serviceRequestRepository->findAll(),
  27.             ]
  28.         );
  29.     }
  30.     /**
  31.      * @Route("/new", name="service_request_new", methods={"GET","POST"})
  32.      *
  33.      * @param Request                $request
  34.      * @param EntityManagerInterface $em
  35.      *
  36.      * @return Response
  37.      */
  38.     public function new(Request $requestEntityManagerInterface $em): Response
  39.     {
  40.         $serviceRequest = new ServiceRequest();
  41.         $serviceRequest
  42.             ->setOperator($em->find(Operator::class, 1))
  43.             ->setRequestNumber($em->getRepository(ServiceRequest::class)->generateNewRequestNumber())
  44.             ->setIsNewRequest(true);
  45.         $form $this->createForm(ServiceRequestType::class, $serviceRequest);
  46.         $form->handleRequest($request);
  47.         if (!$serviceRequest->isLocked() && $form->isSubmitted() && $form->isValid()) {
  48.             $em->persist($serviceRequest);
  49.             $em->flush();
  50.             return $this->redirectToRoute('service_request_index');
  51.         }
  52.         return $this->render(
  53.             'service_request/new.html.twig',
  54.             [
  55.                 'service_request' => $serviceRequest,
  56.                 'form' => $form->createView(),
  57.             ]
  58.         );
  59.     }
  60.     /**
  61.      * @Route(
  62.      *      "/{id}.{format}",
  63.      *      name="service_request_show",
  64.      *      methods={"GET"},
  65.      *      requirements={"format": "^(?:print)?$"}, defaults={"format": ""}
  66.      * )
  67.      */
  68.     public function show(ServiceRequest $serviceRequestRequest $request, ?Profiler $profilerstring $format): Response
  69.     {
  70.         if ($format === 'print' && $profiler && !$request->query->getBoolean('enable-profiler')) {
  71.             $profiler->disable();
  72.         }
  73.         return $this->render(
  74.             $format === 'print' 'service_request/show_print.html.twig' 'service_request/show.html.twig',
  75.             [
  76.                 'service_request' => $serviceRequest,
  77.             ]
  78.         );
  79.     }
  80.     /**
  81.      * @Route("/{id}/edit", name="service_request_edit", methods={"GET","POST"})
  82.      */
  83.     public function edit(Request $requestServiceRequest $serviceRequest): Response
  84.     {
  85.         $form $this->createForm(ServiceRequestType::class, $serviceRequest);
  86.         $form->handleRequest($request);
  87.         if (!$serviceRequest->isLocked() && $form->isSubmitted() && $form->isValid()) {
  88.             $this->getDoctrine()->getManager()->flush();
  89.             return $this->redirectToRoute('service_request_index');
  90.         }
  91.         return $this->render(
  92.             'service_request/edit.html.twig',
  93.             [
  94.                 'service_request' => $serviceRequest,
  95.                 'form' => $form->createView(),
  96.             ]
  97.         );
  98.     }
  99.     /**
  100.      * @Route("/{id}", name="service_request_delete", methods={"DELETE"})
  101.      */
  102.     public function delete(Request $requestServiceRequest $serviceRequest): Response
  103.     {
  104.         if ($this->isCsrfTokenValid('delete' $serviceRequest->getId(), $request->request->get('_token'))) {
  105.             $entityManager $this->getDoctrine()->getManager();
  106.             $entityManager->remove($serviceRequest);
  107.             $entityManager->flush();
  108.         }
  109.         return $this->redirectToRoute('service_request_index');
  110.     }
  111.     /**
  112.      * @Route("/lock/{id}", name="service_request_lock")
  113.      * @return Response
  114.      */
  115.     public function lock(ServiceRequest $serviceRequestEntityManagerInterface $entityManager): Response
  116.     {
  117.         $serviceRequest->setLocked(!$serviceRequest->isLocked());
  118.         $entityManager->flush();
  119.         return $this->redirectToRoute('service_request_index');
  120.     }
  121. }