예제 #1
0
        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));
        }
예제 #2
0
        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));
        }