public List <InvSolicitud> GetListaPedidos(int id = 0) //Returns a list with the items from a list (id)
        {
            List <InvSolicitud> list   = new List <InvSolicitud>();
            InvListaPedidos     pedido = new InvListaPedidos();
            InvSolicitud        item   = new InvSolicitud();
            int j = 0;

            try
            {
                using (ClusmextContext context = new ClusmextContext())
                {
                    list = context.InvSolicitud.Include("InvInventario").Include("InvListaPedidos").Where(x => x.IdListaPedidos == id).ToList();

                    foreach (InvSolicitud i in list)
                    {
                        if (i.Entregado.Value)
                        {
                            pedido          = GetListaPedido(id);
                            pedido.Atendido = true;
                            CreateEditList(pedido, out j);
                            return(list);
                        }
                    }
                    pedido          = GetListaPedido(id);
                    pedido.Atendido = false;
                    CreateEditList(pedido, out j);
                }
            }
            catch (Exception ex)
            {
            }

            return(list);
        }
        public InvSolicitud GetItemFromList(int id)
        {
            InvSolicitud i = new InvSolicitud();

            try
            {
                using (ClusmextContext context = new ClusmextContext())
                {
                    i = context.InvSolicitud.Where(x => x.IdSolicitud == id).SingleOrDefault();
                }
            }
            catch (Exception ex)
            {
            }
            return(i);
        }
        public int RemoveFromList(InvSolicitud item)
        {
            int count = 0;

            try
            {
                using (ClusmextContext context = new ClusmextContext())
                {
                    context.Entry(item).State = EntityState.Deleted;
                    count = context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
            }
            return(count);
        }
        public int InsertPedido(InvSolicitud s)
        {
            int           count  = 0;
            int           itemID = 0;
            InvInventario item   = new InvInventario();

            try
            {
                using (ClusmextContext context = new ClusmextContext())
                {
                    if (s.IdSolicitud > 0)
                    {
                        context.Entry(s).State = EntityState.Modified;
                        //Si algún pedido se entregó, modificamos la cantidad en inventario
                        if (s.Entregado.Value)
                        {
                            item = GetItem(s.IdInventario);
                            item.EnExistencia -= s.Cantidad;
                            item.Dispobibles   = item.EnExistencia;
                            InsertItem(item, out itemID);
                        }
                        else
                        {
                            item = GetItem(s.IdInventario);
                            item.EnExistencia += s.Cantidad;
                            item.Dispobibles   = item.EnExistencia;
                            InsertItem(item, out itemID);
                        }
                    }
                    else
                    {
                        context.Entry(s).State = EntityState.Added;
                    }

                    count = context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
            }

            return(count);
        }
        public InvSolicitud GetRawPedido(int id = 0)
        {
            InvSolicitud s = new InvSolicitud();

            if (id == 0)
            {
                s.IdInventario = -1;
                s.Descripcion  = "Empty";
                return(s);
            }

            try
            {
                using (ClusmextContext context = new ClusmextContext())
                {
                    s = context.InvSolicitud.Where(x => x.IdSolicitud == id).SingleOrDefault();
                }
            }
            catch (Exception ex)
            {
            }
            return(s);
        }