Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
trash
/
vhost_www.traiteur-75.fr_1689065491
/
htdocs
/
src
/
Controller
/
front
/
//srv/data/trash/vhost_www.traiteur-75.fr_1689065491/htdocs/src/Controller/front/CartController.php
<?php namespace App\Controller\front; use App\Entity\Product; use App\Entity\ProductCard; use App\Services\CartService; use App\Repository\ProductRepository; use App\Repository\ConfigurationRepository; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; /** * @Route("/panier") */ class CartController extends AbstractController { /** * @Route("/add/{id}", name="front_cart_add") */ public function add(Product $product, ProductRepository $productRepository, Session $session, ConfigurationRepository $configurationRepository): Response { $productCard = new ProductCard; $cartService = new CartService($productRepository, $session, $configurationRepository); $carts = $session->get('carts'); if (!empty($carts)) { foreach ($carts as $cart) { if ($cart['id'] == $product->getId()) { $cart['qtt']++; $productCard->setQuantity($cart['qtt']); } } } $qtt = $productCard->getQuantity(); $id = $product->getId(); $carts = $cartService->setCart($carts, $id, $qtt); $session->set('carts', $carts); return $this->redirectToRoute('front_cart_read'); } /** * @Route("/", name="front_cart_read") */ public function cart( ProductRepository $productRepository, Session $session, ConfigurationRepository $configurationRepository): Response { $cartService = new CartService($productRepository, $session, $configurationRepository); return $this->render('front/cart/read.html.twig', [ 'products' => $cartService->getCart(), ]); } /** * @Route("/remove", name="cart_remove") */ public function remove(Session $session) { $session->remove('carts'); return $this->redirectToRoute('app_home'); } /** * @Route("/delete/{id}", name="front_cart_delete") */ public function delete(int $id, Session $session): Response { $msg = 'Produit enlevé du panier avec succès'; $carts = $session->get('carts'); foreach($carts as $key => $cart){ if($cart['id'] == $id){ unset($carts[$key]); $carts = array_values($carts); break; } } $session->set('carts', $carts); $this->addFlash('success', $msg); return $this->redirectToRoute('front_cart_read'); } /** * @Route("/up/quantity/{id}", name="front_cart_up") */ public function upQtt(Product $product, Session $session, ProductRepository $productRepository, ConfigurationRepository $configurationRepository): Response { $productCard = new ProductCard; $cartService = new CartService($productRepository, $session, $configurationRepository); $carts = $session->get('carts'); $carts = $session->get('carts'); if (!empty($carts)) { foreach ($carts as $cart) { if ($cart['id'] == $product->getId()) { $cart['qtt'] ++; $productCard->setQuantity($cart['qtt']); } } } $qtt = $productCard->getQuantity(); $id = $product->getId(); $carts = $cartService->setCart($carts, $id, $qtt); $session->set('carts', $carts); return $this->redirectToRoute('front_cart_read'); } /** * @Route("/down/quantity/{id}", name="front_cart_down") */ public function downQtt(Product $product, Session $session, ProductRepository $productRepository, ConfigurationRepository $configurationRepository): Response { $productCard = new ProductCard; $cartService = new CartService($productRepository, $session, $configurationRepository); $isExist = false; $carts = $session->get('carts'); if (!empty($carts)) { foreach ($carts as $key => $cart) { if ($cart['id'] == $product->getId()) { if($cart['qtt'] == 1){ unset($carts[$key]); $carts = array_values($carts); } else{ $cart['qtt'] --; $productCard->setQuantity($cart['qtt']); $isExist = true; } } } } if($isExist){ $qtt = $productCard->getQuantity(); $id = $product->getId(); $carts = $cartService->setCart($carts, $id, $qtt); $session->set('carts', $carts); } else{ $session->set('carts', $carts); } return $this->redirectToRoute('front_cart_read'); } }