src/Controller/Backend/CasController.php line 35

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Backend;
  3. use App\Entity\Cas;
  4. use App\Entity\QuestionReponse;
  5. use App\Form\Cas\AjoutCasType;
  6. use App\Form\Cas\ModifCasType;
  7. use App\Form\QuestionReponse\AjoutQRType;
  8. use App\Repository\CasRepository;
  9. use App\Repository\QuestionReponseRepository;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Knp\Component\Pager\PaginatorInterface;
  12. use phpDocumentor\Reflection\Types\Null_;
  13. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  18. use Symfony\Component\HttpFoundation\File\File;
  19. class CasController extends AbstractController
  20. {
  21.     /**
  22.      * @var CasRepository
  23.      */
  24.     private $repository;
  25.     public function __construct(CasRepository $repository){
  26.         $this->repository=$repository;
  27.     }
  28.     /**
  29.      * @Route("/EspacePatient", name="cas_index")
  30.      */
  31.     public function findAll(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,PaginatorInterface $paginator1,QuestionReponseRepository $questionreponses)
  32.     {
  33.         $touscas=$this->repository->findAll();
  34.         $questionReponsesGeneraux= $paginator1->paginate($questionreponses->findBy(['cas'=>Null],['date_question'=>'DESC']),$request->query->getInt('page', 1),2);
  35.         $touscas = $paginator->paginate($touscas,$request->query->getInt('page', 1),2);
  36.             $question= new QuestionReponse();
  37.             $form= $this->createForm(AjoutQRType::class,$question);
  38.             $form->handleRequest($request);
  39.             if($form->isSubmitted() && $form->isValid()){
  40.                 $date = new \DateTime();
  41.                 $question->setDateQuestion($date);
  42.                 $image =$form->get('image')->getData();
  43.                 if($image != null){
  44.                     $fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
  45.                     try {
  46.                         $image->move(
  47.                             $this->getParameter('images_directory'),
  48.                             $fileNameimage
  49.                         );
  50.     
  51.                     } catch (FileException $e) {
  52.                         // ... handle exception if something happens during file upload
  53.                     }
  54.                     $question->setImage($fileNameimage);
  55.                 }
  56.                 if($request->getLocale()=='fr'){
  57.                     $this->addFlash('success', 'Merci d\'avoir soumis votre question vous trouverez la réponse ci dessous ulterieurement');
  58.                 }
  59.                 elseif($request->getLocale()=='en'){
  60.                     $this->addFlash('success', 'Thank you for submitting your question you will find the answer below later');
  61.                 }
  62.                 $question->setCas(Null);
  63.                 $question->setReponse(Null);
  64.                 $em->persist($question);
  65.                 $em->flush();
  66.                 $to      = 'urotunisia22@gmail.com';
  67.                 $subject = 'ATU - Question Utilisateur';
  68.                 $headers = "MIME-Version: 1.0\r\n";
  69.                 $headers .= "Content-type: text/html; charset=UTF-8\r\n";
  70.                 $headers .= 'From: contact@urotunisia.com' . "\r\n" .
  71.                 'Reply-To: contact@urotunisia.com' . "\r\n" .
  72.                 'X-Mailer: PHP/' . phpversion();
  73.                 // $template= new TwigEngine();
  74.                 $message = "<div align='center'><img src='http://urotunisia.com/front-assets/assets/img/logo1.png' width='60%' class='img-responsive center-block' align='center'></div><h4>Bonjour Admin!</h4><p>Merci de visiter le lien ci-dessous pour répondre à cette question envpyée par ".$question->getNom()." ".$question->getPrenom()."<br><a href='http://urotunisia.com/admin/repondre/".$question->getId()."'>http://urotunisia.com/admin/repondre/".$question->getId()."</a></p><br>Cordialement";
  75.                 mail($to, $subject, $message, $headers);
  76.                 return $this->redirectToRoute('cas_index', array());
  77.             }
  78.         return $this->render('frontend/frontindex/casFront.html.twig' ,array('form'=>$form->createView() ,'touscas'=> $touscas,'questionReponsesGeneraux'=>$questionReponsesGeneraux ));
  79.     }
  80.     /**
  81.      * @Route("/cas/{id}", name="detail_cas")
  82.      * @param Cas $cas
  83.      * @param Request $request
  84.      * @return \Symfony\Component\HttpFoundation\Response
  85.      */
  86.     public function detailCas(Request $request,$id,EntityManagerInterface $em,CasRepository $repository){
  87.         $question= new QuestionReponse();
  88.         $cas = $repository->find($id);
  89.         $question->setCas($cas);
  90.         $form= $this->createForm(AjoutQRType::class,$question);
  91.         $form->handleRequest($request);
  92.         if($form->isSubmitted() && $form->isValid()){
  93.             $date = new \DateTime();
  94.             $question->setDateQuestion($date);
  95.             $image =$form->get('image')->getData();
  96.             if($image != null){
  97.                 $fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
  98.                 try {
  99.                     $image->move(
  100.                         $this->getParameter('images_directory'),
  101.                         $fileNameimage
  102.                     );
  103.                 } catch (FileException $e) {
  104.                     // ... handle exception if something happens during file upload
  105.                 }
  106.                 $question->setImage($fileNameimage);
  107.             }
  108.             if($request->getLocale()=='fr'){
  109.                 $this->addFlash('success', 'Merci d\'avoir soumis votre question vous trouverez la réponse ci dessous ulterieurement');
  110.             }
  111.             elseif($request->getLocale()=='en'){
  112.                 $this->addFlash('success', 'Thank you for submitting your question you will find the answer below later');
  113.             }
  114.             
  115.             $em->persist($question);
  116.             $em->flush();
  117.             $to      = 'web5yetgroup@gmail.com';
  118.             $subject = 'ATU - Question Utilisateur';
  119.             $headers = "MIME-Version: 1.0\r\n";
  120.             $headers .= "Content-type: text/html; charset=UTF-8\r\n";
  121.             $headers .= 'From: contact@urotunisia.com' . "\r\n" .
  122.             'Reply-To: contact@urotunisia.com' . "\r\n" .
  123.             'X-Mailer: PHP/' . phpversion();
  124.             // $template= new TwigEngine();
  125.             $message = "<div align='center'><img src='http://urotunisia.com/front-assets/assets/img/logo1.png' width='60%' class='img-responsive center-block' align='center'></div><h4>Bonjour Admin!</h4><p>Merci de visiter le lien ci-dessous pour répondre à cette question envpyée par « ".$question->getNom()." ".$question->getPrenom()."»<br><a href='http://urotunisia.com/admin/repondre/".$question->getId()."'>http://urotunisia.com/admin/repondre/".$question->getId()."</a></p><br>Cordialement";
  126.             mail($to, $subject, $message, $headers);
  127.             return $this->redirectToRoute('detail_cas', array(
  128.                 'id' => $id
  129.             ));
  130.         }
  131.         $touscas=$this->repository->findAll();
  132.         return $this->render('frontend/frontindex/detailCas.html.twig', array('cas'=>$cas , 'form'=>$form->createView() ,'touscas' => $touscas));
  133.     }
  134.     /**
  135.      * @Route("/admin/listeCas", name="all_cas")
  136.      */
  137.     public function findAllCas(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator)
  138.     {
  139.         $touscas=$this->repository->findAll();
  140.         // $touscas = $paginator->paginate(
  141.         // // Doctrine Query, not results
  142.         //     $touscas,
  143.         //     // Define the page parameter
  144.         //     $request->query->getInt('page', 1),
  145.         //     // Items per page
  146.         //     2);
  147.         return $this->render('backend/cas/cas.html.twig' ,array('touscas'=> $touscas ));
  148.     }
  149.     /**
  150.      * @Route("/admin/listeQuestions/{id}", name="liste_questions")
  151.      */
  152.     public function Questions($id,Request $request,QuestionReponseRepository $rep ,EntityManagerInterface $em,PaginatorInterface $paginator)
  153.     {
  154.         $questions = $rep->findBy(array('cas' => $id));
  155.         return $this->render('backend/cas/questions.html.twig' ,array('questions'=> $questions ));
  156.     }
  157.     /**
  158.      * @Route("/admin/modifierCas/{id}", name="modifier_cas")
  159.      * @param CasRepository $cas
  160.      * @param Request $request
  161.      * @return \Symfony\Component\HttpFoundation\Response
  162.      */
  163.     public function editer(Request $request,$id,EntityManagerInterface $em,CasRepository $repository){
  164.         $cas = $repository->find($id);
  165.         if($cas!=null && $cas->getImage()!=null){
  166.         $oldImage = $cas->getImage();
  167.         $cas->setImage(
  168.             new File($this->getParameter('images_directory') . '/' . $cas->getImage())
  169.         );
  170.         }
  171.         if($cas!=null && $cas->getPdf()!=null){
  172.             $oldPdf = $cas->getPdf();
  173.             $cas->setPdf(
  174.                 new File($this->getParameter('pdfCas_directory') . '/' . $cas->getPdf())
  175.             );
  176.             }
  177.         $form=$this->createForm(ModifCasType::class,$cas);
  178.         $form->handleRequest($request);
  179.         if($form->isSubmitted() && $form->isValid()){
  180.             $brochureFile = $form->get('image')->getData();
  181.             $brochurePdf = $form->get('pdf')->getData();
  182.             if ($brochureFile) {
  183.                 $fileNameimage = md5(uniqid()) . '.' . $brochureFile->guessExtension();
  184.                 $cas->setImage($fileNameimage);
  185.                 $brochureFile->move(
  186.                     $this->getParameter('images_directory'),
  187.                     $fileNameimage
  188.                 );
  189.             } else {
  190.                 $cas->setImage($oldImage);
  191.             }
  192.             if ($brochurePdf) {
  193.                 $fileNamepdf = md5(uniqid()) . '.' . $brochurePdf->guessExtension();
  194.                 $cas->setPdf($fileNamepdf);
  195.                 $brochurePdf->move(
  196.                     $this->getParameter('pdfCas_directory'),
  197.                     $fileNamepdf
  198.                 );
  199.             } else {
  200.                 $cas->setPdf($oldPdf);
  201.             }
  202.             // $date = new \DateTime();
  203.             // $cas->setDate($date);
  204.             $em->flush();
  205.             return $this->redirectToRoute('all_cas');
  206.         }
  207.         return $this->render('backend/cas/edit.html.twig', array('form'=>$form->createView() ));
  208.     }
  209.     /**
  210.      * @Route("/admin/ajoutCas", name="ajouter_cas")
  211.      */
  212.     public function ajout(Request $request,EntityManagerInterface $em){
  213.         $cas=new Cas();
  214.         $form= $this->createForm(AjoutCasType::class,$cas);
  215.         $form->handleRequest($request);
  216.         if($form->isSubmitted() && $form->isValid()){
  217.             $date = new \DateTime();
  218.             $cas->setDate($date);
  219.             $image =$form->get('image')->getData();
  220.             $pdf =$form->get('pdf')->getData();
  221.             if($image != null ){
  222.                 $fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
  223.                 try {
  224.                     $image->move(
  225.                         $this->getParameter('images_directory'),
  226.                         $fileNameimage
  227.                     );
  228.                 } catch (FileException $e) {
  229.                     // ... handle exception if something happens during file upload
  230.                 }
  231.                 $cas->setImage($fileNameimage);
  232.             }
  233.             if($pdf != null ){
  234.                 $fileNamepdf = md5(uniqid()).'.'.$pdf->guessExtension();
  235.                 try {
  236.                     $pdf->move(
  237.                         $this->getParameter('pdfCas_directory'),
  238.                         $fileNamepdf
  239.                     );
  240.                 } catch (FileException $e) {
  241.                     // ... handle exception if something happens during file upload
  242.                 }
  243.                 $cas->setPdf($fileNamepdf);
  244.             }
  245.             $em->persist($cas);
  246.             $em->flush();
  247.             return $this->redirectToRoute('all_cas');
  248.         }
  249.         return $this->render('backend/cas/add.html.twig',array('form'=>$form->createView()));
  250.     }
  251.     /**
  252.      * @Route("/admin/supprimerCas/{id}", name="supprimer_cas")
  253.      */
  254.     public function supprimer($id,CasRepository $repository,EntityManagerInterface $em){
  255.         $cas= $repository->find($id);
  256.         $em->remove($cas);
  257.         $em->flush();
  258.         return $this->redirectToRoute('all_cas');
  259.     }
  260.     /**
  261.      * @Route("/searchcas/", name="cas_search")
  262.      */
  263.     public function search(CasRepository $repository, Request $request,PaginatorInterface $paginator)
  264.     {
  265.         $touscas = $repository->findByNamePopular(
  266.             $request->query->get('query')
  267.         );
  268.         $touscas = $paginator->paginate(
  269.         // Doctrine Query, not results
  270.             $touscas,
  271.             // Define the page parameter
  272.             $request->query->getInt('page', 1),
  273.             // Items per page
  274.             2);
  275.         return $this->render('backend/cas/detail.html.twig', [
  276.             'touscas'=>$touscas
  277.         ]);
  278.     }
  279. }