src/Controller/bilanControllers/CriticiteController.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Controller\bilanControllers;
  3. use App\Entity\bilan\Criticite;
  4. use App\Entity\bilan\Frequence;
  5. use App\Entity\bilan\Gravite;
  6. use App\Entity\bilan\MOG;
  7. use App\Entity\bilan\SituationRisque;
  8. use App\Repository\bilan\CriticiteRepository;
  9. use App\Repository\bilan\FrequenceRepository;
  10. use App\Repository\bilan\GraviteRepository;
  11. use App\Repository\bilan\MOGRepository;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\JsonResponse;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. /**
  18.  * @Route("/criticite")
  19.  */
  20. class CriticiteController extends AbstractController
  21. {
  22.     /********************** calcul de la criticité *****************************/
  23.      /**
  24.      * @Route("/list/frequences", name="frequence_list", methods={"GET","POST"})
  25.      */
  26.     public function listF(FrequenceRepository $frequenceRepository): Response
  27.     {  
  28.         $frequenceData $frequenceRepository->transformAll();
  29.         return new JsonResponse($frequenceData);
  30.     }
  31.    
  32.      /**
  33.      * @Route("/list/gravites", name="gravites_list", methods={"GET","POST"})
  34.      */
  35.     public function listG(GraviteRepository $graviteRepository): Response
  36.     {  
  37.         $graviteData $graviteRepository->transformAll();
  38.         return new JsonResponse($graviteData);
  39.     }
  40.     /**
  41.      * @Route("/frequence/{id}/edit", name="frequence_edit", methods={"GET","POST"},requirements={"id":"\d+"})
  42.      */
  43.     public function edit(Request $requestFrequence $frequence): Response
  44.     {
  45.         return $this->editdata($request$frequence);    
  46.     }
  47.      /**
  48.      * @Route("/gravite/{id}/edit", name="gravite_edit", methods={"GET","POST"},requirements={"id":"\d+"})
  49.      */
  50.     public function editG(Request $requestGravite $gravite): Response
  51.     {
  52.         return $this->editdata($request$gravite);   
  53.     }
  54.     /**
  55.      * @Route("/frequence/{id}/delete", name="frequence_delete", methods={"GET","POST"})
  56.      */
  57.     public function deleteF(Request $requestFrequence $frequence): Response
  58.     {
  59.         return $this->deletedata($request$frequence);
  60.     }
  61.       /**
  62.      * @Route("/gravite/{id}/delete", name="gravite_delete", methods={"GET","POST"})
  63.      */
  64.     public function delete(Request $requestGravite $gravite): Response
  65.     {
  66.         return $this->deletedata($request,$gravite);
  67.     }
  68.      /**
  69.      * @Route("/seuil/{id}/edit", name="seuil_edit", methods={"POST"})
  70.      */
  71.     public function seuilEdit(Request $request,Criticite $criticite){
  72.         if (!$request->isXmlHttpRequest()) {
  73.             return new JsonResponse(array('status' => 'error','message' => 'Access forbidden!'), 400);
  74.         }
  75.         $response = ["statut"=>"0"];
  76.         if (isset($request->request)) {
  77.     
  78.             $valeur $request->request->get('valeur');
  79.            
  80.             $entityManager $this->getDoctrine()->getManager();
  81.               
  82.             $criticite->setValeur($valeur);
  83.             $entityManager->flush();
  84.             $response = ["statut"=>"1"];
  85.         }
  86.         return new JsonResponse($response,200); 
  87.     
  88.     }
  89.     /********************** calcul du risque résiduel *****************************/
  90.      /**
  91.      * @Route("/list/MOG", name="MOG_list", methods={"GET","POST"})
  92.      */
  93.     public function listMOG(MOGRepository $MOGRepository): Response
  94.     {  
  95.         $MOGData $MOGRepository->transformAll();
  96.         return new JsonResponse($MOGData);
  97.     }
  98.      /**
  99.      * @Route("/MOG/{id}/edit", name="MOG_edit", methods={"GET","POST"},requirements={"id":"\d+"})
  100.      */
  101.     public function editMOG(Request $requestMOG $mog): Response
  102.     {
  103.         return $this->editdata($request$mog);
  104.     }     
  105.       /**
  106.      * @Route("/MOG/{id}/delete", name="MOG_delete", methods={"GET","POST"})
  107.      */
  108.     public function deleteMOG(Request $requestMOG $mog): Response
  109.     {
  110.         return $this->deletedata($request$mog);
  111.     }
  112.     /************************Global method *********************************/
  113.        /**
  114.      * @Route("/new", name="criticite_new", methods={"GET","POST"})
  115.      */
  116.     public function new(Request $request): Response
  117.     
  118.         if (!$request->isXmlHttpRequest()) {
  119.         return new JsonResponse(array('status' => 'error','message' => 'Access forbidden!'), 400);
  120.     }
  121.     
  122.     if (isset($request->request)) {
  123.         
  124.         $note $request->request->get('note');
  125.         $statut $request->request->get('statut');
  126.         $description $request->request->get('description');
  127.         $criticite substr($request->request->get('criticite'),4);
  128.         
  129.         $entityManager $this->getDoctrine()->getManager();
  130.         $data="";
  131.         if ($criticite == "Frequence"
  132.             $data = new Frequence();
  133.         else if ($criticite == "Gravite"
  134.             $data = new Gravite();
  135.         else if ($criticite == "MOG"
  136.             $data = new MOG();
  137.         if ($data){
  138.             $data->setNote($note);
  139.             $data->setStatut($statut);
  140.             $data->setDescription($description);
  141.             $entityManager->persist($data);
  142.             try {
  143.                 $entityManager->flush();
  144.                 $data = [
  145.                 'id'=>$data->getId(),
  146.                 'note'=>$data->getNote(),
  147.                 'statut'=>$data->getStatut(),
  148.                 'description'=>$data->getDescription(),
  149.                 
  150.             ];
  151.                 $response =$data;
  152.             } catch (\Exception $e) {
  153.                 $response = array('status' => 'error''message' => $e->getMessage());
  154.             }
  155.         }
  156.         
  157.     }
  158.     return new JsonResponse($response,200);
  159.     }
  160.     public function editdata($request,$data){
  161.         if (!$request->isXmlHttpRequest()) {
  162.             return new JsonResponse(array('status' => 'error','message' => 'Access forbidden!'), 400);
  163.         }
  164.         if (isset($request->request)) {
  165.             $note $request->request->get('note');
  166.             $statut $request->request->get('statut');
  167.             $description $request->request->get('description');
  168.             $entityManager $this->getDoctrine()->getManager();
  169.                
  170.                 $data->setNote($note);
  171.                 $data->setStatut($statut);
  172.                 $data->setDescription($description);
  173.                 try {
  174.                     $entityManager->flush();
  175.                     $data = [
  176.                         'id'=>$data->getId(),
  177.                         'note'=>$data->getNote(),
  178.                         'statut'=>$data->getStatut(),
  179.                         'description'=>$data->getDescription(),
  180.                     ];
  181.             
  182.                     $response $data;
  183.                 } catch (\Exception $e) {
  184.                     $response = array('status' => 'error''message' => $e->getMessage());
  185.                 }
  186.         }
  187.         
  188.         return new JsonResponse($response,200);
  189.     }
  190.     public function deletedata$request,$data): Response
  191.     {
  192.         if (!$request->isXmlHttpRequest()) {
  193.             return new JsonResponse(array('status' => 'error','message' => 'Access forbidden!'), 400);
  194.         }
  195.         $response = ["deleted"=>"0"];
  196.         if (isset($request->request)) {
  197.             $type $request->request->get('type');
  198.             $entityManager $this->getDoctrine()->getManager();
  199.             $situation_risque='';
  200.             if ($type=='dataFrequence')
  201.                  $situation_risque $entityManager->getRepository(SituationRisque::class)->findBy(['frequence'=>$data->getId()]);
  202.             else  if ($type=='dataGravite')
  203.                  $situation_risque $entityManager->getRepository(SituationRisque::class)->findBy(['gravite'=>$data->getId()]);
  204.             else  if ($type=='dataMOG')
  205.                  $situation_risque $entityManager->getRepository(SituationRisque::class)->findBy(['mog'=>$data->getId()]);     
  206.             else  if ($type=='dataRisque')
  207.                  $situation_risque $entityManager->getRepository(SituationRisque::class)->findBy(['risque'=>$data->getId()]);     
  208.             
  209.             if ($situation_risque){
  210.                $response =['deleted'=>0];
  211.             }else{
  212.                 $entityManager->remove($data);
  213.                 $entityManager->flush();
  214.                 $response =['deleted'=>1];
  215.             }   
  216.             return new JsonResponse($response,200); 
  217.         }
  218.     }
  219.     /**
  220.      * @Route("/criticiteList", name="get_crititcie_list", methods={"GET"})
  221.      */
  222.     public function getCriticiteList(Request $request): Response
  223.     {
  224.         $type $request->query->get('type');
  225.         $entityManager $this->getDoctrine()->getManager();
  226.         $criticiteList $entityManager->getRepository(Criticite::class)->findBy(['type'=>$type],['valeur'=>'DESC']);
  227.         $criticiteListJson array_map(function($item){
  228.             return [
  229.                 'id'=>$item->getId(),
  230.                 'valeur'=>$item->getValeur(),
  231.                 'couleur'=>$item->getCouleur(),
  232.                 'legende'=>$item->getLegende(),
  233.             ];
  234.         }, $criticiteList);
  235.         return new JsonResponse($criticiteListJson,200);
  236.     }
  237. }