Beispiel #1
0
        public static bool ingresar(WebRestauranteContext db, int IdM, Guid IdC, string[] selectedMenu, string[] DCantida, int?IdMesaO, string CPersona, bool?TR)
        {
            int horaS = DateTime.Now.TimeOfDay.Hours;

            horaS = horaS + 2;
            if (IdMesaO != 0)
            {
                var MO = db.MesasOcupadas.Find(IdMesaO);
                Reserva.DetalleMenuCliente(IdC, "," + MO.Cod_MesasO, MO.Reservada, db, SeparadorMenu.Menu(selectedMenu, DCantida), IdMesaO, TR);
                return(true);
            }
            else
            {
                Mover.Mesas(IdM, db);
                int A      = DateTime.Now.Year;
                var mesasO = new MesasOcupadas
                {
                    Cod_Mesa           = IdM,
                    Estado_MesasO      = true,
                    ConfirmarMesa      = true,
                    CPersonas_Mesas    = Convert.ToInt32(CPersona),
                    Fecha_MesasO       = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day),
                    HoraIngreso_MesasO = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.TimeOfDay.Hours, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.TimeOfDay.Seconds),
                    HoraSalida_MesasO  = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, horaS, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.TimeOfDay.Seconds),
                    Llegada_MesasO     = true,
                    Reservada          = "Restaurante"
                };
                db.MesasOcupadas.Add(mesasO);
                db.SaveChanges();
                var codMesas = MesasOcupada.Lista(IdM, mesasO.Fecha_MesasO, db, mesasO.HoraIngreso_MesasO).Max(mo => mo.Cod_MesasO);
                Reserva.DetalleMenuCliente(IdC, "," + codMesas, "Restaurante-" + Ramdon.Numero(), db, SeparadorMenu.Menu(selectedMenu, DCantida), IdMesaO, TR);
                return(true);
            }
        }
        public static int CMesa(DateTime fecha, DateTime hora, WebRestauranteContext db)
        {
            int i2 = 0;

            MesasOcupada.Desactivar(db); MesasOcupada.Desactivar2(db);
            var mesa = db.Mesas.ToList();

            foreach (var item in mesa)
            {
                var MesasOcupada  = db.MesasOcupadas.Where(mo => mo.Cod_Mesa == item.Cod_Mesa).ToList();
                var MesasODate    = MesasOcupada.Where(mo => (mo.Fecha_MesasO == fecha)).ToList();
                var MesasOHora    = MesasODate.Where(mo => (hora >= mo.HoraIngreso_MesasO) && (mo.HoraSalida_MesasO >= hora)).ToList();
                var MesasOcupadas = MesasOHora.Where(mo => mo.Estado_MesasO == true).ToList();
                if (MesasOcupadas.Count() == 0)
                {
                    i2++;
                }
            }
            return(i2);
        }
        // cuenta las mesas disponible asta la hora actual
        public static int CMesas(WebRestauranteContext db)
        {
            int i2 = 0;

            MesasOcupada.Desactivar(db); MesasOcupada.Desactivar2(db);
            var      mesa  = db.Mesas.ToList();
            DateTime fecha = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            DateTime hora  = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.TimeOfDay.Hours, DateTime.Now.TimeOfDay.Minutes, DateTime.Now.TimeOfDay.Seconds);

            foreach (var item in mesa)
            {
                var MesasOcupada  = db.MesasOcupadas.Where(mo => mo.Cod_Mesa == item.Cod_Mesa).ToList();
                var MesasODate    = MesasOcupada.Where(mo => (mo.Fecha_MesasO == fecha)).ToList();
                var MesasOHora    = MesasODate.Where(mo => (hora >= mo.HoraIngreso_MesasO) /*&& (mo.HoraSalida_MesasO >= hora)*/).ToList();
                var MesasOcupadas = MesasOHora.Where(mo => mo.Estado_MesasO == true).ToList();
                if (MesasOcupadas.Count() == 0)
                {
                    i2++;
                }
            }
            return(i2);
        }