Example #1
0
        public ActionResult DeleteConfirmed(int id)
        {
            Tiene tiene = db.Tiene.Find(id);

            db.Tiene.Remove(tiene);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #2
0
 public ActionResult Edit([Bind(Include = "Id,IdCompra,IdPublicacion,Cantidad,Estado,Monto")] Tiene tiene)
 {
     if (ModelState.IsValid)
     {
         db.Entry(tiene).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(tiene));
 }
Example #3
0
        public ActionResult Create([Bind(Include = "Id,IdCompra,IdPublicacion,Cantidad,Estado,Monto")] Tiene tiene)
        {
            if (ModelState.IsValid)
            {
                db.Tiene.Add(tiene);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(tiene));
        }
Example #4
0
        // GET: Tiene/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Tiene tiene = db.Tiene.Find(id);

            if (tiene == null)
            {
                return(HttpNotFound());
            }
            return(View(tiene));
        }
        public ActionResult Index()
        {
            var           userProp = UserManager.FindByEmail(User.Identity.GetUserName());
            var           IdUser   = userProp.IdUsuario;
            var           comprasRealizadasSinCalificar = db.Compras.Where(c => c.IdUsuario == IdUser).Join(db.Tiene, c => c.Id, t => t.IdCompra, (c, t) => new { c, t }).ToList();
            List <Compra> comprasSC = new List <Compra>();

            foreach (var subItem in comprasRealizadasSinCalificar)
            {
                Compra itemData  = subItem.c;
                Tiene  itemTiene = subItem.t;
                if (itemTiene.Estado == "Sin calificar")
                {
                    comprasSC.Add(itemData);
                }
            }

            return(View(comprasSC));
        }
Example #6
0
        public ActionResult Registrar([Bind(Include = "Id,Cantidad,Monto,Fecha")] Compra compra)
        {
            var userProp = UserManager.FindByEmail(User.Identity.GetUserName());
            var IdUser   = userProp.IdUsuario;

            //var montoTotal = db.Carrito.Where(c => c.IdUsuario == IdUser);


            var                ItemsCarrito  = db.Carrito.Where(c => c.IdUsuario == IdUser).Join(db.Publicaciones, c => c.IdPublicacion, p => p.Id, (carrito, publicacion) => new { carrito, publicacion }).ToArray();
            float              montoTotal    = 0;
            List <Tiene>       itemsTiene    = new List <Tiene>();
            List <Publicacion> publicaciones = new List <Publicacion>();

            foreach (var subItem in ItemsCarrito)
            {
                var   itemData    = subItem.publicacion;
                var   carritoData = subItem.carrito;
                Tiene tiene       = new Tiene();
                montoTotal          = montoTotal + (itemData.PrecioActual * carritoData.Cantidad);
                tiene.Cantidad      = carritoData.Cantidad;
                tiene.IdPublicacion = carritoData.IdPublicacion;
                //Precio unitario
                tiene.Monto             = itemData.PrecioActual;
                tiene.NombrePublicacion = itemData.Titulo;
                itemsTiene.Add(tiene);
                itemData.Stock = itemData.Stock - carritoData.Cantidad;
                if (itemData.Stock < 0)
                {
                    TempData["Error"] = "Stock insuficiente para: " + itemData.Titulo;
                    return(RedirectToAction("Index", "Carrito"));
                }
                else if (itemData.Stock == 0)
                {
                    itemData.Estado = "Sin Stock";
                }
                publicaciones.Add(itemData);
            }

            if (userProp.SaldoActual >= montoTotal)
            {
                userProp.SaldoActual = userProp.SaldoActual - montoTotal;
                UserManager.Update(userProp);
                compra.IdUsuario = IdUser;
                compra.Monto     = montoTotal;
                db.Compras.Add(compra);
                db.SaveChanges();

                publicaciones.ForEach(publicacion => db.Entry(publicacion).State = EntityState.Modified);
                db.SaveChanges();


                Movimiento movimiento = new Movimiento();
                movimiento.Fecha     = compra.Fecha;
                movimiento.IdUsuario = IdUser;
                movimiento.Operacion = "Compra";
                movimiento.Monto     = montoTotal;
                db.Movimientos.Add(movimiento);
                db.SaveChanges();


                var idCompra = compra.Id;
                itemsTiene.ForEach(item => item.IdCompra = idCompra);
                db.Tiene.AddRange(itemsTiene);
                db.SaveChanges();

                var items = db.Carrito.Where(item => item.IdUsuario == IdUser);
                db.Carrito.RemoveRange(items);
                db.SaveChanges();
                Session["itemsCarrito"] = "0";
            }
            else
            {
                TempData["Error"] = "El saldo es insuficiente para realizar la compra.";
                return(RedirectToAction("Index", "Carrito"));
            }
            TempData["Success"] = "La compra se ha efectuado de manera exitosa. Si quieres puedes calificarla";
            return(RedirectToAction("Index", "Calificacion", View(db.Compras.Where(c => c.IdUsuario == IdUser).ToList())));
        }