<?php
namespace App\Controller;
use App\Entity\Articles;
use App\Entity\UserVendeur;
use App\Repository\ArticlesRepository;
use App\Repository\UserVendeurRepository;
use App\Tools\Cart\CartTools;
use App\Entity\Suivre;
use App\Form\SuivreType;
use App\Repository\SuivreRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
class MainController extends AbstractController
{
/**
* @Route("/maps", name="app_maps")
*/
public function information_maps(): Response
{
return $this->render('maps/maps.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/", name="app_main")
*/
public function index(Request $request, CartTools $cartTools, ArticlesRepository $ArticlesRepository, UserVendeurRepository $UserVendeur, SuivreRepository $suivreRepos, EntityManagerInterface $em): Response
{
$suivre = new Suivre();
$form = $this->createForm(SuivreType::class, $suivre);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$suivre = $form->getData();
$user = $this->getUser();
$suivre->setStatut('suivre');
$suivre->setUserVendeur($user);
$em->persist($suivre);
$em->flush();
$this->addFlash('success', 'Vous suivez desormais cette boutique');
return $this->redirectToRoute('app_main');
}
$UserVendeur = $UserVendeur->findBy(
[],
['datedeCreations' => 'DESC'], 20);
$articles = $ArticlesRepository->findBy(
[],
['datedeCreations' => 'DESC'], 20);
$articlesLesplusVendu = $ArticlesRepository->findBy(
[],
['datedeCreations' => 'DESC'], 6);
$suivreUser = $suivreRepos->findBy(["statut" => "suivre"]);
return $this->render('base.html.twig', [
'suivre' => $suivreUser,
'articles' => $articles,
'UserVendeur' => $UserVendeur,
'LesPlusVendu' => $articlesLesplusVendu,
'totalItems' => $cartTools->getTotalItem(),
'items' => $cartTools->getFullCart(),
'totalTVA' => $cartTools->getTotalTVA(),
'tva' => $cartTools->getTva(),
'totalTTC' => $cartTools->getTotalTTC(),
'Formulaire' =>$form->createView()
]);
}
/**
* @Route("/articles/{id<[0-9]+>}", name="app_details")
*/
public function detailsArticles(CartTools $cartTools, Articles $articles): Response
{
return $this->render('articles/details.html.twig', [
'articles' => $articles,
'totalItems' => $cartTools->getTotalItem(),
'items' => $cartTools->getFullCart(),
'totalTVA' => $cartTools->getTotalTVA(),
'tva' => $cartTools->getTva(),
'totalTTC' => $cartTools->getTotalTTC()
]);
}
//pour la creation de produit se referer au fichier AjouterProduit
/**
* @Route("/indexlist", name="app_indexlist")
*/
public function indexList(CartTools $cartTools, ArticlesRepository $ArticlesRepository, UserVendeurRepository $UserVendeur): Response
{
$UserVendeur = $UserVendeur->findBy(
[],
['datedeCreations' => 'DESC'], 20);
$articles = $ArticlesRepository->findBy(
[],
['datedeCreations' => 'DESC'], 20);
$articlesLesplusVendu = $ArticlesRepository->findBy(
[],
['datedeCreations' => 'DESC'], 6);
return $this->render('main/indexList.html.twig', [
'articles' => $articles,
'UserVendeur' => $UserVendeur,
'LesPlusVendu' => $articlesLesplusVendu,
'totalItems' => $cartTools->getTotalItem(),
'items' => $cartTools->getFullCart(),
'totalTVA' => $cartTools->getTotalTVA(),
'tva' => $cartTools->getTva(),
'totalTTC' => $cartTools->getTotalTTC()
]);
}
/**
* @Route("/message", name="app_message")
*/
public function messagefonction(): Response
{
return $this->render('index/message.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/information_livraison", name="app_information_livraison")
*/
public function information_livraisonfonction(): Response
{
return $this->render('index/information_livraison.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/checkout_payement", name="app_checkout-payment")
*/
public function checkout_paymentfonction(): Response
{
return $this->render('index/checkout_payment.html.twig', [
'controller_name' => 'IndexController',
]);
}
}