Ejemplo n.º 1
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.º 2
0
        public ActionResult IndexAccept(string nameAnuncio)
        {
            var Anuncios = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 10, m => m.Cantidad > 0).OrderBy(m => m.Calificacion);
            var Subastas = QuerysGeneric.Get_N_Obj_Ordenado_Por <Subasta, int>(db.Subastas, 3, m => m.PujaActual, true);
            var Rebajas  = QuerysGeneric.Get_N_Obj_Mientras <Anuncio>(db.Anuncios, 2, m => m.Precio > m.NuevoPrecio);

            return(View(new Tuple <IEnumerable <Anuncio>, IEnumerable <Subasta>, IEnumerable <Anuncio>, string>(Anuncios, Subastas, Rebajas, nameAnuncio)));
        }
Ejemplo n.º 3
0
        // GET: Subastas
        public async Task <ActionResult> Index(int vista = 0, int filtros1 = -1, int filtros2 = -1)
        {
            IEnumerable <Subasta> subastas;

            if (filtros1 == -1)
            {
                subastas = await db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto).ToListAsync();
            }
            else if (filtros2 == -1)
            {
                subastas = QuerysGeneric.Get_N_Obj_Mientras(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto), null, m => ((int)m.Anuncio.Producto.Tipo == filtros1));
            }
            else
            {
                subastas = QuerysGeneric.Get_N_Obj_Mientras(db.Subastas.Include(a => a.Anuncio).Include(a => a.Comprador).Include(a => a.Anuncio.Producto), null, m => ((int)m.Anuncio.Producto.Tipo == filtros1 && m.Anuncio.Producto.Especificacion == filtros2));
            }
            return(View(new Tuple <IEnumerable <Subasta>, int, int, int>(subastas, vista, filtros1, filtros2)));
        }
Ejemplo n.º 4
0
        public void RevisarSubastas()
        {
            var subastas = QuerysGeneric.Get_N_Obj_Mientras(Subastas.Include(m => m.Comprador).Include(m => m.Anuncio.Vendedor).Include(m => m.Anuncio.Vendedor.TarjetaDeCredito).Include(m => m.UsuarioConTarjeta.TarjetadeCredito).Include(m => m.Anuncio).Include(m => m.Anuncio.Producto), null, m => m.FechadeCulminacion <= DateTime.Now);

            foreach (var sub in subastas)
            {
                if (sub.Comprador != null)
                {
                    sub.Comprador.Mensaje = sub.Comprador.Mensaje + "@Ha Ganado La Subasta del Producto: " + sub.Anuncio.Producto.Nombre;
                    sub.UsuarioConTarjeta.TarjetadeCredito.CreditoContable = sub.UsuarioConTarjeta.TarjetadeCredito.CreditoContable - sub.PujaActual;
                    TarjetaDeCredito tar = sub.Anuncio.Vendedor.TarjetaDeCredito;
                    tar.CreditoContable         += sub.PujaActual;
                    tar.CreditoDisponible       += sub.PujaActual;
                    sub.Anuncio.Vendedor.Mensaje = sub.Anuncio.Vendedor.Mensaje + "@Se ha vendido su subasta del Producto: " + sub.Anuncio.Producto.Nombre + " en " + sub.PujaActual;
                    Entry(sub).State             = EntityState.Modified;
                }
            }
            Subastas.RemoveRange(subastas);
            SaveChanges();
        }
Ejemplo n.º 5
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 }));
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Index(int vista = 0, int filtros1 = -1, int filtros2 = -1, int filtros3 = 0, string nombre = "", int precioMin = 0, int PrecioMax = 10000, string nameAnuncio = "")
        {
            Vendedor vendedor = QuerysGeneric.GetVendedor(User.Identity.Name, db.Vendedores);
            IEnumerable <Anuncio> anuncios;

            if (filtros1 == -1)
            {
                anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false);
            }
            else
            {
                if (filtros2 == -1)
                {
                    anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((int)m.Producto.Tipo == filtros1 && ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false));
                }
                else
                {
                    anuncios = QuerysGeneric.Get_N_Obj_Mientras(db.Anuncios.Include(a => a.Producto).Include(a => a.Vendedor), null, m => ((int)m.Producto.Tipo == filtros1 && m.Producto.Especificacion == filtros2 && ((User.IsInRole(RoleName.Vendedor) && m.VendedorId == vendedor.Id) || m.Cantidad > 0) && m.SoloParaSubasta == false));
                }
            }
            if (filtros3 != 0)
            {
                anuncios = anuncios.Where(m => m.Precio > m.NuevoPrecio);
            }
            if (nombre != "")
            {
                anuncios = anuncios.Where(m => m.Etiqueta.Contains(nombre) || m.Producto.Nombre.Contains(nombre) || m.Descripcion.Contains(nombre));
                vista    = -1;
            }
            if (precioMin != 0 || PrecioMax != 10000)
            {
                vista    = -1;
                anuncios = anuncios.Where(m => m.NuevoPrecio > precioMin && m.NuevoPrecio < PrecioMax);
            }

            return(View(new Tuple <IEnumerable <Anuncio>, int, Filtros, string>(anuncios, vista, new Filtros(filtros1, filtros2, filtros3), nameAnuncio)));
        }
Ejemplo n.º 7
0
        public IEnumerable <Carrito> Articulos(int id)
        {
            var carros = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, null, m => (m.CompradorId == id && !(m is Producto_Vendido))).ToList();

            return(carros);
        }
        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" }));
        }