Esempio n. 1
0
 /**
  * @Route("/receta/{id}", name="ver_receta"), methods={'GET', 'POST'}
  * @Security("is_granted('ROLE_ADMIN')")
  */
 public function verRecetaAction(Producto $id)
 {
     if (isset($_POST['ver_receta'])) {
         $em = $this->getDoctrine()->getManager();
         $ingrediente = $em->getRepository('AppBundle:Ingredientes')->findBy(array('nombreProducto' => $id->getNombreProducto()));
         $_SESSION['idprod'] = $id->getId();
         return $this->render(':ingredientes:listar_ingredientes.html.twig', ['ingrediente' => $ingrediente, 'producto' => $id]);
     }
 }
Esempio n. 2
0
 /**
  * @Route("/pedir/{producto}", name="pedir")
  */
 public function pedirAction(Producto $producto)
 {
     $usuario = $this->getUser();
     //si se pulsa en el boton pedir almacenamos el pedido en una sesión
     if (isset($_POST['pedirP'])) {
         if ($_POST['cantidad'] < 0) {
             echo "<script>alert('No puedes introducir números negativos')</script>";
         } else {
             if (isset($_SESSION['pedido']) != '') {
                 $DatoYaExistente = false;
                 $encontrado = false;
                 $em = $this->getDoctrine()->getManager();
                 $idProduc = $em->getRepository('AppBundle:Producto')->findOneBy(array('id' => $producto->getId()));
                 $p = [$idProduc, $_POST['cantidad']];
                 //guardamos una copia del carrito para comprobarla y modificarla
                 $carrito = $_SESSION["pedido"];
                 $i = 0;
                 while (isset($_SESSION["pedido"][$i]) != '') {
                     for ($j = 0; $j <= $i; $j++) {
                         //comprobamos si existe ese producto en el carrito
                         if ($carrito[$j][0]->getId() == $idProduc->getId() && $encontrado == false) {
                             //sumamos la cantidad pedida
                             $p = [$idProduc, $_POST['cantidad'] + $carrito[$j][1]];
                             $_SESSION["pedido"][$i] = $p;
                             $encontrado = true;
                         }
                     }
                     $i++;
                 }
                 for ($j = 0; $j < $i; $j++) {
                     if ($carrito[$j][0]->getId() == $idProduc->getId()) {
                         $DatoYaExistente = true;
                     }
                 }
                 if (!$DatoYaExistente) {
                     $_SESSION["pedido"][$i] = $p;
                 }
             } else {
                 //Primer registro de la sesión del carrito de la compra
                 $em = $this->getDoctrine()->getManager();
                 $idProduc = $em->getRepository('AppBundle:Producto')->findOneBy(array('id' => $producto->getId()));
                 $p = [$idProduc, $_POST['cantidad']];
                 //Ahora guarda correctamente el primer registro
                 $_SESSION['pedido'][0] = $p;
             }
         }
     }
     //si se pulsa en el boton borrar quitamos el producto del carrito
     if (isset($_POST['borrarP'])) {
         $encontrado = false;
         $em = $this->getDoctrine()->getManager();
         $idProduc = $em->getRepository('AppBundle:Producto')->findOneBy(array('id' => $producto->getId()));
         $carrito = $_SESSION["pedido"];
         $i = 0;
         while (isset($_SESSION["pedido"][$i]) != '') {
             for ($j = 0; $j <= $i; $j++) {
                 //buscamos el producto en el carrito
                 if ($carrito[$j][0]->getId() == $idProduc->getId() && $encontrado == false) {
                     //borramos la cantidad pedida
                     if ($carrito[$j][1] != 0) {
                         $p = [$idProduc, 0];
                         $_SESSION["pedido"][$i] = $p;
                         $encontrado = true;
                     }
                 }
             }
             $i++;
         }
     }
     $em = $this->getDoctrine()->getManager();
     $tipoProducto = $_SESSION['tipoProducto'];
     $producto = $em->getRepository('AppBundle:Producto')->findBy(array('tipo' => $_SESSION['tipoProducto']));
     $total = 0;
     if (isset($_SESSION['pedido'])) {
         //Se muestra la cuenta con los productos que lleva seleccionados
         if ($_SESSION['pedido'] != '') {
             $pedido = $_SESSION['pedido'];
             for ($j = 0; $j < count($pedido); $j++) {
                 $total = $total + $pedido[$j][0]->getPrecio() * $pedido[$j][1];
             }
         } else {
             $pedido = null;
             $total = 0;
         }
     } else {
         //Se muestra la cuenta sin pedidos.
         $pedido = null;
     }
     $em = $this->getDoctrine()->getManager();
     $mesa = $em->getRepository('AppBundle:Mesa')->findOneById($this->getUser()->getMesaOcupada());
     return $this->render(':productos:ver_productos.html.twig', ['producto' => $producto, 'tipoProducto' => $tipoProducto, 'usuarios' => $usuario, 'total' => $total, 'mesa' => $mesa, 'pedido' => $pedido]);
 }
 /**
  * doIntrodAction
  *
  * @Route(
  *     path = "/do-introd",
  *     name = "app_producto_doIntrod"
  * )
  *
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function doIntrodAction(Request $request)
 {
     $nombre = $request->request->get('nombre');
     $descripcion = $request->request->get('descripcion');
     $precio = $request->request->get('precio');
     $m = $this->getDoctrine()->getManager();
     $prod = new Producto();
     $prod->setNombre($nombre)->setDescripcion($descripcion)->setPrecio($precio);
     $m->persist($prod);
     $m->flush();
     $this->addFlash('messages', 'Producto Creado');
     $repository = $m->getRepository("AppBundle:Producto");
     $prod = $repository->findAll();
     return $this->render(':producto:index.html.twig', ['producto' => $prod]);
 }
Esempio n. 4
0
 /**
  * Remove producto
  *
  * @param \AppBundle\Entity\Producto $producto
  */
 public function removeProducto(\AppBundle\Entity\Producto $producto)
 {
     $this->producto->removeElement($producto);
 }