<?php
namespace App\Controller;
use App\Entity\Articles;
use App\Entity\UserVendeur;
use App\Entity\ClientUser;
use App\Repository\ArticlesRepository;
use App\Form\ClientUserType;
use App\Repository\UserVendeurRepository;
use App\Tools\Cart\CartTools;
use Doctrine\ORM\EntityManagerInterface;
use App\Repository\OffreRapideRepository;
use App\Entity\Suivre;
use App\Form\SuivreType;
use App\Repository\SuivreRepository;
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 ClientController extends AbstractController
{
/**
* @Route("/base-particulier", name="app_main_particulier")
*/
public function indexParticulier(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('particuliers/baseparticuliers.html.twig', [
'articles' => $articles,
'UserVendeur' => $UserVendeur,
'LesPlusVendu' => $articlesLesplusVendu,
'totalItems' => $cartTools->getTotalItem(),
'items' => $cartTools->getFullCart(),
'totalTVA' => $cartTools->getTotalTVA(),
'tva' => $cartTools->getTva(),
'totalTTC' => $cartTools->getTotalTTC(),
]);
}
/**
* @Route("/information_livraison_client", name="app_information_livraisonClient")
*/
public function information_livraisonfonction_client(): Response
{
return $this->render('main/information_livraison.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/boutique-client-notification/", name="app_boutique_client_notification")
*/
public function boutique_client_notification(): Response
{
return $this->render('client/notification.html.twig');
}
/**
* @Route("/boutique-des-vendeur/{id<[0-9]+>}", name="Mes_boutiques_abonne")
*/
public function boutique(ClientUser $userClient, SuivreRepository $suivreRepos, Request $request): Response
{
$userClientSuivie = $suivreRepos->findBy(
[],
['datedeCreations' => 'DESC'], 20);
return $this->render('client/boutique.html.twig', [
'userClient' => $userClient,
'userClientSuivie' => $userClientSuivie,
]);
}
/**
* @Route("/toutesboutique-des-vendeur", name="app_touteboutique")
*/
public function touteboutique(UserVendeurRepository $UserVendeur): Response
{
$UserVendeur = $UserVendeur->findBy(
[],
['datedeCreations' => 'DESC'], 20);
return $this->render('client/touteboutique.html.twig', [
'UserVendeur' => $UserVendeur,
]);
}
/**
* @Route("/les-plus-vendus", name="app_plusvendus")
*/
public function plusvendus(ArticlesRepository $articlesRepos): Response
{
$articles = $articlesRepos->findBy(
[],
['datedeCreations' => 'DESC'], 20);
return $this->render('client/toulesarticles.html.twig', [
'articles' => $articles,
]);
}
/**
* @Route("/boutique-client-profil/{id<[0-9]+>}", name="app_boutique_client_profil")
*/
public function boutique_vendeur_profil(ClientUser $clientUser): Response
{
return $this->render('client/profil.html.twig', compact('clientUser'));
}
/**
* modification des profils utilisateurs
*
* @Route("/modification-profil/{id<[0-9]+>}/editer", name="app_modifProfil", methods="GET|POST")
*/
public function modificationOffreRapide(Request $request, EntityManagerInterface $em,
UserVendeurRepository $UserVendeur, ClientUser $clientUser){
$form = $this->createForm(ClientUserType::class, $clientUser, [
'method' => 'POST'
]);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em->flush();
// $flashy->success('Votre Post à été modifier avec succes !');
$this->addFlash('success', 'Votre compte bien été mis jour !');
return $this->redirectToRoute('app_main_particulier');
}
return $this->render('client/modificationProfil.html.twig', [
'client' => $clientUser,
'profilModif' => $form->createView()
]);
}
/**
* @Route("/livraison", name="app_livraison")
*/
public function information_livraisonfonction(): Response
{
return $this->render('client/livraison.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/statut-livraison", name="app_livraison_statut")
*/
public function statut_livraisonfonction(): Response
{
return $this->render('main/statutlivraison.html.twig', [
'controller_name' => 'IndexController',
]);
}
}