//desativar estado dependiendo si a llegado al restaurante o no public static void Desactivar2(WebRestauranteContext db) { var MesasOcupada = new List <MesasOcupadas>(); 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); MesasOcupada = db.MesasOcupadas.Where(t => t.Fecha_MesasO == fecha).ToList(); MesasOcupada = MesasOcupada.Where(t => Hora > t.HoraSalida_MesasO).ToList(); MesasOcupada = MesasOcupada.Where(t => t.Llegada_MesasO == false).ToList(); MesasOcupada = MesasOcupada.Where(t => t.Estado_MesasO == true).ToList(); if (MesasOcupada.Count() != 0) { foreach (var item in MesasOcupada) { MesasOcupadas MO = db.MesasOcupadas.Find(item.Cod_MesasO); var Detalle = db.DetalleMesasCliente.Where(t => t.Cod_MesasO == item.Cod_MesasO).ToList(); foreach (var item1 in Detalle) { DetalleMesasCliente DMC = db.DetalleMesasCliente.Find(item1.Id_DMC); DMC.Estado_DMC = false; db.Entry(DMC).State = System.Data.Entity.EntityState.Modified; } MO.Estado_MesasO = false; db.Entry(MO).State = System.Data.Entity.EntityState.Modified; db.SaveChanges(); } } }
public ActionResult Detalles(int?IdM, Guid?IdC, int?IdMesaO, string NC, int?D, bool?F, string Add) { var Cliente = new Clientes(); var edetalle = new EDetalles(); var DCM = new List <DetalleMesasCliente>(); var listMesasO = new List <MesasOcupadas>(); var addMesasO = new List <MesasOcupadas>(); var ListMenu = new List <Menu>(); var TipoDocumento = new TipoDocumento(); var Detalle = new DetalleView(); int imesas = 0, imenu = 0; decimal Valor = 0; string aux = ""; using (var transacion = db.Database.BeginTransaction()) { try { if (Add != null) { string aux2 = ""; string[] x = Add.Split(new char[] { ',' }); for (int i = 0; i < x.Length; i++) { if (x[i] != "") { int add = Convert.ToInt32(x[i]); if (add < 0) { string[] x2 = x[i].Split(new char[] { '-' }); aux2 = aux2 + "," + x2[1]; } } } if (aux2 != "") { string[] x3 = aux2.Split(new char[] { ',' }); for (int i = 0; i < x3.Length; i++) { if (x3[i] != "") { string[] x4 = Add.Split(new char[] { ',' }); Add = ""; for (int i1 = 0; i1 < x4.Length; i1++) { if (x4[i1] != "") { if (x4[i1] != x3[i] && Convert.ToInt32(x4[i1]) > 0) { Add = Add + "," + x4[i1]; } } } } } } if (Add != "") { var DCM2 = new List <DetalleMesasCliente>(); string[] s = Add.Split(new char[] { ',' }); for (int i = 0; i < s.Length; i++) { if (s[i] != "") { int add = Convert.ToInt32(s[i]); if (add > 0) { DCM2 = db.DetalleMesasCliente.Where(t => t.Cod_MesasO == add).ToList(); foreach (var item in DCM2) { if ((item.Estado_DMC == true) || (F != null)) { DetalleMesasCliente a = db.DetalleMesasCliente.Find(item.Id_DMC); DCM.Add(a); } } } } } } } if (F == null) { var DCM1 = new List <DetalleMesasCliente>(); DCM1 = db.DetalleMesasCliente.Where(t => t.Cod_Cli == IdC && t.NConfirmacion_DMC == NC).ToList(); foreach (var item in DCM1) { if ((item.Estado_DMC == true) || (F != null)) { DetalleMesasCliente a = db.DetalleMesasCliente.Find(item.Id_DMC); DCM.Add(a); } } } if (DCM.Count() != 0) { int i = 0, i1 = 0; foreach (var item in DCM) { 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); if (item.MesasOcupadas.Fecha_MesasO == DateTime.Now.Date && hora >= item.MesasOcupadas.HoraIngreso_MesasO) { if (item.Cantidad_DMC != 0) { Menu M = db.Menus.Find(item.Cod_Menu); Valor = Valor + (M.Valor_Menu * item.Cantidad_DMC); ListMenu.Add(M); } if (i1 != item.MesasOcupadas.CPersonas_Mesas) { i1 = item.MesasOcupadas.CPersonas_Mesas; i = i + item.MesasOcupadas.CPersonas_Mesas; } if (listMesasO.Where(t => t.Cod_MesasO == item.Cod_MesasO).Count() == 0) { MesasOcupadas MO = db.MesasOcupadas.Find(item.Cod_MesasO); imesas++; aux = aux + " - " + MO.Mesas.Numero_Mesa; listMesasO.Add(MO); } //if (Cliente.Cod_Cli == 0 && TipoDocumento.Cod_TDoc == 0) //{ // Cliente = db.Clientes.Find(item.Cod_Cli); // TipoDocumento = db.TipoDocumentoes.Find(item.Cod_TDoc); //} if (item.PedidoM == true) { imenu++; } if (item.Cod_MesasO == IdMesaO) { Detalle.Fecha = item.MesasOcupadas.Fecha_MesasO; Detalle.HoraI = item.MesasOcupadas.HoraIngreso_MesasO; Detalle.Horas = item.MesasOcupadas.HoraSalida_MesasO; Cliente = db.Clientes.Find(item.Cod_Cli); TipoDocumento = db.TipoDocumentoes.Find(item.Cod_TDoc); } } else { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } } addMesasO = AddMesas.Lista(IdC.Value, IdM.Value, db, fecha, hora); var quitar = addMesasO.Where(t => t.Reservada == NC).ToList(); foreach (var item in quitar) { var r = addMesasO.Single(t => t.Cod_MesasO == item.Cod_MesasO); if (r != null) { addMesasO.Remove(r); } } if (F == null) { edetalle = new EDetalles { D = D.Value, F = false, IdC = IdC.Value, IdM = IdM.Value, IdMesaO = IdMesaO.Value, NC = NC, Add = Add }; } else { edetalle = new EDetalles { D = D.Value, F = true, IdC = IdC.Value, IdM = IdM.Value, IdMesaO = IdMesaO.Value, NC = NC, Add = Add }; } Detalle.Cmesas = imesas; Detalle.Nmesas = aux; Detalle.Cmenu = imenu; Detalle.Cpersonas = i; Detalle.Confirmacion = listMesasO.FirstOrDefault().ConfirmarMesa; Detalle.Detalle = D.Value; Detalle.addMesasO = addMesasO; Detalle.Mesas = db.Mesas.ToList(); Detalle.ValorTotal = Valor; Detalle.EDetalles = edetalle; Detalle.consecutivo = Consecutivo.Numero(db); if (F == null) { Detalle.F = false; } else { Detalle.F = F.Value; } transacion.Commit(); } else { return(HttpNotFound()); } } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); ViewBag.Error = true; } } Detalle.Cliente = Cliente; Detalle.TipoDocumento = TipoDocumento; Detalle.Menus = ListMenu.OrderBy(t => t.Cod_TMenu).ToList(); Detalle.DetalleMesasClientes = DCM; return(View(Detalle)); }
public static void DetalleMenuCliente(Guid IdCliente, string idMesas, string Nconfirma, WebRestauranteContext db, string[] MenuCantidad, int?IdMesaO, bool?TR) { string[] idMesa = idMesas.Split(new char[] { ',' }); foreach (var item in idMesa) { if (item != "") { if (IdMesaO == 0) { if (MenuCantidad != null) { foreach (var item1 in MenuCantidad) { string[] id = item1.Split(new char[] { ',' }); if (id[0] != "") { int cod = Convert.ToInt32(item); var detalle = new DetalleMesasCliente { Cod_MesasO = cod, Cod_Cli = IdCliente, NConfirmacion_DMC = Nconfirma, Cantidad_DMC = Convert.ToInt32(id[1]), Cod_Menu = Convert.ToInt32(id[0]), Estado_DMC = true, Cod_TDoc = 1, PedidoM = true }; db.DetalleMesasCliente.Add(detalle); MesasOcupadas x = db.MesasOcupadas.Find(cod); x.Reservada = Nconfirma; x.Llegada_MesasO = true; db.Entry(x).State = EntityState.Modified; db.SaveChanges(); } } } else { int cod = Convert.ToInt32(item); var detalle = new DetalleMesasCliente { Cod_MesasO = cod, Cod_Cli = IdCliente, NConfirmacion_DMC = Nconfirma, Cantidad_DMC = Convert.ToInt32(0), Cod_Menu = Convert.ToInt32(1), Estado_DMC = true, Cod_TDoc = 1, PedidoM = false }; db.DetalleMesasCliente.Add(detalle); MesasOcupadas x = db.MesasOcupadas.Find(cod); x.Reservada = Nconfirma; db.Entry(x).State = EntityState.Modified; db.SaveChanges(); } } else { int i = 0; int id_DMC = 0; var CMC = db.DetalleMesasCliente.Where(t => t.Cod_MesasO == IdMesaO).ToList(); foreach (var iten in CMC) { var D = db.DetalleMesasCliente.Find(iten.Id_DMC); id_DMC = iten.Id_DMC; db.DetalleMesasCliente.Remove(D); db.SaveChanges(); } if (MenuCantidad != null) { var R = db.DetalleMesasCliente.Where(T => T.Id_DMC == id_DMC).ToList(); foreach (var item1 in MenuCantidad) { string[] id = item1.Split(new char[] { ',' }); if (id[0] != "") { int cod = Convert.ToInt32(item); var detalle = new DetalleMesasCliente { Cod_MesasO = cod, Cod_Cli = IdCliente, NConfirmacion_DMC = Nconfirma, Cantidad_DMC = Convert.ToInt32(id[1]), Cod_Menu = Convert.ToInt32(id[0]), Estado_DMC = true, Cod_TDoc = 1, PedidoM = true }; db.DetalleMesasCliente.Add(detalle); if (i == 0) { var mo = db.MesasOcupadas.Where(t => t.Cod_MesasO == cod || t.Reservada == Nconfirma).ToList(); foreach (var item2 in mo) { MesasOcupadas x = db.MesasOcupadas.Find(item2.Cod_MesasO); x.Reservada = Nconfirma; if (TR != true) { x.Llegada_MesasO = true; } db.Entry(x).State = EntityState.Modified; db.SaveChanges(); i++; } } } } db.SaveChanges(); } else { int cod = Convert.ToInt32(item); var detalle = new DetalleMesasCliente { Cod_MesasO = cod, Cod_Cli = IdCliente, NConfirmacion_DMC = Nconfirma, Cantidad_DMC = Convert.ToInt32(0), Cod_Menu = Convert.ToInt32(1), Estado_DMC = true, Cod_TDoc = 1, PedidoM = false }; db.DetalleMesasCliente.Add(detalle); MesasOcupadas x = db.MesasOcupadas.Find(cod); x.Reservada = Nconfirma; db.Entry(x).State = EntityState.Modified; db.SaveChanges(); } } } } }