Ejemplo n.º 1
0
        //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();
                }
            }
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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();
                        }
                    }
                }
            }
        }