src/Controller/Produit/Service/ServiceController.php line 277

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Produit\Service;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Entity\Users\User\Newsletter;
  7. use App\Form\Users\User\NewsletterType;
  8. use App\Service\Servicetext\GeneralServicetext;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  11. use App\Service\Email\Singleemail;
  12. use Doctrine\ORM\EntityManagerInterface;
  13. use App\Entity\Produit\Service\Service;
  14. use App\Form\Produit\Service\ServiceType;
  15. use App\Entity\Users\Adminuser\Parametre;
  16. use App\Entity\Users\Adminuser\Parametreitem;
  17. use App\Entity\Projet\Portfolio\Intervention;
  18. use App\Entity\Produit\Service\Team;
  19. class ServiceController extends AbstractController
  20. {
  21.     private $params;
  22.     private $_servicemail;
  23.     private $_entityManager;
  24.     public function __construct(ParameterBagInterface $paramsSingleemail $servicemailEntityManagerInterface $em)
  25.     {
  26.         $this->params $params;
  27.         $this->_servicemail $servicemail;
  28.         $this->_entityManager $em;
  29.     }
  30.     public function listedepartements($page=1)
  31.     {
  32.         $repository $this->_entityManager->getRepository(Service::class);
  33.         $liste_service $repository->findServiceTypePagine("departement"$page4);
  34.         foreach($liste_service as $service)
  35.         {
  36.             $service->setEm($this->_entityManager);
  37.         }
  38.         return $this->render('Theme/Produit/Service/Service/listedepartements.html.twig'
  39.             array(
  40.                 "page"=>$page,
  41.                 "liste_service"=>$liste_service,
  42.                 'nombrepage' => ceil(count($liste_service)/4)
  43.             )
  44.         );
  45.     }
  46.     public function departement(Service $service)
  47.     {
  48.         $service->setEm($this->_entityManager);
  49.         return $this->render('Theme/Produit/Service/Service/departement.html.twig'
  50.             array(
  51.                 "depart"=>$service
  52.             )
  53.         );
  54.     }
  55.     public function service(Service $service)
  56.     {
  57.         $service->setEm($this->_entityManager);
  58.         return $this->render('Theme/Produit/Service/Service/service.html.twig'
  59.             array(
  60.                 "service"=>$service
  61.             )
  62.         );
  63.     }
  64.     public function accueilservice($page 1GeneralServicetext $serviceRequest $request)
  65.     {
  66.         $service = new Service();
  67.         $form $this->createForm(ServiceType::class, $service);
  68.         if($request->getMethod() == 'POST'){
  69.             $form->handleRequest($request);
  70.             $service->setUser($this->getUser());
  71.             
  72.             if($form->isValid()){
  73.                 if(isset($_POST['categorie']))
  74.                 {
  75.                     $service->setExpertise($_POST['categorie']);
  76.                 }
  77.                 if(isset($_POST['parentId']))
  78.                 {
  79.                     $service->setParentId($_POST['parentId']);
  80.                 }
  81.                 if(isset($_POST['motcle']))
  82.                 {
  83.                     $service->setMotcle($_POST['motcle']);
  84.                 }
  85.                 if(isset($_POST['objectifs']))
  86.                 {
  87.                     $jsonString $_POST['objectifs'];
  88.                     $decodedData json_decode($jsonStringtrue);
  89.                     if (is_array($decodedData)) {
  90.                         $service->setObjectifs($decodedData);
  91.                     }
  92.                 }
  93.                 $this->_entityManager->persist($service);
  94.                 $this->_entityManager->flush();
  95.                 $this->get('session')->getFlashBag()->add('information','Enregistrement effectué avec succès');
  96.             }else{
  97.                 $this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée, Choisissez un type et retransmettez le formulaire!');
  98.             }
  99.         }
  100.         $repository $this->_entityManager->getRepository(Service::class);
  101.         $liste_service $repository->findAllServicePagine($page10);
  102.         $liste_all_service $repository->findAllDepartemantPagine(1100);
  103.         return $this->render('Theme/Users/Adminuser/Service/accueilservice.html.twig'
  104.         array('form'=>$form->createView(), 'liste_service'=>$liste_service'nombrepage' => ceil(count($liste_service)/10), 'page'=>$page'liste_all_service'=>$liste_all_service));
  105.     }
  106.     public function updateservice(GeneralServicetext $serviceRequest $requestEntityManagerInterface $em$id)
  107.     {
  108.         if(isset($_GET['id']))
  109.         {
  110.             $id $_GET['id'];
  111.         }else{
  112.             $id $id;
  113.         }
  114.         $service $em->getRepository(Service::class)
  115.                          ->find($id);
  116.         if($service != null)
  117.         {
  118.             $form $this->createForm(ServiceType::class, $service);
  119.             if ($request->getMethod() == 'POST'){
  120.                 $form->handleRequest($request);
  121.                 if ($form->isValid()){
  122.                     if(isset($_POST['categorie']))
  123.                     {
  124.                         $service->setExpertise($_POST['categorie']);
  125.                     }
  126.                     if(isset($_POST['parentId']))
  127.                     {
  128.                         $service->setParentId($_POST['parentId']);
  129.                     }
  130.                     if(isset($_POST['motcle']))
  131.                     {
  132.                         $service->setMotcle($_POST['motcle']);
  133.                     }
  134.                     if(isset($_POST['objectifs']))
  135.                     {
  136.                         $jsonString $_POST['objectifs'];
  137.                         $decodedData json_decode($jsonStringtrue);
  138.                         if (is_array($decodedData)) {
  139.                             $service->setObjectifs($decodedData);
  140.                         }
  141.                     }
  142.                     $service->setDate(new \Datetime());
  143.                     $em->flush();
  144.                     $this->get('session')->getFlashBag()->add('information','Modification effectuée avec succès');
  145.                 }else{
  146.                     $this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée!');
  147.                 }
  148.                 return $this->redirect($this->generateUrl('users_adminuser_accueil_services'));
  149.             }
  150.             $repository $this->_entityManager->getRepository(Service::class);
  151.             $liste_service $repository->findAll();
  152.             return $this->render('Theme/Users/Adminuser/Service/updateservice.html.twig',
  153.             array('form'=>$form->createView(),'service'=>$service'liste_service'=>$liste_service));
  154.         }else{
  155.             echo 'Echec ! Une erreur a été rencontrée.';
  156.             exit;
  157.         }
  158.     }
  159.     public function supprimerservice(Service $service)
  160.     {
  161.         $this->_entityManager->remove($service);
  162.         $this->_entityManager->flush();
  163.         $this->get('session')->getFlashBag()->add('information','Suppression effectuée avec succès');
  164.         return $this->redirect($this->generateUrl('users_adminuser_accueil_services'));
  165.     }
  166.     public function topservices($limit)
  167.     {
  168.         $liste_service $this->_entityManager->getRepository(Service::class)
  169.                                             ->findTopServices($limit);
  170.         return $this->render('Theme/Produit/Service/Service/topservices.html.twig'
  171.         array('liste_service'=>$liste_service));
  172.     }
  173.     public function contacts(Request $requestGeneralServicetext $servicetext)
  174.     {
  175.         $em $this->getDoctrine()->getManager();
  176.         $projet = new Newsletter();
  177.         $formprojet $this->createForm(NewsletterType::class, $projet);
  178.         if($request->getMethod() == 'POST'){
  179.             $formprojet->handleRequest($request);
  180.             if ($formprojet->isValid()){
  181.                 $projet->setContact(true);
  182.                 $projet->setServicetext($servicetext);
  183.                 $em->persist($projet);
  184.                 $em->flush();
  185.                 $this->get('session')->getFlashBag()->add('information','Message envoyé avec succès');
  186.                 $pathFile $projet->getwebpath();
  187.                 $siteweb $this->params->get('siteweb');
  188.                 $sitename $this->params->get('sitename');
  189.                 $emailadmin $this->params->get('emailadmin');
  190.                 $aboutContacts $em->getRepository(Parametre::class)
  191.                                     ->findOneBy(array('typeParam'=>'contacts'), array('rang'=>'asc'), 1);
  192.                 $emailcustom '';
  193.                 if($aboutContacts != null)
  194.                 {
  195.                     $liste_contacts $em->getRepository(Parametreitem::class)
  196.                                         ->findBy(array('parametre'=>$aboutContacts), array('rang'=>'asc'));
  197.                     foreach($liste_contacts as $contact)
  198.                     {
  199.                         if($contact->getTypeParam() == 'email')
  200.                         {
  201.                             $emailcustom $contact->getValeur();
  202.                             break;
  203.                         }
  204.                     }
  205.                 }
  206.                 if(strlen($emailcustom) > and $servicetext->email($emailcustom))
  207.                 {
  208.                     $response $this->_servicemail->sendNotifEmail(
  209.                         'Team '.$sitename
  210.                         $emailcustom
  211.                         $projet->getSujet(),
  212.                         $projet->getSujet(),
  213.                         $projet->getContenu(), 
  214.                         $siteweb.'/'.$pathFile
  215.                     );
  216.                 }else if($servicetext->email($emailadmin))
  217.                 {
  218.                     $response $this->_servicemail->sendNotifEmail(
  219.                         'Team '.$sitename
  220.                         $emailadmin
  221.                         $projet->getSujet(),
  222.                         $projet->getSujet(),
  223.                         $projet->getContenu(), 
  224.                         $siteweb.'/'.$pathFile
  225.                     );
  226.                 }
  227.                 return $this->redirect($this->generateUrl('produit_service_contacts'));
  228.                 //
  229.             }else{
  230.                 $this->get('session')->getFlashBag()->add('information','Une ereur a été rencontrée!');
  231.             }
  232.         }
  233.         return $this->render($servicetext->getThemeDirectory().'/Produit/Service/Service/contacts.html.twig'
  234.         array('formprojet'=>$formprojet->createView()));
  235.     }
  236.     public function detailservice($item)
  237.     {
  238.         return $this->render('Theme/Produit/Service/Service/detailservice.html.twig', array('item'=>$item));
  239.     }
  240.     public function aboutstruct(GeneralServicetext $serviceEntityManagerInterface $em)
  241.     {
  242.         $aboutplatform $em->getRepository(Parametre::class)
  243.                             ->findOneBy(array('typeParam'=>'aboutplatform'), array('rang'=>'asc'), 1);
  244.         $infoPlatformSection $this->_entityManager->getRepository(Parametre::class)
  245.                             ->findOneBy(array('typeParam'=>'infoPlatformSection'), array('rang'=>'asc'), 1);
  246.         if($infoPlatformSection != null)
  247.         {
  248.             $infoPlatformSection->setEm($em);
  249.         }
  250.         return $this->render($service->getThemeDirectory().'/Produit/Service/Service/aboutstruct.html.twig'
  251.         array('aboutplatform'=>$aboutplatform'infoPlatformSection'=>$infoPlatformSection));
  252.     }
  253.     public function listeservice($page 1GeneralServicetext $service)
  254.     {
  255.         $repository $this->_entityManager->getRepository(Service::class);
  256.         $liste_service $repository->findServiceTypePagine("service"$page12);
  257.         $aboutService $this->_entityManager->getRepository(Parametre::class)
  258.                                 ->findOneBy(array('typeParam'=>'detailservice'), array('rang'=>'asc'), 1);
  259.         return $this->render($service->getThemeDirectory().'/Produit/Service/Service/listeservice.html.twig',
  260.         array('liste_service'=>$liste_service'aboutService'=>$aboutService'nombrepage' => ceil(count($liste_service)/12), "page"=>$page));
  261.     }
  262.     public function messagepromoteur(GeneralServicetext $service)
  263.     {
  264.         $aboutService $this->_entityManager->getRepository(Parametre::class)
  265.                                 ->findOneBy(array('typeParam'=>'detailservice'), array('rang'=>'asc'), 1);
  266.         return $this->render($service->getThemeDirectory().'/Produit/Service/Service/messagepromoteur.html.twig',
  267.         array('aboutService'=>$aboutService));
  268.     }
  269.     public function sitemap()
  270.     {
  271.         return $this->render('Theme/Produit/Service/Service/sitemap.html.twig');  
  272.     }
  273.     public function interventions(GeneralServicetext $service$page 1)
  274.     {
  275.         $em $this->getDoctrine()->getManager();
  276.         $liste_interventions $em->getRepository(Intervention::class)
  277.                         ->findInterventionPagine($page6);
  278.         $aboutIntervention $this->_entityManager->getRepository(Parametre::class)
  279.                                   ->findOneBy(array('typeParam'=>'detailintervention'), array('rang'=>'asc'), 1);
  280.         
  281.         $liste_intervention $this->_entityManager->getRepository(Intervention::class)
  282.                                    ->findTopProjet();
  283.         foreach($liste_intervention as $intervention)
  284.         {
  285.             $intervention->setEm($this->_entityManager);
  286.         }
  287.         return $this->render($service->getThemeDirectory().'/Produit/Service/Service/interventions.html.twig',
  288.         array(
  289.             'aboutIntervention'=>$aboutIntervention
  290.             'liste_intervention'=>$liste_intervention,
  291.             'liste_interventions'=>$liste_interventions,
  292.             //'intervention'=>$intervention->getCategorie(),
  293.             //'intervention'=>$intervention,
  294.             'page'=>$page,
  295.             'nombrepage' => ceil(count($liste_interventions)/6)));
  296.     }
  297.     public function teams()
  298.     {
  299.         $liste_team $this->_entityManager->getRepository(Team::class)
  300.                                            ->myfindAll();
  301.         $aboutDetailteam $this->_entityManager->getRepository(Parametre::class)
  302.                                 ->findOneBy(array('typeParam'=>'detailteam'), array('rang'=>'asc'), 1);
  303.         return $this->render('Theme/Produit/Service/Service/teams.html.twig',
  304.         array('liste_team'=>$liste_team'aboutDetailteam'=>$aboutDetailteam));  
  305.     }
  306. }