コード例 #1
0
        protected void ddlSolucaoEducacional_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            cblNivelOcupacional.Items.Clear();
            cblSolucaoEducacional.Items.Clear();
            ddlNivelOcupacional.Items.Clear();

            if (ddlSolucaoEducacional.SelectedIndex <= 0)
            {
                return;
            }

            var solucaoEducacional =
                new ManterSolucaoEducacional().ObterSolucaoEducacionalPorId(
                    int.Parse(ddlSolucaoEducacional.SelectedValue));

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

            if (usuarioLogado.IsGestor() && (solucaoEducacional.UFGestor == null ||
                                             solucaoEducacional.UFGestor.ID != usuarioLogado.UF.ID))
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Solução Educacional inválida.");
                return;
            }

            var niveisOcupacionais =
                solucaoEducacional.ListaSolucaoEducacionalObrigatoria.Select(x => x.NivelOcupacional)
                .OrderBy(x => x.Nome)
                .Distinct()
                .ToList();

            WebFormHelper.PreencherLista(niveisOcupacionais, cblNivelOcupacional);

            btnMatricular.Visible = true;
        }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Request["Id"] != null)
                {
                    var idModel  = int.Parse(Request["Id"]);
                    var processo = _manterProcesso.ObterPorID(idModel);

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

                    if (usuarioLogado.IsGestor() && (processo.Uf == null || processo.Uf.ID != usuarioLogado.UF.ID))
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Processo inexistente",
                                                     "ListarDemanda.aspx");
                        return;
                    }

                    PreencherCampos(processo);
                }
                else
                {
                    PreencherTipos();
                }
            }
        }
コード例 #3
0
ファイル: Editar.aspx.cs プロジェクト: lincoln-alves/sgus
        private classes.PublicoAlvo ObterObjetoPublicoAlvo(ManterPublicoAlvo manterPublicoAlvo = null)
        {
            if (manterPublicoAlvo == null)
            {
                manterPublicoAlvo = new ManterPublicoAlvo();
            }

            classes.PublicoAlvo publicoAlvo;

            if (Request["Id"] != null)
            {
                publicoAlvo = manterPublicoAlvo.ObterPorID(int.Parse(Request["Id"]));
            }
            else
            {
                publicoAlvo = new classes.PublicoAlvo();
                var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                if (usuarioLogado.IsGestor())
                {
                    publicoAlvo.UF = new ManterUf().ObterUfPorID(usuarioLogado.UF.ID);
                }
            }

            publicoAlvo.Auditoria = new classes.Auditoria(new ManterUsuario().ObterUsuarioLogado().CPF);
            publicoAlvo.Nome      = txtNome.Text;

            return(publicoAlvo);
        }
コード例 #4
0
        protected void dgvFormaAquisicao_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType.Equals(DataControlRowType.DataRow))
            {
                Image imgImagem = (Image)e.Row.FindControl("imgImagem");

                if (imgImagem != null)
                {
                    classes.FormaAquisicao formaAquisicao = (classes.FormaAquisicao)e.Row.DataItem;

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

                    if (usuario.IsGestor() && formaAquisicao.Responsavel != null && formaAquisicao.Responsavel.ID != usuario.ID &&
                        formaAquisicao.Uf != null && formaAquisicao.Uf.ID != usuario.UF.ID)
                    {
                        e.Row.Visible = false;
                        return;
                    }

                    if (formaAquisicao != null && !string.IsNullOrWhiteSpace(formaAquisicao.Imagem))
                    {
                        imgImagem.ImageUrl = formaAquisicao.Imagem;
                    }
                    else
                    {
                        imgImagem.Visible = false;
                    }
                }
            }
        }
コード例 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                return;
            }

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

            var isAdmin = usuarioLogado.IsAdministrador();

            AtualizarStatus();

            PreencherCombos();

            if (Request["Id"] != null)
            {
                var idCategoriaConteudo = int.Parse(Request["Id"]);

                _categoriaConteudoAtual = _manterCategoriaConteudo.ObterCategoriaConteudoPorID(idCategoriaConteudo);

                RemoverOFilhoDaListaDePais();

                PreencherCampos(_categoriaConteudoAtual);
            }
            else
            {
                ckbPossuiGerenciamentoAreas.Checked         =
                    divPossuiGerenciamentoStatus.Visible    =
                        divPossuiGerenciamentoAreas.Visible = isAdmin || usuarioLogado.IsGestor();
            }
        }
コード例 #6
0
        public IEnumerable <SolucaoEducacionalObrigatoria> ObterObrigatorios(NivelOcupacional nivelOcupacional = null)
        {
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            var sesObrigatorias = bmSolucaoEducacional.ObterObrigatorios();

            // Filtra pelas UF do gestor logado.
            if (usuarioLogado.IsGestor())
            {
                sesObrigatorias =
                    sesObrigatorias.Where(
                        x =>
                        x.SolucaoEducacional.UFGestor != null &&
                        x.SolucaoEducacional.UFGestor.ID == usuarioLogado.UF.ID);
            }

            if (nivelOcupacional != null)
            {
                sesObrigatorias =
                    sesObrigatorias.Where(
                        x => x.NivelOcupacional != null && x.NivelOcupacional.ID == nivelOcupacional.ID);
            }

            return(sesObrigatorias);
        }
コード例 #7
0
        public IEnumerable <SolucaoEducacionalObrigatoria> ObterObrigatoriosPorSolucaoEducacionalNiveisOcupacionais(
            IList <int> solucoesSelecionadas           = null,
            IList <int> niveisOcupacionaisSelecionados = null)
        {
            var solucoesObrigatorias = ObterObrigatorios();

            if (solucoesSelecionadas != null && solucoesSelecionadas.Any())
            {
                solucoesObrigatorias =
                    solucoesObrigatorias.Where(x => solucoesSelecionadas.Contains(x.SolucaoEducacional.ID));
            }

            if (niveisOcupacionaisSelecionados != null && niveisOcupacionaisSelecionados.Any())
            {
                solucoesObrigatorias =
                    solucoesObrigatorias.Where(
                        x => niveisOcupacionaisSelecionados.Contains(x.NivelOcupacional.ID));
            }

            // Verificar UF do Gestor.
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            if (usuarioLogado.IsGestor())
            {
                solucoesObrigatorias =
                    solucoesObrigatorias.Where(x => x.SolucaoEducacional.UFGestor.ID == usuarioLogado.UF.ID);
            }

            return(solucoesObrigatorias);
        }
コード例 #8
0
        private bool UsuarioTemPermissao()
        {
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            if (usuarioLogado != null)
            {
                if (usuarioLogado.IsGestor() && _formaAquisicaoEdicao != null && _formaAquisicaoEdicao.Uf != null)
                {
                    if (usuarioLogado.UF.ID != _formaAquisicaoEdicao.Uf.ID)
                    {
                        return(false);
                    }
                }
            }

            return(true);
        }
コード例 #9
0
ファイル: Editar.aspx.cs プロジェクト: lincoln-alves/sgus
        private void MontaTela()
        {
            var manterPublicoAlvo = new ManterPublicoAlvo();

            var publicoAlvo = manterPublicoAlvo.ObterPorID(int.Parse(Request["Id"]));

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

            if (usuarioLogado.IsGestor() && (publicoAlvo.UF == null || usuarioLogado.UF.ID != publicoAlvo.UF.ID))
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                             "Você não pode alterar Públicos-Alvo que não pertençam à sua UF.");
                Response.Redirect("Lista.aspx");
            }

            txtNome.Text = publicoAlvo.Nome;
        }
コード例 #10
0
        protected void lkbBotoesAcesso_PreRender(object sender, EventArgs e)
        {
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            if (usuarioLogado != null)
            {
                LinkButton bntPress = (LinkButton)sender;

                if (usuarioLogado.IsGestor())
                {
                    if (usuarioLogado.UF.ID.ToString() != bntPress.Attributes["id_uf_gestor"] && usuarioLogado.ID.ToString() != bntPress.Attributes["id_responsavel"])
                    {
                        bntPress.Attributes.Add("hidden", "hidden");
                    }
                }
            }
        }
コード例 #11
0
        protected void dgvPublicoAlvo_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
        {
            if (e.Row.RowType.Equals(DataControlRowType.DataRow))
            {
                var publicoAlvo = (classes.PublicoAlvo)e.Row.DataItem;

                var litOfertasVinculadas = (Literal)e.Row.FindControl("litOfertasVinculadas");

                litOfertasVinculadas.Text = publicoAlvo.ListaOferta.Count.ToString();

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

                if (usuarioLogado.IsGestor() && (publicoAlvo.UF == null || usuarioLogado.UF.ID != publicoAlvo.UF.ID))
                {
                    var lkbEditar  = (LinkButton)e.Row.FindControl("lkbEditar");
                    var lkbExcluir = (LinkButton)e.Row.FindControl("lkbExcluir");

                    lkbEditar.Visible  = false;
                    lkbExcluir.Visible = false;
                }
            }
        }
コード例 #12
0
        protected void dgvQuestionarios_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType != DataControlRowType.DataRow)
            {
                return;
            }

            var questionario = (Questionario)e.Row.DataItem;

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

            if (usuarioLogado.IsGestor())
            {
                if (questionario.Uf == null || usuarioLogado.UF.ID != questionario.Uf.ID)
                {
                    var lkbEditar  = (LinkButton)e.Row.FindControl("lkbEditar");
                    var lkbExcluir = (LinkButton)e.Row.FindControl("lkbExcluir");

                    lkbEditar.Visible      =
                        lkbExcluir.Visible = false;
                }
            }
        }
コード例 #13
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    classes.EmailEnvio Email = ObterEmailEnvio();

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

                    if (usuario.IsGestor())
                    {
                        Email.Uf = usuario.UF;
                    }

                    ManterEmailEnvio           manterEmailEnvio = new ManterEmailEnvio();
                    IList <classes.EmailEnvio> ListaEmail       = manterEmailEnvio.ObterEmailEnvioPorFiltro(Email);
                    WebFormHelper.PreencherGrid(ListaEmail, this.dgvEmailEnvio);

                    if (ListaEmail != null && ListaEmail.Count > 0)
                    {
                        WebFormHelper.PreencherGrid(ListaEmail, this.dgvEmailEnvio);
                        pnlEmailEnvio.Visible = true;
                    }
                    else
                    {
                        pnlEmailEnvio.Visible = false;
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Nenhuma Informação Encontrada");
                    }
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
        }
コード例 #14
0
        private Dominio.Classes.CategoriaConteudo ObterObjetoCategoriaConteudo()
        {
            _categoriaConteudoAtual = null;

            if (Request["Id"] != null)
            {
                _categoriaConteudoAtual =
                    new ManterCategoriaConteudo().ObterCategoriaConteudoPorID(int.Parse(Request["Id"]));
            }
            else
            {
                _categoriaConteudoAtual = new Dominio.Classes.CategoriaConteudo();
            }

            //Nome
            _categoriaConteudoAtual.Nome = txtNome.Text;

            _categoriaConteudoAtual.Apresentacao = txtTextoApresentacao.Text;

            _categoriaConteudoAtual.Descricao = txtDescricao.Text;

            //Tag Pai
            if (!string.IsNullOrWhiteSpace(ddlCategoriaConteudoPai.SelectedItem.Value))
            {
                _categoriaConteudoAtual.CategoriaConteudoPai =
                    new BMCategoriaConteudo().ObterPorID(int.Parse(ddlCategoriaConteudoPai.SelectedItem.Value));
            }
            else
            {
                _categoriaConteudoAtual.CategoriaConteudoPai = null;
            }

            // Status relacionados.
            if (_categoriaConteudoAtual.PossuiFiltroCategorias)
            {
                var statusSelecionados = new List <StatusMatricula>();

                foreach (ListItem checkBoxStatus in cbStatusSelecionados.Items)
                {
                    if (checkBoxStatus.Selected)
                    {
                        statusSelecionados.Add(
                            new ManterStatusMatricula().ObterStatusMatriculaPorID(int.Parse(checkBoxStatus.Value)));
                    }
                }

                _categoriaConteudoAtual.ListaStatusMatricula = statusSelecionados;
            }
            else
            {
                // Limpa os Status caso a opção não esteja marcado.
                _categoriaConteudoAtual.ListaStatusMatricula = new List <StatusMatricula>();
            }

            _categoriaConteudoAtual.AdicionarSigla(txtSigla.Text);
            _categoriaConteudoAtual.LiberarInscricao = chkLiberarValidacao.Checked;

            // Possui Status.
            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            if (usuarioLogado.IsGestor() || usuarioLogado.IsAdministrador())
            {
                _categoriaConteudoAtual.PossuiStatus =
                    _categoriaConteudoAtual.CategoriaConteudoPai == null
                        ? (bool?)ckbPossuiGerenciamentoStatus.Checked
                        : null;

                _categoriaConteudoAtual.PossuiAreas =
                    _categoriaConteudoAtual.CategoriaConteudoPai == null
                        ? (bool?)ckbPossuiGerenciamentoAreas.Checked
                        : null;
            }

            IncluirUFs(ref _categoriaConteudoAtual);
            AdicionarPermissao(_categoriaConteudoAtual);
            AdicionarOuRemoverTags(_categoriaConteudoAtual);
            return(_categoriaConteudoAtual);
        }
コード例 #15
0
        private void PreencherCampos(Dominio.Classes.CategoriaConteudo categoriaConteudo)
        {
            if (categoriaConteudo == null)
            {
                return;
            }

            txtNome.Text = categoriaConteudo.Nome;

            txtDescricao.Text = categoriaConteudo.Descricao;

            if (categoriaConteudo.CategoriaConteudoPai != null)
            {
                WebFormHelper.SetarValorNaCombo(categoriaConteudo.CategoriaConteudoPai.ID.ToString(),
                                                ddlCategoriaConteudoPai);
            }

            txtIdNode.Text = categoriaConteudo.IdNode != null?categoriaConteudo.IdNode.ToString() : string.Empty;

            txtTextoApresentacao.Text = !string.IsNullOrEmpty(categoriaConteudo.Apresentacao)
                ? categoriaConteudo.Apresentacao
                : string.Empty;

            txtSigla.Text = categoriaConteudo.ObterSigla();

            // Desabilita edição de sigla para categorias filhas
            txtSigla.Enabled = categoriaConteudo.CategoriaConteudoPai == null;


            if (categoriaConteudo.PossuiFiltroCategorias)
            {
                AtualizarStatus();
            }

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

            if (usuarioLogado.IsAdministrador() || usuarioLogado.IsGestor())
            {
                divPossuiGerenciamentoStatus.Visible = true;

                ckbPossuiGerenciamentoStatus.Checked = categoriaConteudo.PossuiStatus.HasValue &&
                                                       categoriaConteudo.PossuiStatus.Value;

                if (!categoriaConteudo.PossuiStatus.HasValue &&
                    categoriaConteudo.PossuiGerenciamentoStatus())
                {
                    ckbPossuiGerenciamentoStatus.InputAttributes.Add("disabled", "disabled");
                    ckbPossuiGerenciamentoStatus.Checked = true;
                }
                else
                {
                    ckbPossuiGerenciamentoStatus.InputAttributes.Remove("disabled");
                    ckbPossuiGerenciamentoStatus.Checked = categoriaConteudo.PossuiStatus == true;
                }

                ckbPossuiGerenciamentoAreas.Checked = categoriaConteudo.PossuiAreas.HasValue &&
                                                      categoriaConteudo.PossuiAreas.Value;

                if (!categoriaConteudo.PossuiAreas.HasValue &&
                    categoriaConteudo.PossuiGerenciamentoAreas())
                {
                    ckbPossuiGerenciamentoAreas.InputAttributes.Add("disabled", "disabled");
                    ckbPossuiGerenciamentoAreas.Checked = true;
                }
                else
                {
                    ckbPossuiGerenciamentoAreas.InputAttributes.Remove("disabled");
                    ckbPossuiGerenciamentoAreas.Checked = categoriaConteudo.PossuiAreas == true;
                }
            }

            chkLiberarValidacao.Checked = categoriaConteudo.LiberarInscricao;

            PreencherListas(categoriaConteudo);

            PreencherTermosAceite(categoriaConteudo.ID);
        }
コード例 #16
0
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.ClientScript.RegisterClientScriptInclude(GetType(), "dynamic-form", "/js/dynamic-form.js");

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

            if (String.IsNullOrEmpty(Request["i"]))
            {
                StartDate = defaultStartDate;
            }
            else
            {
                DateTime.TryParse(Request["i"], out StartDate);
            }

            if (String.IsNullOrEmpty(Request["f"]))
            {
                EndDate = defaultEndDate;
            }
            else
            {
                DateTime.TryParse(Request["f"], out EndDate);
            }

            if (!String.IsNullOrEmpty(Request["uf"]))
            {
                ufQuery = int.Parse(Request["uf"]);
            }
            else
            {
                ufQuery = defaultUf;
            }

            if (!IsPostBack)
            {
                if (Request.Url.AbsolutePath.ToLower() == "/dashboard.aspx")
                {
                    if (usuarioLogado != null && ufQuery == 0 && usuarioLogado.UF.ID != (int)enumUF.NA)
                    {
                        ufQuery = usuarioLogado.UF.ID;
                        if (!usuarioLogado.IsGestor() && !usuarioLogado.IsAdministrador())
                        {
                            cbxUf.Enabled = false;
                        }
                    }

                    if (!ValidarDatas(StartDate, EndDate))
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "Data Inicial não pode ser maior que a Data Final.", Request.Url.AbsolutePath + "?i=" + (new DateTime(DateTime.Now.Year, 1, 1)).ToShortDateString() + "&f=" + DateTime.Now.ToShortDateString());
                        return;
                    }


                    txtDataInicial.Text = StartDate.ToShortDateString();
                    txtDataFinal.Text   = EndDate.ToShortDateString();

                    var manterUfs = new ManterUf();
                    var listaUfs  = manterUfs.ObterTodosUf();
                    WebFormHelper.PreencherLista(listaUfs, cbxUf, true);

                    if (ufQuery != null)
                    {
                        var idUf = 0;
                        var uf   = int.TryParse(ufQuery.ToString(), out idUf) ? manterUfs.ObterUfPorID(idUf) : manterUfs.ObterUfPorSigla(ufQuery.ToString());
                        if (uf != null)
                        {
                            WebFormHelper.SetarValorNaCombo(uf.ID.ToString(), cbxUf);
                        }
                    }
                }
                else
                {
                    txtDataInicial.Visible = false;
                    txtDataFinal.Visible   = false;
                    cbxUf.Visible          = false;
                    btnFiltrar.Visible     = false;
                }
            }

            if (cbxUf != null && usuarioLogado != null && usuarioLogado.UF.ID != (int)enumUF.NA)
            {
                if (!usuarioLogado.IsGestor() && !usuarioLogado.IsAdministrador())
                {
                    cbxUf.Enabled = false;
                }
            }

            // Seta Start Date e EndDate nos UserControls
            SetParametersUserControls();
        }
コード例 #17
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.");
            }
        }
コード例 #18
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                int           turmaId;
                classes.Turma turma;

                // Já verifica se o Id existe, está correto e existe no banco numa lapada só.
                // Aqui é assim, sou dessas.
                if (Request["Id"] != null && (int.TryParse(Request["Id"], out turmaId)) &&
                    (turma = new ManterTurma().ObterTurmaPorID(turmaId)) != null)
                {
                    var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

                    if (usuarioLogado.IsAdministrador())
                    {
                        Response.Redirect("GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID, true);
                        return;
                    }

                    if (turma.ConsultorEducacional == null)
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                     "A turma selecionada não possui Consultor Educacional.",
                                                     "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);
                        return;
                    }

                    var avaliacao = turma.Avaliacoes.FirstOrDefault();

                    if (avaliacao != null)
                    {
                        switch (avaliacao.Status)
                        {
                        case enumStatusAvaliacao.AguardandoResposta:
                            // Gestor só pode visualizar essa tela caso a avaliação exista e já tenha sido respondida pelo Consultor Educacional.
                            if (usuarioLogado.IsGestor())
                            {
                                ExibirMensagemAguardandoAvaliacao(turmaId);
                                return;
                            }

                            if (turma.ConsultorEducacional.ID != usuarioLogado.ID)
                            {
                                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                             "Apenas o Consultor Educacional da turma pode avaliar a turma.",
                                                             "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);
                            }

                            break;

                        case enumStatusAvaliacao.AguardandoGestor:
                            if (usuarioLogado.IsGestor())
                            {
                                if (usuarioLogado.UF.ID == turma.ConsultorEducacional.UF.ID)
                                {
                                    btnEnviarAvaliacao.Visible = false;
                                    btnSalvar.Visible          = false;

                                    btnAprovar.Visible  = true;
                                    btnReprovar.Visible = true;

                                    BloquearCampos = true;
                                    break;
                                }

                                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                             "Apenas um gestor de " + turma.ConsultorEducacional.UF.Nome +
                                                             " pode validar a avaliação desta turma.",
                                                             "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);
                                return;
                            }

                            if (usuarioLogado.IsConsultorEducacional())
                            {
                                BloquearCampos = true;

                                // Bloqueia os campos, pois está aguardando análise do gestor.
                                btnEnviarAvaliacao.Enabled = false;
                                btnSalvar.Enabled          = false;
                                btnEnviarAvaliacao.Text    = "Aguardando avaliação do gestor";

                                break;
                            }

                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                         "Apenas o Consultor Educacional da turma pode avaliar a turma.",
                                                         "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);

                            return;

                        case enumStatusAvaliacao.Aprovada:
                            BloquearCampos = true;
                            break;

                        default:
                            throw new ArgumentOutOfRangeException();
                        }
                    }
                    else
                    {
                        if (turma.ConsultorEducacional.ID != usuarioLogado.ID)
                        {
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro,
                                                         "Apenas o Consultor Educacional da turma pode avaliar a turma.",
                                                         "GerenciamentoMatricula.aspx?oferta=" + turma.Oferta.ID);
                            return;
                        }

                        if (usuarioLogado.IsGestor())
                        {
                            ExibirMensagemAguardandoAvaliacao(turmaId);
                            return;
                        }
                    }

                    ltrSolucaoEducacional.Text = turma.Oferta.SolucaoEducacional.Nome;

                    var manterAvaliacao = new ManterAvaliacao();

                    var questoes = manterAvaliacao.ObterQuestoes().ToList();

                    QuantidadeQuestoes = questoes.Count();

                    Questoes = questoes;

                    // Chamar o método ObterStatusDisponiveis() porque ele tem um comportamento semelhante
                    // ao de um Singleton, e será usado posteriormente.
                    ObterStatusDisponiveis(turma.Oferta.SolucaoEducacional.CategoriaConteudo, true);

                    rptQuestoes.DataSource = questoes;
                    rptQuestoes.DataBind();

                    rptMatriculas.DataSource = turma.ListaMatriculas.OrderBy(x => x.MatriculaOferta.Usuario.Nome);
                    rptMatriculas.DataBind();
                }
                else
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Oferta inválida para avaliação. Tente novamente.",
                                                 "GerenciamentoMatricula.aspx");
                }
            }
        }
コード例 #19
0
        protected void ddlStatusOferta_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (InModoDeAvaliacao)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Não é possível alterar o Status desta matrícula diretamente. Ela precisa passar pela avaliação de um Consultor Educacional e ser aprovada por um Gestor.");
                return;
            }

            var comboStatusOferta = (DropDownList)sender;

            if (comboStatusOferta != null && comboStatusOferta.SelectedItem != null &&
                !string.IsNullOrWhiteSpace(comboStatusOferta.SelectedItem.Value))
            {
                try
                {
                    //Obtém a linha da grid onde a dropdownlist (combo) de oferta, está contida
                    var linhadaGrid = (GridViewRow)comboStatusOferta.NamingContainer;

                    if (linhadaGrid == null)
                    {
                        return;
                    }

                    var ddlStatusOferta = (DropDownList)linhadaGrid.FindControl("ddlStatusOferta");

                    if (ddlStatusOferta == null)
                    {
                        return;
                    }

                    var hdfIdMatriculaOferta  = (HiddenField)linhadaGrid.FindControl("hdfIdMatriculaOferta");
                    var manterMatriculaOferta = new ManterMatriculaOferta();
                    var ddlTurma = (DropDownList)linhadaGrid.FindControl("ddlTurma");

                    var statusMatriculaOferta = (enumStatusMatricula)Enum.Parse(typeof(enumStatusMatricula), ddlStatusOferta.SelectedItem.Value);

                    int IdMatriculaOferta;
                    classes.MatriculaOferta matriculaOferta = null;
                    if (int.TryParse(hdfIdMatriculaOferta.Value, out IdMatriculaOferta))
                    {
                        matriculaOferta = manterMatriculaOferta.ObterMatriculaOfertaPorID(IdMatriculaOferta);
                    }

                    var usuarioLogado  = new ManterUsuario().ObterUsuarioLogado();
                    var matriculaTurma = matriculaOferta.MatriculaTurma.FirstOrDefault();

                    if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoGestor) && !usuarioLogado.IsGestor())
                    {
                        throw new AcademicoException("Apenas o gestor UC pode alterar para este perfil");
                    }

                    if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoAdm) && !usuarioLogado.IsAdministrador())
                    {
                        throw new AcademicoException("Apenas o Administrador pode alterar para este perfil");
                    }

                    if (statusMatriculaOferta.Equals(enumStatusMatricula.Inscrito))
                    {
                        if (string.IsNullOrEmpty(ddlTurma.SelectedValue) || int.Parse(ddlTurma.SelectedValue) <= 0)
                        {
                            throw new AcademicoException("Selecione uma turma para alterar a inscrição");
                        }

                        try
                        {
                            new ManterSolucaoEducacional().ValidarPreRequisitosDaMatricula(matriculaOferta);
                        }
                        catch (Exception)
                        {
                            AtualizarStatusDaOferta(enumStatusMatricula.Inscrito, matriculaOferta, ref manterMatriculaOferta);
                            throw;
                        }
                    }

                    if (statusMatriculaOferta.Equals(enumStatusMatricula.CanceladoAluno))
                    {
                        //O usuário do admin, pode ver o status do Cancelado/Aluno, mas nunca pode setar esse status
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao,
                                                     "Apenas o aluno pode atribuir o status de cancelado pelo aluno");
                    }
                    else
                    {
                        if (matriculaTurma == null)
                        {
                            WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "O aluno precisa estar vinculado a uma turma.");
                            return;
                        }

                        if (matriculaOferta.StatusMatricula != enumStatusMatricula.Inscrito && statusMatriculaOferta == enumStatusMatricula.Inscrito)
                        {
                            ExibirModalConfirmacaoStatusInscrito(matriculaTurma);
                        }
                        else
                        {
                            ExibirModalDataConclusao(matriculaTurma, statusMatriculaOferta);
                        }
                    }

                    // Atualizar lista de status disponíveis, pois pode sofrer alteração caso haja
                    // o status de Cancelado\Turma, que possui um comportamento especial.
                    SetarListaComStatusDeMatricula(matriculaOferta);

                    // Trata a exibição da listagem de Status novamente, para manter os mesmos Status,
                    // com as mesmas formas.
                    TratarComboStatusOferta(ddlStatusOferta, matriculaOferta);
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
                catch
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro Interno no servidor.");
                }
            }
        }
コード例 #20
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                return;
            }

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

            if (usuarioLogado.IsAdministrador())
            {
                divIdNode.Visible = divTxtCodigo.Visible = divSincronizarPortal.Visible = false;
                visibilidadeIntegracaoSAS.Visible = true;
            }

            if (usuarioLogado.IsGestor() && usuarioLogado.UF.ID == (int)enumUF.NA)
            {
                visibilidadeIntegracaoSAS.Visible = true;
            }

            if (usuarioLogado.UF.ID == (int)enumUF.NA)
            {
                PreencherComboProdutoSebrae();
                PreencherComboUnidadeDemandante();
            }
            else
            {
                produtoSebrae.Visible     = false;
                unidadeDemandante.Visible = false;
            }

            PreencherCombos();

            if (Request["Id"] != null)
            {
                var idSolucaoEducacional = int.Parse(Request["Id"]);
                _solucaoEducacionalEdicao = _manterSolucaoEducacional.ObterSolucaoEducacionalPorId(idSolucaoEducacional);

                if (SolucaoEducacionalEdicaoNula(_solucaoEducacionalEdicao))
                {
                    return;
                }

                var isGestor = usuarioLogado.IsGestor();

                // Se for gestor verifica se ele pode ver essa solução
                if (isGestor && !_solucaoEducacionalEdicao.PermiteVisualizacaoUf(usuarioLogado.UF.ID))
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta,
                                                 "Você não tem permissão para visualizar esta Solução Educacional. Contate um Administrador do sistema.");
                    Response.Redirect("ListarSolucaoEducacional.aspx");
                }

                PreencherCampos(_solucaoEducacionalEdicao);

                int selecionado;

                if (int.TryParse(ddlFornecedor.SelectedValue, out selecionado))
                {
                    switch ((enumFornecedor)selecionado)
                    {
                    case enumFornecedor.CargaInicial:
                        break;

                    case enumFornecedor.MoodleSebrae:
                        ExibirCategoriaMoodle();
                        break;

                    case enumFornecedor.WebAula:
                        break;

                    case enumFornecedor.Xys:
                        break;

                    case enumFornecedor.FGVSiga:
                        break;

                    case enumFornecedor.FGVOCW:
                        break;

                    case enumFornecedor.UCSebrae:
                        break;

                    case enumFornecedor.Credenciamento:
                        pnlEventosCredenciamento.Visible = true;
                        PreencherEventosCredenciamento();

                        if (_solucaoEducacionalEdicao.IDEvento != null)
                        {
                            WebFormHelper.SetarValorNaCombo(_solucaoEducacionalEdicao.IDEvento.Value.ToString(), ddlEventos);
                        }

                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    ExibirIDChaveExterna();
                }

                //Categoria no Moodle
                if (!string.IsNullOrEmpty(_solucaoEducacionalEdicao.IDChaveExterna))
                {
                    txtCategoriaMoodle.Text = _solucaoEducacionalEdicao.IDChaveExterna;
                }

                var idTermoAceite = _solucaoEducacionalEdicao != null
                    ? _solucaoEducacionalEdicao.TermoAceite != null ? _solucaoEducacionalEdicao.TermoAceite.ID : 0
                    : 0;
                var idCategoriaConteudo = _solucaoEducacionalEdicao != null
                    ? _solucaoEducacionalEdicao.CategoriaConteudo != null
                        ? _solucaoEducacionalEdicao.CategoriaConteudo.ID
                        : 0
                    : 0;

                PreencherTermosAceite(idCategoriaConteudo, idTermoAceite);
            }
            else
            {
                PreencherListaPerfil();
                PreencherListaNivelOcupacional();
                PreencherListaUfs();

                pnlNode.Visible      = usuarioLogado.IsGestor();
                divTxtCodigo.Visible = false;
                divIdNode.Visible    = false;
                EsconderCategoriaMoodleIdChaveExterna();
                PreencherTermosAceite();
                PreencherCategoriaConteudo(new classes.SolucaoEducacional());
                ucPermissoes1.SelecionarUf(new ManterUsuario().ObterUsuarioLogado().UF.ID);
            }
        }