public ActionResult SelectDia(int?id) { var menus = new List <Menu>(); var lisCDias = new List <CDias>(); var HomeView = new HomeView(); DateTime Fecha = DateTime.Now.Date.Date; var listDias = db.Dias.ToList(); if (id != null) { var daymenu = db.DayMenu.Where(dm => dm.Cod_Dia == id).ToList(); foreach (var item in daymenu) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } } foreach (var item in listDias) { var Cdias = new CDias { Cantidad = db.DayMenu.Where(t => t.Cod_Dia == item.Cod_Dia).Count(), IdDia = item.Cod_Dia }; lisCDias.Add(Cdias); } ViewBag.SeleDia = id; HomeView.Menu = new Menu(); HomeView.Menus = menus; HomeView.Dias = listDias; HomeView.CantidadD = lisCDias; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View("Index", HomeView)); }
// GET: MesasOcupadas/Create public ActionResult Create(bool?C) { ViewBag.CMesas = CantidadMesas.CMesas(db); ViewBag.Cod_Mesa = new SelectList(db.Mesas, "Cod_Mesa", "Numero_Mesa"); var reservaView = new ReservaView(); reservaView.Clientes = new Clientes(); reservaView.MesasOcupadas = new MesasOcupadas(); return(View(reservaView)); }
public async Task <ActionResult> Create(ReservaView ReservaView, string RCM) { string idMesa = ""; Guid IdCliente = new Guid(); int codMesas = 0; int CMesas = db.Mesas.ToList().Count(); var addr = new AddR(); DateTime hora = DateTime.Now; if (RCM == "Reservar con menu") { RCM = Convert.ToString("1"); } else { RCM = null; } if (ReservaView.MesasOcupadas.Fecha_MesasO < DateTime.Now.Date) { ModelState.AddModelError(string.Empty, "Ingrese una fecha mayor o igual ala actual"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } //if (db.Restaurantes.FirstOrDefault().HoraCierre < TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db)) //{ // ModelState.AddModelError(string.Empty, "Ingrese una fecha mayor posterior ala actual, por que el restaurante cierra alas "+ db.Restaurantes.FirstOrDefault().HoraCierre.ToString("hh:mm:ss")); // ViewBag.Error = true; // ViewBag.CMesas = CantidadMesas.CMesas(db); // return View(ReservaView); //} if (ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours <= hora.TimeOfDay.Hours && ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Minutes <= hora.TimeOfDay.Minutes && DateTime.Now.Date == ReservaView.MesasOcupadas.Fecha_MesasO) { ModelState.AddModelError(string.Empty, "Ingrese una hora mayor ala actual"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } if (ReservaView.MesasOcupadas.CPersonas_Mesas <= 0) { ModelState.AddModelError(string.Empty, "Ingrese una cantidad de personas mayor a cero"); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } if (ModelState.IsValid) { using (var transacion = db.Database.BeginTransaction()) { try { int cantida = CantidadMesas.CMesa(ReservaView.MesasOcupadas.Fecha_MesasO, ReservaView.MesasOcupadas.HoraIngreso_MesasO, db); int i2 = 1; if ((ReservaView.MesasOcupadas.CPersonas_Mesas % 4) == 0) { IdCliente = Cliente.idCliente(ReservaView.Clientes.Correo_Cli, ReservaView.Clientes.Nombres_Cli, ReservaView.Clientes.Apellidos_Cli, ReservaView.Clientes.Telefono_Cli, db); int CRMesas = (ReservaView.MesasOcupadas.CPersonas_Mesas / 4); if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO == DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, por favor seleciones una fecha posterior a esta {0} y maximo de {1} persona", ReservaView.MesasOcupadas.Fecha_MesasO.ToString("dd/MM/yyyy"), (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } else if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO > DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, maximo de {0}", (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } for (int i = 1; i <= CMesas; i++) { if (i2 <= CRMesas) { var Nmesa = ("M " + i); var mesa = db.Mesas.Where(m => m.Numero_Mesa == Nmesa).ToList(); foreach (var item in mesa) { int valor = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Count(); if (valor == 0) { //int HoraS = ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours; //HoraS = HoraS + 2; var mesasO = new MesasOcupadas { Cod_Mesa = item.Cod_Mesa, Estado_MesasO = true, ConfirmarMesa = false, Reservada = "PaginaWeb", CPersonas_Mesas = ReservaView.MesasOcupadas.CPersonas_Mesas, Fecha_MesasO = ReservaView.MesasOcupadas.Fecha_MesasO, HoraIngreso_MesasO = ReservaView.MesasOcupadas.HoraIngreso_MesasO, HoraSalida_MesasO = TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db) //HoraSalida_MesasO = new DateTime(ReservaView.MesasOcupadas.HoraIngreso_MesasO.Year, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Month, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Day, // HoraS, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Minute, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Second) }; db.MesasOcupadas.Add(mesasO); db.SaveChanges(); codMesas = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Max(mo => mo.Cod_MesasO); idMesa = codMesas + "," + idMesa; i2++; } } } else { i = CMesas; } } } else { IdCliente = Cliente.idCliente(ReservaView.Clientes.Correo_Cli, ReservaView.Clientes.Nombres_Cli, ReservaView.Clientes.Apellidos_Cli, ReservaView.Clientes.Telefono_Cli, db); int CRMesas = (ReservaView.MesasOcupadas.CPersonas_Mesas / 4) + 1; if (CRMesas >= cantida && ReservaView.MesasOcupadas.Fecha_MesasO == DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, por favor seleciones una fecha posterior a esta {0}", ReservaView.MesasOcupadas.Fecha_MesasO.ToString("dd/MM/yyyy"))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } else if (CRMesas > cantida && ReservaView.MesasOcupadas.Fecha_MesasO > DateTime.Now.Date) { ModelState.AddModelError(string.Empty, string.Format("No hay mesas suficiente para hacer su reserva, maximo de {0} personas", (CMesas * 4))); ViewBag.Error = true; ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); } for (int i = 1; i <= CMesas; i++) { if (i2 <= CRMesas) { var Nmesa = ("M " + i); var mesa = db.Mesas.Where(m => m.Numero_Mesa == Nmesa).ToList(); foreach (var item in mesa) { int codMesa = item.Cod_Mesa; int valor = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Count(); if (valor == 0) { //int HoraS = ReservaView.MesasOcupadas.HoraIngreso_MesasO.TimeOfDay.Hours; //HoraS = HoraS + 2; var mesasO = new MesasOcupadas { Cod_Mesa = item.Cod_Mesa, Estado_MesasO = true, ConfirmarMesa = false, Reservada = "PaginaWeb", CPersonas_Mesas = ReservaView.MesasOcupadas.CPersonas_Mesas, Fecha_MesasO = ReservaView.MesasOcupadas.Fecha_MesasO, HoraIngreso_MesasO = ReservaView.MesasOcupadas.HoraIngreso_MesasO, HoraSalida_MesasO = TiempoEspera.Salida(ReservaView.MesasOcupadas.HoraIngreso_MesasO, db) //HoraSalida_MesasO = new DateTime(ReservaView.MesasOcupadas.HoraIngreso_MesasO.Year, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Month, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Day, // HoraS, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Minute, ReservaView.MesasOcupadas.HoraIngreso_MesasO.Second) }; db.MesasOcupadas.Add(mesasO); db.SaveChanges(); codMesas = MesasOcupada.Lista(item.Cod_Mesa, ReservaView.MesasOcupadas.Fecha_MesasO, db, ReservaView.MesasOcupadas.HoraIngreso_MesasO).Max(mo => mo.Cod_MesasO); idMesa = codMesas + "," + idMesa; i2++; } } } else { i = CMesas; } } } string[] MenuCantidad = new string[db.Menus.Count()]; int IdMesasO = 0; string ramdo = Ramdon.Numero(); Reserva.DetalleMenuCliente(IdCliente, "," + idMesa, "PaginaWeb-" + ramdo, db, SeparadorMenu.Menu(MenuCantidad, MenuCantidad), IdMesasO, null); addr = new AddR { add = RCM, CPersona = ReservaView.MesasOcupadas.CPersonas_Mesas.ToString(), IdC = IdCliente, IdM = codMesas, IdMesaO = codMesas, NCF = "PaginaWeb-" + ramdo }; if (RCM == null) { await SendEmail.ConfirmarReserva(IdCliente, "PaginaWeb-" + ramdo, db); transacion.Commit(); } else { transacion.Commit(); return(RedirectToAction("MenuVista", "Menus", addr)); } return(RedirectToAction("ConReserva", "MesasOcupadas", addr)); } catch (Exception ex) { ViewBag.CMesas = CantidadMesas.CMesas(db); transacion.Rollback(); ModelState.AddModelError(string.Empty, "Error al Reservar " + ex.Message); ViewBag.Error = true; return(View(ReservaView)); } } } ViewBag.CMesas = CantidadMesas.CMesas(db); return(View(ReservaView)); }
public ActionResult Index() { var listDias = new List <Models.Dias>(); var HomeView = new HomeView(); using (var transacion = db.Database.BeginTransaction()) { try { string correo = WebConfigurationManager.AppSettings["mailAccount"]; var clientes = db.Clientes.ToList(); var cliente = clientes.Where(t => t.Correo_Cli == correo); var listaDT = db.TipoDocumentoes.ToList(); listDias = db.Dias.ToList(); if (listDias.Count() == 0 && cliente.Count() == 0 && listaDT.Count() == 0) { Cliente.idCliente(WebConfigurationManager.AppSettings["mailAccount"], "NRestaurante", "PRestaurante", "3177965608", db); ClasesUtil.Dias.listaDias(db); TipoDocumentos.ListaTD(db); listDias = db.Dias.ToList(); } var menus = new List <Menu>(); var lisCDias = new List <CDias>(); var Dia = DateTime.Now.DayOfWeek; switch (Dia) { case DayOfWeek.Sunday: var Sunday = db.DayMenu.Where(dm => dm.Cod_Dia == 7).ToList(); foreach (var item in Sunday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Monday: var Monday = db.DayMenu.Where(dm => dm.Cod_Dia == 1).ToList(); foreach (var item in Monday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Tuesday: var Tuesday = db.DayMenu.Where(dm => dm.Cod_Dia == 2).ToList(); foreach (var item in Tuesday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Wednesday: var Wednesday = db.DayMenu.Where(dm => dm.Cod_Dia == 3).ToList(); ViewBag.CWednesday = db.DayMenu.Where(dm => dm.Cod_Dia == 3).Count(); ViewBag.Wednesday = "Miercoles"; foreach (var item in Wednesday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Thursday: var Thursday = db.DayMenu.Where(dm => dm.Cod_Dia == 4).ToList(); foreach (var item in Thursday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Friday: var Friday = db.DayMenu.Where(dm => dm.Cod_Dia == 5).ToList(); foreach (var item in Friday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; case DayOfWeek.Saturday: var Saturday = db.DayMenu.Where(dm => dm.Cod_Dia == 6).ToList(); foreach (var item in Saturday) { var Menus = db.Menus.Find(item.Cod_Menu); menus.Add(Menus); } ViewBag.CMesas = CantidadMesas.CMesas(db); break; default: break; } var listaD = db.Dias.ToList(); foreach (var item in listaD) { var Cdias = new CDias { Cantidad = db.DayMenu.Where(t => t.Cod_Dia == item.Cod_Dia).Count(), IdDia = item.Cod_Dia }; lisCDias.Add(Cdias); } HomeView.Menu = new Menu(); HomeView.Menus = menus; HomeView.Dias = listDias; HomeView.CantidadD = lisCDias; transacion.Commit(); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); transacion.Rollback(); } } return(View(HomeView)); }