src/Controller/RentalApplicationController.php line 34

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use DateTimeImmutable;
  4. use App\Entity\RentalApplication;
  5. use App\Form\RentalApplicationType;
  6. use App\Repository\PropertiesRepository;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use App\Repository\RentalApplicationRepository;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\HttpFoundation\File\UploadedFile;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. /**
  14.  * @Route("/rental-interest")
  15.  */
  16. class RentalApplicationController extends AbstractController
  17. {
  18.     /**
  19.      * @Route("/", name="app_rental_application_index", methods={"GET"})
  20.      */
  21.     public function index(RentalApplicationRepository $rentalApplicationRepository): Response
  22.     {
  23.         return $this->render('rental_application/index.html.twig', [
  24.             'rental_applications' => $rentalApplicationRepository->findAll(),
  25.         ]);
  26.     }
  27.     /**
  28.      * @Route("/asked/{id}", name="app_rental_application_new", methods={"GET", "POST"})
  29.      */
  30.     public function new(Request $requestRentalApplicationRepository $rentalApplicationRepositoryPropertiesRepository $propertiesRepository$id): Response
  31.     {
  32.         $rentalApplication = new RentalApplication();
  33.         $form $this->createForm(RentalApplicationType::class, $rentalApplication);
  34.         $form->handleRequest($request);
  35.         $property $propertiesRepository->findOneBy(["id" => $id]);
  36.         if ($rentalApplicationRepository->findOneBy(["user" => $this->getUser(), "property" => $property]) == true) {
  37.             $this->addFlash('warning''Votre dossier est en attente de traitement, nous vous tiendrons informé de son avancé.');
  38.             return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
  39.         }
  40.         if ($form->isSubmitted() && $form->isValid()) {
  41.                         $rentalApplication->setUser($this->getUser());
  42.             $rentalApplication->setProperty($property);
  43.             $rentalApplicationRepository->add($rentalApplicationtrue);
  44.             $this->addFlash('success''Votre dossier à bien été prise en compte, nous reviendrons vers vous au plus vite!');
  45.             return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
  46.         }
  47.         return $this->renderForm('rental_application/new.html.twig', [
  48.             'rental_application' => $rentalApplication,
  49.             'form' => $form,
  50.         ]);
  51.     }
  52.     /**
  53.      * @Route("/{id}", name="app_rental_application_show", methods={"GET"})
  54.      */
  55.     public function show(RentalApplication $rentalApplication): Response
  56.     {
  57.         return $this->render('rental_application/show.html.twig', [
  58.             'rental_application' => $rentalApplication,
  59.         ]);
  60.     }
  61.     /**
  62.      * @Route("/{id}/edit", name="app_rental_application_edit", methods={"GET", "POST"})
  63.      */
  64.     public function edit(Request $requestRentalApplication $rentalApplicationRentalApplicationRepository $rentalApplicationRepository): Response
  65.     {
  66.         $form $this->createForm(RentalApplicationType::class, $rentalApplication);
  67.         $form->handleRequest($request);
  68.         if ($form->isSubmitted() && $form->isValid()) {
  69.             $rentalApplicationRepository->add($rentalApplicationtrue);
  70.             return $this->redirectToRoute('app_rental_application_index', [], Response::HTTP_SEE_OTHER);
  71.         }
  72.         return $this->renderForm('rental_application/edit.html.twig', [
  73.             'rental_application' => $rentalApplication,
  74.             'form' => $form,
  75.         ]);
  76.     }
  77.     /**
  78.      * @Route("/{id}", name="app_rental_application_delete", methods={"POST"})
  79.      */
  80.     public function delete(Request $requestRentalApplication $rentalApplicationRentalApplicationRepository $rentalApplicationRepository): Response
  81.     {
  82.         if ($this->isCsrfTokenValid('delete' $rentalApplication->getId(), $request->request->get('_token'))) {
  83.             $rentalApplicationRepository->remove($rentalApplicationtrue);
  84.         }
  85.         return $this->redirectToRoute('app_rental_application_index', [], Response::HTTP_SEE_OTHER);
  86.     }
  87. }