src/Controller/SinistreController.php line 129

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Sinistre;
  4. use App\Form\SinistreType;
  5. use App\Entity\SinistreRepository;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route
  11. use App\Service\FileUploader;
  12. use DateTimeImmutable;
  13. #[Route('/sinistre')] 
  14. class SinistreController extends AbstractController
  15. {
  16.     #[Route('/liste_sinistre'name'app_sinistre_index'methods: ['GET'])]
  17.     public function index(EntityManagerInterface $entityManager): Response
  18.     {
  19.         $sinistres $entityManager
  20.             ->getRepository(Sinistre::class)
  21.             ->findAll(); 
  22.         return $this->render('sinistre/index.html.twig', [
  23.             'sinistres' => $sinistres,
  24.         ]);
  25.     }
  26.     #[Route('/new_sinistre'name'app_sinistre_new'methods: ['GET''POST'])]
  27.     public function new(Request $requestEntityManagerInterface $entityManagerFileUploader $uploader): Response
  28.     {
  29.         $sinistre = new Sinistre(); 
  30.         $form $this->createForm(SinistreType::class, $sinistre);
  31.         $form->handleRequest($request);
  32.         if ($form->isSubmitted() && $form->isValid()) {
  33.             $date $request->request->get("date");
  34.             $dateAccident= (\DateTimeImmutable::createFromFormat('Y-m-d H:i:s'$date '00:00:00'));
  35.             $assurance $form['photo_assurance']->getData();
  36.             $permis $form['permis_conduire']->getData();
  37.             $carteGrise $form['carte_grise']->getData();
  38.             $proces_verbal $form['proces_verbal']->getData();
  39.             $sinistre->setDateAccident($dateAccident)
  40.                 ->setCreatedAt(new \DateTimeImmutable('now'))
  41.                 ->setStatut(0); 
  42.             $entityManager->persist($sinistre);
  43.             $entityManager->flush();        
  44.             $mat "Document";
  45.             $array = array("png""PNG","jpg","JPG","jpeg","JPEG");
  46.             if (empty($assurance) || empty($permis) || empty($carteGrise) || empty($proces_verbal)) 
  47.             {
  48.             $filename="";
  49.             }   else
  50.             {
  51.                 $idSinistre $sinistre->getId();
  52.                 $filename $assurance->getClientOriginalName();
  53.                 $filename explode('.' $filename);
  54.                 $filename $mat.'_assurance'.$idSinistre.'.'.$filename[1];
  55.                 $extension=substr(strrchr($filename,'.'),1);
  56.                 $filename1 $permis->getClientOriginalName();
  57.                 $filename1 explode('.' $filename1);
  58.                 $filename1 $mat.'_permis'.$idSinistre.'.'.$filename1[1];
  59.                 $extension=substr(strrchr($filename1,'.'),1);
  60.                 $filename2 $permis->getClientOriginalName();
  61.                 $filename2 explode('.' $filename2);
  62.                 $filename2 $mat.'carteGrise'.$idSinistre.'.'.$filename2[1];
  63.                 $extension=substr(strrchr($filename2,'.'),1);
  64.                 $filename3 $permis->getClientOriginalName();
  65.                 $filename3 explode('.' $filename3);
  66.                 $filename3 $mat.'proces_verbal'.$idSinistre.'.'.$filename3[1];
  67.                 $extension=substr(strrchr($filename3,'.'),1);
  68.                 if (in_array($extension$arraytrue))
  69.                     {
  70.                     // $uploader->upload($upload7, $document, $filename);
  71.                     $uploader->upload("../public/images/assurances"$assurance$filename);
  72.                     $uploader->upload("../public/images/permis"$permis$filename1);
  73.                     $uploader->upload("../public/images/carteGrises"$carteGrise$filename2);
  74.                     $uploader->upload("../public/images/proces_verbal"$proces_verbal$filename3);
  75.                     // $protocol = 'http';  
  76.                     $protocol 'https'
  77.                     $HTTP_HOST $_SERVER['HTTP_HOST'];
  78.                     //  $REQUEST_URI = $_SERVER['REQUEST_URI'];
  79.                         $lienDocument $protocol'://'.$HTTP_HOST.'/'.'images/assurances/'.$filename;
  80.                         $lienDocument1 $protocol'://'.$HTTP_HOST.'/'.'images/permis/'.$filename1;
  81.                         $lienDocument2 $protocol'://'.$HTTP_HOST.'/'.'images/carteGrises/'.$filename2;
  82.                         $lienDocument3 $protocol'://'.$HTTP_HOST.'/'.'images/proces_verbal/'.$filename3;
  83.                     }else{ 
  84.                 
  85.                     $this->addFlash('warning'"Ce format de fichier pour l'image n'est pas accepté par le système!!");
  86.                     return $this->redirectToRoute('app_sinistre_new', [], Response::HTTP_SEE_OTHER);
  87.             
  88.                     }
  89.             }
  90.             $sinistre->setPhotoAssurance($lienDocument)
  91.                     ->setPermisConduire($lienDocument1)
  92.                     ->setProcesVerbal($lienDocument3)
  93.                     ->setCarteGrise($lienDocument2); 
  94.             $entityManager->persist($sinistre);
  95.             $entityManager->flush();
  96.             $this->addFlash('success''Votre déclaration sinistre a été envoyer avec succès.');
  97.             return $this->redirectToRoute('app_home', [], Response::HTTP_SEE_OTHER);
  98.         }
  99.         return $this->renderForm('sinistre/new.html.twig', [
  100.             'sinistre' => $sinistre,
  101.             'form' => $form,
  102.         ]);
  103.     }
  104. }