public ActionResult Comprar(eCompra compra) { if (ModelState.IsValid) { Espectaculo eOrig = db.Espectaculos.Find(compra.eId); if (compra.tipoEnt == "G") { for (int i = 1; i <= compra.cant; i++) { db.Entradas.Add( new Entrada { Espectaculo = eOrig, Estado = "Comprada", FechaVenta = DateTime.Now, NumAsiento = compra.asiento, NumFila = compra.fila, Precio = eOrig.PrecioEGen, UserName = compra.username }); } eOrig.CantGen = eOrig.CantGen - compra.cant; //a la cantidad original de entradas generales, le resto las que vendi db.Entry(eOrig).State = EntityState.Modified; } else //si es una entrada numerada { Entrada entrada = eOrig.Entradas.SingleOrDefault(e => e.NumFila == compra.fila && e.NumAsiento == compra.asiento); if (entrada != null) // si la entrada ya existe, le muestro la misma view para que cargue otra, todavia no se implemento una validacion js en la misma vista para evitar este paso { return View(compra); } else // si la entrada esta disponible { db.Entradas.Add( new Entrada { Espectaculo = eOrig, Estado = "Comprada", FechaVenta = DateTime.Now, NumAsiento = compra.asiento, NumFila = compra.fila, Precio = eOrig.PrecioENum, UserName = compra.username }); db.Entry(eOrig).State = EntityState.Modified; } } db.SaveChanges(); return RedirectToAction("Index"); } return View(compra); }
public ActionResult Comprar(string tipoEnt, int id) { Espectaculo e = db.Espectaculos.Find(id); eCompra esp = new eCompra(); esp.eId = e.EspectaculoId; if (tipoEnt == "G") { esp.tipoEnt = "G"; return View(esp); } else { esp.tipoEnt = "N"; return View(esp); } }