// GET: Carritos public ActionResult Index() { var comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); var carritoes = Articulos(comprador.Id); return(View(carritoes)); }
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" })); }
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))); }
/// <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())); }
// 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)); }
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")); }
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" })); }