public async Task <ActionResult> Create([Bind(Include = "IdCatalogo,Nombre,Genero,Precio,HoraInicio,HoraFin,Asientos")] Catalogo catalogo) { if (ModelState.IsValid) { db.Catalogos.Add(catalogo); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(catalogo)); }
public async Task <ActionResult> Create([Bind(Include = "IdVenta,Fecha,IdCatalogo,Asientos,TipoPago,Cobrado,Empleado")] Venta venta) { venta.Fecha = DateTime.Now.Date; var empleado = User.Identity.Name; if (empleado.Length < 1) { empleado = "Anonimo"; } venta.Empleado = empleado; try { Catalogo catal = await db.Catalogos.FindAsync(venta.IdCatalogo); decimal precio = catal.Precio; decimal asientos = (decimal)venta.Asientos; var cobrado = precio * asientos; if (venta.Asientos > 0) { if (precio > 0) { venta.Cobrado = ((double)cobrado); } } } catch (Exception) { } var ventas = db.Ventas.Include(v => v.Catalogos); var VentasTotales = ventas.LongCount <Venta>(); int limite; if (VentasTotales <= 0) { limite = 100; } else { limite = db.Catalogos.Distinct().Where(o => o.IdCatalogo.Equals(venta.IdCatalogo)).Select(o => o.Asientos).SingleOrDefault(); } int tomados = 0; try { tomados = db.Ventas.Where(y => y.IdCatalogo.Equals(venta.IdCatalogo)).Select(u => u.Asientos).Sum(); } catch (Exception) { } var reservado = venta.Asientos + tomados; if (reservado <= limite) { if (ModelState.IsValid) { db.Ventas.Add(venta); await db.SaveChangesAsync(); var retorno = "Details/" + venta.IdVenta; return(RedirectToAction(retorno)); } } else { return(RedirectToAction("LimiteAsientos")); } ViewBag.IdCatalogo = new SelectList(db.Catalogos, "IdCatalogo", "Nombre", venta.IdCatalogo); return(View(venta)); }