예제 #1
0
        /// <summary>
        /// Gera o endereço da imagem atual do aluno
        /// </summary>
        /// <param name="entPessoa">Pessoa do aluno</param>
        /// <param name="entFoto">Entidade da foto da pessoa</param>
        /// <returns>Retorna o endereço da imagem atual do aluno</returns>
        private static string CriaFotoAluno(PES_Pessoa entPessoa, out CFG_Arquivo entFoto)
        {
            entFoto = CFG_ArquivoBO.GetEntity(new CFG_Arquivo {
                arq_id = entPessoa.arq_idFoto
            });
            byte[] foto = entFoto.arq_data;

            return((foto == null || foto.Length == 0) ? string.Empty : "~/Academico/Aluno/CapturaFoto/Imagem.ashx?idfoto=" + entFoto.arq_id);
        }
예제 #2
0
        /// <summary>
        /// Retorna a entidade pelo ID.
        /// </summary>
        /// <param name="arq_id">ID do arquivo.</param>
        /// <returns></returns>
        private static CFG_Arquivo RetornaArquivoPorID(long arq_id)
        {
            CFG_Arquivo arquivo = new CFG_Arquivo {
                arq_id = arq_id
            };

            CFG_ArquivoBO.GetEntity(arquivo);

            return(arquivo);
        }
예제 #3
0
        protected override void ParamInserir(QuerySelectStoredProcedure qs, CFG_Arquivo entity)
        {
            entity.arq_dataCriacao   = DateTime.Now;
            entity.arq_dataAlteracao = DateTime.Now;

            base.ParamInserir(qs, entity);

            qs.Parameters["@arq_data"].DbType = DbType.Binary;
            qs.Parameters["@arq_data"].Size   = int.MaxValue;
        }
예제 #4
0
        /// <summary>
        /// Busca o parâmetro "id" na queryString, e trata caso exista.
        /// </summary>
        /// <param name="context"></param>
        private void VerificaParametro_Id(HttpContext context)
        {
            if (!String.IsNullOrEmpty(context.Request.QueryString["id"]))
            {
                try
                {
                    string sArq_id = context.Server.UrlDecode(context.Request.QueryString["id"]);
                    long   arq_id;

                    if ((Int64.TryParse(sArq_id, out arq_id)) && (arq_id > 0))
                    {
                        CFG_Arquivo arquivo = RetornaArquivoPorID(arq_id);
                        if ((!arquivo.IsNew) && (IsImage(Path.GetExtension(arquivo.arq_nome))))
                        {
                            try
                            {
                                byte[] bufferData = arquivo.arq_data;

                                MemoryStream stream = new MemoryStream(bufferData);
                                Image        img    = Image.FromStream(stream);

                                context.Response.Clear();
                                context.Response.ContentType = arquivo.arq_typeMime;
                                context.Response.BinaryWrite(bufferData);
                                context.Response.Flush();

                                img.Dispose();
                                stream.Dispose();
                            }
                            catch (Exception ex)
                            {
                                ApplicationWEB._GravaErro(ex);
                                context.ApplicationInstance.CompleteRequest();
                                context.Server.ClearError();
                            }
                            finally
                            {
                                context.ApplicationInstance.CompleteRequest();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                }
            }
        }
예제 #5
0
    protected void btnExcluir_Click(object sender, EventArgs e)
    {
        try
        {
            CFG_Arquivo entArquivo = PES_PessoaBO.RetornaFotoPor_Pessoa(_VS_pes_id);
            if (entArquivo.IsNew && _iptFoto.PostedFile != null)
            {
                entArquivo = CFG_ArquivoBO.CriarEntidadeArquivo(_iptFoto.PostedFile);
            }

            _VS_excluir_foto = (byte)(ACA_AlunoBO.ExcluirFotoAluno(_VS_pes_id, entArquivo.arq_id) ? 1 : 2);

            string script = String.Format("RemoveConfirmDialogButton('{0}');", String.Concat("#", btnCapturaFoto.ClientID));
            btnCapturaFoto.OnClientClick = script;
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar excluir foto.", UtilBO.TipoMensagem.Erro);
        }
    }
예제 #6
0
        private void EnviaImagemPessoa(string sArq_id, HttpContext context)
        {
            long arq_id;

            if ((Int64.TryParse(sArq_id, out arq_id)) && (arq_id > 0))
            {
                CFG_Arquivo arquivo = CFG_ArquivoBO.GetEntity(new CFG_Arquivo {
                    arq_id = arq_id
                });

                if (!arquivo.IsNew)
                {
                    try
                    {
                        byte[] bufferData = arquivo.arq_data;

                        MemoryStream stream = new MemoryStream(bufferData);
                        Image        img    = Image.FromStream(stream);

                        context.Response.Clear();
                        context.Response.ContentType = arquivo.arq_typeMime;
                        context.Response.BinaryWrite(bufferData);
                        context.Response.Flush();

                        img.Dispose();
                        stream.Dispose();
                    }
                    catch (Exception ex)
                    {
                        ApplicationWEB._GravaErro(ex);
                        context.ApplicationInstance.CompleteRequest();
                        context.Server.ClearError();
                    }
                    finally
                    {
                        context.ApplicationInstance.CompleteRequest();
                    }
                }
            }
        }
예제 #7
0
        public static bool Save
        (
            PES_Pessoa entityPessoa
            , PES_PessoaDeficiencia entityPessoaDeficiencia
            , DataTable dtEndereco
            , DataTable dtContato
            , DataTable dtDocumento
            , PES_CertidaoCivil entityCertidaoCivil
            , Guid pai_idAntigo
            , Guid cid_idAntigo
            , StructColaboradorFiliacao PaiAntigo
            , StructColaboradorFiliacao MaeAntigo
            , Guid tes_idAntigo
            , Guid tde_idAntigo
            , RHU_Colaborador entityColaborador
            , DataTable dtCargoFuncao
            , DataTable dtCargoDisciplina
            , bool bSalvarUsuario
            , bool bSalvarLive
            , SYS_Usuario entityUsuario
            , bool bEnviaEmail
            , string sNomePortal
            , string sHost
            , string sEmailSuporte
            , Guid ent_idUsuario
            , ACA_Docente entityDocente
            , string[] arquivosPermitidos
            , int tamanhoMaximoKB
            , CFG_Arquivo entFoto
            , bool ExcluirImagemAtual
        )
        {
            TalkDBTransaction bancoCore   = new PES_PessoaDAO()._Banco.CopyThisInstance();
            TalkDBTransaction bancoGestao = new ACA_DocenteDAO()._Banco.CopyThisInstance();

            bancoCore.Open(IsolationLevel.ReadCommitted);
            bancoGestao.Open(IsolationLevel.ReadCommitted);

            try
            {
                //Limpa o cache do docente
                CacheManager.Factory.Remove(string.Format(ModelCache.DOCENTE_POR_ENTIDADE_PESSOA_MODEL_KEY, entityColaborador.ent_id, entityPessoa.pes_id));

                //Verifica se os dados da pessoa serão sempre salvos em maiúsculo.
                string sSalvarMaiusculo        = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.SALVAR_SEMPRE_MAIUSCULO);
                bool   Salvar_Sempre_Maiusculo = !string.IsNullOrEmpty(sSalvarMaiusculo) && Convert.ToBoolean(sSalvarMaiusculo);

                var y = from DataRow dr in dtCargoFuncao.Rows
                        where dr.RowState == DataRowState.Deleted
                        select dr;

                if (dtCargoFuncao.Rows.Count == 0 || y.Count() == dtCargoFuncao.Rows.Count)
                {
                    throw new ValidationException("É obrigatório o preenchimento de pelo menos um vínculo de trabalho do docente.");
                }

                string sPadraoUsuarioDocente = ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.PAR_GRUPO_PERFIL_DOCENTE, ent_idUsuario);

                //Integraçao como o live
                UserLive entityUserLive = null;
                if (bSalvarLive)
                {
                    entityUserLive = new UserLive(eTipoUserLive.Docente);

                    //Cria o usuário docente para integraçao como o live
                    ManageUserLive live = new ManageUserLive();
                    entityUserLive.email = entityUsuario.usu_email;
                    entityUserLive.senha = entityUsuario.usu_senha;

                    //Caso seja alteração carrega as turma
                    //TODO: Fazer método específico para buscar apenas pelo doc_id.
                    DataTable dtTurmas = entityDocente.doc_id > 0 ?
                                         TUR_TurmaBO.GetSelectBy_Pesquisa_TodosTipos
                                             (Guid.Empty, Guid.Empty, Guid.Empty, Guid.Empty, 0, 0, 0, 0, 0, 0, "", entityDocente.doc_id, false) : new DataTable();

                    //Obtendo CPF do docente
                    string tdo_id = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);

                    var x = from DataRow dr in dtDocumento.Rows
                            where dr.RowState != DataRowState.Deleted && dr["tdo_id"].ToString() == tdo_id
                            select dr["numero"].ToString();

                    //Carrega primeira matricula ativa associada ao cargo de docente do colaborador
                    var mat = from DataRow dr in dtCargoFuncao.Rows
                              where dr.RowState != DataRowState.Deleted && dr["situacao_id"].ToString() == "1"
                              select dr["coc_matricula"].ToString();

                    //Carrega os tipos de disciplinas
                    var tipo_dis = from DataRow dr in dtCargoDisciplina.Rows
                                   where dr.RowState != DataRowState.Deleted
                                   select dr["tds_id"].ToString();

                    DataTable dtTipoDisciplinas = tipo_dis.Count() > 0 ?
                                                  ACA_TipoDisciplinaBO.SelecionaTipoDisciplinaPorTipoDisciplina
                                                      (Convert.ToInt32(tipo_dis.First()), bancoGestao, ent_idUsuario) : new DataTable();

                    if (x.Count() > 0)
                    {
                        DadosUserDocente dadosDocente = new DadosUserDocente
                        {
                            nome = entityPessoa.pes_nome
                            ,
                            CPF = x.First()
                            ,
                            matricula = mat.Count() > 0 ? mat.First() : string.Empty
                            ,
                            turma = dtTurmas.Rows.Count > 0 ? dtTurmas.Rows[0]["tur_cod_desc_nome"].ToString() : string.Empty
                            ,
                            serie = dtTurmas.Rows.Count > 0 ? dtTurmas.Rows[0]["crp_descricao"].ToString() : string.Empty
                            ,
                            disciplina = dtTipoDisciplinas.Rows.Count > 0 ? dtTipoDisciplinas.Rows[0]["tds_nome"].ToString() : string.Empty
                        };
                        entityUserLive.dadosUserDocente = dadosDocente;
                    }
                    else
                    {
                        if (!live.VerificarContaEmailExistente(entityUserLive))
                        {
                            throw new ArgumentException("CPF é um documento obrigatório, para integração do docente com live.");
                        }
                    }
                }

                RHU_ColaboradorBO.Save(entityPessoa
                                       , entityPessoaDeficiencia
                                       , dtEndereco
                                       , dtContato
                                       , dtDocumento
                                       , entityCertidaoCivil
                                       , pai_idAntigo
                                       , cid_idAntigo
                                       , PaiAntigo
                                       , MaeAntigo
                                       , tes_idAntigo
                                       , tde_idAntigo
                                       , entityColaborador
                                       , dtCargoFuncao
                                       , dtCargoDisciplina
                                       , bSalvarUsuario
                                       , bSalvarLive
                                       , entityUsuario
                                       , entityUserLive
                                       , sPadraoUsuarioDocente
                                       , bEnviaEmail
                                       , sNomePortal
                                       , sHost
                                       , sEmailSuporte
                                       , ent_idUsuario
                                       , bancoCore
                                       , bancoGestao
                                       , arquivosPermitidos
                                       , tamanhoMaximoKB
                                       , entFoto
                                       , ExcluirImagemAtual);

                entityDocente.col_id = entityColaborador.col_id;

                if (entityDocente.Validate())
                {
                    Save(entityDocente, bancoGestao);
                }
                else
                {
                    throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entityDocente));
                }

                return(true);
            }
            catch (Exception err)
            {
                bancoGestao.Close(err);
                bancoCore.Close(err);

                throw;
            }
            finally
            {
                bancoGestao.Close();
                bancoCore.Close();
            }
        }
예제 #8
0
    /// <summary>
    /// Insere e altera uma pessoa
    /// </summary>
    private void _Associar()
    {
        try
        {
            string msgErro;
            bool   mensagemEmBranco = String.IsNullOrEmpty(_lblMessage.Text.Trim());
            if (mensagemEmBranco && !UCGridContato1.SalvaConteudoGrid(out msgErro))
            {
                UCGridContato1._MensagemErro.Visible = false;
                _lblMessage.Text     = msgErro;
                txtSelectedTab.Value = "2";
                return;
            }

            if (mensagemEmBranco && !UCGridCertidaoCivil1.AtualizaViewState(out msgErro))
            {
                _lblMessage.Text     = msgErro;
                txtSelectedTab.Value = "3";
                return;
            }

            if (!UCGridDocumento1.ValidaConteudoGrid(out msgErro))
            {
                UCGridDocumento1._MensagemErro.Visible = false;
                _lblMessage.Text     = UtilBO.GetErroMessage(msgErro, UtilBO.TipoMensagem.Alerta);
                txtSelectedTab.Value = "3";
                return;
            }

            //Adiciona valores na entidade de pessoa
            PES_Pessoa entityPessoa = new PES_Pessoa
            {
                pes_id = UCCadastroPessoa1._VS_pes_id
                ,
                pes_nome = UCCadastroPessoa1._txtNome.Text
                ,
                pes_nome_abreviado = UCCadastroPessoa1._txtNomeAbreviado.Text
                ,
                pai_idNacionalidade = new Guid(UCCadastroPessoa1._ComboNacionalidade.SelectedValue)
                ,
                pes_naturalizado = UCCadastroPessoa1._chkNaturalizado.Checked
                ,
                cid_idNaturalidade = UCCadastroPessoa1._VS_cid_id
                ,
                pes_dataNascimento = (String.IsNullOrEmpty(UCCadastroPessoa1._txtDataNasc.Text.Trim())? new DateTime() : Convert.ToDateTime(UCCadastroPessoa1._txtDataNasc.Text.Trim()))
                ,
                pes_racaCor = UCCadastroPessoa1._ComboRacaCor.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboRacaCor.SelectedValue)
                ,
                pes_sexo = UCCadastroPessoa1._ComboSexo.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboSexo.SelectedValue)
                ,
                pes_idFiliacaoPai = UCCadastroPessoa1._VS_pes_idFiliacaoPai
                ,
                pes_idFiliacaoMae = UCCadastroPessoa1._VS_pes_idFiliacaoMae
                ,
                tes_id = new Guid(UCCadastroPessoa1._ComboEscolaridade.SelectedValue)
                ,
                pes_estadoCivil = UCCadastroPessoa1._ComboEstadoCivil.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboEstadoCivil.SelectedValue)
                ,
                pes_situacao = 1
                ,
                IsNew = (UCCadastroPessoa1._VS_pes_id != Guid.Empty) ? false : true
            };

            PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia
            {
                pes_id = _VS_pes_id
                ,
                tde_id = new Guid(UCCadastroPessoa1._ComboTipoDeficiencia.SelectedValue)
                ,
                IsNew = true
            };

            CFG_Arquivo entArquivo = null;

            //armazema a imagem na entidade de pessoa
            if (!string.IsNullOrEmpty(UCCadastroPessoa1._iptFoto.PostedFile.FileName))
            {
                string tam = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_MAX_FOTO_PESSOA);

                if (!string.IsNullOrEmpty(tam))
                {
                    if (UCCadastroPessoa1._iptFoto.PostedFile.ContentLength > Convert.ToInt32(tam) * 1000)
                    {
                        throw new ArgumentException("Foto é maior que o tamanho máximo permitido.");
                    }

                    if (UCCadastroPessoa1._iptFoto.PostedFile.FileName.Substring(UCCadastroPessoa1._iptFoto.PostedFile.FileName.Length - 3, 3).ToUpper() != "JPG")
                    {
                        throw new ArgumentException("Foto tem que estar no formato \".jpg\".");
                    }
                }

                entArquivo = CFG_ArquivoBO.CriarEntidadeArquivo(UCCadastroPessoa1._iptFoto.PostedFile);

                if (_VS_arq_idAntigo > 0)
                {
                    // Se já existia foto e vai ser alterada, muda só o conteúdo.
                    entArquivo.arq_id = _VS_arq_idAntigo;
                    entArquivo.IsNew  = false;
                }
            }

            if (_VS_arq_idAntigo > 0)
            {
                entityPessoa.arq_idFoto = _VS_arq_idAntigo;
            }

            XmlDocument xDoc      = new XmlDocument();
            XmlNode     xElem     = xDoc.CreateNode(XmlNodeType.Element, "Coluna", string.Empty);
            XmlNode     xNodeCoor = xDoc.CreateNode(XmlNodeType.Element, "ColunaValorAntigo", string.Empty);
            XmlNode     xNode;

            for (int i = 0; i < _VS_AssociarPessoas.Rows.Count; i++)
            {
                if ((_VS_AssociarPessoas.Rows[i]["pes_id"].ToString()) != _VS_pes_id.ToString())
                {
                    xNodeCoor       = xDoc.CreateNode(XmlNodeType.Element, "ColunaValorAntigo", "");
                    xNode           = xDoc.CreateNode(XmlNodeType.Element, "valor", "");
                    xNode.InnerText = _VS_AssociarPessoas.Rows[i]["pes_id"].ToString();
                    xNodeCoor.AppendChild(xNode);
                    xElem.AppendChild(xNodeCoor);
                }
            }
            xDoc.AppendChild(xElem);

            if (PES_PessoaBO.AssociarPessoas(entityPessoa, entityPessoaDeficiencia, UCEnderecos1._VS_enderecos, UCGridContato1._VS_contatos, UCGridDocumento1.RetornaDocumentoSave(), UCGridCertidaoCivil1._VS_certidoes, _VS_pai_idAntigo, _VS_cid_idAntigo, _VS_pes_idPaiAntigo, _VS_pes_idMaeAntigo, _VS_tes_idAntigo, _VS_tde_idAntigo, xDoc))
            {
                ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "pes_id: " + entityPessoa.pes_id);
                __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Pessoas associadas com sucesso."), UtilBO.TipoMensagem.Sucesso);

                Response.Redirect(__SessionWEB._AreaAtual._Diretorio + "ManutencaoPessoa/Busca.aspx", false);
            }
            else
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar associar as pessoas.", UtilBO.TipoMensagem.Erro);
            }
        }
        catch (CoreLibrary.Validation.Exceptions.ValidationException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (ArgumentException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (DuplicateNameException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar associar as pessoas.", UtilBO.TipoMensagem.Erro);
        }
        finally
        {
            _updGridPessoas.Update();
        }
    }
예제 #9
0
    private void _CarregarPessoa()
    {
        try
        {
            //Carrega entidade de pessoa
            PES_Pessoa pes = new PES_Pessoa
            {
                pes_id = _VS_pes_id
            };
            PES_PessoaBO.GetEntity(pes);

            _VS_arq_idAntigo = pes.arq_idFoto;

            //_VS_pes_foto = pes.pes_foto;
            UCCadastroPessoa1._imgFoto.ImageUrl = "~/Imagem.ashx?id=" + pes.arq_idFoto;

            CFG_Arquivo entArquivo = new CFG_Arquivo
            {
                arq_id = pes.arq_idFoto
            };
            CFG_ArquivoBO.GetEntity(entArquivo);

            //Exibe imagem caso exista
            if (!entArquivo.IsNew && entArquivo.arq_data.Length > 1)
            {
                System.Drawing.Image img;
                using (MemoryStream ms = new MemoryStream(entArquivo.arq_data, 0, entArquivo.arq_data.Length))
                {
                    ms.Write(entArquivo.arq_data, 0, entArquivo.arq_data.Length);
                    img = System.Drawing.Image.FromStream(ms, true);
                }

                int larguraMaxima = 200;
                int alturaMaxima  = 200;
                int alt;
                int lar;

                decimal proporcaoOriginal = (decimal)((img.Height * 100) / img.Width) / 100;

                if (proporcaoOriginal > 1)
                {
                    proporcaoOriginal = (decimal)((img.Width * 100) / img.Height) / 100;
                    alt = alturaMaxima;
                    lar = Convert.ToInt32(alturaMaxima * proporcaoOriginal);
                }
                else
                {
                    lar = larguraMaxima;
                    alt = Convert.ToInt32(larguraMaxima * proporcaoOriginal);
                }

                UCCadastroPessoa1._imgFoto.Height           = alt;
                UCCadastroPessoa1._imgFoto.Width            = lar;
                UCCadastroPessoa1._imgFoto.Visible          = true;
                UCCadastroPessoa1._chbExcluirImagem.Visible = true;
                UCCadastroPessoa1._chbExcluirImagem.Checked = false;
            }
            else
            {
                UCCadastroPessoa1._imgFoto.Visible          = false;
                UCCadastroPessoa1._chbExcluirImagem.Visible = false;
            }

            UCCadastroPessoa1._VS_pes_id             = pes.pes_id;
            UCCadastroPessoa1._txtNome.Text          = pes.pes_nome;
            UCCadastroPessoa1._txtNomeAbreviado.Text = (!string.IsNullOrEmpty(pes.pes_nome_abreviado) ? pes.pes_nome_abreviado : string.Empty);

            //Exibe cidade naturalidade da pessoa
            if (pes.cid_idNaturalidade != Guid.Empty)
            {
                END_Cidade cid = new END_Cidade
                {
                    cid_id = pes.cid_idNaturalidade
                };
                END_CidadeBO.GetEntity(cid);

                UCCadastroPessoa1._VS_cid_id            = pes.cid_idNaturalidade;
                UCCadastroPessoa1._txtNaturalidade.Text = cid.cid_nome;
            }

            //Exibe dados gerias da pessoa
            UCCadastroPessoa1._txtDataNasc.Text = (pes.pes_dataNascimento != new DateTime()) ? pes.pes_dataNascimento.ToString("dd/MM/yyyy") : string.Empty;
            UCCadastroPessoa1._ComboEstadoCivil.SelectedValue = (pes.pes_estadoCivil > 0 ? pes.pes_estadoCivil.ToString() : "-1");
            UCCadastroPessoa1._ComboSexo.SelectedValue        = (pes.pes_sexo > 0) ? pes.pes_sexo.ToString() : "-1";

            UCCadastroPessoa1._ComboNacionalidade.SelectedValue = (pes.pai_idNacionalidade != Guid.Empty ? pes.pai_idNacionalidade.ToString() : Guid.Empty.ToString());
            UCCadastroPessoa1._chkNaturalizado.Checked          = pes.pes_naturalizado;
            UCCadastroPessoa1._ComboRacaCor.SelectedValue       = (pes.pes_racaCor > 0 ? pes.pes_racaCor.ToString() : "-1");
            UCCadastroPessoa1._VS_pes_idFiliacaoPai             = pes.pes_idFiliacaoPai;
            UCCadastroPessoa1._VS_pes_idFiliacaoMae             = pes.pes_idFiliacaoMae;
            UCCadastroPessoa1._ComboEscolaridade.SelectedValue  = (pes.tes_id != Guid.Empty ? pes.tes_id.ToString() : Guid.Empty.ToString());

            //Carregar tipo de deficiência cadastrada para a pessoa
            DataTable dtPessoaDeficiencia = PES_PessoaDeficienciaBO.GetSelect(_VS_pes_id, false, 1, 1);
            UCCadastroPessoa1._ComboTipoDeficiencia.SelectedValue = dtPessoaDeficiencia.Rows.Count > 0 ? dtPessoaDeficiencia.Rows[0]["tde_id"].ToString() : Guid.Empty.ToString();

            //Armazena os os id's antigos em ViewState
            _VS_pai_idAntigo    = pes.pai_idNacionalidade;
            _VS_cid_idAntigo    = pes.cid_idNaturalidade;
            _VS_pes_idPaiAntigo = pes.pes_idFiliacaoPai;
            _VS_pes_idMaeAntigo = pes.pes_idFiliacaoMae;
            _VS_tes_idAntigo    = pes.tes_id;
            _VS_tde_idAntigo    = dtPessoaDeficiencia.Rows.Count > 0 ? new Guid(dtPessoaDeficiencia.Rows[0]["tde_id"].ToString()) : Guid.Empty;

            //Exibe dados do pai da pessoa
            PES_Pessoa pesFiliacaoPai = new PES_Pessoa {
                pes_id = pes.pes_idFiliacaoPai
            };
            PES_PessoaBO.GetEntity(pesFiliacaoPai);
            UCCadastroPessoa1._txtPai.Text = pesFiliacaoPai.pes_nome;

            //Exibe dados da mae da pessoa
            PES_Pessoa pesFiliacaoMae = new PES_Pessoa {
                pes_id = pes.pes_idFiliacaoMae
            };
            PES_PessoaBO.GetEntity(pesFiliacaoMae);
            UCCadastroPessoa1._txtMae.Text = pesFiliacaoMae.pes_nome;

            //Carrega dados dos endereços da pessoa
            DataTable dtEndereco = PES_PessoaEnderecoBO.GetSelect(pes.pes_id, false, 1, 1);

            if (dtEndereco.Rows.Count == 0)
            {
                dtEndereco = null;
            }

            UCEnderecos1.CarregarEnderecosBanco(dtEndereco);

            //Carrega dados dos contatos da pessoa
            DataTable dtContato = PES_PessoaContatoBO.GetSelect(pes.pes_id, false, 1, 1);

            if (dtContato.Rows.Count == 0)
            {
                dtContato = null;
            }

            UCGridContato1._VS_contatos = dtContato;
            UCGridContato1._CarregarContato();

            //Carrega dados dos documentos da pessoa
            UCGridDocumento1._CarregarDocumento(pes.pes_id);

            //Carrega dados da certidões da pessoa
            DataTable dtCertidao = PES_CertidaoCivilBO.GetSelect(pes.pes_id, false, 1, 1);

            if (dtCertidao.Rows.Count == 0)
            {
                dtCertidao = null;
            }

            UCGridCertidaoCivil1._VS_certidoes = dtCertidao;
            UCGridCertidaoCivil1._CarregarCertidaoCivil();

            UCCadastroPessoa1._updCadastroPessoas.Update();
            UCGridContato1._updGridContatos.Update();
            UCGridDocumento1._updGridDocumentos.Update();
            UCGridCertidaoCivil1._updGridCertidaoCivil.Update();

            _btnSalvar.Visible = true;
            _updBotoes.Update();
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar a pessoa.", UtilBO.TipoMensagem.Erro);
        }
    }
예제 #10
0
    /// <summary>
    /// Insere e altera uma pessoa
    /// </summary>
    private void _Salvar()
    {
        try
        {
            string msgErro;
            bool   mensagemEmBranco = String.IsNullOrEmpty(_lblMessage.Text.Trim());
            if (mensagemEmBranco && !UCGridContato1.SalvaConteudoGrid(out msgErro))
            {
                UCGridContato1._MensagemErro.Visible = false;
                _lblMessage.Text     = msgErro;
                txtSelectedTab.Value = "2";
                return;
            }

            if (mensagemEmBranco && !UCGridCertidaoCivil1.AtualizaViewState(out msgErro))
            {
                _lblMessage.Text     = msgErro;
                txtSelectedTab.Value = "3";
                return;
            }

            if (!UCGridDocumento1.ValidaConteudoGrid(out msgErro))
            {
                UCGridDocumento1._MensagemErro.Visible = false;
                _lblMessage.Text     = UtilBO.GetErroMessage(msgErro, UtilBO.TipoMensagem.Alerta);
                txtSelectedTab.Value = "3";
                return;
            }

            //Adiciona valores na entidade de pessoa
            PES_Pessoa entityPessoa = new PES_Pessoa
            {
                pes_id = UCCadastroPessoa1._VS_pes_id
                ,
                pes_nome = UCCadastroPessoa1._txtNome.Text
                ,
                pes_nome_abreviado = UCCadastroPessoa1._txtNomeAbreviado.Text
                ,
                pes_nomeSocial = UCCadastroPessoa1._txtNomeSocial.Text
                ,
                pai_idNacionalidade = UCCadastroPessoa1._ComboNacionalidade.SelectedValue == "-1" ? Guid.Empty : new Guid(UCCadastroPessoa1._ComboNacionalidade.SelectedValue)
                ,
                pes_naturalizado = UCCadastroPessoa1._chkNaturalizado.Checked
                ,
                cid_idNaturalidade = UCCadastroPessoa1._VS_cid_id
                ,
                pes_dataNascimento = (String.IsNullOrEmpty(UCCadastroPessoa1._txtDataNasc.Text.Trim()) ? new DateTime() : Convert.ToDateTime(UCCadastroPessoa1._txtDataNasc.Text.Trim()))
                ,
                pes_racaCor = UCCadastroPessoa1._ComboRacaCor.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboRacaCor.SelectedValue)
                ,
                pes_sexo = UCCadastroPessoa1._ComboSexo.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboSexo.SelectedValue)
                ,
                pes_idFiliacaoPai = UCCadastroPessoa1._VS_pes_idFiliacaoPai
                ,
                pes_idFiliacaoMae = UCCadastroPessoa1._VS_pes_idFiliacaoMae
                ,
                tes_id = new Guid(UCCadastroPessoa1._ComboEscolaridade.SelectedValue)
                ,
                pes_estadoCivil = UCCadastroPessoa1._ComboEstadoCivil.SelectedValue == "-1" ? Convert.ToByte(null) : Convert.ToByte(UCCadastroPessoa1._ComboEstadoCivil.SelectedValue)
                ,
                pes_situacao = 1
                ,
                IsNew = (UCCadastroPessoa1._VS_pes_id != Guid.Empty) ? false : true
            };

            PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia
            {
                pes_id = _VS_pes_id
                ,
                tde_id = new Guid(UCCadastroPessoa1._ComboTipoDeficiencia.SelectedValue)
                ,
                IsNew = true
            };

            CFG_Arquivo entArquivo = null;

            //armazema a imagem na entidade de pessoa
            if (!string.IsNullOrEmpty(UCCadastroPessoa1._iptFoto.PostedFile.FileName))
            {
                string tam = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_MAX_FOTO_PESSOA);

                if (!string.IsNullOrEmpty(tam))
                {
                    if (UCCadastroPessoa1._iptFoto.PostedFile.ContentLength > Convert.ToInt32(tam) * 1000)
                    {
                        throw new ArgumentException("Foto é maior que o tamanho máximo permitido.");
                    }
                }

                if (UCCadastroPessoa1._iptFoto.PostedFile.FileName.Substring(UCCadastroPessoa1._iptFoto.PostedFile.FileName.Length - 3, 3).ToUpper() != "JPG")
                {
                    throw new ArgumentException("Foto tem que estar no formato \".jpg\".");
                }

                entArquivo = CFG_ArquivoBO.CriarEntidadeArquivo(UCCadastroPessoa1._iptFoto.PostedFile);

                if (_VS_arq_idAntigo > 0)
                {
                    // Se já existia foto e vai ser alterada, muda só o conteúdo.
                    entArquivo.arq_id = _VS_arq_idAntigo;
                    entArquivo.IsNew  = false;
                }
            }

            if (_VS_arq_idAntigo > 0)
            {
                entityPessoa.arq_idFoto = _VS_arq_idAntigo;
            }

            //Chama método salvar da pessoa

            /* [OLD]  if (PES_PessoaBO.Save(entityPessoa
             *                  , entityPessoaDeficiencia
             *                  , UCEnderecos1._VS_enderecos
             *                  , UCGridContato1._VS_contatos
             *                  , UCGridDocumento1.RetornaDocumentoSave()
             *                  , UCGridCertidaoCivil1._VS_certidoes
             *                  , _VS_pai_idAntigo
             *                  , _VS_cid_idAntigo
             *                  , _VS_pes_idPaiAntigo
             *                  , _VS_pes_idMaeAntigo
             *                  , _VS_tes_idAntigo
             *                  , _VS_tde_idAntigo
             *                  , ApplicationWEB.TipoImagensPermitidas
             *                  , ApplicationWEB.TamanhoMaximoArquivo
             *                  , entArquivo
             *                  , UCCadastroPessoa1._chbExcluirImagem.Checked
             *                  )
             *     )*/
            END_Endereco entityEndereco = new END_Endereco();

            string    msg;
            DataTable dtEndereco;

            bool cadastraEndereco = UCEnderecos1.RetornaEnderecoCadastrado(out dtEndereco, out msg);

            if (PES_PessoaBO.Save(entityPessoa
                                  , entityPessoaDeficiencia
                                  , dtEndereco
                                  , UCGridContato1._VS_contatos
                                  , UCGridDocumento1.RetornaDocumentoSave()
                                  , UCGridCertidaoCivil1._VS_certidoes
                                  , _VS_pai_idAntigo
                                  , _VS_cid_idAntigo
                                  , _VS_pes_idPaiAntigo
                                  , _VS_pes_idMaeAntigo
                                  , _VS_tes_idAntigo
                                  , _VS_tde_idAntigo
                                  , ApplicationWEB.TipoImagensPermitidas
                                  , ApplicationWEB.TamanhoMaximoArquivo
                                  , entArquivo
                                  , UCCadastroPessoa1._chbExcluirImagem.Checked
                                  )
                )
            {
                if (_VS_pes_id == Guid.Empty)
                {
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "pes_id: " + entityPessoa.pes_id);
                    __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Pessoa incluída com sucesso."), UtilBO.TipoMensagem.Sucesso);
                }
                else
                {
                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "pes_id: " + entityPessoa.pes_id);
                    __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Pessoa alterada com sucesso."), UtilBO.TipoMensagem.Sucesso);
                }

                Response.Redirect(__SessionWEB._AreaAtual._Diretorio + "ManutencaoPessoa/Busca.aspx", false);
            }
            else
            {
                _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a pessoa.", UtilBO.TipoMensagem.Erro);
            }
        }
        catch (CoreLibrary.Validation.Exceptions.ValidationException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (ArgumentException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (DuplicateNameException ex)
        {
            _lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a pessoa.", UtilBO.TipoMensagem.Erro);
        }
    }
예제 #11
0
    /// <summary>
    /// Configura os dados da foto.
    /// </summary>
    /// <param name="pagina">Página que chamou o método.</param>
    /// <param name="arq_id">Id do arquivo da foto.</param>
    public void ConfiguraDadosFoto(PaginaGestao pagina, out long arq_id)
    {
        try
        {
            if (_VS_pes_id != new Guid())
            {
                CFG_Arquivo entArquivo = PES_PessoaBO.RetornaFotoPor_Pessoa(_VS_pes_id);
                if (!entArquivo.IsNew)
                {
                    if (pagina == PaginaGestao.Alunos)
                    {
                        imgFoto.ImageUrl = "~/Academico/Aluno/CapturaFoto/Imagem.ashx?idfoto=" + entArquivo.arq_id;

                        string script = String.Format("SetConfirmDialogButton('{0}','{1}');", String.Concat("#", btnCapturaFoto.ClientID), String.Format("Deseja substituir a foto atual por uma nova foto?"));
                        Page.ClientScript.RegisterStartupScript(GetType(), btnCapturaFoto.ClientID, script, true);
                    }
                    else
                    {
                        imgFoto.ImageUrl = __SessionWEB._AreaAtual._Diretorio + "Academico/RecursosHumanos/Colaborador/Imagem.ashx?id=" + _VS_pes_id;
                    }

                    SetarDataImagem(entArquivo);
                }

                // Configura imagem da pessoa, caso existir
                if (entArquivo.arq_data != null && entArquivo.arq_data.Length > 1)
                {
                    if (pagina == PaginaGestao.Alunos)
                    {
                        imgFoto.ImageUrl = "~/Academico/RecursosHumanos/Colaborador/Imagem.ashx?id=" + _VS_pes_id;
                    }

                    System.Drawing.Image img;
                    using (MemoryStream ms = new MemoryStream(entArquivo.arq_data, 0, entArquivo.arq_data.Length))
                    {
                        ms.Write(entArquivo.arq_data, 0, entArquivo.arq_data.Length);
                        img = System.Drawing.Image.FromStream(ms, true);
                    }

                    const int larguraMaxima = 200;
                    const int alturaMaxima  = 200;
                    int       alt;
                    int       lar;

                    decimal proporcaoOriginal = (decimal)((img.Height * 100) / img.Width) / 100;

                    if (proporcaoOriginal > 1)
                    {
                        proporcaoOriginal = (decimal)((img.Width * 100) / img.Height) / 100;
                        alt = alturaMaxima;
                        lar = Convert.ToInt32(alturaMaxima * proporcaoOriginal);
                    }
                    else
                    {
                        lar = larguraMaxima;
                        alt = Convert.ToInt32(larguraMaxima * proporcaoOriginal);
                    }

                    imgFoto.Height           = alt;
                    imgFoto.Width            = lar;
                    imgFoto.Visible          = true;
                    btnExcluir.Visible       = true;
                    chbExcluirImagem.Visible = true;
                }
                else
                {
                    imgFoto.Visible          = false;
                    btnExcluir.Visible       = false;
                    lblDataFoto.Visible      = false;
                    chbExcluirImagem.Visible = false;
                }

                switch (pagina)
                {
                case PaginaGestao.Colaboradores:
                case PaginaGestao.Docentes:
                    btnCapturaFoto.Visible = false;
                    btnExcluir.Visible     = false;
                    break;

                case PaginaGestao.Alunos:
                    btnCapturaFoto.Visible   = true;
                    chbExcluirImagem.Visible = false;
                    break;
                }

                arq_id = entArquivo.arq_id;
            }
            else
            {
                arq_id = -1;
            }
        }
        catch
        {
            arq_id = -1;
            btnCapturaFoto.Visible   = true;
            lblDataFoto.Visible      = false;
            lblMensagemErroFoto.Text = UtilBO.GetErroMessage("Não foi possível carregar a foto.", UtilBO.TipoMensagem.Alerta);
        }
    }
예제 #12
0
 /// <summary>
 /// Seta o texto da data de última alteração da imagem.
 /// </summary>
 /// <param name="foto">Imagem salva para a pessoa</param>
 public void SetarDataImagem(CFG_Arquivo foto)
 {
     lblDataFoto.Visible = true;
     lblDataFoto.Text    = "<br />Última alteração da foto: " + foto.arq_dataAlteracao.ToString("dd/MM/yyyy");
 }
예제 #13
0
 protected override bool Alterar(CFG_Arquivo entity)
 {
     __STP_UPDATE = "NEW_CFG_Arquivo_UPDATE";
     return(base.Alterar(entity));
 }
예제 #14
0
파일: Index.aspx.cs 프로젝트: Mualumene/SGP
        /// <summary>
        /// Handles the Load event of the Page control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
        /// <author>juliano.real</author>
        /// <datetime>12/10/2013-09:20</datetime>
        /// <exception cref="System.ComponentModel.DataAnnotations.ValidationException">Usuário não autorizado a exibir o area aluno.</exception>
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                String sMensagemLog = "";

                divResponsavel.Visible = __SessionWEB.__UsuarioWEB.responsavel;

                Int64 alu_id     = 0;
                long  arq_idFoto = 0;
                if (__SessionWEB.__UsuarioWEB.responsavel && __SessionWEB.__UsuarioWEB.alu_id > 0)
                {
                    alu_id = __SessionWEB.__UsuarioWEB.alu_id;
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.pes_idAluno);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.pes_idAluno
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }
                else
                {
                    alu_id = ACA_AlunoBO.SelectAlunoby_pes_id(__SessionWEB.__UsuarioWEB.Usuario.pes_id);
                    PES_Pessoa pesAluno = new PES_Pessoa {
                        pes_id = __SessionWEB.__UsuarioWEB.Usuario.pes_id
                    };
                    PES_PessoaBO.GetEntity(pesAluno);
                    arq_idFoto = pesAluno.arq_idFoto;
                }

                if (alu_id <= 0)
                {
                    sMensagemLog = "Usuário não autorizado a exibir Area do Aluno: usu_id: " + __SessionWEB.__UsuarioWEB.Usuario.usu_id.ToString();
                    throw new ValidationException("Usuário não autorizado a exibir o Area do Aluno.");
                }

                ACA_Aluno entityAluno = ACA_AlunoBO.GetEntity(new ACA_Aluno {
                    alu_id = alu_id
                });
                bool boletimBloqueado           = false;
                bool compromissoEstudoBloqueado = !ACA_TipoCicloBO.VerificaSeExibeCompromissoAluno(alu_id);

                if (entityAluno.alu_possuiInformacaoSigilosa && entityAluno.alu_bloqueioBoletimOnline)
                {
                    if (__SessionWEB.__UsuarioWEB.responsavel)
                    {
                        Fieldset2.Visible            = true;
                        lblBoletimNaoDisponivel.Text = UtilBO.GetErroMessage(GetGlobalResourceObject("AreaAluno", "Index.lblBoletimNaoDisponivel.Text").ToString(), UtilBO.TipoMensagem.Informacao);
                        Fieldset1.Visible            = false;
                        return;
                    }
                    else
                    {
                        boletimBloqueado = true;
                    }
                }

                if (arq_idFoto > 0)
                {
                    string      imagem  = "";
                    CFG_Arquivo arquivo = new CFG_Arquivo {
                        arq_id = arq_idFoto
                    };
                    CFG_ArquivoBO.GetEntity(arquivo);
                    byte[] bufferData = arquivo.arq_data;

                    using (MemoryStream stream = new MemoryStream(bufferData))
                    {
                        System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
                        imagem = Convert.ToBase64String(stream.ToArray());
                    }

                    imgFotoAluno.ImageUrl = "data:" + arquivo.arq_typeMime + ";base64," + imagem;
                }

                DataTable dtCurriculo = ACA_AlunoCurriculoBO.SelecionaDadosUltimaMatricula(alu_id);

                if (dtCurriculo.Rows.Count <= 0)
                {
                    sMensagemLog = "Aluno não possui dados para a Area do Aluno: alu_id: " + alu_id.ToString();
                    throw new ValidationException("Aluno não possui dados para a Area do Aluno.");
                }

                string nomeAluno         = dtCurriculo.Rows[0]["pes_nome"].ToString();
                string matriculaEstadual = dtCurriculo.Rows[0]["alc_matriculaEstadual"].ToString();
                string numeroMatricula   = dtCurriculo.Rows[0]["alc_matricula"].ToString();

                //Nome Aluno
                lblInformacaoAluno.Text = "Aluno: <b>" + nomeAluno + "</b><br/>";

                //Matricula
                if (!string.IsNullOrEmpty(ACA_ParametroAcademicoBO.ParametroValorPorEntidade(eChaveAcademico.MATRICULA_ESTADUAL, __SessionWEB.__UsuarioWEB.Usuario.ent_id)))
                {
                    if (!string.IsNullOrEmpty(matriculaEstadual))
                    {
                        lblInformacaoAluno.Text += " <b>" + GestaoEscolarUtilBO.nomePadraoMatriculaEstadual(__SessionWEB.__UsuarioWEB.Usuario.ent_id) + ": " + "</b>" + matriculaEstadual + "&nbsp;&nbsp;&nbsp;";
                    }
                }
                else
                {
                    if (!string.IsNullOrEmpty(numeroMatricula))
                    {
                        lblInformacaoAluno.Text += GetGlobalResourceObject("Mensagens", "MSG_NUMEROMATRICULA") + ": <b>" + numeroMatricula + "</b>" + "&nbsp;&nbsp;&nbsp;";
                    }
                }

                __SessionWEB.__UsuarioWEB.alu_id = Convert.ToInt64(dtCurriculo.Rows[0]["alu_id"].ToString());
                __SessionWEB.__UsuarioWEB.esc_id = Convert.ToInt32(dtCurriculo.Rows[0]["esc_id"].ToString());
                __SessionWEB.__UsuarioWEB.uni_id = Convert.ToInt32(dtCurriculo.Rows[0]["uni_id"].ToString());
                __SessionWEB.__UsuarioWEB.mtu_id = Convert.ToInt32(dtCurriculo.Rows[0]["mtu_id"].ToString());
                __SessionWEB.__UsuarioWEB.tpc_id = Convert.ToInt32(string.IsNullOrEmpty(dtCurriculo.Rows[0]["tpc_id"].ToString()) ? "-1" : dtCurriculo.Rows[0]["tpc_id"].ToString());

                int mod_id = GetModuloId;

                string menuXml = SYS_ModuloBO.CarregarSiteMapXML2(
                    __SessionWEB.__UsuarioWEB.Grupo.gru_id,
                    __SessionWEB.__UsuarioWEB.Grupo.sis_id,
                    __SessionWEB.__UsuarioWEB.Grupo.vis_id,
                    mod_id
                    );
                if (String.IsNullOrEmpty(menuXml))
                {
                    menuXml = "<menus/>";
                }
                menuXml = menuXml.Replace("url=\"~/", String.Concat("url=\"", ApplicationWEB._DiretorioVirtual));

                // Verifica se o aluno está com o boletim bloqueado. Se estiver, retiro do menu.
                int indiceBoletim = menuXml.IndexOf("<menu id=\"Boletim");
                if (boletimBloqueado && indiceBoletim >= 0)
                {
                    menuXml = menuXml.Remove(indiceBoletim, menuXml.IndexOf("/>", indiceBoletim) - indiceBoletim + 2);
                }

                IDictionary <string, ICFG_Configuracao> configuracao;
                MSTech.GestaoEscolar.BLL.CFG_ConfiguracaoBO.Consultar(eConfig.Academico, out configuracao);
                if (configuracao.ContainsKey("AppURLAreaAlunoInfantil") && !string.IsNullOrEmpty(configuracao["AppURLAreaAlunoInfantil"].cfg_valor))
                {
                    string url            = HttpContext.Current.Request.Url.AbsoluteUri;
                    string configInfantil = configuracao["AppURLAreaAlunoInfantil"].cfg_valor;

                    if (url.Contains(configInfantil))
                    {
                        menuXml = menuXml.Replace("menu id=\"Boletim Online\"", "menu id=\"" + (string)GetGlobalResourceObject("AreaAluno.MasterPageAluno", "MenuBoletimInfantil") + "\"");
                    }
                }

                // Verifica se o aluno está com o compromisso estudo bloqueado. Se estiver, retiro do menu.
                int indiceCompromissoEstudo = menuXml.IndexOf("<menu id=\"Compromisso de Estudo");
                if (compromissoEstudoBloqueado && indiceCompromissoEstudo >= 0)
                {
                    menuXml = menuXml.Remove(indiceCompromissoEstudo, menuXml.IndexOf("/>", indiceCompromissoEstudo) - indiceCompromissoEstudo + 2);
                }

                XmlTextReader        reader  = new XmlTextReader(new StringReader(menuXml));
                XPathDocument        treeDoc = new XPathDocument(reader);
                XslCompiledTransform siteMap = new XslCompiledTransform();

                if (__SessionWEB.__UsuarioWEB.responsavel)
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMapResponsavel.xslt"));
                }
                else
                {
                    siteMap.Load(String.Concat(__SessionWEB._AreaAtual._DiretorioIncludes, "SiteMap.xslt"));
                }

                StringWriter sw = new StringWriter();
                siteMap.Transform(treeDoc, null, sw);
                string result = sw.ToString();

                List <CFG_ModuloClasse> lstModClasse = CFG_ModuloClasseBO.SelecionaAtivos(ApplicationWEB.AreaAlunoSistemaID);

                if (lstModClasse.Any())
                {
                    //Carrega a lista de link e moduloId
                    Dictionary <string, string> linkModulo = new Dictionary <string, string>();
                    string[] linkMenusXml = menuXml.Split(new[] { "<menu id=\"" }, StringSplitOptions.None);
                    if (linkMenusXml.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenusXml)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("url=\"") + 5, item.Substring(item.IndexOf("url=\"") + 5).IndexOf("\""));
                                string modulo = item.Substring(0, item.IndexOf("\""));
                                linkModulo.Add(link, modulo);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Carrega a lista de link e classe css atual
                    Dictionary <string, string> linkClasse = new Dictionary <string, string>();
                    string[] linkMenus = result.Split(new[] { "<li class=\"txtSubMenu\"><a " }, StringSplitOptions.None);
                    if (linkMenus.Length > 0)
                    {
                        bool primeiroItem = true;
                        foreach (string item in linkMenus)
                        {
                            if (!primeiroItem)
                            {
                                string link   = item.Substring(item.IndexOf("href=\"") + 6, item.Substring(item.IndexOf("href=\"") + 6).IndexOf("\""));
                                string classe = item.Substring(item.IndexOf("class=\"") + 7, item.Substring(item.IndexOf("class=\"") + 7).IndexOf("\""));
                                linkClasse.Add(link, "class=\"" + classe + "\" " + "href=\"" + link);
                            }
                            primeiroItem = false;
                        }
                    }

                    //Troca a classe css atual do link conforme o que está configurado na tabela filtrando pelo modulo
                    if (linkModulo.Count > 0 && linkClasse.Count > 0)
                    {
                        foreach (var item in linkClasse)
                        {
                            string modulo = linkModulo[item.Key];
                            if (!string.IsNullOrEmpty(modulo) && lstModClasse.Any(p => p.mod_nome == modulo))
                            {
                                string classeCfg = lstModClasse.Where(p => p.mod_nome == modulo).FirstOrDefault().mdc_classe;
                                if (!string.IsNullOrEmpty(classeCfg))
                                {
                                    result = result.Replace(item.Value, "class=\"link " + classeCfg + "\" " + "href=\"" + item.Key);
                                }
                            }
                        }
                    }
                }

                //Control ctrl = Page.ParseControl(result);
                _lblSiteMap.Text = result;

                if (!string.IsNullOrEmpty(ApplicationWEB.UrlAcessoExternoBoletimOnline))
                {
                    string[] crp_ordem = ApplicationWEB.Crp_ordem_AcessoExternoBoletimOnline;
                    // Só exibe o ícone caso o aluno esteja em alguma das séries parametrizadas.
                    if (crp_ordem.Contains(dtCurriculo.Rows[0]["crp_ordem"].ToString()))
                    {
                        // Seta um nó de menu para acesso ao site externo.
                        ulItemAcessoExterno.Visible     = true;
                        lblAcessoExterno.Text           = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                        lnkAcessoExterno.HRef           = ApplicationWEB.UrlAcessoExternoBoletimOnline;
                        h2TituloAcessoExterno.InnerHtml = GetGlobalResourceObject("AreaAluno", "Index.lblAcessoExternoNome").ToString();
                    }
                }

                sMensagemLog = "Area do Aluno exibida para aluno: alu_id: " + alu_id.ToString();
                ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Query, sMensagemLog);
            }
            catch (ValidationException ex)
            {
                lblMessage.Text       = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text       = UtilBO.GetErroMessage("Erro ao exibir a Area do aluno", UtilBO.TipoMensagem.Erro);
                btnVoltar.PostBackUrl = __SessionWEB.UrlCoreSSO + "/Sistema.aspx";
                btnVoltar.Visible     = true;
                divInformacao.Visible = false;
                HttpContext.Current.ApplicationInstance.CompleteRequest();
            }
        }