src/Controller/PanierController.php line 31

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\User;
  4. use App\Entity\Commande;
  5. use App\Form\CommandeType;
  6. use App\Form\UserType;
  7. use App\Service\Panier;
  8. use App\Repository\ProduitRepository;
  9. use App\Security\SecurityAuthenticator;
  10. use Doctrine\ORM\EntityManagerInterface;
  11. use Symfony\Component\HttpFoundation\Request;
  12. use Symfony\Component\Security\Core\Security;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\HttpFoundation\Session\SessionInterface;
  16. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  17. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  18. use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
  19. class PanierController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/panier", name="panier")
  23.      */
  24.     public function panier(SessionInterface $session): Response     
  25.     {
  26.         //on récupére le panier ligne de produit 
  27.         $panier $session->get('panier_ligne');
  28.          // on le convertit  to string pour le récupérer et l'exploiter en javascript 
  29.          $panier_str json_encode($panier);
  30.        
  31.         return $this->render('panier/panier.html.twig', [
  32.             'panier' => $panier,
  33.             'panierstr'=> $panier_str
  34.           
  35.         ]);
  36.     }
  37.     /**
  38.      * @Route("/panier/ajouter", name="panier_ajouter")
  39.      */
  40.     public function panier_ajouter(SessionInterface $session,Request $requestProduitRepository $repoProduitPanier $panier): Response
  41.     {
  42.         $user$this->getUser();
  43.         if ($user) {
  44.             $role=$user->getRoles()[0];
  45.         }
  46.         else { $role 'IS_ANONYMOUS';
  47.         }
  48.        
  49.         $id $request->request->get("id");
  50.         $produit$repoProduit->find($id);
  51.         $reduction 0;
  52.       
  53.         if ($role == 'ROLE_REV'){
  54.             $prix $produit->getPrixRevHt()*1.2;
  55.         
  56.         }else {
  57.             $prix $produit->getPrixPubTtc();
  58.         }
  59.        
  60.         $prix_rev $produit->getPrixRevHt();
  61.         $couleur=$produit->getCouleur();
  62.         $nomProduit=$produit->getNom();
  63.         $photo=$produit->getPhotoProduits()->first();
  64.         $nomPhoto$photo->getNom();//par defaut
  65.         // on recherche la photo de face à la bonne couleur pour présenter dans le panier
  66.         $lettre_coul substr($couleur,0,1);
  67.         $photos $produit->getPhotoProduits();
  68.         foreach($photos as $photo ) {
  69.             $nom_Photo $photo->getNom();
  70.             $lettre_photo substr($nom_Photo,-5,1);
  71.             if ($lettre_photo == $lettre_coul){
  72.                 $nomPhoto =  $nom_Photo;
  73.            }
  74.         }
  75.         $quantite $request->request->get("qty");
  76.        
  77.         $panier->add($id,$produit$nomPhoto$quantite$reduction$prix,$prix_rev);
  78.         
  79.         return $this->redirectToRoute('fiche_produit', [
  80.             'id'=>$id
  81.         ]);
  82.     }
  83.     /**
  84.      * @Route("/panier/changer", name="panier_changer")
  85.      */
  86.     public function panier_changer(Request $requestProduitRepository $repoProduitPanier $panierSessionInterface $session): Response
  87.     {
  88.             $panierSession $session->get('panier');
  89.             $quantite $_POST ['qty'];
  90.             $id_produit $_POST ['id_produit'];
  91.             $position_produit array_search$id_produit ,$panierSession ["id_produit"]);
  92.             $panierSession["quantite"][$position_produit] = $quantite;
  93.             $panier->session->set('panier'$panierSession);
  94.             $panierLigne$panierSession $session->get('panier_ligne');
  95.             $panierLigne [$position_produit]["quantite"]=$quantite;
  96.             $panier->session->set('panier_ligne'$panierLigne);
  97.         return $this->redirectToRoute('panier', []);
  98.     }
  99.     /**
  100.      * @Route("panier/supprimer", name="panier_supprimer")
  101.      */
  102.     public function supprimer(Panier $panier): Response
  103.     {
  104.         $id_produit $_POST ['id_produit'];
  105.         $panier->remove($id_produit);
  106.         return $this->redirectToRoute('panier', []);
  107.     }
  108.    
  109. }//fin de classe