public ActionResult BuscarMovimiento(int? FolioMovimiento, string FechaInicial, string FechaFinal, Guid? UbicacionOrigenID, Guid? UbicacionDestinoID, EstadoMovimiento? EstadoMovimiento, int? pagina = null)
        {
            int pagTamano = 5;
            int pagIndex = 1;
            pagIndex = pagina.HasValue ? Convert.ToInt32(pagina) : 1;

            IQueryable<Movimiento> listaMovimientos = db.Movimientos;
            IPagedList<Movimiento> listaMovimientosEnPagina;

            //FolioMovimiento = 0
            if (FolioMovimiento != null && FolioMovimiento > 0)
            {
                //realizar la busqueda exclisiva del movimiento
                listaMovimientos = listaMovimientos.Where(a => a.FolioMovimiento == FolioMovimiento);
            }
            else
            {
                if (!string.IsNullOrWhiteSpace(FechaInicial))
                {
                    DateTime Fecha = DateTime.ParseExact(FechaInicial, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture);

                    listaMovimientos = listaMovimientos.Where(a => DateTime.Compare(a.FechaHoraMovimiento.Value, Fecha) > 0);

                }

                if (!string.IsNullOrWhiteSpace(FechaFinal))
                {

                    DateTime Fecha = DateTime.ParseExact(FechaFinal, "dd/MM/yyyy hh:mm tt", CultureInfo.InvariantCulture);

                    listaMovimientos = listaMovimientos.Where(a => DateTime.Compare(a.FechaHoraMovimiento.Value, Fecha) < 0);

                    //listaMovimientos = listaMovimientos.Where(a => DateTime.Compare(a.FechaHoraMovimiento.Value, FechaFinal.Value) < 0);

                }

                if (UbicacionOrigenID != null)
                    listaMovimientos = listaMovimientos.Where(a => a.UbicacionOrigenID == UbicacionOrigenID);

                if (UbicacionDestinoID != null)
                    listaMovimientos = listaMovimientos.Where(a => a.UbicacionDestinoID == UbicacionDestinoID);

                if (EstadoMovimiento != null)
                    listaMovimientos = listaMovimientos.Where(a => a.EstadoMovimiento == EstadoMovimiento);

            }

            listaMovimientosEnPagina = listaMovimientos.OrderBy(a => a.FechaHoraMovimiento).Select(x => x).ToList().ToPagedList(pagIndex, pagTamano);

            return PartialView("_Lista", listaMovimientosEnPagina);
        }
        public List<string> getListaCamposMostrar(string tipoMovimiento, EstadoMovimiento estado)
        {
            List<string> lista = new List<string>();

            //lista = new List<string>() {
            //                "movhaciaExpo","movFolio","movTipo","movStatus","movFechaRet", "observa", //movimiento 1
            //                "odOrigen","odDestino","odFecha","odColeccion", //movimiento 2
            //                "solNombreSol","solCargoSol","solInstitucion","solNombreRepre","solCargoRepre","solSede","SolPaisEdo","solPeticionRec","solDicCondEspa","solCartaAcep","solContratoCom","solRevGuion","solCondicConserv","solFacilReport","solDictSegu","solListAval","solTramFianza","solPoliSeg","solPoliCartas", //solicitante
            //                "expoTitulo","espoCurador","expoFechaIni","expoFechaFIn",//exposicion
            //                "resNombre","resInstitu","resFechaSal", //responsable
            //                "autUsuario1","autUsuario2","autFecha1","autFecha2", //autorizacion
            //                "transNombre","transRecorr","transHorario","transNota", //transporte
            //                "segNombre","segPoliza","segFechaIni","segFechaFin", //seguro
            //                "pestSol", "pestRes", "pestAut", "pestTran", "pestSeg" //pestañas
            //            };

            //lista.Add("");
            switch (tipoMovimiento.ToLower())
            {
                case "ingreso":
                    if (estado == EstadoMovimiento.EnRegistro)
                        lista = new List<string>() {
                            "movhaciaExpo","movFolio","movTipo","movStatus", "observa", //movimiento 1
                            "odOrigen","odDestino","odFecha","odColeccion", //movimiento 2
                            "solNombreSol","solCargoSol","solInstitucion","solNombreRepre","solCargoRepre","solSede","SolPaisEdo","solPeticionRec","solDicCondEspa","solCartaAcep","solContratoCom","solRevGuion","solCondicConserv","solFacilReport","solDictSegu","solListAval","solTramFianza","solPoliSeg","solPoliCartas", //solicitante
                            "expoTitulo","espoCurador","expoFechaIni","expoFechaFIn",//exposicion
                            "resNombre","resInstitu", //responsable
                            "autUsuario1","autUsuario2","autFecha1","autFecha2", //autorizacion
                            "transNombre","transRecorr","transHorario","transNota", //transporte
                            "segNombre","segPoliza","segFechaIni","segFechaFin", //seguro
                            "pestSol", "pestRes", "pestAut", "pestTran", "pestSeg" //pestañas
                        };

                    break;
                case "externo":
                    if (estado == EstadoMovimiento.EnRegistro)
                        lista = new List<string>() {
                            "movhaciaExpo","movFolio","movTipo","movStatus", "observa", //movimiento 1
                            "odOrigen","odDestino","odFecha","odColeccion", //movimiento 2
                            "solNombreSol","solCargoSol", //solicitante
                            "expoTitulo","espoCurador","expoFechaIni","expoFechaFIn",//exposicion
                            //"resNombre","resInstitu","resFechaSal", //responsable
                            "autUsuario1","autUsuario2","autFecha1","autFecha2", //autorizacion
                            //"transNombre","transRecorr","transHorario","transNota", //transporte
                            //"segNombre","segPoliza","segFechaIni","segFechaFin" //seguro
                            "pestSol", "pestAut" //pestañas
                        };

                    break;

                case "salida":
                    if (estado == EstadoMovimiento.EnRegistro)
                        lista = new List<string>() {
                            "movhaciaExpo","movFolio","movTipo","movStatus", "observa", //movimiento 1
                            "odOrigen","odDestino","odFecha","odColeccion", //movimiento 2
                            "solNombreSol","solCargoSol","solInstitucion","solNombreRepre","solCargoRepre","solSede","SolPaisEdo","solPeticionRec","solDicCondEspa","solCartaAcep","solContratoCom","solRevGuion","solCondicConserv","solFacilReport","solDictSegu","solListAval","solTramFianza","solPoliSeg","solPoliCartas", //solicitante
                            "expoTitulo","espoCurador","expoFechaIni","expoFechaFIn",//exposicion
                            "resNombre","resInstitu", //responsable
                            "autUsuario1","autUsuario2","autFecha1","autFecha2", //autorizacion
                            "transNombre","transRecorr","transHorario","transNota", //transporte
                            "segNombre","segPoliza","segFechaIni","segFechaFin", //seguro
                            "pestSol", "pestRes", "pestAut", "pestTran", "pestSeg" //pestañas

                        };

                    break;

                case "traslado":
                    if (estado == EstadoMovimiento.EnRegistro)
                        lista = new List<string>() {
                            "movhaciaExpo","movFolio","movTipo","movStatus", "observa", //movimiento 1
                            "odOrigen","odDestino","odFecha","odColeccion", //movimiento 2
                            "solNombreSol","solCargoSol","solInstitucion","solNombreRepre","solCargoRepre","solSede","solRevGuion","solCondicConserv","solPoliSeg","solPoliCartas", //solicitante
                            "expoTitulo","espoCurador","expoFechaIni","expoFechaFIn",//exposicion
                            //"resNombre","resInstitu","resFechaSal", //responsable
                            "autUsuario1","autUsuario2","autFecha1","autFecha2", //autorizacion
                            "transNombre","transRecorr","transHorario","transNota", //transporte
                            //"segNombre","segPoliza","segFechaIni","segFechaFin" //seguro
                            "pestSol", "pestAut", "pestTran" //pestañas
                        };

                    break;
            }

            return lista;
        }