<?php
namespace App\Controller;
use App\Entity\Articles;
use App\Entity\Messages;
use App\Entity\UserVendeur;
use App\Entity\ClientUser;
use App\Form\MessagesType;
use App\Form\UserVendeurType;
use App\Tools\Cart\CartTools;
use App\Repository\ArticlesRepository;
use App\Repository\MessagesRepository;
use App\Repository\UserVendeurRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Entity;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
class VendeurController extends AbstractController
{
/**
* @Route("/validation_livraison_client", name="validation_livraison_statut")
*/
public function validation_livraisonfonction_client(): Response
{
return $this->render('vendeurs/validationStatut_livraison.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/searchSection", name="searchSection")
*/
public function searchSection(): Response
{
return $this->render('vendeurs/searchSectionVendeur.html.twig', [
'controller_name' => 'IndexController',
]);
}
/**
* @Route("/vendeurtchat", name="app_vendeur_tchat")
*/
public function app_vendeur_tchat(Request $request, EntityManagerInterface $em,
MessagesRepository $messagesRepos ): Response
{
$messagesRepos = new Messages();
$form = $this->createForm(MessagesType::class, $messagesRepos);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$messagesRepos = $form->getData();
// $user = $this->getUser();
// $suivre->setVendeurs($user);
$em->persist();
$em->flush();
// $this->addFlash('success', 'Votre offre à été créer avec succes !');
return $this->redirectToRoute('app_vendeur_tchat');
}
return $this->render('main/message.html.twig', [
'Formulaire' => $form->createView()
]);
}
/**
* @Route("/boutique-vendeur/{id<[0-9]+>}", name="app_boutique_vendeur")
*/
public function boutique_vendeur(UserVendeur $vendeur, ArticlesRepository $articlesRepos, Request $request, CartTools $cartTools): Response
{
$ListedeMesArticles = $articlesRepos->findBy([], ['datedeMiseaJours' => 'DESC']);
return $this->render('main/boutique-vendeur.html.twig', [
'vendeur' => $vendeur,
'MesArticles' => $ListedeMesArticles,
'totalItems' => $cartTools->getTotalItem(),
'items' => $cartTools->getFullCart(),
'totalTVA' => $cartTools->getTotalTVA(),
'tva' => $cartTools->getTva(),
'totalTTC' => $cartTools->getTotalTTC(),
]);
}
/**
* modification des profils utilisateurs
*
* @Route("/modification-profil-vendeur/{id<[0-9]+>}/editer", name="app_modifProfilVendeur", methods="GET|POST")
*/
public function modificationUserVendeur(Request $request, EntityManagerInterface $em,
UserVendeurRepository $UserVendeurRepos, UserVendeur $userVendeur){
$form = $this->createForm(UserVendeurType::class, $userVendeur, [
'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');
}
return $this->render('vendeurs/modificationProfil.html.twig', [
'profilVendeur' => $userVendeur,
'profilVendeurModif' => $form->createView()
]);
}
/**
* @Route("/parametre-desAticles", name="parametre_des_articles")
*/
public function parametre_des_articles(Request $request, EntityManagerInterface $em,
UserVendeurRepository $UserVendeurRepos, ArticlesRepository $articlesRepos): Response
{
$mesArticles = $articlesRepos->findBy(
[],
['datedeCreations' => 'DESC'], 10);
return $this->render('vendeurs/parametre_des_articles.html.twig', [
'articles' => $mesArticles,
]);
}
/**
* @Route("/parametre-desAticles-grid", name="parametre_des_articles_grid")
*/
public function parametre_des_articles_grid(Request $request, EntityManagerInterface $em,
UserVendeurRepository $UserVendeurRepos, ArticlesRepository $articlesRepos): Response
{
$mesArticles = $articlesRepos->findBy(
[],
['datedeCreations' => 'DESC'], 10);
return $this->render('vendeurs/grid_parametre_des_articles.html.twig', [
'articles' => $mesArticles,
]);
}
/**
* route permettant la suppression des articles
*
* @Route("/modificationdesAticles/{id<[0-9]+>}/sup", name="app_sup_articles", methods={"DELETE|POST"})
*/
public function supprimerUnArticle(
Request $request,
EntityManagerInterface $em,
Articles $articles): Response
{
// permet la vérification du csrfToken avant la suppression d'une Offre
if ($this->isCsrfTokenValid('articles_suppression' . $articles->getId(), $request->request->get('Csrf_Token'))) {
$em->remove($articles);
$em->flush();
//$flashy->error('Votre Post à été supprimer avec succes !');
$this->addFlash('danger', 'Votre Arcles à été supprimer avec succes !');
}
return $this->redirectToRoute('parametre_des_articles');
}
}