<?php
namespace App\Controller\Remises;
use App\Entity\Articles\Categorie;
use App\Entity\Remises\Remise;
use App\Entity\Remises\RemiseCategorieArticle;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class RemiseCategorieArticleController extends AbstractController
{
/**
* @Route("/remise/checkbox/categorie/article", name="dtc_remise_categorie_article_checkbox")
*/
public function listerCategorieArticleCheckboxAction(Request $request, $remise = [], EntityManagerInterface $em)
{
$id = '';
$repo_article = $em->getRepository(Remise::class);
$repo_categorie = $em->getRepository(Categorie::class);
$repo_remise_article_categorie = $em->getRepository(RemiseCategorieArticle::class);
$id = $request->query->get('id');
$url = $this->generateUrl('dtc_remise_categorie_article_checkbox', []);
if ($request->query->get('remise') != '') {
$remise = $repo_article->find($request->query->get('remise'));
}
$categories = $repo_categorie->getCategorieEnfant($id);
$tabCategories = [];
foreach ($categories as $c) {
$c['checked'] = 0;
$c['totalSousCategorie'] = count($repo_categorie->findBy(["categorieParent" => $c]));
$c['selection'] = 0;
if (is_object($remise) and is_object($repo_remise_article_categorie->findOneBy(['remise' => $remise, 'categorie' => $c]))) {
$c['checked'] = 1;
}
$tabCategories[] = $c;
}
$categories = $tabCategories;
if ($request->isXmlHttpRequest()) {
$rendu = $this->renderView('Articles/Categorie/checkbox.html.twig', ['categories' => $categories, 'article' => $remise, 'url' => $url, 'objet' => 'remise']);
return new JsonResponse(['rendu' => $rendu]);
}
return $this->render('Articles/Categorie/checkbox.html.twig', ['categories' => $categories, 'article' => $remise, 'url' => $url, 'objet' => 'remise']);
}
}