src/Controller/Configuration/SiegeController.php line 159

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Configuration;
  3. use App\Entity\Configuration\Siege;
  4. use App\Entity\Configuration\CompanyEntity;
  5. use App\Form\Configuration\SiegeType;
  6. use App\Repository\Configuration\SiegeRepository;
  7. use App\Repository\Configuration\CompanyEntityRepository;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\File\Exception\FileException;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\HttpFoundation\JsonResponse;
  13. use Symfony\Component\Routing\Annotation\Route;
  14. /**
  15.  * @Route("/configuration/siege")
  16.  */
  17. class SiegeController extends AbstractController
  18. {
  19.     /**
  20.      * @Route("/", name="app_configuration_siege_index", methods={"GET"})
  21.      */
  22.     public function index(SiegeRepository $siegeRepository): Response
  23.     {
  24.         $left_menu="interface";
  25.         return $this->render('configuration/siege/index.html.twig', [
  26.             'sieges' => $siegeRepository->findAll(),
  27.             'left_menu'=>$left_menu
  28.         ]);
  29.     }
  30.     /**
  31.      * @Route("/new", name="app_configuration_siege_new", methods={"GET", "POST"})
  32.      */
  33.     public function new(Request $requestSiegeRepository $siegeRepository): Response
  34.     {
  35.         // dd($_FILES);
  36.         $siege $siegeRepository->find('1');
  37.         $form $this->createForm(SiegeType::class, $siege);
  38.         $form->handleRequest($request);
  39.         if ($form->isSubmitted() ) {
  40.             $logo $request->files->get('logo');
  41.             if ($logo) {
  42.                 $generatedfileName 'logo.'.$logo->guessExtension();
  43.                 $uploadDir $this->getParameter('kernel.project_dir').'/public/siege';
  44.                 if (!file_exists($uploadDir) && !is_dir($uploadDir)) {
  45.                     mkdir($uploadDir0777true);
  46.                 }
  47.     
  48.                 try {
  49.                     $logo->move(
  50.                         $uploadDir,
  51.                         $generatedfileName
  52.                     );
  53.                 } catch (FileException $e) {
  54.                 }
  55.     
  56.                 $siege->setlogo('/siege/'.$generatedfileName);
  57.             }
  58.             $isGroup $request->request->get('isGroup');
  59.             $siege->setIsGroup(boolval($isGroup));
  60.             $siegeRepository->add($siege);
  61.         }
  62.         $left_menu="interface";
  63.         return $this->renderForm('configuration/siege/new.html.twig', [
  64.             'siege' => $siege,
  65.             'form' => $form,
  66.             'left_menu' => $left_menu
  67.         ]);
  68.     }
  69.     /**
  70.      * @Route("/{id}", name="app_configuration_siege_show", methods={"GET"})
  71.      */
  72.     public function show(Siege $siege): Response
  73.     {
  74.         return $this->render('configuration/siege/show.html.twig', [
  75.             'siege' => $siege,
  76.         ]);
  77.     }
  78.     /**
  79.      * @Route("/{id}/edit", name="app_configuration_siege_edit", methods={"GET", "POST"})
  80.      */
  81.     public function edit(Request $requestSiege $siegeSiegeRepository $siegeRepository): Response
  82.     {
  83.         $form $this->createForm(SiegeType::class, $siege);
  84.         $form->handleRequest($request);
  85.         if ($form->isSubmitted() && $form->isValid()) {
  86.             $siegeRepository->add($siege);
  87.             return $this->redirectToRoute('app_configuration_siege_index', [], Response::HTTP_SEE_OTHER);
  88.         }
  89.         return $this->renderForm('configuration/siege/edit.html.twig', [
  90.             'siege' => $siege,
  91.             'form' => $form,
  92.         ]);
  93.     }
  94.     /**
  95.      * @Route("/{id}", name="app_configuration_siege_delete", methods={"POST"})
  96.      */
  97.     public function delete(Request $requestSiege $siegeSiegeRepository $siegeRepository): Response
  98.     {
  99.         if ($this->isCsrfTokenValid('delete'.$siege->getId(), $request->request->get('_token'))) {
  100.             $siegeRepository->remove($siege);
  101.         }
  102.         return $this->redirectToRoute('app_configuration_siege_index', [], Response::HTTP_SEE_OTHER);
  103.     }
  104.     /**
  105.      * @Route("/entite/save", name="app_configuration_siege_entite_save", methods={"POST"})
  106.      */
  107.     public function saveEntite(Request $requestCompanyEntityRepository $entityRepository): JsonResponse
  108.     {
  109.         $data json_decode($request->getContent(), true);
  110.         
  111.         $entity = new CompanyEntity();
  112.         $entity->setNom($data['nom']);
  113.         $entity->setAdresse($data['adresse']);
  114.         $entity->setComplements($data['complements']);
  115.         $entity->setVille($data['ville']);
  116.         $entity->setCodePostal($data['code_postal']);
  117.         $entity->setPays($data['pays']);
  118.         $entity->setTelephone($data['telephone']);
  119.         
  120.         try {
  121.             $entityRepository->add($entity);
  122.             return new JsonResponse([
  123.                 'success' => true,
  124.                 'message' => 'Entité créée avec succès',
  125.                 'id' => $entity->getId()
  126.             ]);
  127.         } catch (\Exception $e) {
  128.             return new JsonResponse([
  129.                 'success' => false,
  130.                 'message' => 'Erreur lors de la création de l\'entité: ' $e->getMessage()
  131.             ], 500);
  132.         }
  133.     }
  134.     /**
  135.      * @Route("/entite/modal", name="app_configuration_siege_entite", methods={"GET"})
  136.      */
  137.     public function entite_modal():Response
  138.     {
  139.         return $this->render('configuration/siege/entite/form.html.twig');
  140.     }
  141.     /**
  142.      * @Route("/entite/list", name="app_configuration_siege_entite_list", methods={"GET"})
  143.      */
  144.     public function listEntites(CompanyEntityRepository $entityRepository): JsonResponse
  145.     {
  146.         $entities $entityRepository->findAll();
  147.         $data = ['data' => []];
  148.         
  149.         foreach ($entities as $entity) {
  150.             $edit_btn "<a href='/configuration/siege/entite/edit/".$entity->getId()."' data-toggle='modal' data-target='#myModal' class='edit_btn'><i class='fa fa-pencil fa-lg'></i></a>";
  151.             $delete_btn "<a class='delete_btn' onclick='deleteEntity(".$entity->getId().")' title='Supprimer'><i class='fa fa-trash-o fa-lg'></i></a>";
  152.             
  153.             $data['data'][] = [
  154.                 'nom' => $entity->getNom(),
  155.                 'adresse' => $entity->getAdresse(),
  156.                 'complements' => $entity->getComplements(),
  157.                 'ville' => $entity->getVille(),
  158.                 'code_postal' => $entity->getCodePostal(),
  159.                 'pays' => $entity->getPays(),
  160.                 'telephone' => $entity->getTelephone(),
  161.                 'actions' => $edit_btn ' ' $delete_btn
  162.             ];
  163.         }
  164.         
  165.         return new JsonResponse($data);
  166.     }
  167.     /**
  168.      * @Route("/entite/delete/{id}", name="app_configuration_siege_entite_delete", methods={"POST"})
  169.      */
  170.     public function deleteEntite(CompanyEntity $entityCompanyEntityRepository $entityRepository): Response
  171.     {
  172.         try {
  173.             $entityRepository->remove($entity);
  174.             return $this->redirectToRoute('app_configuration_siege_new');
  175.         } catch (\Exception $e) {
  176.             return new JsonResponse(['error' => 'Erreur lors de la suppression de l\'entité'], 500);
  177.         }
  178.     }
  179.     /**
  180.      * @Route("/entite/edit/{id}", name="app_configuration_siege_entite_edit", methods={"GET", "POST"})
  181.      */
  182.     public function editEntite(Request $requestCompanyEntity $entity): Response
  183.     {
  184.         return $this->render('configuration/siege/entite/form.html.twig', [
  185.             'entity' => $entity,
  186.             'mode' => 'edit'
  187.         ]);
  188.     }
  189.     /**
  190.      * @Route("/entite/update/{id}", name="app_configuration_siege_entite_update", methods={"POST"})
  191.      */
  192.     public function updateEntite(Request $requestCompanyEntity $entityCompanyEntityRepository $entityRepository): JsonResponse
  193.     {
  194.         $data json_decode($request->getContent(), true);
  195.         
  196.         $entity->setNom($data['nom']);
  197.         $entity->setAdresse($data['adresse']);
  198.         $entity->setComplements($data['complements']);
  199.         $entity->setVille($data['ville']);
  200.         $entity->setCodePostal($data['code_postal']);
  201.         $entity->setPays($data['pays']);
  202.         $entity->setTelephone($data['telephone']);
  203.         
  204.         try {
  205.             $entityRepository->add($entity);
  206.             return new JsonResponse([
  207.                 'success' => true,
  208.                 'message' => 'Entité mise à jour avec succès'
  209.             ]);
  210.         } catch (\Exception $e) {
  211.             return new JsonResponse([
  212.                 'success' => false,
  213.                 'message' => 'Erreur lors de la mise à jour de l\'entité: ' $e->getMessage()
  214.             ], 500);
  215.         }
  216.     }
  217. }