public List<ProyectoInversion> BuscarXFiltroConEntregaMaterial(String pStrCodSNIP, String pStrNombre, String pStrUbicacion, String pStrIdEstado)
        {
            List<ProyectoInversion> lstProyectos = new List<ProyectoInversion>();
            ProyectoInversion_DAL objProyectoInversion_DAL = new ProyectoInversion_DAL();
            try
            {
                if (String.IsNullOrWhiteSpace(pStrNombre))
                {
                    pStrNombre = "";
                }
                if (String.IsNullOrWhiteSpace(pStrUbicacion))
                {
                    pStrUbicacion = "";
                }
                if (String.IsNullOrWhiteSpace(pStrIdEstado))
                {
                    pStrIdEstado = "0";
                }

                ObrasPublicasEntities objContext = new ObrasPublicasEntities();
                var objResult = objContext.sp_gop_get_proy_con_entmat(pStrNombre, pStrCodSNIP, pStrUbicacion, pStrIdEstado).ToList();

                List<sp_gop_get_proy_con_entmat_Result> lstProyectosTmp = objResult;

                foreach (var objProyTmp in lstProyectosTmp)
                {
                    ProyectoInversion objProyecto = new ProyectoInversion();
                    objProyecto.CodSNIP = objProyTmp.coSNIP;
                    objProyecto.Nombre = objProyTmp.noNombre;
                    objProyecto.IdProyecto = objProyTmp.coProyecto;
                    objProyecto.Ubicacion = objProyTmp.txUbicacion;
                    objProyecto.NomVia = objProyTmp.noNomVia;
                    objProyecto.TipoVia = objProyTmp.noTipoVia;
                    objProyecto.IdEstado = objProyTmp.noEstado;
                    objProyecto.NomEstado = ObtieneEstados(null).Where(e => e.Id == objProyTmp.noEstado).First().Nombre;

                    lstProyectos.Add(objProyecto);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.ToString());
            }
            return lstProyectos;
        }