<?php
namespace App\Controller\Backend;
use App\Entity\Cas;
use App\Entity\QuestionReponse;
use App\Form\Cas\AjoutCasType;
use App\Form\Cas\ModifCasType;
use App\Form\QuestionReponse\AjoutQRType;
use App\Repository\CasRepository;
use App\Repository\QuestionReponseRepository;
use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface;
use phpDocumentor\Reflection\Types\Null_;
use Symfony\Component\HttpFoundation\File\Exception\FileException;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\File;
class CasController extends AbstractController
{
/**
* @var CasRepository
*/
private $repository;
public function __construct(CasRepository $repository){
$this->repository=$repository;
}
/**
* @Route("/EspacePatient", name="cas_index")
*/
public function findAll(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator,PaginatorInterface $paginator1,QuestionReponseRepository $questionreponses)
{
$touscas=$this->repository->findAll();
$questionReponsesGeneraux= $paginator1->paginate($questionreponses->findBy(['cas'=>Null],['date_question'=>'DESC']),$request->query->getInt('page', 1),2);
$touscas = $paginator->paginate($touscas,$request->query->getInt('page', 1),2);
$question= new QuestionReponse();
$form= $this->createForm(AjoutQRType::class,$question);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$date = new \DateTime();
$question->setDateQuestion($date);
$image =$form->get('image')->getData();
if($image != null){
$fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
try {
$image->move(
$this->getParameter('images_directory'),
$fileNameimage
);
} catch (FileException $e) {
// ... handle exception if something happens during file upload
}
$question->setImage($fileNameimage);
}
if($request->getLocale()=='fr'){
$this->addFlash('success', 'Merci d\'avoir soumis votre question vous trouverez la réponse ci dessous ulterieurement');
}
elseif($request->getLocale()=='en'){
$this->addFlash('success', 'Thank you for submitting your question you will find the answer below later');
}
$question->setCas(Null);
$question->setReponse(Null);
$em->persist($question);
$em->flush();
$to = 'urotunisia22@gmail.com';
$subject = 'ATU - Question Utilisateur';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= 'From: contact@urotunisia.com' . "\r\n" .
'Reply-To: contact@urotunisia.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// $template= new TwigEngine();
$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";
mail($to, $subject, $message, $headers);
return $this->redirectToRoute('cas_index', array());
}
return $this->render('frontend/frontindex/casFront.html.twig' ,array('form'=>$form->createView() ,'touscas'=> $touscas,'questionReponsesGeneraux'=>$questionReponsesGeneraux ));
}
/**
* @Route("/cas/{id}", name="detail_cas")
* @param Cas $cas
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function detailCas(Request $request,$id,EntityManagerInterface $em,CasRepository $repository){
$question= new QuestionReponse();
$cas = $repository->find($id);
$question->setCas($cas);
$form= $this->createForm(AjoutQRType::class,$question);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$date = new \DateTime();
$question->setDateQuestion($date);
$image =$form->get('image')->getData();
if($image != null){
$fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
try {
$image->move(
$this->getParameter('images_directory'),
$fileNameimage
);
} catch (FileException $e) {
// ... handle exception if something happens during file upload
}
$question->setImage($fileNameimage);
}
if($request->getLocale()=='fr'){
$this->addFlash('success', 'Merci d\'avoir soumis votre question vous trouverez la réponse ci dessous ulterieurement');
}
elseif($request->getLocale()=='en'){
$this->addFlash('success', 'Thank you for submitting your question you will find the answer below later');
}
$em->persist($question);
$em->flush();
$to = 'web5yetgroup@gmail.com';
$subject = 'ATU - Question Utilisateur';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= 'From: contact@urotunisia.com' . "\r\n" .
'Reply-To: contact@urotunisia.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
// $template= new TwigEngine();
$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";
mail($to, $subject, $message, $headers);
return $this->redirectToRoute('detail_cas', array(
'id' => $id
));
}
$touscas=$this->repository->findAll();
return $this->render('frontend/frontindex/detailCas.html.twig', array('cas'=>$cas , 'form'=>$form->createView() ,'touscas' => $touscas));
}
/**
* @Route("/admin/listeCas", name="all_cas")
*/
public function findAllCas(Request $request,EntityManagerInterface $em,PaginatorInterface $paginator)
{
$touscas=$this->repository->findAll();
// $touscas = $paginator->paginate(
// // Doctrine Query, not results
// $touscas,
// // Define the page parameter
// $request->query->getInt('page', 1),
// // Items per page
// 2);
return $this->render('backend/cas/cas.html.twig' ,array('touscas'=> $touscas ));
}
/**
* @Route("/admin/listeQuestions/{id}", name="liste_questions")
*/
public function Questions($id,Request $request,QuestionReponseRepository $rep ,EntityManagerInterface $em,PaginatorInterface $paginator)
{
$questions = $rep->findBy(array('cas' => $id));
return $this->render('backend/cas/questions.html.twig' ,array('questions'=> $questions ));
}
/**
* @Route("/admin/modifierCas/{id}", name="modifier_cas")
* @param CasRepository $cas
* @param Request $request
* @return \Symfony\Component\HttpFoundation\Response
*/
public function editer(Request $request,$id,EntityManagerInterface $em,CasRepository $repository){
$cas = $repository->find($id);
if($cas!=null && $cas->getImage()!=null){
$oldImage = $cas->getImage();
$cas->setImage(
new File($this->getParameter('images_directory') . '/' . $cas->getImage())
);
}
if($cas!=null && $cas->getPdf()!=null){
$oldPdf = $cas->getPdf();
$cas->setPdf(
new File($this->getParameter('pdfCas_directory') . '/' . $cas->getPdf())
);
}
$form=$this->createForm(ModifCasType::class,$cas);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$brochureFile = $form->get('image')->getData();
$brochurePdf = $form->get('pdf')->getData();
if ($brochureFile) {
$fileNameimage = md5(uniqid()) . '.' . $brochureFile->guessExtension();
$cas->setImage($fileNameimage);
$brochureFile->move(
$this->getParameter('images_directory'),
$fileNameimage
);
} else {
$cas->setImage($oldImage);
}
if ($brochurePdf) {
$fileNamepdf = md5(uniqid()) . '.' . $brochurePdf->guessExtension();
$cas->setPdf($fileNamepdf);
$brochurePdf->move(
$this->getParameter('pdfCas_directory'),
$fileNamepdf
);
} else {
$cas->setPdf($oldPdf);
}
// $date = new \DateTime();
// $cas->setDate($date);
$em->flush();
return $this->redirectToRoute('all_cas');
}
return $this->render('backend/cas/edit.html.twig', array('form'=>$form->createView() ));
}
/**
* @Route("/admin/ajoutCas", name="ajouter_cas")
*/
public function ajout(Request $request,EntityManagerInterface $em){
$cas=new Cas();
$form= $this->createForm(AjoutCasType::class,$cas);
$form->handleRequest($request);
if($form->isSubmitted() && $form->isValid()){
$date = new \DateTime();
$cas->setDate($date);
$image =$form->get('image')->getData();
$pdf =$form->get('pdf')->getData();
if($image != null ){
$fileNameimage = md5(uniqid()).'.'.$image->guessExtension();
try {
$image->move(
$this->getParameter('images_directory'),
$fileNameimage
);
} catch (FileException $e) {
// ... handle exception if something happens during file upload
}
$cas->setImage($fileNameimage);
}
if($pdf != null ){
$fileNamepdf = md5(uniqid()).'.'.$pdf->guessExtension();
try {
$pdf->move(
$this->getParameter('pdfCas_directory'),
$fileNamepdf
);
} catch (FileException $e) {
// ... handle exception if something happens during file upload
}
$cas->setPdf($fileNamepdf);
}
$em->persist($cas);
$em->flush();
return $this->redirectToRoute('all_cas');
}
return $this->render('backend/cas/add.html.twig',array('form'=>$form->createView()));
}
/**
* @Route("/admin/supprimerCas/{id}", name="supprimer_cas")
*/
public function supprimer($id,CasRepository $repository,EntityManagerInterface $em){
$cas= $repository->find($id);
$em->remove($cas);
$em->flush();
return $this->redirectToRoute('all_cas');
}
/**
* @Route("/searchcas/", name="cas_search")
*/
public function search(CasRepository $repository, Request $request,PaginatorInterface $paginator)
{
$touscas = $repository->findByNamePopular(
$request->query->get('query')
);
$touscas = $paginator->paginate(
// Doctrine Query, not results
$touscas,
// Define the page parameter
$request->query->getInt('page', 1),
// Items per page
2);
return $this->render('backend/cas/detail.html.twig', [
'touscas'=>$touscas
]);
}
}