/** * @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]); } }
/** * @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]); }
/** * Remove producto * * @param \AppBundle\Entity\Producto $producto */ public function removeProducto(\AppBundle\Entity\Producto $producto) { $this->producto->removeElement($producto); }