public ActionResult Detalle(Guid id) { var detalle = new DetalleView(); Guid i = new Guid(); var idmesasO = db.DetalleMesasCliente.Where(drm => drm.Cod_Cli == id).ToList(); foreach (var item in idmesasO) { if (item.Cod_Cli != i) { i = item.Cod_Cli; var mesaso = db.MesasOcupadas.Find(item.Cod_MesasO); var Creserva = db.DetalleMesasCliente.Where(drm => drm.Cod_Cli == id).Count(); detalle.Cmesas = Creserva; detalle.Cpersonas = mesaso.CPersonas_Mesas; detalle.Confirmacion = mesaso.ConfirmarMesa; detalle.Fecha = mesaso.Fecha_MesasO; detalle.HoraI = mesaso.HoraIngreso_MesasO; detalle.Horas = mesaso.HoraSalida_MesasO; detalle.IdReserva = id; } } detalle.Cliente = db.Clientes.Find(idmesasO.Max(r => r.Cod_Cli)); return(View(detalle)); }
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 ActionResult Detalles(DetalleView DetalleView, string id) { string aux = ""; string[] ID = id.Split(new char[] { ',' }); var DCM = new List <DetalleMesasCliente>(); using (var transacion = db.Database.BeginTransaction()) { try { for (int i = 0; i < ID.Length; i++) { if (ID[i] != "") { DCM.Add(db.DetalleMesasCliente.Find(Convert.ToInt32(ID[i]))); } } decimal valor = 0; foreach (var item in DCM) { int x = 0; valor = valor + (item.Cantidad_DMC * item.Menu.Valor_Menu); string[] s = aux.Split(new char[] { ',' }); for (int i = 0; i < s.Length; i++) { if (s[i] != "") { x = 0; if (Convert.ToInt32(s[i]) == item.Cod_MesasO) { x++; } } } if (x == 0) { aux = aux + "," + item.Cod_MesasO; } } int consecutivo = Consecutivo.Numero(db); var D = new Documento { Cod_Cli = DCM.FirstOrDefault().Cod_Cli, Cod_TDoc = 1, Estado_Doc = true, Fecha_Doc = DCM.FirstOrDefault().MesasOcupadas.Fecha_MesasO, HoraIngreso_Doc = DCM.FirstOrDefault().MesasOcupadas.HoraIngreso_MesasO, HoraSalida_Doc = hora, NConfirmacion_Doc = DCM.FirstOrDefault().NConfirmacion_DMC, Valor_Doc = valor, Consecutivo = consecutivo }; db.Documento.Add(D); db.SaveChanges(); int idD = db.Documento.Where(t => (t.NConfirmacion_Doc == D.NConfirmacion_Doc) && (t.HoraSalida_Doc == D.HoraSalida_Doc) && (t.Id_Doc == D.Id_Doc)).Max(x => x.Id_Doc); foreach (var item in DCM) { var DC = new DetalleDocumento { Id_DMC = item.Id_DMC, Id_Doc = idD }; var ADMC = db.DetalleMesasCliente.Find(item.Id_DMC); ADMC.Estado_DMC = false; ADMC.MesasOcupadas.Estado_MesasO = false; ADMC.MesasOcupadas.Llegada_MesasO = false; db.Entry(ADMC).State = EntityState.Modified; db.DetalleDocumento.Add(DC); } db.SaveChanges(); transacion.Commit(); var edetalles = new EDetalles { D = 0, IdC = DCM.FirstOrDefault().Cod_Cli, IdMesaO = DCM.FirstOrDefault().Cod_MesasO, IdM = DCM.FirstOrDefault().MesasOcupadas.Cod_Mesa, NC = DCM.FirstOrDefault().NConfirmacion_DMC, F = true, Add = aux }; return(RedirectToAction("Detalles", edetalles)); } catch (Exception ex) { ModelState.AddModelError(string.Empty, ex.Message); transacion.Rollback(); throw; } } //return View(); }
// GET: MesasOcupada public ActionResult ConReserva(Guid IdC, int IdM, int IdMesaO, string NCF, int CPersona, int?add) { var ListMenu = new List <Menu>(); var Mesas = new List <Mesas>(); var MesasO = new List <MesasOcupadas>(); var Detalles = new List <DetalleMesasCliente>(); var cliente = new Clientes(); var DetalleViews = new DetalleView(); int i = 0, idMesas = 0, idMesasO = 0, LMenu = 0, Cmesas = 0, Cmenu = 0; decimal Valor = 0; string aux = ""; try { if (NCF != "") { Detalles = db.DetalleMesasCliente.Where(t => t.NConfirmacion_DMC == NCF).ToList(); if (Detalles.Count() >= 0) { foreach (var item in Detalles) { if ((item.Cod_Cli == IdC || item.Cod_MesasO == IdMesaO) && item.Estado_DMC == true) { if (idMesas != item.MesasOcupadas.Cod_Mesa) { Mesas.Add(item.MesasOcupadas.Mesas); idMesas = item.MesasOcupadas.Cod_Mesa; Cmesas++; aux = aux + "-" + "M" + item.MesasOcupadas.Cod_Mesa; } if (idMesasO != item.Cod_MesasO) { MesasO.Add(item.MesasOcupadas); idMesasO = item.Cod_MesasO; } if (LMenu != item.Cod_Menu && item.Cantidad_DMC != 0) { if (CPersona > 4 && i > 0) { Cmenu++; } else if (CPersona <= 4) { Cmesas++; } Valor = Valor + (item.Menu.Valor_Menu * item.Cantidad_DMC); ListMenu.Add(item.Menu); LMenu = item.Cod_Menu; } if (i == 0) { cliente = new Clientes { Apellidos_Cli = item.Cliente.Apellidos_Cli, Cod_Cli = item.Cliente.Cod_Cli, Correo_Cli = item.Cliente.Correo_Cli, Nombres_Cli = item.Cliente.Nombres_Cli, Telefono_Cli = item.Cliente.Telefono_Cli }; i++; } } } } } } catch (Exception) { throw; } DetalleViews.addMesasO = MesasO; DetalleViews.Cliente = cliente; DetalleViews.DetalleMesasClientes = Detalles; DetalleViews.Menus = ListMenu; DetalleViews.Mesas = Mesas; DetalleViews.Cpersonas = CPersona; DetalleViews.Cmesas = Cmesas; DetalleViews.Nmesas = aux; DetalleViews.Cmenu = Cmenu; DetalleViews.ValorTotal = Valor; ViewBag.Model = add; return(View(DetalleViews)); }