Esempio n. 1
0
        public List <string> ObterDestinatarios(EnvioInforme envio)
        {
            if (envio.Usuario != null)
            {
                return new List <string> {
                           envio.Usuario.Email
                }
            }
            ;

            var perfis = envio.Perfis.Select(x => x.ID).ToList();
            var niveis = envio.NiveisOcupacionais.Select(x => x.ID).ToList();
            var ufs    = envio.Ufs.Select(x => x.ID).ToList();

            var usuarios = new ManterUsuario().ObterTodos();

            if (perfis.Any())
            {
                usuarios = usuarios.Where(u => u.ListaPerfil.Any(up => perfis.Contains(up.ID)));
            }

            if (niveis.Any())
            {
                usuarios = usuarios.Where(u => niveis.Contains(u.NivelOcupacional.ID));
            }

            if (ufs.Any())
            {
                usuarios = usuarios.Where(u => ufs.Contains(u.UF.ID));
            }

            return(usuarios.Select(u => u.Email).Distinct().ToList());
        }
    }
Esempio n. 2
0
        protected void rptPerfilUf_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            var ufsUsuario = (DTOUsuarioUF)e.Item.DataItem;

            var rptUsuario = (Repeater)e.Item.FindControl("rptUsuario");

            var queryUsuarios = new ManterUsuario().ObterTodos();

            queryUsuarios = ufsUsuario.PerfisID.Any() ? queryUsuarios.Where(x => x.ListaPerfil.Any(p => ufsUsuario.PerfisID.Contains(p.Perfil.ID))) : queryUsuarios;
            queryUsuarios = ufsUsuario.NivelsOcupacionaisID.Any() ? queryUsuarios.Where(x => ufsUsuario.NivelsOcupacionaisID.Contains(x.NivelOcupacional.ID)) : queryUsuarios;
            queryUsuarios = ufsUsuario.IDUf > 0 ? queryUsuarios.Where(x => ufsUsuario.IDUf == x.UF.ID) : queryUsuarios;
            queryUsuarios = ufsUsuario.Usuario != null?queryUsuarios.Where(x => x.ID == ufsUsuario.Usuario.ID) : queryUsuarios;

            var resultado = queryUsuarios
                            .OrderBy(x => x.Nome)
                            .Select(x => new DTOUsuarioPerfil
            {
                ID               = x.ID,
                Nome             = x.Nome,
                CPF              = x.CPF,
                Email            = x.Email,
                NivelOcupacional = x.NivelOcupacional.Nome
            }).ToList();

            rptUsuario.DataSource = resultado;

            rptUsuario.DataBind();

            ChecarExibirItem("UF", e);

            var colspan = (HtmlTableCell)e.Item.FindControl("colspan");

            if (!chkListaCamposVisiveis.Items.FindByValue("Nome").Selected)
            {
                colspan.ColSpan = colspan.ColSpan - 1;
            }
            if (!chkListaCamposVisiveis.Items.FindByValue("CPF").Selected)
            {
                colspan.ColSpan = colspan.ColSpan - 1;
            }
            if (!chkListaCamposVisiveis.Items.FindByValue("Email").Selected)
            {
                colspan.ColSpan = colspan.ColSpan - 1;
            }
            if (!chkListaCamposVisiveis.Items.FindByValue("NivelOcupacional").Selected)
            {
                colspan.ColSpan = colspan.ColSpan - 1;
            }
            if (!chkListaCamposVisiveis.Items.FindByValue("Perfil").Selected)
            {
                colspan.ColSpan = colspan.ColSpan - 1;
            }
        }
Esempio n. 3
0
        protected void btnMatricular_Click(object sender, EventArgs e)
        {
            var idsSolucaoEducacionalSelecionados = new List <int>();
            var idsNivelOcupacionalSelecionados   = new List <int>();

            switch (rblEfetuar.SelectedValue)
            {
            case "SolucaoEducacional":
                idsSolucaoEducacionalSelecionados.Add(int.Parse(ddlSolucaoEducacional.SelectedValue));
                ObterSelecionados(ref idsNivelOcupacionalSelecionados, ddlNivelOcupacional, cblNivelOcupacional);
                break;

            case "NivelOcupacional":
                idsNivelOcupacionalSelecionados.Add(int.Parse(ddlNivelOcupacional.SelectedValue));
                ObterSelecionados(ref idsSolucaoEducacionalSelecionados, ddlSolucaoEducacional, cblSolucaoEducacional);
                break;
            }

            // Obter soluções obrigatórias filtradas pela seleção.
            var solucoesObrigatorias = new ManterSolucaoEducacional()
                                       .ObterObrigatoriosPorSolucaoEducacionalNiveisOcupacionais(
                idsSolucaoEducacionalSelecionados,
                idsNivelOcupacionalSelecionados);

            // Filtra as soluções pelas que possuam Ofertas e Turmas vigentes.
            var listaSolucoesObrigatorias =
                solucoesObrigatorias.Where(
                    x =>
                    x.SolucaoEducacional.ListaOferta.Any(
                        o => Helpers.Util.ObterVigente(o.DataInicioInscricoes, o.DataFimInscricoes) &&
                        o.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)))).ToList();

            // Obtém somente os usuários dos níveis ocupacionais selecionados.
            var usuariosTodosNiveis =
                new ManterUsuario().ObterPorNiveisOcupacionais(idsNivelOcupacionalSelecionados)
                .AsQueryable();

            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            // Filtrar os usuários pela UF do gestor logado, caso aplicável.
            if (usuarioLogado.IsGestor())
            {
                usuariosTodosNiveis = usuariosTodosNiveis.Where(x => x.UF.ID == usuarioLogado.UF.ID);
            }

            if (listaSolucoesObrigatorias.Any())
            {
                EfetuarMatriculas(listaSolucoesObrigatorias, usuariosTodosNiveis);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             string.Format(
                                                 "As matrículas estão sendo alteradas automaticamente, isto pode demorar, pois estão sendo efetuadas matrículas em {0} Soluções Educacionais, para usuários em {1} Níveis Ocupacionais.",
                                                 idsSolucaoEducacionalSelecionados.Count(),
                                                 idsNivelOcupacionalSelecionados.Count()));
            }
            else
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             "Não foi encontrada nenhuma Solução Educacional obrigatória com alunos que precisam ser matrículados, de acordo com os filtros selecionados.");
            }
        }
Esempio n. 4
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            // Perfis selecionados
            var perfisSelecionados = ucMultiplosPerfil.RecuperarIdsSelecionados <int>();

            // Niveis Ocupacionais selecionados
            var niveisOcupacionaisSelecionados = ucMultiplosNivelOcupacional.RecuperarIdsSelecionados <int>();

            // Ufs selecionados
            var ufsSelecionados = ucMultiplosUF.RecuperarIdsSelecionados <int>();

            //Usuario Selecionado
            var usuario = ucLupaUsuario.SelectedUser;

            var queryUsuarios = new ManterUsuario().ObterTodos();

            queryUsuarios = perfisSelecionados.Any() ? queryUsuarios.Where(x => x.ListaPerfil.Any(p => perfisSelecionados.Contains(p.Perfil.ID))) : queryUsuarios;
            queryUsuarios = niveisOcupacionaisSelecionados.Any() ? queryUsuarios.Where(x => niveisOcupacionaisSelecionados.Contains(x.NivelOcupacional.ID)) : queryUsuarios;
            queryUsuarios = ufsSelecionados.Any() ? queryUsuarios.Where(x => ufsSelecionados.Contains(x.UF.ID)) : queryUsuarios;
            queryUsuarios = usuario != null?queryUsuarios.Where(x => x.ID == usuario.ID) : queryUsuarios;

            if (queryUsuarios.Count() > 0)
            {
                var resultado = queryUsuarios.Select(x => new {
                    ID    = x.UF.ID,
                    Sigla = x.UF.Sigla
                })
                                .Distinct()
                                .ToList()
                                .OrderBy(x => x.ID)
                                .Select(x => new DTOUsuarioUF {
                    IDUf                 = x.ID,
                    Sigla                = x.Sigla,
                    Usuario              = usuario,
                    PerfisID             = perfisSelecionados.ToList(),
                    NivelsOcupacionaisID = niveisOcupacionaisSelecionados.ToList()
                }).ToList();

                rptPerfilUf.DataSource = resultado;
                rptPerfilUf.DataBind();

                var relatorio = queryUsuarios.ToList().Select(x => new DTORelatorioDadosPessoais {
                    UF               = x.UF.Sigla,
                    Nome             = x.Nome,
                    CPF              = x.CPF,
                    Email            = x.Email,
                    NivelOcupacional = x.NivelOcupacional.Nome,
                    Perfil           = String.Join("\n\r", x.ListaPerfil.Select(y => y.Perfil.Nome))
                }).ToList();


                Session.Add("dsRelatorio", relatorio);

                litContador.Text = queryUsuarios.Count().ToString();
                // Converter os resultados em dados totalizadores.
                var totalizadores = new List <DTOTotalizador>();

                totalizadores.Add(TotalizadorUtil.GetTotalizador(queryUsuarios.AsEnumerable(),
                                                                 "Totalizador", "ID", enumTotalizacaoRelatorio.Contar, false));

                UF.Visible               = chkListaCamposVisiveis.Items.FindByValue("UF").Selected;
                Nome.Visible             = chkListaCamposVisiveis.Items.FindByValue("Nome").Selected;
                CPF.Visible              = chkListaCamposVisiveis.Items.FindByValue("CPF").Selected;
                Email.Visible            = chkListaCamposVisiveis.Items.FindByValue("Email").Selected;
                NivelOcupacional.Visible = chkListaCamposVisiveis.Items.FindByValue("NivelOcupacional").Selected;
                Perfil.Visible           = chkListaCamposVisiveis.Items.FindByValue("Perfil").Selected;

                dvContador.Visible                 = true;
                pnlPerfilUsuario.Visible           = true;
                componenteGeracaoRelatorio.Visible = true;
            }
            else
            {
                pnlPerfilUsuario.Visible           = false;
                componenteGeracaoRelatorio.Visible = false;
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
            }
        }