src/Controller/Front/DefaultController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Entity\Compteur;
  4. use App\Entity\Contact;
  5. use App\Entity\Dossier;
  6. use App\Entity\Franchise;
  7. use App\Form\ContactType;
  8. use App\Form\FranchiseType;
  9. use App\Repository\CategorieRepository;
  10. use App\Repository\DossierRepository;
  11. use App\Repository\FranchiseRepository;
  12. use Symfony\Bridge\Twig\Mime\TemplatedEmail;
  13. use Doctrine\ORM\EntityManagerInterface;
  14. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  15. use Symfony\Component\HttpFoundation\Request;
  16. use Symfony\Component\HttpFoundation\Response;
  17. use Symfony\Component\Mailer\MailerInterface;
  18. use Symfony\Component\Routing\Annotation\Route;
  19. use Symfony\Component\Mime\Address;
  20. class DefaultController extends AbstractController
  21. {
  22.     #[Route('/'name'front_default')]
  23.     public function index(): Response
  24.     {
  25.         return $this->render('front/default/index.html.twig', [
  26.             'controller_name' => 'DefaultController',
  27.         ]);
  28.     }
  29.     #[Route('/entretien-mecanique-reparation'name'entretien_meca_repa')]
  30.     public function entretien(): Response
  31.     {
  32.         return $this->render('front/default/entretien-meca-repa.html.twig', [
  33.             'controller_name' => 'DefaultController',
  34.         ]);
  35.     }
  36.     #[Route('/carosserie-peinture'name'carosserie_peinture')]
  37.     public function carosserie(): Response
  38.     {
  39.         return $this->render('front/default/carrosserie-peinture.html.twig', [
  40.             'controller_name' => 'DefaultController',
  41.         ]);
  42.     }
  43.     #[Route('/voiture-occasion'name'voiture_occasion')]
  44.     public function occasion(): Response
  45.     {
  46.         return $this->render('front/default/voiture-occasion.html.twig', [
  47.             'controller_name' => 'DefaultController',
  48.         ]);
  49.     }
  50.     #[Route('/contact'name'contact'methods: ['GET''POST'])]
  51.     public function contact(Request $requestEntityManagerInterface $entityManager,MailerInterface $mailer): Response
  52.     {
  53.         $contact = new Contact();
  54.         $form $this->createForm(ContactType::class, $contact);
  55.         $form->handleRequest($request);
  56.         if ($form->isSubmitted() && $form->isValid()) {
  57.             $adressemail "contact@vehicule-sur-mesure.com";
  58.             switch ($form->get('garage')->getData()){
  59.                 case "VSM Gennevilliers":
  60.                     $adressemail "mecanique@vehicule-sur-mesure.com";
  61.                     break;
  62.                 case "VSM Chelles":
  63.                     $adressemail "chelles@vehicule-sur-mesure.com";
  64.                     break;
  65.                 case "VSM Sartrouville":
  66.                     $adressemail "sartrouville@vehicule-sur-mesure.com";
  67.                     break;
  68.                 case "VSM Issy Les Moulineaux":
  69.                     $adressemail "issy@vehicule-sur-mesure.com";
  70.                     break;
  71.                 case "VSM Le Blanc Mesnil":
  72.                     $adressemail "leblancmesnil@vehicule-sur-mesure.com";
  73.                     break;
  74.                 case "VSM Champigny":
  75.                     $adressemail "champigny@vehicule-sur-mesure.com";
  76.                     break;
  77.             }
  78.             $email = (new TemplatedEmail())
  79.                 ->from(new Address('contact@vehiculesurmesure.fr','Alert contact client'))
  80.                 ->to($adressemail)
  81.                 ->subject('Contact Client Site')
  82.                 ->htmlTemplate('template/contact.html.twig')
  83.                 ->context([
  84.                     'nom' => $form->get('nom')->getData(),
  85.                     'tel' => $form->get('telephone')->getData(),
  86.                     'message'=> $form->get('message')->getData(),
  87.                     'mail'=> $form->get('mail')->getData(),
  88.                 ]);
  89.             $mailer->send($email);
  90.             $contact->setDateCreate(new \DateTime());
  91.             $entityManager->persist($contact);
  92.             $entityManager->flush();
  93.             return $this->redirectToRoute('message_sucess', [], Response::HTTP_SEE_OTHER);
  94.         }
  95.         return $this->render('front/default/contact.html.twig', [
  96.             'contact' => $contact,
  97.             'form' => $form->createView(),
  98.             'controller_name' => 'DefaultController',
  99.         ]);
  100.     }
  101.     #[Route('/message-sucess'name'message_sucess'methods: ['GET''POST'])]
  102.     public function messagesucess(): Response
  103.     {
  104.         return $this->render('front/default/message-sucess.html.twig',[
  105.             'controller_name' => 'DefaultController',
  106.         ]);
  107.     }
  108.     #[Route('/mentions-legales'name'mentions'methods: ['GET'])]
  109.     public function mentionslegales(): Response
  110.     {
  111.         return $this->render('front/default/mentionslegales.html.twig');
  112.     }
  113.     #[Route('/protection-donnee'name'protection_donnee'methods: ['GET'])]
  114.     public function protectiondonnee(): Response
  115.     {
  116.         return $this->render('front/default/protection-donnee.html.twig');
  117.     }
  118.     #[Route('/rdv'name'rdv'methods: ['GET'])]
  119.     public function rdv(EntityManagerInterface $entityManager): Response
  120.     {
  121.         if(isset($_GET['prospect']))
  122.         {
  123.             if($_GET['prospect'] == "sms")
  124.             {
  125.                 $compteur = new Compteur();
  126.                 /*$compteur->setIp($_SERVER['REMOTE_ADDR']);*/
  127.                 $compteur->setName($_GET['prospect']);
  128.                 $compteur->setCreatAt(new \DateTimeImmutable('now'));
  129.                 $entityManager->persist($compteur);
  130.                 $entityManager->flush();
  131.                 return $this->render('front/default/rdvsms.html.twig');
  132.             }
  133.             if($_GET['prospect'] == "camion")
  134.             {
  135.                 $compteur = new Compteur();
  136.                 $compteur->setName($_GET['prospect']);
  137.                 $compteur->setCreatAt(new \DateTimeImmutable('now'));
  138.                 $entityManager->persist($compteur);
  139.                 $entityManager->flush();
  140.             }
  141.             if($_GET['prospect'] == "flyer")
  142.             {
  143.                 $compteur = new Compteur();
  144.                 $compteur->setName($_GET['prospect']);
  145.                 $compteur->setCreatAt(new \DateTimeImmutable('now'));
  146.                 $entityManager->persist($compteur);
  147.                 $entityManager->flush();
  148.             }
  149.         }
  150.         return $this->render('front/default/rdv.html.twig');
  151.     }
  152.     #[Route('/rdv2'name'rdv2'methods: ['GET'])]
  153.     public function rdv2camion(): Response
  154.     {
  155.         return $this->redirectToRoute('rdv',['prospect'=>'camion']);
  156.     }
  157.     #[Route('/rdv3'name'rdv3'methods: ['GET'])]
  158.     public function rdv3flyer(): Response
  159.     {
  160.         return $this->redirectToRoute('rdv',['prospect'=>'flyer']);
  161.     }
  162.     #[Route('/devenir-partenaire'name'devenir_partenaire'methods: ['GET'])]
  163.     public function devenir_partenaire(): Response
  164.     {
  165.         return $this->render('front/default/devenir-partenaire3.html.twig');
  166.     }
  167.     #[Route('/dossier/suivi/{immat}'name'dossier_suivi'methods: ['GET'])]
  168.     public function show(DossierRepository $dossierRepository,$immat,CategorieRepository $categorieRepository): Response
  169.     {
  170.         $dossier $dossierRepository->findOneBy(['immatriculation' =>strtoupper($immat)]);
  171.         if (empty($dossier)){
  172.             throw $this->createNotFoundException('The Page does not exist');
  173.         }
  174.         return $this->render('front/suivi-dossier/suivi.html.twig', [
  175.             'dossier' => $dossier,
  176.             'categories' => $categorieRepository->findBy([],["priority" => "ASC"]),
  177.         ]);
  178.     }
  179.     #[Route('/formulaire-franchise/new'name'app_front_franchise_new'methods: ['GET''POST'])]
  180.     public function NewFormFranchise(Request $requestFranchiseRepository $franchiseRepositoryMailerInterface $mailer): Response
  181.     {
  182.         $franchise = new Franchise();
  183.         $form $this->createForm(FranchiseType::class, $franchise);
  184.         $form->handleRequest($request);
  185.         if ($form->isSubmitted() && $form->isValid()) {
  186.             $franchiseRepository->add($franchisetrue);
  187.             $email = (new TemplatedEmail())
  188.                 ->from(new Address('contact@vehiculesurmesure.fr','Candidature Franchise VSM'))
  189.                 ->to('contact@vehicule-sur-mesure.com')
  190.                 ->cc('extranet+vehiculesurmesure.appreq.562e270872d507e35bbb3187@email.franchiseoncloud.fr')
  191.                 ->subject('Candidature franchise')
  192.                 ->htmlTemplate('template/email/demande-candidature.html.twig')
  193.                 ->context([
  194.                     'nom' => $form->get('nom')->getData(),
  195.                     'telephone' => $form->get('telephone')->getData(),
  196.                     'message'=> $form->get('message')->getData(),
  197.                     'prenom'=> $form->get('prenom')->getData(),
  198.                     'adresse'=> $form->get('adresse')->getData(),
  199.                     'cp'=> $form->get('cp')->getData(),
  200.                     'ville'=> $form->get('ville')->getData(),
  201.                     'departement'=> $form->get('departement')->getData(),
  202.                     'pays'=> $form->get('pays')->getData(),
  203.                     'mail'=> $form->get('mail')->getData(),
  204.                     'secteur'=> $form->get('secteur')->getData(),
  205.                     'apport'=> $form->get('apport')->getData(),
  206.                     'apportcomplement'=> $form->get('mail')->getData(),
  207.                     'local'=> $form->get('local')->getData(),
  208.                     'echeance'=> $form->get('echeance')->getData(),
  209.                 ]);
  210.             $mailer->send($email);
  211.             $this->addFlash('success','Votre demande a bien été envoyé, le délai de réponse est sous 24H.');
  212.             return $this->redirectToRoute('app_front_franchise_new', [], Response::HTTP_SEE_OTHER);
  213.         }
  214.         return $this->renderForm('front/form-franchise/new.html.twig', [
  215.             'franchise' => $franchise,
  216.             'form' => $form,
  217.         ]);
  218.     }
  219. }