Ejemplo n.º 1
0
        // GET: Carritos
        public ActionResult Index()
        {
            var comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
            var carritoes = Articulos(comprador.Id);

            return(View(carritoes));
        }
Ejemplo n.º 2
0
        public async Task <ActionResult> Puja(int?subastaId, [Bind(Include = "puja")] int puja, [Bind(Include = "TarjetaDeCreditoId")] double TarjetaDeCreditoId)
        {
            if (subastaId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Subasta subasta = await db.Subastas.FindAsync(subastaId);

            TarjetaDeCredito tarjetaDeCredito = db.Tarjetas.Find(TarjetaDeCreditoId);

            if (subasta.PujaActual < puja && tarjetaDeCredito.CreditoDisponible >= puja)
            {
                Comprador         comprador         = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
                UsuarioConTarjeta usuarioconTarjeta = subasta.UsuarioConTarjeta;
                if (usuarioconTarjeta != null)
                {
                    usuarioconTarjeta.TarjetadeCredito.CreditoDisponible += subasta.PujaActual;
                }
                usuarioconTarjeta                  = db.UsuarioConTarjetas.Where(m => (m.CompradorId == comprador.Id && m.TarjetadeCredito.NumDeTarjeta == TarjetaDeCreditoId)).ToList()[0];
                subasta.PujaActual                 = puja;
                subasta.UsuarioConTarjeta          = usuarioconTarjeta;
                tarjetaDeCredito.CreditoDisponible = tarjetaDeCredito.CreditoDisponible - puja;
                subasta.Comprador                  = comprador;
                db.Entry(subasta).State            = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptSubasta" }));
            }

            ViewBag.AnuncioId   = new SelectList(db.Anuncios, "AnuncioId", "Etiqueta", subasta.AnuncioId);
            ViewBag.CompradorId = new SelectList(db.Compradores, "CompradorId", "Nombre", subasta.Comprador);
            return(RedirectToAction("Index", "Home", new { nameAnuncio = "ErrorSubasta" }));
        }
Ejemplo n.º 3
0
        public ActionResult Index(string nameAnuncio = "")
        {
            if (nameAnuncio == "")
            {
                db.RevisarSubastas();
                Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
                Vendedor  vendedor  = QuerysGeneric.GetVendedor(User.Identity.Name, db.Vendedores);
                if (comprador != null)
                {
                    nameAnuncio               = comprador.Mensaje;
                    comprador.Mensaje         = "";
                    db.Entry(comprador).State = EntityState.Modified;
                }
                if (vendedor != null)
                {
                    nameAnuncio              = vendedor.Mensaje;
                    vendedor.Mensaje         = "";
                    db.Entry(vendedor).State = EntityState.Modified;
                }
                db.SaveChanges();
            }
            var Anuncios = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 10, m => m.Cantidad > 0 && m.SoloParaSubasta == false).OrderBy(m => m.Calificacion);
            var Subastas = QuerysGeneric.Get_N_Obj_Ordenado_Por <Subasta, int>(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto).Include(a => a.Anuncio.Files), 3, m => m.PujaActual, true);
            var Rebajas  = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 2, m => m.Precio > m.NuevoPrecio && m.Cantidad > 0 && m.SoloParaSubasta == false);

            return(View(new Tuple <IEnumerable <Anuncio>, IEnumerable <Subasta>, IEnumerable <Anuncio>, string>(Anuncios, Subastas, Rebajas, nameAnuncio)));
        }
Ejemplo n.º 4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="compro"></param>
        /// <returns></returns>
        public ActionResult VaciarCarrito(bool compro, double numedeTarjeta = 0)
        {
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);

            foreach (var item in Articulos(comprador.Id))
            {
                db.Carritos.Remove(item);
                db.SaveChanges();
            }
            return(RedirectToAction("Index"));
        }
        // GET: Producto_Vendido/Create
        public ActionResult Create(int carritoId = -1, int Total = 0)
        {
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
            IEnumerable <TarjetaDeCredito> tarjetas = QuerysGeneric.GetTarjetas(comprador.Tarjetas);
            Carrito carrito;

            if (carritoId != -1)
            {
                carrito = db.Carritos.Find(carritoId);
            }
            ViewBag.TarjetaDeCreditoId = new SelectList(tarjetas, "NumDeTarjeta", "NumDeTarjeta", new Producto_Vendido());
            ViewBag.Total     = Total;
            ViewBag.carritoId = carritoId;
            return(View(new Producto_Vendido()));
        }
Ejemplo n.º 6
0
        // GET: Subastas/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
            IEnumerable <TarjetaDeCredito> tarjetas = QuerysGeneric.GetTarjetas(comprador.Tarjetas);

            ViewBag.TarjetaDeCreditoId = new SelectList(tarjetas, "NumDeTarjeta", "NumDeTarjeta", new Producto_Vendido());
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Subasta subasta = await db.Subastas.FindAsync(id);

            if (subasta == null)
            {
                return(HttpNotFound());
            }
            return(View(subasta));
        }
Ejemplo n.º 7
0
        public ActionResult Details([Bind(Include = "Nombre,Tipo,Especificacion,Precio,Fecha,Cantidad,Calificacion,Etiqueta,Descripcion")] ProductoAnuncio productoanuncio, int cantidad)
        {
            Anuncio   anuncio   = db.Anuncios.Find(productoanuncio.AnuncioId);
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);

            if (anuncio.Cantidad < cantidad)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                anuncio.Cantidad = anuncio.Cantidad - cantidad;
                db.Carritos.Add(new Carrito {
                    Comprador = comprador, CompradorId = comprador.Id, Anuncio = anuncio, AnuncioId = anuncio.AnuncioId, Cantidad = cantidad
                });
                db.SaveChanges();
            }
            return(RedirectToAction("Index", "Carritos"));
        }
Ejemplo n.º 8
0
        public async Task <ActionResult> AñadirAlCarrito([Bind(Include = "Cantidad")] int?cantidad, int idAnuncio, string controlador = "Anuncios")
        {
            Anuncio   anuncio   = db.Anuncios.Find(idAnuncio);
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);

            if (anuncio.Cantidad < cantidad)
            {
                return(RedirectToAction("Index", new { nameAnuncio = "ErrorCantidad" }));
            }
            else
            {
                var pedidos = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, 1, m => (m.CompradorId == comprador.Id && m.AnuncioId == idAnuncio && !(m is Producto_Vendido)));
                if (pedidos.Count() == 0)
                {
                    anuncio.Cantidad = anuncio.Cantidad - (cantidad == null?1:(int)cantidad);
                    db.Carritos.Add(new Carrito {
                        Comprador = comprador, CompradorId = comprador.Id, Anuncio = anuncio, AnuncioId = anuncio.AnuncioId, Cantidad = (cantidad == null ? 1 : (int)cantidad), FechaSeparado = DateTime.Now
                    });
                }
                else
                {
                    int Cantidad = (cantidad == null ? 1 : (int)cantidad);
                    var carrito  = pedidos.ToList()[0];
                    if (Cantidad > 0 && Cantidad <= carrito.Anuncio.Cantidad)
                    {
                        anuncio.Cantidad     += carrito.Cantidad;
                        carrito.Cantidad     += Cantidad;
                        anuncio.Cantidad     -= carrito.Cantidad;
                        carrito.FechaSeparado = DateTime.Today;
                    }
                    else
                    {
                        return(RedirectToAction("Index", controlador, new { nameAnuncio = anuncio.Producto.Nombre }));
                    }
                    db.Entry(carrito).State = EntityState.Modified;
                }

                await db.SaveChangesAsync();
            }
            return(RedirectToAction("Index", controlador, new { nameAnuncio = anuncio.Producto.Nombre }));
        }
        public async Task <ActionResult> CrearTarjeta([Bind(Include = "tarjeta")] double tarjeta)
        {
            if (tarjeta > 0)
            {
                Comprador user;
                if (User.IsInRole(RoleName.Comprador))
                {
                    int credito = QuerysGeneric.random.Next(100, 1000);
                    TarjetaDeCredito tarjetaDeCredito = await db.Tarjetas.FindAsync(tarjeta);

                    if (tarjetaDeCredito == null)
                    {
                        tarjetaDeCredito = new TarjetaDeCredito()
                        {
                            NumDeTarjeta      = tarjeta,
                            CreditoDisponible = credito,
                            CreditoContable   = credito
                        };
                        db.Tarjetas.Add(tarjetaDeCredito);
                        await db.SaveChangesAsync();
                    }

                    user = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
                    UsuarioConTarjeta usuario = new UsuarioConTarjeta()
                    {
                        Comprador        = user,
                        CompradorId      = user.Id,
                        TarjetadeCredito = tarjetaDeCredito
                    };
                    db.UsuarioConTarjetas.Add(usuario);
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptTarjeta" }));
                }
            }
            return(View());
        }
        public async Task <ActionResult> Create(Producto_Vendido producto_Vendido, int carritoId, int Total)
        {
            Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores);
            IEnumerable <TarjetaDeCredito> tarjetas = QuerysGeneric.GetTarjetas(comprador.Tarjetas);

            ViewBag.NumDesuTarjeta          = new SelectList(tarjetas, "NumDeTarjeta", "NumDeTarjeta", new Producto_Vendido());
            producto_Vendido.NumDesuTarjeta = db.Tarjetas.Find(producto_Vendido.TarjetaDeCreditoId);
            TarjetaDeCredito tarjeta = producto_Vendido.NumDesuTarjeta;

            if (tarjeta.CreditoDisponible < Total)
            {
                return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" }));
            }
            tarjeta.CreditoDisponible = tarjeta.CreditoDisponible - Total;
            tarjeta.CreditoContable   = tarjeta.CreditoContable - Total;
            db.Entry(tarjeta).State   = EntityState.Modified;

            if (carritoId != -1)
            {
                Carrito carrito = db.Carritos.Find(producto_Vendido.CarritoId);
                producto_Vendido.CarritoId     = carritoId;
                producto_Vendido.Cantidad      = carrito.Cantidad;
                producto_Vendido.AnuncioId     = carrito.AnuncioId;
                producto_Vendido.CompradorId   = carrito.CompradorId;
                producto_Vendido.FechaSeparado = carrito.FechaSeparado;

                if (ModelState.IsValid)
                {
                    db.Producto_Vendido.Add(producto_Vendido as Producto_Vendido);
                    db.Carritos.Remove(carrito);

                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" }));
                }
            }
            else
            {
                var carros = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, null, m => (m.CompradorId == comprador.Id && !(m is Producto_Vendido))).ToList();

                foreach (var item in carros)
                {
                    Producto_Vendido producto = new Producto_Vendido();
                    producto.CarritoId     = carritoId;
                    producto.Cantidad      = item.Cantidad;
                    producto.AnuncioId     = item.AnuncioId;
                    producto.CompradorId   = item.CompradorId;
                    producto.FechaSeparado = item.FechaSeparado;

                    if (ModelState.IsValid)
                    {
                        db.Producto_Vendido.Add(producto as Producto_Vendido);
                        db.Carritos.Remove(item);
                        await db.SaveChangesAsync();

                        return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" }));
                    }
                }
            }
            return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" }));
        }