<?php
namespace App\Controller\Vehicules;
use App\Entity\Articles\Article;
use App\Entity\Clients\Client;
use App\Entity\MarketPlace\ArticleMarketPlace;
use App\Entity\Vehicules\Application;
use App\Entity\Vehicules\Marque;
use App\Entity\Vehicules\Modele;
use App\Entity\Vehicules\Type;
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 JMS\Serializer\SerializationContext;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Validator\Validator\ValidatorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
class VehiculeController extends AbstractController
{
/**
* @Route("/vehicules/load/types/{id}", name="dtc_vehicule_ajax_type")
*/
public function listerTypesAction(Request $request, Modele $modele, EntityManagerInterface $em)
{
$get = $request->query->all();
$article = "";
$article_market_place = '';
$types_coches = [];
$commentaire_type = [];
$parametersTypes = ['modele' => $modele];
if (array_key_exists('article_id', $get)) {
$repo_article = $em->getRepository(Article::class);
$article_id = $get["article_id"];
$article = $repo_article->find($article_id);
//echo "toto ".$article_id;
if (is_object($article)) {
$repo_applications = $em->getRepository(Application::class);
$types_coches = $repo_applications->ApplicationTypesArticle($article, $modele->getId());
$commentaire_type = $repo_applications->commentaireApplicationTypesArticle($article, $modele->getId());
$parametersTypes['statut'] = 1;
}
}
if (array_key_exists('article_market_place_id', $get)) {
$article_market_place = $em->getRepository(ArticleMarketPlace::class)->find($get["article_market_place_id"]);
//echo "toto ".$article_id;
if (is_object($article_market_place)) {
$repo_applications = $em->getRepository(Application::class);
$types_coches = $repo_applications->ApplicationTypesArticleMarketPlace($article_market_place, $modele->getId());
$commentaire_type = $repo_applications->commentaireApplicationTypesArticleMarketPlace($article_market_place, $modele->getId());
$parametersTypes['statut'] = 1;
}
}
$types = $em->getRepository(Type::class)->findBy($parametersTypes, ["libelle" => "ASC"]);
$rendu = $this->renderView(
'Vehicules/Vehicule/template_ligne_type.html.twig',
[
"commentaire_type" => $commentaire_type,
"types" => $types,
"articleMarketPlace" => $article_market_place,
"article" => $article,
"types_coches" => $types_coches,
'type' => $request->query->get('type'),
]
);
return new JsonResponse(['rendu' => $rendu]);
}
/**
* @Route("/vehicules/load/modeles/{id}", name="dtc_vehicule_ajax_modele")
*/
public function listerModelesAction(Request $request, Marque $marque, EntityManagerInterface $em)
{
$get = $request->query->all();
$article_id = "";
$article = '';
$article_market_place = '';
$modeles_coches = [];
$parametersModeles = ['marque' => $marque];
if ( ! empty($get["article_id"])) {
$repo_article = $em->getRepository(Article::class);
$article_id = $get["article_id"];
$article = $repo_article->find($article_id);
if (is_object($article)) {
$repo_applications = $em->getRepository(Application::class);
$modeles_coches = $repo_applications->ApplicationModelesArticle($article, $marque->getId());
//print_r($modeles_coches);
$parametersModeles['statut'] = 1;
}
}
if ( ! empty($get["article_market_place_id"])) {
$article_market_place = $em->getRepository(ArticleMarketPlace::class)->find($get["article_market_place_id"]);
if (is_object($article_market_place)) {
$repo_applications = $em->getRepository(Application::class);
$modeles_coches = $repo_applications->ApplicationModelesArticleMarketPlace($article_market_place, $marque->getId());
//print_r($modeles_coches);
$parametersModeles['statut'] = 1;
}
}
$modeles = $em->getRepository(Modele::class)->findBy($parametersModeles, ["libelle" => "ASC"]);
$rendu = $this->renderView(
'Vehicules/Vehicule/template_ligne_modele.html.twig',
[
"modeles" => $modeles,
"articleMarketPlace" => $article_market_place,
"article" => $article,
"modeles_coches" => $modeles_coches,
'type' => $request->query->get('type'),
]
);
return new JsonResponse(['rendu' => $rendu]);
}
/**
* @Route("/vehicules", name="dtc_vehicule_liste")
*/
public function listerAction(Request $request, EntityManagerInterface $em)
{
$repo_marque = $em->getRepository(Marque::class);
$marques = $repo_marque->findBy([], ["ordre" => "ASC", "libelle" => "asc"]);
$parametres = $request->query->all();
//if(count($parametres) == 0) $parametres['statut'] = '1';
return $this->render('Vehicules/Vehicule/lister.html.twig', ["parametres" => $parametres]);
}
/**
* @Route("/vehicules-site-web", name="dtc_vehicule_site_web_liste")
*/
public function listerSiteWebAction(Request $request, EntityManagerInterface $em)
{
$repo_marque = $em->getRepository(Marque::class);
$marques = $repo_marque->findBy([], ["ordre" => "ASC", "libelle" => "asc"]);
$parametres = $request->query->all();
if (count($parametres) == 0) {
$parametres['statut'] = '1';
}
return $this->render('Vehicules/Vehicule/lister-site-web.html.twig', ["parametres" => $parametres]);
}
/**
* @Route("", name="")
*/
public function tableauAction(Request $request, Article $article = null, $type = "", $parametres = [], EntityManagerInterface $em)
{
//$parametres = $request->query->all();
//print_r($parametres);
$repo_marque = $em->getRepository(Marque::class);
if ($type == "application") {
$marques = $repo_marque->findBy(["statut" => "1"], ["ordre" => "ASC", "libelle" => "asc"]);
} else {
$donneesRecherche = [];
//if($type == "site-web") $donneesRecherche["siteWeb"]="1";
//else if($type == "atelier") $donneesRecherche["siteWeb"]="0";
if (is_array($parametres) && array_key_exists('statut', $parametres) && $parametres["statut"] == "1") {
$donneesRecherche["statut"] = "1";
}
$marques = $repo_marque->findBy($donneesRecherche, ["ordre" => "ASC", "libelle" => "asc"]);
}
$marques_coches = [];
if (is_object($article)) {
$repo_applications = $em->getRepository(Application::class);
$marques_coches = $repo_applications->ApplicationMarquesArticle($article);
}
//print_r($marques_coches);
return $this->render('Vehicules/Vehicule/tableau.html.twig', ["marques" => $marques, "article" => $article, "type" => $type, "marques_coches" => $marques_coches]);
}
/**
* @Route("", name="")
*/
public function tableauArticleMarketPlaceAction(Request $request, ArticleMarketPlace $articleMarketPlace = null, $type = "", $parametres = [],
EntityManagerInterface $em
) {
//$parametres = $request->query->all();
//print_r($parametres);
$repo_marque = $em->getRepository(Marque::class);
if ($type == "application") {
$marques = $repo_marque->findBy(["statut" => "1"], ["ordre" => "ASC", "libelle" => "asc"]);
} else {
$donneesRecherche = [];
//if($type == "site-web") $donneesRecherche["siteWeb"]="1";
//else if($type == "atelier") $donneesRecherche["siteWeb"]="0";
if (is_array($parametres) && array_key_exists('statut', $parametres) && $parametres["statut"] == "1") {
$donneesRecherche["statut"] = "1";
}
$marques = $repo_marque->findBy($donneesRecherche, ["ordre" => "ASC", "libelle" => "asc"]);
}
$marques_coches = [];
if (is_object($articleMarketPlace)) {
$repo_applications = $em->getRepository(Application::class);
$marques_coches = $repo_applications->ApplicationMarquesArticleMarketPlace($articleMarketPlace);
}
//print_r($marques_coches);
return $this->render(
'Vehicules/Vehicule/tableau-article-market-place.html.twig',
["marques" => $marques, "articleMarketPlace" => $articleMarketPlace, "type" => $type, "marques_coches" => $marques_coches]
);
}
/**
* @Route("/client/tableau-vehicule/charger-tableau/{id}", name="dtc_vehicule_charger_tableau")
*/
public function chargerTableauAction(Request $request, Client $client)
{
$rendu = $this->renderView('Vehicules/VehiculeClient/charger_tableau.html.twig', ["client" => $client]);
return new JsonResponse(['rendu' => $rendu]);
}
}