<?php
namespace App\Controller;
use App\Entity\Users;
use App\Form\UsersType;
use App\Entity\DevisSend;
use App\Entity\DevisTemp;
use App\Repository\FaqRepository;
use App\Repository\GuideRepository;
use App\Repository\PagesRepository;
use App\Repository\AgenceRepository;
use App\Repository\CouleursRepository;
use App\Repository\ServicesRepository;
use App\Repository\VehiculeRepository;
use App\Repository\DefoptionRepository;
use App\Repository\DevisSendRepository;
use App\Repository\DevisTempRepository;
use App\Repository\GarantiesRepository;
use App\Repository\LivraisonRepository;
use App\Repository\PersonnelRepository;
use App\Repository\ReductionRepository;
use App\Repository\OptionveloRepository;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\CatservicesRepository;
use App\Repository\GrapesPagesRepository;
use App\Repository\LocationLockRepository;
use App\Repository\CaractVehiculeRepository;
use App\Repository\OptionsdefautsRepository;
use App\Repository\CategorieOptionRepository;
use Symfony\Component\Serializer\Serializer;
use App\Repository\VersionVehiculesRepository;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use App\Repository\CategorieVehiculeRepository;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\Security\Core\Encoder\UserPasswordEncoderInterface;
// Include Dompdf required namespaces
use Dompdf\Dompdf;
use Dompdf\Options;
/* function check_array($string, $array){
$trans = array("é" => "e", "é" => "e", "á" => "a", "á" => "a", "í" => "i","í"=>"i", "ó"=>"o", "ó" => "o", "ú" => "u", "ú"=>"u","ö" => "u", "ü"=>"u");
$realString = strtr($string,$trans);
foreach($array as $val){
$realVal = strtr($val,$trans);
if(strcasecmp( $realVal, $realString ) == 0){
return true;
}
}
return false;
} */
class HomeController extends AbstractController
{
/**
* @Route("/produit/{slug}/vente/", name="ficheProduit_vente")
*
* @param [type] $slug
* @param VehiculeRepository $VehiculeRepository
* @param Request $request
* @param CaractVehiculeRepository $caractVehiculeRepository
* @param OptionveloRepository $optionveloRepository
* @param LocationLockRepository $LocationLockRepository
* @param FaqRepository $FaqRepository
* @param DevisTempRepository $DevisTempRepository
* @param EntityManagerInterface $manager
* @param ReductionRepository $ReductionRepository
* @param \Swift_Mailer $mailer
* @param AgenceRepository $AgenceRepository
* @return void
*/
public function ficheProduit_vente($slug, VehiculeRepository $VehiculeRepository, Request $request, CaractVehiculeRepository $caractVehiculeRepository, OptionveloRepository $optionveloRepository, LocationLockRepository $LocationLockRepository, FaqRepository $FaqRepository, DevisTempRepository $DevisTempRepository, EntityManagerInterface $manager, ReductionRepository $ReductionRepository, \Swift_Mailer $mailer, AgenceRepository $AgenceRepository)
{
// validation_formulaire
$devisvalid = 'devisvalid_hide';
$vehicule = $VehiculeRepository->findOneBy(['url' => $slug]);
if (!$vehicule) {
return $this->redirectToRoute('home');
}
$catact = $vehicule->getCat();
if (!in_array("Achat", $catact)) {
return $this->redirectToRoute('home');
}
$agencename = '';
$user = $this->getUser();
$devisval = false;
if ($user != null) {
if ($request->cookies->get('validevis_page_' . $vehicule->getId()) == 'lskjghslgjhs') {
$tarmail = $user->getEmail();
// dd( $request->cookies->get('devis') );
//recup n° devis et le devis
$devis = $request->cookies->get('devis_page_' . $vehicule->getId());
$selectvehics = $DevisTempRepository->findBy(
['NoDevis' => $devis]
);
if ($selectvehics) {
$selectvehic = $selectvehics[0];
// basculer le devis dans le devis a valider
$DevisSend = new DevisSend();
$DevisSend->setNoDevis($devis);
$DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateDeb()));
$DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateFin()));
$DevisSend->setData($selectvehic->getData());
$DevisSend->setDataLivraison($selectvehic->getDataLivraison());
$DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
$DevisSend->setDataReduc($selectvehic->getDataReduc());
$DevisSend->setServices($selectvehic->getServices());
$DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d', date("Y-n-j")));
$email = '';
$DevisSend->setIduser($user->getId());
$DevisSend->setUseremail($user->getEmail());
$email = $user->getEmail();
$DevisSend->setUsertype($user->getType());
if ($user->getType() == 'Particulier') {
$DevisSend->setUsernom($user->getNom() . ' ' . $user->getPrenom());
} else if ($user->getType() == 'Association') {
$DevisSend->setUsernom($user->getDenomination());
} else {
$DevisSend->setUsernom($user->getRaisonsocial());
}
$DevisSend->setUseradresse($user->getAdresse());
$DevisSend->setUsercpville($user->getCP() . ' ' . $user->getVille());
$datadec = \json_decode($DevisSend->getData());
$agenc = '';
if (isset($datadec[0])) {
if (isset($datadec[0]->agence)) {
$agenc = $datadec[0]->agence;
}
}
$DevisSend->setAgence($agenc);
$Agences = $AgenceRepository->findBy(
array(),
array('pos' => 'ASC')
);
foreach ($Agences as $Agence) {
if ($Agence->getId() == $agenc) {
$agencename = $Agence->getNom();
}
}
$manager->persist($DevisSend);
$manager->flush();
$Data = json_decode($selectvehic->getData());
$DataLivraison = json_decode($selectvehic->getDataLivraison());
for ($i = 0; $i < count($Data); $i++) {
if ($Data[$i]->service == 'Location') {
$datedeb = explode("-", $Data[$i]->datedeb);
$formdatedeb = $datedeb[2] . '/' . $datedeb[1] . '/' . $datedeb[0];
$Data[$i]->datedeb = $formdatedeb;
$datefin = explode("-", $Data[$i]->datefin);
$formdatefin = $datefin[2] . '/' . $datefin[1] . '/' . $datefin[0];
$Data[$i]->datefin = $formdatefin;
}
}
$DataPersonnel = json_decode($selectvehic->getDataPersonnel());
$DataReduc = json_decode($selectvehic->getDataReduc());
$services = json_decode($selectvehic->getServices());
$today = date("j / n / Y");
$nextmonth = date("j / n / Y", strtotime("+1 month"));
$liste_reduc = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
/* // Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'reductionliste' => $liste_reduc
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser (force download)
$dompdf->stream("mypdf.pdf", [
"Attachment" => true
]);
*/
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'DevisSend' => $DevisSend,
'services' => $services,
'reductionliste' => $liste_reduc,
'agencename' => $agencename
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Store PDF Binary Data
$output = $dompdf->output();
// In this case, we want to write the file in the public directory
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/pdfgen';
// e.g /var/www/project/public/mypdf.pdf
$pdfFilepath = $publicDirectory . '/devis_' . $devis . '.pdf';
// Write file to the desired path
file_put_contents($pdfFilepath, $output);
// Send some text response
// return new Response("The PDF file has been succesfully generated !");
// Envoi de l'email avec le devis
$message = (new \Swift_Message('Devis Trip\'UP'))
->setFrom('contact@tripup.fr')
->setTo($email)
->setCc('contact@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/envoidevis.html.twig'
),
'text/html'
)
// attachement du fichier joins
->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
// ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/envoidevis.txt.twig'
),
'text/plain'
)
;
$mailer->send($message);
//find de l'envoi
$devisval = true;
} else {
$devisval = true;
}
$devisvalid = 'devisvalid';
}
}
$caractlistesIds = [];
foreach (json_decode($vehicule->getCaractliste()) ?? [] as $key => $value) {
if (trim($value) != "") {
$caractlistesIds[] = $key;
}
}
// $caractlistes = $caractVehiculeRepository->findByIdsOrderByPositionAsc($caractlistesIds);
$caractlistes = $caractVehiculeRepository->findBy(
array('id' => $caractlistesIds),
array('position' => 'ASC')
);
$caractlistesArray = [];
foreach ($caractlistes as $caractliste) {
if (in_array($caractliste->getId(), $caractlistesIds)) {
$caractlistesArray[] = [
"caractvehicule" => $caractliste,
"value" => (json_decode($vehicule->getCaractliste(), true) ?? [])[$caractliste->getId()],
];
}
}
$datalocs = json_decode($vehicule->getData());
$datalocsArray = [];
foreach ($datalocs ?? [] as $key => $value) {
if (isset($value->id, $value->checked)) {
$optionvelo = $optionveloRepository->findOneBy(['id' => $value->id]);
if ($optionvelo) {
$value->optionvelo = $optionvelo;
$datalocsArray[] = $value;
}
}
}
$listacceq = [null];
$listacc = [null];
foreach ($datalocsArray as $datal) {
if ($datal->optionvelo->getCatOption()->getName() == 'Covering (customisation)' || $datal->optionvelo->getCatOption()->getName() == 'CAO par nos soins' || $datal->optionvelo->getCatOption()->getName() == 'Création de la CAO par nos soins') {
if (!in_array($datal->optionvelo->getNomAccord(), $listacc)) {
$listacc[] = $datal->optionvelo->getNomAccord();
}
} else {
if (!in_array($datal->optionvelo->getNomAccord(), $listacceq)) {
$listacceq[] = $datal->optionvelo->getNomAccord();
}
}
}
$datalocsArray_mod = [];
foreach ($datalocsArray as $datal) {
if (array_search($datal->optionvelo->getNomAccord(), $listacc) != false) {
$key = array_search($datal->optionvelo->getNomAccord(), $listacc);
$datalocsArray_mod[$key][] = $datal;
} else if (array_search($datal->optionvelo->getNomAccord(), $listacceq) != false) {
$key = array_search($datal->optionvelo->getNomAccord(), $listacceq);
$datalocsArray_mod[$key][] = $datal;
} else {
$key = array_search($datal->optionvelo->getNomAccord(), $listacc);
$datalocsArray_mod[$key][] = $datal;
}
}
$Imagesjson = json_decode($vehicule->getImages());
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$urlvente = '';
$catve = $vehicule->getCat();
if (in_array('Location', $catve, true)) {
$urlvente = $this->generateUrl(
'fiche_produit',
array('slug' => $request->get('slug')),
UrlGeneratorInterface::ABSOLUTE_URL
);
}
$vehiculeconcerne = $vehicule->getId();
$Faqs = [];
/* $Faqs = $FaqRepository->createQueryBuilder('v')
->where( 'v.Vehiculeconcerne LIKE :vehiculeconcerne')
->setParameter('vehiculeconcerne', '%'.$vehiculeconcerne.'%')
->orderBy('v.Ordre', 'DESC')
->getQuery()
->getResult(); */
return $this->render('home/fiche_vehicule_vente.html.twig', compact('vehicule', 'caractlistesArray', 'datalocsArray_mod', 'listacceq', 'listacc', 'devisvalid', 'urlvente', 'Imagesjson', 'Faqs'));
}
/**
* @Route("/produit/{slug}", name="fiche_produit")
*
* @param [type] $slug
* @param VehiculeRepository $VehiculeRepository
* @param Request $request
* @param CaractVehiculeRepository $caractVehiculeRepository
* @param OptionveloRepository $optionveloRepository
* @param LocationLockRepository $LocationLockRepository
* @param FaqRepository $FaqRepository
* @param DevisTempRepository $DevisTempRepository
* @param EntityManagerInterface $manager
* @param ReductionRepository $ReductionRepository
* @param \Swift_Mailer $mailer
* @param VersionVehiculesRepository $VersionVehiculesRepository
* @return void
*/
public function ficheProduit($slug, VehiculeRepository $VehiculeRepository, Request $request, CaractVehiculeRepository $caractVehiculeRepository, OptionveloRepository $optionveloRepository, LocationLockRepository $LocationLockRepository, FaqRepository $FaqRepository, DevisTempRepository $DevisTempRepository, EntityManagerInterface $manager, ReductionRepository $ReductionRepository, \Swift_Mailer $mailer, VersionVehiculesRepository $VersionVehiculesRepository, AgenceRepository $AgenceRepository)
{
// validation_formulaire
$devisvalid = 'devisvalid_hide';
$vehicule = $VehiculeRepository->findOneBy(['url' => $slug]);
if (!$vehicule) {
return $this->redirectToRoute('home');
}
$user = $this->getUser();
$devisval = false;
if ($user != null) {
if ($request->cookies->get('validevis_page_' . $vehicule->getId()) == 'lskjghslgjhs') {
$tarmail = $user->getEmail();
// dd( $request->cookies->get('devis') );
//recup n° devis et le devis
$devis = $request->cookies->get('devis_page_' . $vehicule->getId());
$selectvehics = $DevisTempRepository->findBy(
['NoDevis' => $devis]
);
if ($selectvehics) {
$selectvehic = $selectvehics[0];
// basculer le devis dans le devis a valider
$DevisSend = new DevisSend();
$DevisSend->setNoDevis($devis);
$DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateDeb()));
$DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateFin()));
$DevisSend->setData($selectvehic->getData());
$DevisSend->setDataLivraison($selectvehic->getDataLivraison());
$DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
$DevisSend->setDataReduc($selectvehic->getDataReduc());
$DevisSend->setServices($selectvehic->getServices());
$DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d', date("Y-n-j")));
$email = '';
$DevisSend->setIduser($user->getId());
$DevisSend->setUseremail($user->getEmail());
$email = $user->getEmail();
$DevisSend->setUsertype($user->getType());
if ($user->getType() == 'Particulier') {
$DevisSend->setUsernom($user->getNom() . ' ' . $user->getPrenom());
} else if ($user->getType() == 'Association') {
$DevisSend->setUsernom($user->getDenomination());
} else {
$DevisSend->setUsernom($user->getRaisonsocial());
}
$DevisSend->setUseradresse($user->getAdresse());
$DevisSend->setUsercpville($user->getCP() . ' ' . $user->getVille());
$datadec = \json_decode($DevisSend->getData());
$agenc = '';
if (isset($datadec[0])) {
if (isset($datadec[0]->agence)) {
$agenc = $datadec[0]->agence;
}
}
$DevisSend->setAgence($agenc);
$agencename = '';
$Agences = $AgenceRepository->findBy(
array(),
array('pos' => 'ASC')
);
foreach ($Agences as $Agence) {
if ($Agence->getId() == $agenc) {
$agencename = $Agence->getNom();
}
}
$manager->persist($DevisSend);
$manager->flush();
$Data = json_decode($selectvehic->getData());
$DataLivraison = json_decode($selectvehic->getDataLivraison());
for ($i = 0; $i < count($Data); $i++) {
if ($Data[$i]->service == 'Location') {
$datedeb = explode("-", $Data[$i]->datedeb);
$formdatedeb = $datedeb[2] . '/' . $datedeb[1] . '/' . $datedeb[0];
$Data[$i]->datedeb = $formdatedeb;
$datefin = explode("-", $Data[$i]->datefin);
$formdatefin = $datefin[2] . '/' . $datefin[1] . '/' . $datefin[0];
$Data[$i]->datefin = $formdatefin;
}
}
$DataPersonnel = json_decode($selectvehic->getDataPersonnel());
$DataReduc = json_decode($selectvehic->getDataReduc());
$services = json_decode($selectvehic->getServices());
$today = date("j / n / Y");
$nextmonth = date("j / n / Y", strtotime("+1 month"));
$liste_reduc = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
/* // Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'reductionliste' => $liste_reduc
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser (force download)
$dompdf->stream("mypdf.pdf", [
"Attachment" => true
]);
*/
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'DevisSend' => $DevisSend,
'services' => $services,
'reductionliste' => $liste_reduc,
'agencename' => $agencename
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Store PDF Binary Data
$output = $dompdf->output();
// In this case, we want to write the file in the public directory
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/pdfgen';
// e.g /var/www/project/public/mypdf.pdf
$pdfFilepath = $publicDirectory . '/devis_' . $devis . '.pdf';
// Write file to the desired path
file_put_contents($pdfFilepath, $output);
// Send some text response
// return new Response("The PDF file has been succesfully generated !");
// Envoi de l'email avec le devis
$message = (new \Swift_Message('Devis Trip\'UP'))
->setFrom('contact@tripup.fr')
->setTo($email)
->setCc('contact@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/envoidevis.html.twig'
),
'text/html'
)
// attachement du fichier joins
->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
// ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/envoidevis.txt.twig'
),
'text/plain'
)
;
$mailer->send($message);
//find de l'envoi
$devisval = true;
} else {
$devisval = true;
}
$devisvalid = 'devisvalid';
}
}
$caractlistesIds = [];
foreach (json_decode($vehicule->getCaractliste()) ?? [] as $key => $value) {
if (trim($value) != "") {
$caractlistesIds[] = $key;
}
}
// $caractlistes = $caractVehiculeRepository->findByIdsOrderByPositionAsc($caractlistesIds);
$caractlistes = $caractVehiculeRepository->findBy(
array('id' => $caractlistesIds),
array('position' => 'ASC')
);
$caractlistesArray = [];
foreach ($caractlistes as $caractliste) {
if (in_array($caractliste->getId(), $caractlistesIds)) {
$caractlistesArray[] = [
"caractvehicule" => $caractliste,
"value" => (json_decode($vehicule->getCaractliste(), true) ?? [])[$caractliste->getId()],
];
}
}
$datalocs = json_decode($vehicule->getDataLoc());
$datalocsArray = [];
foreach ($datalocs ?? [] as $key => $value) {
if (isset($value->id, $value->checked)) {
$optionvelo = $optionveloRepository->findOneBy(['id' => $value->id]);
if ($optionvelo) {
$value->optionvelo = $optionvelo;
$datalocsArray[] = $value;
}
}
}
$listacceq = [null];
$listacc = [null];
foreach ($datalocsArray as $datal) {
if (!in_array($datal->optionvelo->getNomAccord(), $listacc)) {
if ($datal->optionvelo->getCatOption()->getName() == 'Covering (customisation)' || $datal->optionvelo->getCatOption()->getName() == 'CAO par nos soins' || $datal->optionvelo->getCatOption()->getName() == 'Création de la CAO par nos soins') {
$listacc[] = $datal->optionvelo->getNomAccord();
} else {
if (!in_array($datal->optionvelo->getNomAccord(), $listacceq)) {
$listacceq[] = $datal->optionvelo->getNomAccord();
}
}
}
}
// dd($listacceq);
$datalocsArray_mod = [];
foreach ($datalocsArray as $datal) {
if (array_search($datal->optionvelo->getNomAccord(), $listacc) != false) {
$key = array_search($datal->optionvelo->getNomAccord(), $listacc);
$datalocsArray_mod[$key][] = $datal;
} else if (array_search($datal->optionvelo->getNomAccord(), $listacceq) != false) {
$key = array_search($datal->optionvelo->getNomAccord(), $listacceq);
$datalocsArray_mod[$key][] = $datal;
} else {
$key = array_search($datal->optionvelo->getNomAccord(), $listacc);
$datalocsArray_mod[$key][] = $datal;
}
}
$Imagesjson = json_decode($vehicule->getImages());
// dd( $datalocsArray_mod );
$LocationLock = $LocationLockRepository->findAll();
$urlvente = '';
$catve = $vehicule->getCat();
if (in_array('Achat', $catve, true)) {
$urlvente = $this->generateUrl(
'ficheProduit_vente',
array('slug' => $request->get('slug')),
UrlGeneratorInterface::ABSOLUTE_URL
);
}
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$LocationLockjson = $serializer->serialize($LocationLock, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$vehiculeconcerne = $vehicule->getId();
$Faqsreq = [];
// $Faqs = \json_decode( $vehicule->getFaq() );
$Faqsreq = $FaqRepository->createQueryBuilder('v')
->where('v.Vehiculeconcerne LIKE :vehiculeconcerne')
->setParameter('vehiculeconcerne', '%' . $vehiculeconcerne . '%')
->orderBy('v.Ordre', 'DESC')
->getQuery()
->getResult();
// dd( $Faqs );
$Faqs = [];
foreach ($Faqsreq as $Faq) {
$testlists = $Faq->getVehiculeconcerne();
foreach ($testlists as $testlist) {
if( $testlist == $vehiculeconcerne){
$Faqs[] = $Faq;
}
}
# code...
}
// dd($vehiculeconcerne );
// dd($Faqs );
$VersionVehicules = $VersionVehiculesRepository->findBy(
array('Vehicule' => $vehicule->getId(), 'Disponible' => true)
);
return $this->render('home/fiche_vehicule.html.twig', compact('vehicule', 'caractlistesArray', 'datalocsArray_mod', 'listacceq', 'listacc', 'LocationLockjson', 'devisvalid', 'urlvente', 'Imagesjson', 'Faqs', 'VersionVehicules'));
}
/**
* @Route("/produit", name="home", options={"sitemap" = true})
*/
public function index(Users $users = null, Request $request, EntityManagerInterface $manager, UserPasswordEncoderInterface $encoder, DevisSendRepository $DevisSendRepository=null, DevisSend $DevisSend=null, DevisTempRepository $DevisTempRepository, ReductionRepository $ReductionRepository, \Swift_Mailer $mailer, AgenceRepository $AgenceRepository, CouleursRepository $CouleursRepository)
{
/* $message = (new \Swift_Message('Devis Trip\'UP'))
->setFrom('contact@tripup.fr')
->setTo('stephen@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/registration.html.twig'
),
'text/html'
)
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/registration.txt.twig'
),
'text/plain'
)
;
$mailer->send($message);*/
$user = $this->getUser();
$devisval = false;
if ($user != null) {
if ($request->cookies->get('validevis') == 'lskjghslgjhs') {
$tarmail = $user->getEmail();
// dd( $request->cookies->get('devis') );
//recup n° devis et le devis
$devis = $request->cookies->get('devis');
$selectvehics = $DevisTempRepository->findBy(
['NoDevis' => $devis]
);
if ($selectvehics) {
$selectvehic = $selectvehics[0];
// basculer le devis dans le devis a valider
$DevisSend = new DevisSend();
$DevisSend->setNoDevis($devis);
$DevisSend->setDateDeb(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateDeb()));
$DevisSend->setDateFin(\DateTime::createFromFormat('Y-n-d', $selectvehic->getDateFin()));
$DevisSend->setData($selectvehic->getData());
$DevisSend->setDataLivraison($selectvehic->getDataLivraison());
$DevisSend->setDataPersonnel($selectvehic->getDataPersonnel());
$DevisSend->setDataReduc($selectvehic->getDataReduc());
$DevisSend->setServices($selectvehic->getServices());
$DevisSend->setDatedevis(\DateTime::createFromFormat('Y-n-d', date("Y-n-j")));
$email = '';
$DevisSend->setIduser($user->getId());
$DevisSend->setUseremail($user->getEmail());
$email = $user->getEmail();
$DevisSend->setUsertype($user->getType());
if ($user->getType() == 'Particulier') {
$DevisSend->setUsernom($user->getNom() . ' ' . $user->getPrenom());
} else if ($user->getType() == 'Association') {
$DevisSend->setUsernom($user->getDenomination());
} else {
$DevisSend->setUsernom($user->getRaisonsocial());
}
$DevisSend->setUseradresse($user->getAdresse());
$DevisSend->setUsercpville($user->getCP() . ' ' . $user->getVille());
$datadec = \json_decode($DevisSend->getData());
$agenc = '';
if (isset($datadec[0])) {
if (isset($datadec[0]->agence)) {
$agenc = $datadec[0]->agence;
}
}
$DevisSend->setAgence($agenc);
$agencename = '';
$Agences = $AgenceRepository->findBy(
array(),
array('pos' => 'ASC')
);
foreach ($Agences as $Agence) {
if ($Agence->getId() == $agenc) {
$agencename = $Agence->getNom();
}
}
$manager->persist($DevisSend);
$manager->flush();
$Data = json_decode($selectvehic->getData());
$DataLivraison = json_decode($selectvehic->getDataLivraison());
for ($i = 0; $i < count($Data); $i++) {
if ($Data[$i]->service == 'Location') {
$datedeb = explode("-", $Data[$i]->datedeb);
if (count($datedeb) > 1) {
$formdatedeb = $datedeb[2] . '/' . $datedeb[1] . '/' . $datedeb[0];
} else {
$formdatedeb = '';
}
$Data[$i]->datedeb = $formdatedeb;
$datefin = explode("-", $Data[$i]->datefin);
if (count($datefin) > 1) {
$formdatefin = $datefin[2] . '/' . $datefin[1] . '/' . $datefin[0];
} else {
$formdatefin = '';
}
$Data[$i]->datefin = $formdatefin;
}
}
$DataPersonnel = json_decode($selectvehic->getDataPersonnel());
$DataReduc = json_decode($selectvehic->getDataReduc());
$services = json_decode($selectvehic->getServices());
$today = date("j / n / Y");
$nextmonth = date("j / n / Y", strtotime("+1 month"));
$liste_reduc = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
// dd($services);
/* // Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Poppins');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'DevisSend' => $DevisSend,
'services' => $services,
'reductionliste' => $liste_reduc,
'agencename' => $agencename
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser (force download)
$dompdf->stream("mypdf.pdf", [
"Attachment" => true
]);
*/
// Configure Dompdf according to your needs
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
// Instantiate Dompdf with our options
$dompdf = new Dompdf($pdfOptions);
// dd($DataReduc);
// Retrieve the HTML generated in our twig file
$html = $this->renderView('default/mypdf.html.twig', [
'title' => "Welcome to our PDF Test",
'no_devis' => $devis,
'today' => $today,
'nextmonth' => $nextmonth,
'Data' => $Data,
'DataLivraison' => $DataLivraison,
'user' => $user,
'DataPersonnel' => $DataPersonnel,
'DataReduc' => $DataReduc,
'DevisSend' => $DevisSend,
'services' => $services,
'reductionliste' => $liste_reduc,
'agencename' => $agencename
]);
// Load HTML to Dompdf
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
// Store PDF Binary Data
$output = $dompdf->output();
// In this case, we want to write the file in the public directory
$publicDirectory = $this->getParameter('kernel.project_dir') . '/public/pdfgen';
// e.g /var/www/project/public/mypdf.pdf
$pdfFilepath = $publicDirectory . '/devis_' . $devis . '.pdf';
// Write file to the desired path
file_put_contents($pdfFilepath, $output);
// Send some text response
// return new Response("The PDF file has been succesfully generated !");
// Envoi de l'email avec le devis
$message = (new \Swift_Message('Devis Trip\'UP'))
->setFrom('contact@tripup.fr')
->setTo($email)
->setCc('contact@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/envoidevis.html.twig'
),
'text/html'
)
// attachement du fichier joins
->attach(\Swift_Attachment::fromPath($pdfFilepath), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/RIB IBAN EURL STEPH _TRIP\'UP.PDF'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGL EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
->attach(\Swift_Attachment::fromPath($this->getParameter('kernel.project_dir') . '/public/CGV EURL STEPH-TRIPUP.pdf'), "application/octet-stream")
// ->attach(\Swift_Attachment::fromPath( $this->getParameter('kernel.project_dir') . '/public/Demande de prix remisé.xlsx' ), "application/octet-stream")
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/envoidevis.txt.twig'
),
'text/plain'
)
;
$mailer->send($message);
//find de l'envoi
$devisval = true;
} else {
$devisval = true;
}
}
}
if ($request->get('_route') == 'home_log') {
$showform = 1;
} else if ($request->get('_route') == 'home_reg') {
$showform = 2;
} else {
$showform = 0;
}
/* $application = $this->getApplication()->find('cache:clear');
$application->run(new ArrayInput(array( 'command' => 'cache:clear' )), new NullOutput());*/
// dd($request->request);
$Agences = $AgenceRepository->findBy(
array(),
array('pos' => 'ASC')
);
$Reductions = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
$CouleursRep = $CouleursRepository->findBy(
array(),
array('position' => 'ASC')
);
return $this->render('home/index.html.twig', [
'controller_name' => 'Home Controller',
'showform' => $showform,
'devisval' => $devisval,
'Agences' => $Agences,
'Reductions' => $Reductions,
'CouleursRep' => $CouleursRep
]);
}
/**
* @Route("/api/vehicule/", name="api_vehicule_liste")
*
* @param VehiculeRepository $VehiculeRepository
* @param Request $request
* @param CaractVehiculeRepository $CaractVehiculeRepository
* @param OptionveloRepository $OptionveloRepository
* @param DevisTempRepository $DevisTempRepository
* @param GarantiesRepository $GarantiesRepository
* @param ReductionRepository $ReductionRepository
* @param CategorieOptionRepository $CategorieOptionRepository
* @param VersionVehiculesRepository $VersionVehiculesRepository
* @param EntityManagerInterface $manager
* @param CategorieVehiculeRepository $CategorieVehiculeRepository
* @param DefoptionRepository $DefoptionRepository
* @return void
*/
public function api_vehicule_liste(VehiculeRepository $VehiculeRepository, Request $request, CaractVehiculeRepository $CaractVehiculeRepository, OptionveloRepository $OptionveloRepository, DevisTempRepository $DevisTempRepository, GarantiesRepository $GarantiesRepository, ReductionRepository $ReductionRepository, CategorieOptionRepository $CategorieOptionRepository, VersionVehiculesRepository $VersionVehiculesRepository, EntityManagerInterface $manager, CategorieVehiculeRepository $CategorieVehiculeRepository, DefoptionRepository $DefoptionRepository, CouleursRepository $CouleursRepository)
{
// dd( $request->request );
$location = $request->request->get('location');
$achat = $request->request->get('achat');
if ($location == 'false') {
$cat = 'Achat';
} else {
$cat = 'Location';
}
$ville = $request->request->get('ville');
$vehicule_tous = $request->request->get('vehicule_tous');
$vehicule_triporteur = $request->request->get('vehicule_triporteur');
$vehicule_chariot = $request->request->get('vehicule_chariot');
$vehicule_cargo = $request->request->get('vehicule_cargo');
$vehicule_remorque = $request->request->get('vehicule_remorque');
$vehicule_rosalie = $request->request->get('vehicule_rosalie');
$vehicule_velocaleche = $request->request->get('vehicule_velocaleche');
$vehicule_velovoiture = $request->request->get('vehicule_velovoiture');
$vehicule_velotaxi = $request->request->get('vehicule_velotaxi');
$vehicule_velo = $request->request->get('vehicule_velo');
$vehicule_quadriporteur = $request->request->get('vehicule_quadriporteur');
$vehicule_triporteurenfant = $request->request->get('vehicule_triporteurenfant');
$vehicule_tandems = $request->request->get('vehicule_tandems');
$vehicule_triporteurcollecte = $request->request->get('vehicule_triporteurcollecte');
$start = intval($request->request->get('start'));
$startmore = intval($request->request->get('startmore'));
$filtre_assistance_elect_sans = $request->request->get('filtre_assistance_elect_sans');
$filtre_assistance_elect_avec = $request->request->get('filtre_assistance_elect_avec');
$filtre_coqueprotect_sans = $request->request->get('filtre_coqueprotect_sans');
$filtre_coqueprotect_avec = $request->request->get('filtre_coqueprotect_avec');
$filtre_conservation_iso = $request->request->get('filtre_conservation_iso');
$filtre_conservation_froid_positif = $request->request->get('filtre_conservation_froid_positif');
$filtre_conservation_froid_negatif = $request->request->get('filtre_conservation_froid_negatif');
$filtre_conservation_avec_frigo = $request->request->get('filtre_conservation_avec_frigo');
$filtre_conservation_deuxcompartiments = $request->request->get('filtre_conservation_deuxcompartiments');
$filtre_conservation_froid_iso = $request->request->get('filtre_conservation_froid_iso');
$filtre_conservation_avec_frigo_70 = $request->request->get('filtre_conservation_avec_frigo_70');
$filtre_conservation_avec_frigo_105 = $request->request->get('filtre_conservation_avec_frigo_105');
$filtre_conservation_iso_60 = $request->request->get('filtre_conservation_iso_60');
$filtre_conservation_avec_glace_77 = $request->request->get('filtre_conservation_avec_glace_77');
$filtre_conservation_spe_mariage = $request->request->get('filtre_conservation_spe_mariage');
$filtre_conservation_spe_tournage = $request->request->get('filtre_conservation_spe_tournage');
$filtre_comptoir = $request->request->get('filtre_comptoir');
$filtre_mobilitereduite = $request->request->get('filtre_mobilitereduite');
$filtre_CompatibleRemorque = $request->request->get('filtre_CompatibleRemorque');
$filtre_volume_min = intval($request->request->get('filtre_volume_min'));
$filtre_volume_max = intval($request->request->get('filtre_volume_max'));
$filtre_largeur_min = intval($request->request->get('filtre_largeur_min'));
$filtre_largeur_max = intval($request->request->get('filtre_largeur_max'));
$filtre_longueur_min = intval($request->request->get('filtre_longueur_min'));
$filtre_longueur_max = intval($request->request->get('filtre_longueur_max'));
$filtre_hauteur_min = intval($request->request->get('filtre_hauteur_min'));
$filtre_hauteur_max = intval($request->request->get('filtre_hauteur_max'));
$filtre_Surfacept_min = intval($request->request->get('filtre_Surfacept_min'));
$filtre_Surfacept_max = intval($request->request->get('filtre_Surfacept_max'));
$filtre_surface_min = intval($request->request->get('filtre_surface_min'));
$filtre_surface_max = intval($request->request->get('filtre_surface_max'));
$prix_min = intval($request->request->get('prix_min'));
$prix_max = intval($request->request->get('prix_max'));
$filtre_neuf = $request->request->get('filtre_neuf');
$filtre_occasion = $request->request->get('filtre_occasion');
$colorsels = $request->request->get('colorsel');
if( is_array( $colorsels) ){
if (is_numeric($colorsels)) {
$colorsel[] = (int) $colorsels;
} else {
$colorsel[] = $colorsels;
}
}else{
$colorsels = str_replace("[", "", $colorsels);
$colorsels = str_replace("]", "", $colorsels);
$colorsel = array_map('intval', explode(',', $colorsels ));
}
$colorcadresels = $request->request->get('colorcadresel');
if( is_array( $colorcadresels) ){
if (is_numeric($colorcadresels)) {
$colorcadresel[] = (int) $colorcadresels;
} else {
$colorcadresel[] = $colorcadresels;
}
}else{
$colorcadresels = str_replace("[", "", $colorcadresels);
$colorcadresels = str_replace("]", "", $colorcadresels);
$colorcadresel = array_map('intval', explode(',', $colorcadresels ));
}
$filtre_nom = $request->request->get('filtre_nom');
$isfavoris = $request->request->get('isfavoris');
$isfavoris = str_replace("[", "", $isfavoris);
$isfavoris = str_replace("]", "", $isfavoris);
$isfavoris = explode(",", $isfavoris);
// dd( $filtre_assistance_elect_sans. ' '. $filtre_assistance_elect_avec );
$filter = 'v.cat LIKE :cat';
$filtelect = ['cat' => '%' . $cat . '%'];
if ($filtre_assistance_elect_sans == 'true') {
$filter .= ' AND v.assistElect = :elect';
$filtelect['elect'] = '0';
}
if ($filtre_assistance_elect_avec == 'true') {
$filter .= ' AND v.assistElect = :elect';
$filtelect['elect'] = '1';
}
if ($filtre_coqueprotect_avec == 'true') {
$filter .= ' AND v.coque = :coque';
$filtelect['coque'] = '1';
}
if ($filtre_coqueprotect_sans == 'true') {
$filter .= ' AND v.coque = :coque';
$filtelect['coque'] = '0';
}
if ($filtre_conservation_iso == 'true') {
$filter .= ' AND ( ';
$filter .= ' v.Isotherme = :Isotherme';
$filtelect['Isotherme'] = '1';
}
if ($filtre_conservation_froid_positif == 'true') {
if ($filtre_conservation_iso != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.froidPositif = :froidPositif';
$filtelect['froidPositif'] = '1';
}
if ($filtre_conservation_froid_negatif == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.froidNegatif = :froidNegatif';
$filtelect['froidNegatif'] = '1';
}
if ($filtre_conservation_avec_frigo == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.frigo40l = :frigo40l';
$filtelect['frigo40l'] = '1';
}
if ($filtre_conservation_deuxcompartiments == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.compartimentposinega = :compartimentposinega';
$filtelect['compartimentposinega'] = '1';
}
if ($filtre_conservation_froid_iso == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.compartimentisotherme = :compartimentisotherme';
$filtelect['compartimentisotherme'] = '1';
}
if ($filtre_conservation_avec_frigo_70 == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.frigo70l = :frigo70l';
$filtelect['frigo70l'] = '1';
}
if ($filtre_conservation_avec_frigo_105 == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.frigo105l = :frigo105l';
$filtelect['frigo105l'] = '1';
}
if ($filtre_conservation_avec_glace_77 == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true' && $filtre_conservation_avec_frigo_105 != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.iso77l = :iso77l';
$filtelect['iso77l'] = '1';
}
if ($filtre_conservation_iso_60 == 'true') {
if ($filtre_conservation_iso != 'true' && $filtre_conservation_froid_positif != 'true' && $filtre_conservation_froid_negatif != 'true' && $filtre_conservation_avec_frigo != 'true' && $filtre_conservation_deuxcompartiments != 'true' && $filtre_conservation_froid_iso != 'true' && $filtre_conservation_avec_frigo_70 != 'true' && $filtre_conservation_avec_frigo_105 != 'true' && $filtre_conservation_avec_glace_77 != 'true') {
$filter .= ' AND ( ';
} else {
$filter .= ' OR ';
}
$filter .= ' v.iso60l = :iso60l';
$filtelect['iso60l'] = '1';
}
if ($filtre_conservation_iso == 'true' || $filtre_conservation_froid_positif == 'true' || $filtre_conservation_froid_negatif == 'true' || $filtre_conservation_avec_frigo == 'true' || $filtre_conservation_deuxcompartiments == 'true' || $filtre_conservation_froid_iso == 'true' || $filtre_conservation_avec_frigo_70 == 'true' || $filtre_conservation_avec_frigo_105 == 'true' || $filtre_conservation_avec_glace_77 == 'true' || $filtre_conservation_iso_60 == 'true') {
$filter .= ' ) ';
}
if ($filtre_conservation_spe_mariage == 'true') {
$filter .= ' AND v.mariage = :mariage';
$filtelect['mariage'] = '1';
}
if ($filtre_conservation_spe_tournage == 'true') {
$filter .= ' AND v.tournage = :tournage';
$filtelect['tournage'] = '1';
}
if ($filtre_comptoir == 'true') {
$filter .= ' AND v.Comptoire = :Comptoire';
$filtelect['Comptoire'] = '1';
}
if ($filtre_CompatibleRemorque == 'true') {
$filter .= ' AND v.CompatibleRemorque = :CompatibleRemorque';
$filtelect['CompatibleRemorque'] = '1';
}
if ($filtre_mobilitereduite == 'true') {
$filter .= ' AND v.MobiliteReduite = :MobiliteReduite';
$filtelect['MobiliteReduite'] = '1';
}
if ($filtre_nom != '') {
$filter .= ' AND v.nom LIKE :nom';
$filtelect['nom'] = '%' . $filtre_nom . '%';
}
$max_val_filter = 2060;
$filter .= ' AND v.volume >= :volumemin';
$filtelect['volumemin'] = intval($filtre_volume_min);
$filter .= ' AND v.volume <= :volumemax';
$filtelect['volumemax'] = intval($filtre_volume_max);
$filter .= ' AND v.largeur >= :largeurmin';
$filtelect['largeurmin'] = intval($filtre_largeur_min);
$filter .= ' AND v.largeur <= :largeurmax';
$filtelect['largeurmax'] = intval($filtre_largeur_max);
$filter .= ' AND v.longueur >= :longueurmin';
$filtelect['longueurmin'] = intval($filtre_longueur_min);
$filter .= ' AND v.longueur <= :longueurmax';
$filtelect['longueurmax'] = intval($filtre_longueur_max);
$filter .= ' AND v.hauteur >= :hauteurmin';
$filtelect['hauteurmin'] = intval($filtre_hauteur_min);
$filter .= ' AND v.hauteur <= :hauteurmax';
$filtelect['hauteurmax'] = intval($filtre_hauteur_max);
$filter .= ' AND v.Surfacept >= :Surfaceptmin';
$filtelect['Surfaceptmin'] = intval($filtre_Surfacept_min);
$filter .= ' AND v.Surfacept <= :Surfaceptmax';
$filtelect['Surfaceptmax'] = intval($filtre_Surfacept_max);
$filter .= ' AND v.surface >= :surfacemin';
$filtelect['surfacemin'] = intval($filtre_surface_min);
$filter .= ' AND v.surface <= :surfacemax';
$filtelect['surfacemax'] = intval($filtre_surface_max);
if( count( $colorsel ) > 0){
if( $colorsel[0] > 0 ){
$filter .= ' AND v.CoulCoque IN (:CoulCoque) ';
$filtelect['CoulCoque'] = $colorsel;
}
}
if( count( $colorcadresel ) > 0){
if( $colorcadresel[0] > 0 ){
$filter .= ' AND v.CoulCadre IN (:CoulCadre) ';
$filtelect['CoulCadre'] = $colorcadresel;
}
}
if ($cat == 'Achat') {
if ($prix_min != '') {
$filter .= ' AND ( v.prix >= :prix_min';
$filter .= ' OR v.prixoccas >= :prix_min )';
$filtelect['prix_min'] = intval($prix_min);
}
if ($prix_max != '' && $prix_max > 0) {
$filter .= ' AND ( v.prix <= :prix_max';
$filter .= ' OR v.prixoccas <= :prix_max )';
$filtelect['prix_max'] = intval($prix_max);
}
if ($filtre_neuf == 'true' && $filtre_occasion == 'true') {
$filter .= ' AND ( v.prix > :neuf';
$filter .= ' OR v.prixoccas > :neuf )';
$filtelect['neuf'] = 0;
} else if ($filtre_neuf == 'false' && $filtre_occasion == 'true') {
$filter .= ' AND v.Nb_occasion > :nb_occasion ';
$filtelect['nb_occasion'] = 0;
} else {
$filter .= ' AND v.prix > :neuf';
$filtelect['neuf'] = 0;
}
// $filtre_neuf ;
// $filtre_occasion ;
}
// dd( $filtre_neuf );
$limit = 6;
$offset = 5;
$lisfilters = ['1#assistElect', '0#assistElect', '1#coque', '0#coque', '1#Isotherme', '1#froidPositif', '1#froidNegatif', '1#frigo40l', '1#compartimentposinega', '1#compartimentisotherme', '1#frigo70l', '1#frigo105l', '1#iso77l', '1#mariage', '1#tournage', '1#iso60l', '1#MobiliteReduite', '1#Comptoire', '1#CompatibleRemorque'];
$infofiltres = [];
$VersionVehicules = $VersionVehiculesRepository->findBy(
array('Agence' => $ville)
);
$listver = [];
foreach ($VersionVehicules as $VersionVehicule) {
if (!in_array($VersionVehicule->getVehicule(), $listver)) {
$listver[] = $VersionVehicule->getVehicule();
}
}
if ($cat == 'Achat') {
$listneuf = $VehiculeRepository->createQueryBuilder('u')
->where('u.prix > :prix')
->andWhere('u.cat LIKE :cat')
->setParameters(['prix' => 0, 'cat' => '%' . $cat . '%'])
->select('u')
->getQuery()
->getResult();
foreach ($listneuf as $listnf) {
if (!in_array($listnf->getId(), $listver)) {
$listver[] = $listnf->getId();
}
}
}
if (count($isfavoris) > 0 && $start == 0) {
$favlist = [];
foreach ($isfavoris as $isfavori) {
if (in_array($isfavori, $listver)) {
array_push($favlist, $isfavori);
unset($listver[array_search($isfavori, $listver)]);
}
}
$favoris = $VehiculeRepository->createQueryBuilder('v')
->where('v.cat LIKE :cat')
->andWhere('v.id IN (:list)')
->setParameter('cat', '%' . $cat . '%')
->setParameter('list', $favlist)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->getQuery()
->getResult();
} else if (count($isfavoris) > 0 && $start != 0) {
$start = $start + count($isfavoris);
$favoris = [];
} else {
$favoris = [];
}
foreach ($lisfilters as $lisfilter) {
$filter_base = 'u.cat LIKE :cat';
$filtelect_base = ['cat' => '%' . $cat . '%'];
$lisfilter_name = $lisfilter;
$lisfilter = explode('#', $lisfilter);
$filter_base .= ' AND u.' . $lisfilter[1] . ' = :' . $lisfilter[1];
$filtelect_base[$lisfilter[1]] = $lisfilter[0];
/* $info = $VehiculeRepository->createQueryBuilder('u')
->where( $filter_base )
->setParameters( $filtelect_base )
->select('count(u.id)')
->getQuery()
->getSingleScalarResult();*/
$infos = $VehiculeRepository->createQueryBuilder('u')
->where($filter_base)
->setParameters($filtelect_base)
->select(' u')
->getQuery()
->getResult();
$nbvehic = 0;
foreach ($infos as $info) {
if ($cat == 'Achat') {
if ($info->getPrix() != null && $info->getPrix() != '0') {
$nbvehic = $nbvehic + 1;
}
$nbvehic = $nbvehic + $info->getNbOccasion();
} else {
$nbvehic = $nbvehic + $info->getNbVehicules();
}
}
$infofiltre = array('nom' => $lisfilter_name, 'count' => $nbvehic);
$infofiltres[] = $infofiltre;
}
$listcats = [12, 10, 16, 15, 11, 13, 14, 17, 18, 19, 20, 21, 22, 23];
foreach ($listcats as $lisfilter) {
$nbvehic = 0;
$filter_base = 'u.cat LIKE :cat';
$filtelect_base = ['cat' => '%' . $cat . '%'];
$filter_base .= ' AND u.Categorie = :searchTerm';
$filtelect_base['searchTerm'] = $lisfilter;
$infos = $VehiculeRepository->createQueryBuilder('u')
->where($filter_base)
->setParameters($filtelect_base)
->select(' u ')
->getQuery()
->getResult();
foreach ($infos as $info) {
if ($cat == 'Achat') {
if ($info->getPrix() != null && $info->getPrix() != '0') {
$nbvehic = $nbvehic + 1;
}
$nbvehic = $nbvehic + $info->getNbOccasion();
} else {
$nbvehic = $nbvehic + $info->getNbVehicules();
}
}
$infofiltre = array('nom' => $lisfilter, 'count' => count($infos), 'nbvehic' => $nbvehic);
$infofiltres[] = $infofiltre;
}
/*
$entities = [ ... ];
$qb->andWhere('entity IN (:list)')
->setParameter('list', $entities);
*/
if ($vehicule_tous == 'true') {
if (count($filtelect) >= 6) {
$listevehicules = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->where($filter)
->andWhere('v.id IN (:list)')
->setParameters($filtelect)
->setParameter('list', $listver)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($start)
->setMaxResults($limit)
->getQuery()
->getResult();
} else {
$listevehicules = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->where('v.cat LIKE :cat')
->andWhere('v.id IN (:list)')
->setParameter('cat', '%' . $cat . '%')
->setParameter('list', $listver)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($start)
->setMaxResults($limit)
->getQuery()
->getResult();
}
} else {
$searchTerm = '';
$searchTerm2 = '';
$searchTerm3 = '';
$searchTerm4 = '';
$searchTerm5 = '';
$searchTerm6 = '';
$searchTerm7 = '';
$searchTerm8 = '';
$searchTerm9 = '';
$searchTerm10 = '';
$searchTerm11 = '';
$searchTerm12 = '';
$searchTerm13 = '';
if ($vehicule_triporteur == 'true') {
$searchTerm = 12;
}
if ($vehicule_chariot == 'true') {
$searchTerm2 = 10;
}
if ($vehicule_cargo == 'true') {
$searchTerm3 = 16;
}
if ($vehicule_remorque == 'true') {
$searchTerm4 = 15;
}
if ($vehicule_rosalie == 'true') {
$searchTerm5 = 11;
}
if ($vehicule_velotaxi == 'true') {
$searchTerm6 = 13;
}
if ($vehicule_velo == 'true') {
$searchTerm7 = 14;
}
if ($vehicule_quadriporteur == 'true') {
$searchTerm8 = 17;
}
if ($vehicule_triporteurenfant == 'true') {
$searchTerm9 = 20;
}
if ($vehicule_tandems == 'true') {
$searchTerm10 = 21;
}
if ($vehicule_velocaleche == 'true') {
$searchTerm11 = 22;
}
if ($vehicule_velovoiture == 'true') {
$searchTerm12 = 23;
}
if ($vehicule_triporteurcollecte == 'true') {
$searchTerm13 = 19;
}
if (count($filtelect) >= 2) {
$listevehicules = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->andWhere($filter . ' AND v.Categorie = :searchTerm')
->orWhere($filter . ' AND v.Categorie = :searchTerm2')
->orWhere($filter . ' AND v.Categorie = :searchTerm3')
->orWhere($filter . ' AND v.Categorie = :searchTerm4')
->orWhere($filter . ' AND v.Categorie = :searchTerm5')
->orWhere($filter . ' AND v.Categorie = :searchTerm6')
->orWhere($filter . ' AND v.Categorie = :searchTerm7')
->orWhere($filter . ' AND v.Categorie = :searchTerm8')
->orWhere($filter . ' AND v.Categorie = :searchTerm9')
->orWhere($filter . ' AND v.Categorie = :searchTerm10')
->orWhere($filter . ' AND v.Categorie = :searchTerm11')
->orWhere($filter . ' AND v.Categorie = :searchTerm12')
->orWhere($filter . ' AND v.Categorie = :searchTerm13')
->andWhere('v.id IN (:list)')
->setParameters($filtelect)
->setParameter('searchTerm', $searchTerm)
->setParameter('searchTerm2', $searchTerm2)
->setParameter('searchTerm3', $searchTerm3)
->setParameter('searchTerm4', $searchTerm4)
->setParameter('searchTerm5', $searchTerm5)
->setParameter('searchTerm6', $searchTerm6)
->setParameter('searchTerm7', $searchTerm7)
->setParameter('searchTerm8', $searchTerm8)
->setParameter('searchTerm9', $searchTerm9)
->setParameter('searchTerm10', $searchTerm10)
->setParameter('searchTerm11', $searchTerm11)
->setParameter('searchTerm12', $searchTerm12)
->setParameter('searchTerm13', $searchTerm13)
->setParameter('list', $listver)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($start)
->setMaxResults($limit)
->getQuery()
->getResult();
} else {
$listevehicules = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->andWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm2')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm3')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm4')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm5')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm6')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm7')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm8')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm9')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm10')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm11')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm12')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm13')
->andWhere('v.id IN (:list)')
->setParameter('cat', '%' . $cat . '%')
->setParameter('searchTerm', $searchTerm)
->setParameter('searchTerm2', $searchTerm2)
->setParameter('searchTerm3', $searchTerm3)
->setParameter('searchTerm4', $searchTerm4)
->setParameter('searchTerm5', $searchTerm5)
->setParameter('searchTerm6', $searchTerm6)
->setParameter('searchTerm7', $searchTerm7)
->setParameter('searchTerm8', $searchTerm8)
->setParameter('searchTerm9', $searchTerm9)
->setParameter('searchTerm10', $searchTerm10)
->setParameter('searchTerm11', $searchTerm11)
->setParameter('searchTerm12', $searchTerm12)
->setParameter('searchTerm13', $searchTerm13)
->setParameter('list', $listver)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($start)
->setMaxResults($limit)
->getQuery()
->getResult();
}
}
$CategorieVehicules = $CategorieVehiculeRepository->findBy(
array(),
array('position' => 'ASC')
);
$listevehiculess = [];
for ($i = 0; $i < count($listevehicules); $i++) {
$countve = 0;
$countvepi = 0;
if ($cat == 'Achat') {
if ($listevehicules[$i]->getPrix() > 0) {
$countve = $countve + 1;
}
}
foreach ($VersionVehicules as $VersionVehicule) {
if ($VersionVehicule->getDisponible() == true) {
if ($VersionVehicule->getVehicule() == $listevehicules[$i]->getId()) {
if ($VersionVehicule->getPilote() == true) {
$countvepi = $countvepi + 1;
} else {
$countve = $countve + 1;
}
}
}
}
if ($countvepi > 0) {
$vlis = clone $listevehicules[$i];
$manager->detach($vlis);
$vlis->setId($listevehicules[$i]->getId() + 1000000);
$vlis->setPilote(true);
$vlis->setNbVehicules($countvepi);
$listevehiculess[] = $vlis;
}
if ($countve > 0) {
$listevehicules[$i]->setPilote(false);
$listevehicules[$i]->setNbVehicules($countve);
$listevehiculess[] = $listevehicules[$i];
}
}
$VersionVehiculesmores = $VersionVehiculesRepository->createQueryBuilder('t')
->where('t.Agence != :agence')
->setParameter('agence', $ville)
->getQuery()
->getResult();
$listvermore = [];
foreach ($VersionVehiculesmores as $VersionVehiculesmore) {
if (!in_array($VersionVehiculesmore->getVehicule(), $listvermore)) {
$listvermore[] = $VersionVehiculesmore->getVehicule();
}
}
$listevehiculesmores = [];
if (count($listevehicules) < 6) {
if ($vehicule_tous == 'true') {
if (count($filtelect) >= 2) {
$listevehiculesmores = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->where($filter)
->andWhere('v.id IN (:list)')
->setParameters($filtelect)
->setParameter('list', $listvermore)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($startmore)
->setMaxResults($limit)
->getQuery()
->getResult();
} else {
$listevehiculesmores = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->where('v.cat LIKE :cat')
->andWhere('v.id IN (:list)')
->setParameter('cat', '%' . $cat . '%')
->setParameter('list', $listvermore)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($startmore)
->setMaxResults($limit)
->getQuery()
->getResult();
}
} else {
$searchTerm = '';
$searchTerm2 = '';
$searchTerm3 = '';
$searchTerm4 = '';
$searchTerm5 = '';
$searchTerm6 = '';
$searchTerm7 = '';
$searchTerm8 = '';
$searchTerm9 = '';
$searchTerm10 = '';
$searchTerm11 = '';
$searchTerm12 = '';
$searchTerm13 = '';
if ($vehicule_triporteur == 'true') {
$searchTerm = 12;
}
if ($vehicule_chariot == 'true') {
$searchTerm2 = 10;
}
if ($vehicule_cargo == 'true') {
$searchTerm3 = 16;
}
if ($vehicule_remorque == 'true') {
$searchTerm4 = 15;
}
if ($vehicule_rosalie == 'true') {
$searchTerm5 = 11;
}
if ($vehicule_velotaxi == 'true') {
$searchTerm6 = 13;
}
if ($vehicule_velo == 'true') {
$searchTerm7 = 14;
}
if ($vehicule_quadriporteur == 'true') {
$searchTerm8 = 17;
}
if ($vehicule_triporteurenfant == 'true') {
$searchTerm9 = 20;
}
if ($vehicule_tandems == 'true') {
$searchTerm10 = 21;
}
if ($vehicule_velocaleche == 'true') {
$searchTerm11 = 22;
}
if ($vehicule_velovoiture == 'true') {
$searchTerm12 = 23;
}
if ($vehicule_triporteurcollecte == 'true') {
$searchTerm13 = 19;
}
if (count($filtelect) >= 2) {
$listevehiculesmores = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->andWhere($filter . ' AND v.Categorie = :searchTerm')
->orWhere($filter . ' AND v.Categorie = :searchTerm2')
->orWhere($filter . ' AND v.Categorie = :searchTerm3')
->orWhere($filter . ' AND v.Categorie = :searchTerm4')
->orWhere($filter . ' AND v.Categorie = :searchTerm5')
->orWhere($filter . ' AND v.Categorie = :searchTerm6')
->orWhere($filter . ' AND v.Categorie = :searchTerm7')
->orWhere($filter . ' AND v.Categorie = :searchTerm8')
->orWhere($filter . ' AND v.Categorie = :searchTerm9')
->orWhere($filter . ' AND v.Categorie = :searchTerm10')
->orWhere($filter . ' AND v.Categorie = :searchTerm11')
->orWhere($filter . ' AND v.Categorie = :searchTerm12')
->orWhere($filter . ' AND v.Categorie = :searchTerm13')
->andWhere('v.id IN (:list)')
->setParameters($filtelect)
->setParameter('searchTerm', $searchTerm)
->setParameter('searchTerm2', $searchTerm2)
->setParameter('searchTerm3', $searchTerm3)
->setParameter('searchTerm4', $searchTerm4)
->setParameter('searchTerm5', $searchTerm5)
->setParameter('searchTerm6', $searchTerm6)
->setParameter('searchTerm7', $searchTerm7)
->setParameter('searchTerm8', $searchTerm8)
->setParameter('searchTerm9', $searchTerm9)
->setParameter('searchTerm10', $searchTerm10)
->setParameter('searchTerm11', $searchTerm11)
->setParameter('searchTerm12', $searchTerm12)
->setParameter('searchTerm13', $searchTerm13)
->setParameter('list', $listvermore)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($startmore)
->setMaxResults($limit)
->getQuery()
->getResult();
} else {
$listevehiculesmores = $VehiculeRepository->createQueryBuilder('v')
->addSelect('st')
->andWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm2')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm3')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm4')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm5')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm6')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm7')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm8')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm9')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm10')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm11')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm12')
->orWhere('v.cat LIKE :cat AND v.Categorie = :searchTerm13')
->andWhere('v.id IN (:list)')
->setParameter('cat', '%' . $cat . '%')
->setParameter('searchTerm', $searchTerm)
->setParameter('searchTerm2', $searchTerm2)
->setParameter('searchTerm3', $searchTerm3)
->setParameter('searchTerm4', $searchTerm4)
->setParameter('searchTerm5', $searchTerm5)
->setParameter('searchTerm6', $searchTerm6)
->setParameter('searchTerm7', $searchTerm7)
->setParameter('searchTerm8', $searchTerm8)
->setParameter('searchTerm9', $searchTerm9)
->setParameter('searchTerm10', $searchTerm10)
->setParameter('searchTerm11', $searchTerm11)
->setParameter('searchTerm12', $searchTerm12)
->setParameter('searchTerm13', $searchTerm13)
->setParameter('list', $listvermore)
->leftJoin('v.Categorie', 'st')
->orderBy('st.position, v.position', 'ASC')
->setFirstResult($startmore)
->setMaxResults($limit)
->getQuery()
->getResult();
}
// dd( $listevehicules );
}
}
$listevehiculesmoress = [];
for ($i = 0; $i < count($listevehiculesmores); $i++) {
$countve = 0;
$countvepi = 0;
foreach ($VersionVehiculesmores as $VersionVehicule) {
// dd( $VersionVehicule->getVehicule() );
if ($VersionVehicule->getVehicule() == $listevehiculesmores[$i]->getId()) {
if ($VersionVehicule->getPilote() == true) {
$countvepi = $countvepi + 1;
} else {
$countve = $countve + 1;
}
}
}
if ($countvepi > 0) {
$vlis = clone $listevehiculesmores[$i];
$manager->detach($vlis);
$vlis->setId($listevehiculesmores[$i]->getId() + 1000000);
$vlis->setPilote(true);
$vlis->setNbVehicules($countvepi);
$listevehiculesmoress[] = $vlis;
}
if ($countve > 0) {
$listevehiculesmores[$i]->setPilote(false);
$listevehiculesmores[$i]->setNbVehicules($countve);
$listevehiculesmoress[] = $listevehiculesmores[$i];
}
}
$CaractVehicules = $CaractVehiculeRepository->findBy(
array(),
array('position' => 'ASC')
);
/* $listeoption = $OptionveloRepository->findBy(
['typeElem' => $cat],
array('position' => 'ASC')
); */
$listeoption = $OptionveloRepository->findBy(
[],
array('position' => 'ASC')
);
$datasele = [];
$livreprise = '';
$employers = '';
$reduc = '';
$services = '';
if ($start == 0) {
$devis = $request->cookies->get('devis');
$selectvehics = $DevisTempRepository->findBy(
['NoDevis' => $devis]
);
foreach ($selectvehics as $selectvehic) {
$seldata = json_decode($selectvehic->getData());
$datasele[] = $selectvehic->getData();
$livreprise = $selectvehic->getDataLivraison();
$employers = $selectvehic->getDataPersonnel();
$reduc = $selectvehic->getDataReduc();
$services = $selectvehic->getServices();
if ($seldata) {
$id_vehic = $seldata[0]->id;
$testvehic = 0;
foreach ($listevehicules as $listevehicule) {
if ($listevehicule->getId() == $id_vehic) {
$testvehic = 1;
}
}
if ($testvehic == 0) {
$vehicule = $VehiculeRepository->find($id_vehic);
$listevehicules[] = $vehicule;
}
}
}
}
// dd( $listeoption );
$Garanties = $GarantiesRepository->findAll();
$Catoptions = $CategorieOptionRepository->findAll();
$Reductions = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
$Optionsdef = $DefoptionRepository->findAll();
$CouleursRep = $CouleursRepository->findBy(
array(),
array('position' => 'ASC')
);
$cadres = [];
$coques = [];
foreach ($CouleursRep as $Couleur) {
$cadre = [];
$coque = [];
$cadre['couleur'] = $Couleur->getId();
$cadre['nom'] = $Couleur->getNom();
$cadre['nb'] = $VehiculeRepository->count( ['CoulCadre' => $Couleur->getId()] ) ;
$cadres[] = $cadre;
$coque['couleur'] = $Couleur->getId();
$coque['nom'] = $Couleur->getNom();
$coque['nb'] = $VehiculeRepository->count( ['CoulCoque' => $Couleur->getId()] ) ;
$coques[] = $coque;
}
$response['Couleurs']['cadre'] = $cadres;
$response['Couleurs']['coque'] = $coques;
$response['Garanties'] = $Garanties;
$response['Reductions'] = $Reductions;
$response['infofiltres'] = $infofiltres;
$response['listevehicules'] = $listevehiculess;
$response['VersionVehicules'] = $VersionVehicules;
$response['listevehiculesmores'] = $listevehiculesmoress;
$response['VersionVehiculesmores'] = $VersionVehiculesmores;
$response['CaractVehicules'] = $CaractVehicules;
$response['livreprise'] = $livreprise;
$response['cat_vehicule'] = $cat;
$response['listeoption'] = $listeoption;
$response['datasele'] = $datasele;
$response['Optionsdef'] = $Optionsdef;
$response['employer'] = $employers;
$response['reduc'] = $reduc;
$response['services'] = $services;
$response['Catoptions'] = $Catoptions;
$response['favoris'] = $favoris;
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize(
$response,
'json',
[
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]
);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
return $this->json($jsonObject);
}
/**
* @Route("/api/vehicule_id/", name="api_vehicule_id")
*
* @param VehiculeRepository $VehiculeRepository
* @param Request $request
* @param CaractVehiculeRepository $CaractVehiculeRepository
* @param OptionveloRepository $OptionveloRepository
* @param DevisTempRepository $DevisTempRepository
* @param GarantiesRepository $GarantiesRepository
* @param ReductionRepository $ReductionRepository
* @param CategorieOptionRepository $CategorieOptionRepository
* @return void
*/
public function api_vehicule_id(VehiculeRepository $VehiculeRepository, Request $request, CaractVehiculeRepository $CaractVehiculeRepository, OptionveloRepository $OptionveloRepository, DevisTempRepository $DevisTempRepository, GarantiesRepository $GarantiesRepository, ReductionRepository $ReductionRepository, CategorieOptionRepository $CategorieOptionRepository)
{
// dd( $request->request );
$location = $request->request->get('location');
$achat = $request->request->get('achat');
if ($location == 'false') {
$cat = 'Achat';
} else {
$cat = 'Location';
}
$id = $request->request->get('id');
// dd( $filtre_surface_min );
$listevehicules = $VehiculeRepository->findBy(
['id' => $id]
);
$CaractVehicules = $CaractVehiculeRepository->findBy(
array(),
array('position' => 'ASC')
);
/* $listeoption = $OptionveloRepository->findBy(
['typeElem' => $cat],
array('position' => 'ASC')
);*/
$listeoption = $OptionveloRepository->findBy(
[],
array('position' => 'ASC')
);
$datasele = [];
$livreprise = '';
$employers = '';
$reduc = '';
$services = '';
$devis = $request->cookies->get('devis');
$selectvehics = $DevisTempRepository->findBy(
['NoDevis' => $devis]
);
foreach ($selectvehics as $selectvehic) {
$seldata = json_decode($selectvehic->getData());
$datasele[] = $selectvehic->getData();
$livreprise = $selectvehic->getDataLivraison();
$employers = $selectvehic->getDataPersonnel();
$reduc = $selectvehic->getDataReduc();
$services = $selectvehic->getServices();
if ($seldata) {
$id_vehic = $seldata[0]->id;
$testvehic = 0;
foreach ($listevehicules as $listevehicule) {
if ($listevehicule->getId() == $id_vehic) {
$testvehic = 1;
}
}
if ($testvehic == 0) {
$vehicule = $VehiculeRepository->find($id_vehic);
$listevehicules[] = $vehicule;
}
}
}
// dd( $listeoption );
$Garanties = $GarantiesRepository->findAll();
$Catoptions = $CategorieOptionRepository->findAll();
$Reductions = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
$response['Garanties'] = $Garanties;
$response['Reductions'] = $Reductions;
$response['listevehicules'] = $listevehicules;
$response['CaractVehicules'] = $CaractVehicules;
$response['livreprise'] = $livreprise;
$response['cat_vehicule'] = $cat;
$response['listeoption'] = $listeoption;
$response['datasele'] = $datasele;
$response['employer'] = $employers;
$response['reduc'] = $reduc;
$response['Catoptions'] = $Catoptions;
$response['services'] = $services;
// dd( $response );
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize(
$response,
'json',
[
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]
);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/add/", name="api_vehicule_add")
*
* @param Request $request
* @param DevisTemp|null $DevisTemp
* @param DevisTempRepository $DevisTempRepository
* @param EntityManagerInterface $manager
* @param DevisSendRepository $DevisSendRepository
* @return void
*/
public function api_vehicule_add(Request $request, DevisTemp $DevisTemp = null, DevisTempRepository $DevisTempRepository, EntityManagerInterface $manager, DevisSendRepository $DevisSendRepository)
{
/* $id_vehicule = $request->request->get('id');
$nb_vehicule = $request->request->get('nb');
$nbjours_vehicule = $request->request->get('nbjours');
$soustot_vehicule = $request->request->get('soustot');
$cover_vehicule = $request->request->get('cover');
$equip_vehicule = $request->request->get('equip');
*/
function random_3($nbr)
{
$chn = '';
for ($i = 1; $i <= $nbr; $i++)
// $chn .= chr(floor(rand(0, 25)+97));
$chn .= rand(0, 9);
return $chn;
}
function gentest($DevisSendRepository)
{
$test = random_3(6);
$testdevis = $DevisSendRepository->findBy(
['NoDevis' => $test]
);
if (empty($testdevis)) {
return $test;
} else {
gentest($DevisSendRepository);
}
}
$datedeb = $request->request->get('datedeb');
$datefin = $request->request->get('datefin');
$timedeb = strtotime($datedeb);
$timefin = strtotime($datefin);
$Datedeb = date('Y-m-d', $timedeb);
$Datefin = date('Y-m-d', $timefin);
// dd( $Datedeb );
$data_devis = $request->request->get('data');
$DataLivraison = $request->request->get('livreprise');
$DataPersonnel = $request->request->get('employer');
$DataReduc = $request->request->get('reduc');
$dataServices = $request->request->get('services');
$devis = $request->cookies->get('devis');
if (!$DevisTemp) {
$DevisTemp = new DevisTemp();
}
if ($devis) {
// dd( $devis );
$no_devis = $devis;
$DevisTemp_array = $DevisTempRepository->findBy(
['NoDevis' => $no_devis]
);
$DevisTemp = $DevisTemp_array[0];
$DevisTemp->setDateDeb($Datedeb);
$DevisTemp->setDateFin($Datefin);
$DevisTemp->setData($data_devis);
$DevisTemp->setDataLivraison($DataLivraison);
$DevisTemp->setDataPersonnel($DataPersonnel);
$DevisTemp->setDataReduc($DataReduc);
$DevisTemp->setServices($dataServices);
// dd( $DataPersonnel );
} else {
$no_devis = gentest($DevisSendRepository);
$DevisTemp->setNoDevis($no_devis);
$DevisTemp->setDateDeb($Datedeb);
$DevisTemp->setDateFin($Datefin);
$DevisTemp->setData($data_devis);
$DevisTemp->setDataLivraison($DataLivraison);
$DevisTemp->setDataPersonnel($DataPersonnel);
$DevisTemp->setDataReduc($DataReduc);
$DevisTemp->setServices($dataServices);
}
$manager->persist($DevisTemp);
$manager->flush();
$jsonObject = [];
$jsonObject['devis'] = $no_devis;
$jsonObject = \json_encode($jsonObject);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/refresh/", name="api_vehicule_refresh")
*
* @param Request $request
* @param DevisTemp|null $DevisTemp
* @param DevisTempRepository $DevisTempRepository
* @return void
*/
public function api_vehicule_refresh(Request $request, DevisTemp $DevisTemp = null, DevisTempRepository $DevisTempRepository)
{
$devis = $request->cookies->get('devis');
if (!$DevisTemp) {
$DevisTemp = new DevisTemp();
}
if ($devis) {
// dd( $devis );
$no_devis = $devis;
$DevisTemp_array = $DevisTempRepository->findBy(
['NoDevis' => $no_devis]
);
if ($DevisTemp_array) {
$DevisTemp = $DevisTemp_array[0];
}
}
$jsonObject = [];
$jsonObject['devis_data'] = $DevisTemp->getData();
;
$jsonObject['livredata'] = $DevisTemp->getDataLivraison();
$jsonObject['employer'] = $DevisTemp->getDataPersonnel();
$jsonObject['reduc'] = $DevisTemp->getDataReduc();
$jsonObject['services'] = $DevisTemp->getServices();
$jsonObject = \json_encode($jsonObject);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/demandeinfo/", name="api_demandeinfo")
*
* @param Request $request
* @param \Swift_Mailer $mailer
* @return void
*/
public function api_demandeinfo(Request $request, \Swift_Mailer $mailer)
{
$demreduc = $request->request->all();
$message = (new \Swift_Message('Demande d\'information'))
->setFrom($demreduc['form_email'])
->setTo('contact@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/deminfo.html.twig',
[
'demreduc' => $demreduc
]
),
'text/html'
)
// attachement du fichier joins
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/deminfo.txt.twig',
[
'demreduc' => $demreduc
]
),
'text/plain'
)
;
$mailer->send($message);
//find de l'envoi
$jsonObject['mail'] = 'ok';
$jsonObject = \json_encode($jsonObject);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/demandereduc/", name="api_demandereduc")
*
* @param Request $request
* @param \Swift_Mailer $mailer
* @return void
*/
public function api_demandereduc(Request $request, \Swift_Mailer $mailer)
{
$demreduc = $request->request->all();
$message = (new \Swift_Message('Demande de réduction'))
->setFrom($demreduc['form_email'])
->setTo('contact@tripup.fr')
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/demreduc.html.twig',
[
'demreduc' => $demreduc
]
),
'text/html'
)
// attachement du fichier joins
// you can remove the following code if you don't define a text version for your emails
->addPart(
$this->renderView(
// templates/emails/registration.txt.twig
'emails/demreduc.txt.twig',
[
'demreduc' => $demreduc
]
),
'text/plain'
)
;
$mailer->send($message);
//find de l'envoi
$jsonObject['mail'] = 'ok';
$jsonObject = \json_encode($jsonObject);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/personnel/", name="api_vehicule_personnel")
*
* @param PersonnelRepository $PersonnelRepository
* @return void
*/
public function api_vehicule_personnel(PersonnelRepository $PersonnelRepository)
{
$Personnel = $PersonnelRepository->findAll();
$personnel_list = [];
$types = ['PILOTE', 'HÔTE, HÔTESSE', 'MECANICIEN', 'REGISSEUR', 'PHOTOGRAPHE'];
foreach ($types as $type) {
foreach ($Personnel as $Perso) {
if ($Perso->getNomPublic() == $type) {
$personnel_list[] = $Perso;
}
}
}
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($personnel_list, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/reduction/", name="api_vehicule_reduction")
*
* @param ReductionRepository $ReductionRepository
* @return void
*/
public function api_vehicule_reduction(ReductionRepository $ReductionRepository)
{
$Reductions = $ReductionRepository->findBy(
array(),
array('position' => 'ASC')
);
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($Reductions, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/tarifvehicules/", name="api_vehicule_tarifvehicules")
*
* @param Request $request
* @param LivraisonRepository $LivraisonRepository
* @return void
*/
public function api_vehicule_tarifvehicules(Request $request, LivraisonRepository $LivraisonRepository)
{
$numdep = $request->request->get('numdep');
$Agence = $request->request->get('Agence');
if ($Agence != '1' && $Agence != 1) {
$LivraisonRepository = $LivraisonRepository->findBy(
['Agence' => $Agence]
);
} else {
$LivraisonRepository = $LivraisonRepository->findBy(
['Numerodep' => $numdep, 'Agence' => $Agence]
);
}
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($LivraisonRepository, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/listres/", name="api_listres")
*
* @param Request $request
* @param LocationLockRepository $LocationLockRepository
* @param VersionVehiculesRepository $VersionVehiculesRepository
* @return void
*/
public function api_listres(Request $request, LocationLockRepository $LocationLockRepository, VersionVehiculesRepository $VersionVehiculesRepository)
{
// $LocationLock = $LocationLockRepository->findAll();
$VersionVehicules = $VersionVehiculesRepository->findAll();
$LocationLock = $LocationLockRepository->createQueryBuilder('v')
->andWhere('v.DateFin > CURRENT_DATE()')
->getQuery()
->getResult();
for ($i = 0; $i < count($LocationLock); $i++) {
$newval = 0;
foreach ($VersionVehicules as $VersionVehicule) {
if($LocationLock[$i]->getVehicId() == $VersionVehicule->getId() && $LocationLock[$i]->getVehictrue() == true) {
if ($VersionVehicule->getPilote() == true) {
$idmod = 1000000 + $VersionVehicule->getVehicule();
$newval = $idmod ;
} else {
$newval = $VersionVehicule->getVehicule() ;
}
}
}
$LocationLock[$i]->setVehicId( $newval);
}
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($LocationLock, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => ['optionliste', 'listeVehicule'],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/garanties", name="api_garanties")
*
* @param GarantiesRepository $GarantiesRepository
* @return void
*/
public function api_garanties(GarantiesRepository $GarantiesRepository)
{
$Garanties = $GarantiesRepository->findAll();
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($Garanties, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => [],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/guide", name="api_guide")
*
* @param GuideRepository $GuideRepository
* @return void
*/
public function api_guide(GuideRepository $GuideRepository)
{
$Guide = $GuideRepository->findAll();
foreach ($Guide as $Guid) {
if ($Guid->getNumQ() == '9999' || $Guid->getNumQ() == 9999) {
$lists = $Guid->getReponse();
$nlist = [];
foreach ($lists as $list) {
$nlist[] = $list;
}
$Guid->setReponse($nlist);
}
}
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($Guide, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => [],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/api/listservices/", name="api_listservices")
*
* @param ServicesRepository $ServicesRepository
* @param CatservicesRepository $CatservicesRepository
* @return void
*/
public function api_listservices(ServicesRepository $ServicesRepository, CatservicesRepository $CatservicesRepository)
{
$Catservices_list = $CatservicesRepository->findBy(
array(),
array('Ordre' => 'ASC')
);
$Services = $ServicesRepository->findBy(
array(),
array('Ordre' => 'ASC')
);
$data['catservices'] = $Catservices_list;
$data['services'] = $Services;
$encoders = [new JsonEncoder()]; // If no need for XmlEncoder
$normalizers = [new ObjectNormalizer()];
$serializer = new Serializer($normalizers, $encoders);
// Serialize your object in Json
$jsonObject = $serializer->serialize($data, 'json', [
AbstractNormalizer::IGNORED_ATTRIBUTES => [],
'circular_reference_handler' => function ($object) {
return $object->getId();
}
]);
$jsonGzip = gzencode($jsonObject, 9);
$response = new Response($jsonGzip);
$response->headers->set('Content-Encoding', 'gzip');
$response->headers->set('Content-Type', 'application/json');
return $response;
}
/**
* @Route("/", name="accueil", options={"sitemap" = true})
*
* @param Request $request
* @param GrapesPagesRepository $GrapesPagesRepository
* @return void
*/
public function accueil(Request $request, GrapesPagesRepository $GrapesPagesRepository)
{
$accueils = $GrapesPagesRepository->findBy(
array('Template' => 'accueil')
);
$locale = $request->getLocale();
$page = $accueils[0];
foreach ($accueils as $accueil) {
if ($accueil->getLangue() == $locale) {
$page = $accueil;
}
}
return $this->render('admingrapespages/voir.html.twig', [
'controller_name' => 'PagesController',
'GrapesPages' => $page,
'pagename' => 'accueil'
]);
}
}