// 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.º 2
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));
        }
        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" }));
        }