public function creerPanierAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $form = $this->get('form.factory')->createNamedBuilder('formulaire_creation_panier')->add('libelle', TextType::class)->add('saison', EntityType::class, array('class' => 'AMAPBundle:Saison', 'choice_label' => 'libelle'))->add('type_panier', EntityType::class, array('class' => 'AMAPBundle:TypePanier', 'choice_label' => 'libelle'))->add('prix', IntegerType::class)->add('ajouter', SubmitType::class, array('label' => 'Créer le panier'))->getForm();
     $form2 = $this->createFormBuilder()->add('libelle', TextType::class)->add('ajouter', SubmitType::class, array('label' => 'Créer Type Panier'))->getForm();
     if ($form->handleRequest($request)->isSubmitted() || $form2->handleRequest($request)->isSubmitted()) {
         if ($form->get('ajouter')->isClicked()) {
             $session = $request->getSession();
             $data = $form->getData();
             $panier = new Panier();
             $panier->setLibelle($data['libelle']);
             $panier->setSaison($data['saison']);
             $panier->setTypePanier($data['type_panier']);
             $panier->setPrix($data['prix']);
             $amap = $em->getRepository('AMAPBundle:Amap')->findOneBy(array('id' => $session->get('amap')));
             $panier->setAmap($amap);
             $em->persist($panier);
             $em->flush();
             //return $this->redirect($this->generateUrl('amap_panier_ajouter'));
         }
         if ($form2->get('ajouter')->isClicked()) {
             $data = $form2->getData();
             $typePanier = new TypePanier();
             $typePanier->setLibelle($data['libelle']);
             $em->persist($typePanier);
             $em->flush();
             //return $this->redirect($this->generateUrl('amap_panier_ajouter'));
         }
     }
     return $this->render('AMAPBundle:Admin/Panier:creer.html.twig', array('page_courante' => 'AdminPanier', 'onglet_courant' => 'creerPanierAction', 'form' => $form->createView(), 'form2' => $form2->createView()));
 }
 public function creerAction(Request $request)
 {
     $em = $this->getDoctrine()->getManager();
     $session = $request->getSession();
     if ($this->getUser()->getTypeActeur()->getId() == 2) {
         $listcontrat = $em->getRepository('AMAPBundle:Contrat')->findBy(array('consommateur' => $this->getUser()->getId(), 'amap' => $session->get('amap')));
     } else {
         $listcontrat = $em->getRepository('AMAPBundle:Contrat')->findBy(array('producteur' => $this->getUser()->getId(), 'amap' => $session->get('amap')));
     }
     $typeProducteur = $em->getRepository('AMAPBundle:TypeActeur')->findBy(array('libelle' => 'Producteur'));
     $listproducteur = $em->getRepository('AMAPBundle:Acteur')->findBy(array('typeActeur' => $typeProducteur));
     /*
      * FONCTION DE CALCUL DE QUANTITE A PRODUIRE POUR LE PRODUCTEUR
      */
     $tab = array();
     $i = 0;
     /*
      * BOUCLE PRODUCTEURS
      */
     foreach ($listproducteur as $producteur) {
         $j = 0;
         // Panier TEMP
         $panier = new Panier();
         $tab[$i][$j] = $producteur->getNom();
         /*
          * BOUCLE CONTRATS
          */
         foreach ($listcontrat as $contrat) {
             //SI LE CONTRAT COURANT ET CELUI DU PRODUCTEUR COURANT
             if ($producteur == $contrat->getProducteur()) {
                 /*
                  * BOUCLE PANIERPRODUIT DU CONTRAT COURANT
                  */
                 foreach ($contrat->getPanier()->getPanierproduit() as $panierproduit) {
                     $check = false;
                     /*
                      * BOUCLE DU PANIER TEMP
                      */
                     foreach ($panier->getPanierproduit() as $panierproduit2) {
                         // SI DANS LE PANIER TEMP IL Y A DEJA LE PRODUIT DU CONTRAT
                         if ($panierproduit2->getProduit() == $panierproduit->getProduit()) {
                             $panierproduit2->setQuantite($panierproduit2->getQuantite() + $panierproduit->getQuantite());
                             $check = true;
                         }
                     }
                     // SI DANS LE PANIER IL N'Y A PAS LE PRODUIT DU CONTRAT
                     if (!$check) {
                         $newPanierProd = new Panierproduit();
                         $newPanierProd->setQuantite($panierproduit->getQuantite());
                         $newPanierProd->setProduit($panierproduit->getProduit());
                         $panier->addPanierproduit($newPanierProd);
                     }
                 }
             }
         }
         $j++;
         // AJOUT DANS LE TAB QUI SERA RENVOYER A LA VUE
         $tab[$i][$j] = $panier;
         $i++;
     }
     return $this->render('AMAPBundle:Contrat:index.html.twig', array('page_courante' => 'contrat', 'listproducteur' => $listproducteur, 'listcontrat' => $listcontrat, 'tabProd' => $tab));
 }