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)); }