src/Controller/Api/Prive/ApiCodenafController.php line 113

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api\Prive;
  3. use App\Entity\Codenaf;
  4. use App\Entity\Prospect;
  5. use Symfony\Component\HttpFoundation\JsonResponse;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. /**
  9.  * @Route("/codenaf")
  10.  */
  11. class ApiCodenafController extends ApiController
  12. {
  13.     /**
  14.      * @Route("/{id}", name="api_Codenaf_getById", methods={"GET"})
  15.      * @param int $id
  16.      * @return JsonResponse
  17.      */
  18.     public function getById(int $id)
  19.     {
  20.         if ( $id 0) {
  21.             $codenaf $this->em->getRepository(Codenaf::class)->find($id);
  22.             if ($codenaf) {
  23.                 return $this->apiOk($codenaf);
  24.             }
  25.         }
  26.         return $this->apiKo("Code NAF non trouvé !!");
  27.     }
  28.     /**
  29.      * @Route("/{id}", name="api_Codenaf_delete", methods={"DELETE"})
  30.      * @param int $id
  31.      * @return JsonResponse
  32.      */
  33.     public function delete(int $id)
  34.     {
  35.         if ($id 0) {
  36.             /** @var Codenaf $codenaf */
  37.             $codenaf $this->em->getRepository(Codenaf::class)->find($id);
  38.             // 1 - Chercher si le codenaf n'est pas liee à un prospect
  39.             $prospect $this->em->getRepository(Prospect::class)->findBy(["codenaf" => $id]);
  40.             if($prospect){
  41.                 // Suppression Logique
  42.                 $codenaf->setActive(2);
  43.                 $this->em->persist($codenaf);
  44.                 $this->em->flush();
  45.                 return $this->apiOk($id);
  46.             }else
  47.             {
  48.                 try {
  49.                     return $this->removeElement($codenaf);
  50.                 } catch (\Exception $e) {
  51.                     return $this->apiKo($e->getMessage());
  52.                 }
  53.             }
  54.         }
  55.         return $this->apiKo("Code NAF non trouvé !!");
  56.     }
  57.     /**
  58.      * @Route("/", name="api_Codenaf_save", methods={"POST"})
  59.      * @param Request $request
  60.      * @return JsonResponse
  61.      */
  62.     public function save(Request $request)
  63.     {
  64.         $data json_decode($request->getContent(), true);
  65.         $codenaf = new Codenaf();
  66.         if (isset($data['id'])) {
  67.             $codenaf $this->em->getRepository(Codenaf::class)->find($data['id']);
  68.         }
  69.         if (isset($data['libelle'])) {
  70.             $codenaf->setLibelle($data['libelle']);
  71.         }
  72.         if (isset($data['active'])) {
  73.             $codenaf->setActive($data['active']);
  74.         }
  75.         if (isset($data['code'])) {
  76.             $codenaf->setCode($data['code']);
  77.         }
  78.         try {
  79.             return $this->saveElement($codenaf);
  80.         } catch (\Exception $e) {
  81.             return $this->apiKo($e->getMessage());
  82.         }
  83.     }
  84.     /**
  85.      * @Route("/find", name="api_Codenaf_find", methods={"POST"})
  86.      * @param Request $request
  87.      * @return JsonResponse
  88.      */
  89.     public function find(Request $request)
  90.     {
  91.         $data json_decode($request->getContent(), true);
  92.         $data['filter']['and']['codenaf.active'] = ' <> 2 '// ne pas affichier les elements supprimé logiquement
  93.         $sql "
  94.             SELECT codenaf 
  95.             FROM " Codenaf::class . " codenaf
  96.         ";
  97.         return $this->findElementsWithJoin($sql$data);
  98.     }
  99. }