// GET: ProductModels
        public ActionResult AgregarNota(string prodNoExistente)
        {
            List <ProductOrderModels> lobeProdNoExistente = (List <ProductOrderModels>)Session["lobeProdNoExistente"];
            ProductOrderModels        oProd = new ProductOrderModels()
            {
                Id             = 0,
                IdProducto     = 0,
                Nombre         = prodNoExistente,
                cantidadPedida = 0,
                UrlImagen      = "",
                PrecioCosto    = 0,
                PrecioVenta    = 0
            };

            if (lobeProdNoExistente != null)
            {
                lobeProdNoExistente.Add(oProd);
            }
            else
            {
                lobeProdNoExistente = new List <ProductOrderModels>();
                lobeProdNoExistente.Add(oProd);
            }
            Session["lobeProdNoExistente"] = lobeProdNoExistente;
            return(RedirectToAction("Index", "ProductModels", new { strBus = "" }));
            //return RedirectToAction("Index",  prods.ToList());
        }
 private List <ProductOrderModels> FiltrarProdsSinStock(List <ProductOrderModels> lobeProd)
 {
     if (lobeProd != null)
     {
         List <ProductOrderModels> lobeProdFiltrada = new List <ProductOrderModels>();
         ProductModels             oProdOri;
         ProductOrderModels        oProdNuevo;
         foreach (ProductOrderModels oProd in lobeProd)
         {
             oProdOri = db.ProductModels.Find(oProd.IdProducto);
             if (oProd.cantidadPedida > oProdOri.Stock)
             {
                 oProdNuevo = new ProductOrderModels()
                 {
                     cantidadPedida = oProd.cantidadPedida - oProdOri.Stock, Id = 0,
                     IdProducto     = oProd.IdProducto, Nombre = oProd.Nombre, PrecioCosto = oProd.PrecioCosto,
                     PrecioVenta    = oProd.PrecioVenta
                 };
                 lobeProdFiltrada.Add(oProdNuevo);
             }
         }
         return(lobeProdFiltrada);
     }
     return(null);
 }
        // GET: ProductModels/Delete/5
        public ActionResult Agregar(int?hdfId, string hdfIdSesion = "", string desAdicional = "", int cantidad = 1)
        {
            if (hdfId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProductModels productModels = db.ProductModels.Find(hdfId);

            if (hdfIdSesion == null)
            {
                return(HttpNotFound());
            }
            //List<ProductOrderModels> lobeProdsPedido = (List<ProductOrderModels>)Session[hdfIdSesion + "lobeProdsPedido"];
            List <ProductOrderModels> lobeProdsPedido = (List <ProductOrderModels>)Session["lobeProdsPedido"];
            ProductOrderModels        oProd;

            if (lobeProdsPedido != null && lobeProdsPedido.Count > 0)
            {
                UtilModels.idProd = productModels.Id;
                oProd             = lobeProdsPedido.Find(UtilModels.FiltrarProdOrder);
                if (oProd != null)
                {
                    oProd.cantidadPedida       += cantidad;
                    oProd.DescripcionAdicional += "-" + desAdicional;
                }
                else
                {
                    oProd = new ProductOrderModels()
                    {
                        Id                   = productModels.Id,
                        IdProducto           = productModels.Id,
                        Nombre               = productModels.Nombre,
                        DescripcionAdicional = desAdicional,
                        PrecioCosto          = productModels.PrecioCosto,
                        PrecioVenta          = productModels.PrecioVenta,
                        UrlImagen            = productModels.UrlImagen,
                        cantidadPedida       = cantidad
                    };
                    lobeProdsPedido.Add(oProd);
                }
            }
            else
            {
                lobeProdsPedido = new List <ProductOrderModels>();
                oProd           = new ProductOrderModels()
                {
                    Id                   = productModels.Id,
                    IdProducto           = productModels.Id,
                    Nombre               = productModels.Nombre,
                    DescripcionAdicional = desAdicional,
                    PrecioCosto          = productModels.PrecioCosto,
                    PrecioVenta          = productModels.PrecioVenta,
                    UrlImagen            = productModels.UrlImagen,
                    cantidadPedida       = cantidad
                };
                lobeProdsPedido.Add(oProd);
            }
            //Session[hdfIdSesion + "lobeProdsPedido"] = lobeProdsPedido;
            Session["lobeProdsPedido"] = lobeProdsPedido;
            string strBus = (string)Session["busqueda"];

            return(RedirectToAction("Index", "ProductModels", new { strBus = strBus, idSesion = hdfIdSesion }));
        }
Example #4
0
        public ActionResult PlaceOrder(int id)
        {
            string Name = User.Identity.GetUserName();

            var result = db.CartModels.Find(id);

            AccountInfoModels accountInfoModels = db.AccountInfoModels.Where(s => s.Email == Name).FirstOrDefault();

            if (accountInfoModels.Phone == null)
            {
                string redirectUrl = "/Manage/Index";
                return(Redirect(redirectUrl));
            }
            else
            {
                if (result != null)
                {
                    var productToCart = db.ProductsChartModels.Where(b => b.CartId == id).ToList();

                    var userOrder = new OrderModels();

                    userOrder.AccountId        = " ";
                    userOrder.Email            = Name;
                    userOrder.TotalAmount      = result.TotalAmount;
                    userOrder.NumberOfProducts = result.NumberOfProducts;
                    userOrder.Name             = accountInfoModels.Name;
                    userOrder.Address          = accountInfoModels.Address;
                    userOrder.City             = accountInfoModels.City;
                    userOrder.State            = accountInfoModels.State;
                    userOrder.Phone            = accountInfoModels.Phone;

                    db.OrderModels.Add(userOrder);
                    db.SaveChanges();

                    var userOrderAftePlacement = db.OrderModels.Where(b => b.Email == Name).Where(b => b.Name == accountInfoModels.Name).OrderByDescending(s => s.Id).Take(1).FirstOrDefault();

                    foreach (var item in productToCart)
                    {
                        var product = db.ProductsModels.Find(item.ProductId);

                        var productToOrder = new ProductOrderModels();

                        productToOrder.CartId    = userOrderAftePlacement.Id;
                        productToOrder.ProductId = product.Id;

                        db.ProductOrderModels.Add(productToOrder);
                        db.SaveChanges();

                        product.Stock = product.Stock - 1;

                        db.ProductsChartModels.Remove(item);
                        db.SaveChanges();
                    }

                    result.TotalAmount      = 0;
                    result.NumberOfProducts = 0;

                    db.SaveChanges();
                }
            }

            string redirectUrl1 = "/Cart/Index";

            return(Redirect(redirectUrl1));
        }