<?php
namespace App\Controller\Dysfonctionnement;
use App\Entity\bilan\Entity;
use App\Entity\Domain;
use App\Entity\Dysfonctionnement\CategoryConstat;
use App\Entity\Dysfonctionnement\Constat;
use App\Entity\Processus;
use App\Entity\Source;
use App\Entity\User;
use App\Repository\Dysfonctionnement\CategoryConstatRepository;
use App\Repository\Dysfonctionnement\ConstatRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/constat")
*/
class DysfonctionnementController extends AbstractController
{
/**
* @Route("/list/dysfonctionnement", name="Constat_list", methods={"GET"})
*/
public function suiviConstatDysfonctionnement(Request $request): Response
{
$domaines_list = $this->getDoctrine()->getRepository(Domain::class)->findAll();
$entites_list = $this->getDoctrine()->getRepository(Entity::class)->findAll();
$processus_list = $this->getDoctrine()->getRepository(Processus::class)->findAll();
$sources_list = $this->getDoctrine()->getRepository(Source::class)->findAll();
$users_list = $this->getDoctrine()->getRepository(User::class)->findAll();
$menu="ameliorer";
$left_menu="suivi_general";
return $this->render('dysfonctionnementTemplate/dysfonctionnement/suiviGeneralDysfonctionnement.html.twig', [
'menu' => $menu,
'left_menu' => $left_menu,
'entites_list' => $entites_list,
'users_list' => $users_list,
'sources_list' => $sources_list,
'domaines_list' => $domaines_list,
'processus_list' => $processus_list
]);
}
/**
* @Route("/analysConstatDysfonctionnement", name="analyse_Constat_dysfonctionnement", methods={"GET"})
*/
public function constatDysfonctionnementData(Request $request, ConstatRepository $constatRepository): Response
{
$listConstatDysfonctionnement = $constatRepository->getListConstat();
$data = array("data" => $listConstatDysfonctionnement);
//dd($data);
return new JsonResponse($data);
}
/**
* @Route("/list/accident", name="constat_list_accident", methods={"GET"})
*/
public function suiviConstatAccident(Request $request): Response
{
$entites_list = $this->getDoctrine()->getRepository(Entity::class)->findAll();
$processus_list = $this->getDoctrine()->getRepository(Processus::class)->findAll();
$users_list = $this->getDoctrine()->getRepository(User::class)->findAll();
$menu="ameliorer";
$left_menu="suivi_general";
return $this->render('dysfonctionnementTemplate/dysfonctionnement/suiviGeneralAccident.html.twig', [
'menu' => $menu,
'left_menu' => $left_menu,
'entites_list' => $entites_list,
'users_list' => $users_list,
'processus_list' => $processus_list
]);
}
/**
* @Route("/list/reclamation", name="constat_list_reclamation", methods={"GET"})
*/
public function suiviConstatReclamation(Request $request): Response
{
$entites_list = $this->getDoctrine()->getRepository(Entity::class)->findAll();
$processus_list = $this->getDoctrine()->getRepository(Processus::class)->findAll();
$sources_list = $this->getDoctrine()->getRepository(Source::class)->findAll();
$users_list = $this->getDoctrine()->getRepository(User::class)->findAll();
$menu="ameliorer";
$left_menu="suivi_general";
return $this->render('dysfonctionnementTemplate/dysfonctionnement/suiviGeneralReclamation.html.twig', [
'menu' => $menu,
'left_menu' => $left_menu,
'entites_list' => $entites_list,
'sources_list' => $sources_list,
'users_list' => $users_list,
'processus_list' => $processus_list
]);
}
/**
* @Route("/analysConstatReclamation", name="analyse_Constat_reclamation", methods={"GET"})
*/
public function constatReclamationData(Request $request, ConstatRepository $constatRepository): Response
{
$listConstatReclamation = $constatRepository->getListConstatReclamationTransformAll();
return new JsonResponse($listConstatReclamation);
}
/**
* @Route("/configuration/configuration_terminologie", name="configurer_terminologie")
*/
public function configurationTerminologie(): Response
{
$menu="ameliorer";
$left_menu="configuration_terminologie";
return $this->render('dysfonctionnementTemplate/configuration_terminologie/index.html.twig', [
'menu'=>$menu,
'left_menu'=>$left_menu
]);
}
/**
* @Route("/configuration/configTerminologieData", name="config_terminologie", methods={"GET"})
*/
public function configTerminologieData(Request $request, CategoryConstatRepository $categoryConstatRepository): Response
{
$listCategoryConstat= $categoryConstatRepository->getListCategoryConstat();
$data = array("data" => $listCategoryConstat);
//dd($data);
return new JsonResponse($data);
}
/**
* @Route("/addTerm", name="add_Term", methods={"GET","POST"})
*/
public function addTerm(Request $request):Response
{
$domain_list = $this->getDoctrine()->getRepository(Domain::class)->findAll();
return $this->render('dysfonctionnementTemplate/configuration_terminologie/_form.html.twig', [
'domain_list' => $domain_list,
]);
}
/**
* @Route("/addConfigTerm/new", name="config_Term_add", methods={"GET","POST"})
*/
public function addConfigTerm(Request $request):Response
{
$em = $this->getDoctrine()->getManager();
$domain_id = $request->request->get('domain');
$domain = $em->getRepository(Domain::class)->find($domain_id);
$type_constat = $request->request->get('type_constat');
$category = $request->request->get('category');
$categoryConstat = new CategoryConstat();
$categoryConstat->setDomain($domain);
$categoryConstat->setTypeConstat($type_constat);
$categoryConstat->setTitle($category);
$em->persist($categoryConstat);
$em->flush();
$menu="ameliorer";
$left_menu="configuration_terminologie";
return $this->redirectToRoute('configurer_terminologie');
}
/**
* @Route("/modal/config_terminologie/{id}", name="update_config_modal", methods={"GET","POST"})
*/
public function priseDecisionModal(Request $request, CategoryConstat $categoryConstat): Response
{
$domain_list = $this->getDoctrine()->getRepository(Domain::class)->findAll();
return $this->render('dysfonctionnementTemplate/configuration_terminologie/update_form.html.twig', [
'domain_list' => $domain_list,
'categoryConstat' => $categoryConstat
]);
}
/**
* @Route("/update/config_terminologie/{id}", name="update_config_terminologie", methods={"GET","POST"})
*/
public function updateConfigTerminologie(Request $request, CategoryConstat $categoryConstat): Response
{
$doctrine = $this->getDoctrine();
$entityManager = $this->getDoctrine()->getManager();
if (!$categoryConstat) {
throw $this->createNotFoundException(
'There are no category with the following id: ' . $categoryConstat->getId()
);
}
$domain_id = $request->request->get('domain');
$domain = $doctrine->getRepository(Domain::class)->find($domain_id);
$type_constat = $request->request->get('type_constat');
$category = $request->request->get('category');
$categoryConstat->setDomain($domain);
$categoryConstat->setTypeConstat($type_constat);
$categoryConstat->setTitle($category);
$entityManager->flush();
return $this->redirectToRoute('configurer_terminologie');
}
/**
* @Route("/delete/config_terminologie/{id}", name="delete_config_terminologie", methods={"GET","POST"})
*/
public function deleteConfigTerminologie(Request $request, CategoryConstat $categoryConstat): Response
{
$entityManager = $this->getDoctrine()->getManager();
if (!$categoryConstat) {
throw $this->createNotFoundException(
'There are no category with the following id: ' . $categoryConstat->getId()
);
}
$entityManager->remove($categoryConstat);
$entityManager->flush();
return new JsonResponse(["deleted" => 1]);
}
/**
* @Route("/modal/finRetourExp", name="finRetourExp_modal", methods={"GET"})
*/
public function ModalfinRetourExp(Request $request): Response
{
$constat_id =$request->query->get('constat','');
return $this->render('dysfonctionnementTemplate/analyse/finRetourExpModal.html.twig', [
'constat_id'=>$constat_id
]);
}
/**
* @Route("/modal/finRetourExp/save/{id}", name="save_fin_retour_exp", methods={"POST"})
*/
public function save_fin_retour_exp(Constat $constat)
{
$constat->setRetourExpClosed(true);
$constat->setEnableListener(false);
$em = $this->getDoctrine()->getManager();
$em->flush();
return new JsonResponse(['updated'=>1]);
}
}