src/Controller/Remises/RemiseCategorieClientController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Remises;
  3. use App\Entity\Clients\Categorie;
  4. use App\Entity\Remises\Remise;
  5. use App\Entity\Remises\RemiseCategorieClient;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. class RemiseCategorieClientController extends AbstractController
  12. {
  13.     /**
  14.      * @Route("/remise/checkbox/categorie/client", name="dtc_remise_categorie_client_checkbox")
  15.      */
  16.     public function listerCategorieClientCheckboxAction(Request $request$remise = [], EntityManagerInterface $em)
  17.     {
  18.         $id                           '';
  19.         $repo_remise                  $em->getRepository(Remise::class);
  20.         $repo_categorie               $em->getRepository(Categorie::class);
  21.         $repo_remise_client_categorie $em->getRepository(RemiseCategorieClient::class);
  22.         $id                           $request->query->get('id');
  23.         $url                          $this->generateUrl('dtc_remise_categorie_client_checkbox', []);
  24.         if ($request->query->get('remise') != '') {
  25.             $remise $repo_remise->find($request->query->get('remise'));
  26.         }
  27.         $categories $repo_categorie->getCategorieEnfant($id);
  28.         $tabCategories = [];
  29.         foreach ($categories as $c) {
  30.             $c['checked']            = 0;
  31.             $c['totalSousCategorie'] = count($repo_categorie->findBy(["categorieParent" => $c]));
  32.             $c['selection']          = 0;
  33.             if (is_object($remise) and is_object($repo_remise_client_categorie->findOneBy(['remise' => $remise'categorie' => $c]))) {
  34.                 $c['checked'] = 1;
  35.             }
  36.             $tabCategories[] = $c;
  37.         }
  38.         $categories $tabCategories;
  39.         if ($request->isXmlHttpRequest()) {
  40.             $rendu $this->renderView(
  41.                 'Clients/Categorie/checkbox.html.twig',
  42.                 ['categories' => $categories'remise' => $remise'url' => $url'objet' => 'remise''name' => 'categoriesclient']
  43.             );
  44.             return new JsonResponse(['rendu' => $rendu]);
  45.         }
  46.         return $this->render('Clients/Categorie/checkbox.html.twig', ['categories' => $categories'remise' => $remise'url' => $url'objet' => 'remise''name' => 'categoriesclient']
  47.         );
  48.     }
  49.     /**
  50.      * @Route("/remise/categorie-client/edit/{remise}/{categorie}", name="dtc_remise_categorie_client_edit")
  51.      */
  52.     public function editRemiseCategorieClientAction(Request $requestRemise $remiseCategorie $categorieEntityManagerInterface $em)
  53.     {
  54.         $repo_remise                  $em->getRepository(Remise::class);
  55.         $repo_categorie_client        $em->getRepository(Categorie::class);
  56.         $repo_remise_categorie_client $em->getRepository(RemiseCategorieClient::class);
  57.         $remise_categorie $repo_remise_categorie_client->findOneBy(['remise' => $remise"categorie" => $categorie]);
  58.         if (is_object($remise_categorie)) {
  59.             $em->remove($remise_categorie);
  60.         } else {
  61.             $remiseCategorieClient = new RemiseCategorieClient();
  62.             $remiseCategorieClient->setRemise($remise);
  63.             $remiseCategorieClient->setCategorie($categorie);
  64.             $em->persist($remiseCategorieClient);
  65.         }
  66.         $em->flush();
  67.         $rendu 1;
  68.         return new JsonResponse(['rendu' => $rendu]);
  69.     }
  70. }