Beispiel #1
0
        public ActionResult DetalleProducto(string codigoProducto)
        {
            DetalleProductoViewModel objViewModel = new DetalleProductoViewModel();

            objViewModel.Fill(codigoProducto);
            return(View("DetalleProducto", "_Layout", objViewModel));
        }
Beispiel #2
0
        public void Fill()
        {
            DetalleProductoViewModel objViewModel = new DetalleProductoViewModel();

            objViewModel.Fill("P01231");

            Assert.IsNull(objViewModel.objProducto);
        }
Beispiel #3
0
        public void FillFlujoAlternativo()
        {
            DetalleProductoViewModel objViewModel = new DetalleProductoViewModel();

            objViewModel.Fill("dfsdf");

            Assert.IsNull(objViewModel.objProducto);
        }
        // GET: Productos/Details/5
        public async Task <ActionResult> Detalle(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var producto = db.Productos.Include(p => p.Category).Include(p => p.Unidades).Where(p => p.IdProducto == id).First();

            if (producto == null)
            {
                return(HttpNotFound());
            }

            var imagenes = db.ImagenesProductos.Where(p => p.IdProducto == id).ToList();

            var data = new DetalleProductoViewModel
            {
                producto         = producto,
                imagenesProducto = imagenes,
                Cantidad         = 1
            };

            return(View(data));
        }
 public JsonResult SePuedeDarSalida(DetalleProductoViewModel producto)
 {
     return(_centroDeCostoService.PuedeDarSalida(producto.ProductoId, producto.CentroCostoId, producto.Cantidad, producto.UnidadId) ? Json(true, JsonRequestBehavior.AllowGet) : Json(false, JsonRequestBehavior.AllowGet));
 }
        public async Task <ActionResult> Add(DetalleProductoViewModel model, int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var producto = await db.Productos.FindAsync(id);

            if (producto == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            string usuario = null;

            if (User.Identity.IsAuthenticated)
            {
                usuario = User.Identity.GetUserId();
            }
            else
            {
                if (Session["UniqueIdUserAnonimo"] == null)
                {
                    usuario = Guid.NewGuid().ToString();
                    Session["UniqueIdUserAnonimo"] = usuario;
                }
                else
                {
                    usuario = (string)Session["UniqueIdUserAnonimo"];
                }
            }

            var verificar = db.Carritoes.Where(x => x.IdProducto == id && x.UsuarioId == usuario).SingleOrDefault();

            if (producto.ProductStock > 0 && producto.ProductStock >= model.Cantidad)
            {
                if (verificar != null)
                {
                    var addCarrito = new Carrito
                    {
                        CarritoId       = verificar.CarritoId,
                        CarritoCantidad = verificar.CarritoCantidad + model.Cantidad,
                        FechaAgregado   = DateTime.Now,
                        IdProducto      = (int)id,
                        UsuarioId       = usuario
                    };
                    db.Set <Carrito>().AddOrUpdate(addCarrito);
                    await db.SaveChangesAsync();

                    //actualizar a cantidad de la carretilla si ya existe un producto agregado
                }
                else
                {
                    var addCarrito = new Carrito
                    {
                        CarritoCantidad = model.Cantidad,
                        FechaAgregado   = DateTime.Now,
                        IdProducto      = (int)id,
                        UsuarioId       = usuario
                    };
                    db.Carritoes.Add(addCarrito);
                    await db.SaveChangesAsync();
                }
                var prod = await db.Productos.FindAsync(id);

                var updateProducto = new Productos
                {
                    IdProducto         = prod.IdProducto,
                    CategoryKey        = prod.CategoryKey,
                    ProductoImagenes   = prod.ProductoImagenes,
                    ProductoTitulo     = prod.ProductoTitulo,
                    ProductoPrecio     = prod.ProductoPrecio,
                    ProductStock       = prod.ProductStock - model.Cantidad,
                    ProdutoDescripcion = prod.ProdutoDescripcion,
                    UnidadesId         = prod.UnidadesId
                };
                db.Set <Productos>().AddOrUpdate(updateProducto);
                await db.SaveChangesAsync();
            }
            else
            {
                return(RedirectToAction("Index", "Home", new { msg = "Stock Insuficiente" }));
            }

            return(RedirectToAction("Index", "Home", new { msg = "Producto añadido al carrito" }));
        }