Example #1
0
        public static DataTable BuscarResponsaveis
        (
            Guid ent_id
            , string nome
            , string cpf
            , string rg
            , string nis
            , int currentPage
            , int pageSize
        )
        {
            ACA_AlunoResponsavelDAO dao = new ACA_AlunoResponsavelDAO();

            // ID do tipo de documento CPF.
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
            Guid   tdo_idCPF    = String.IsNullOrEmpty(docPadraoCPF) ? Guid.Empty : new Guid(docPadraoCPF);

            // ID do tipo de documento RG.
            string docPadraoRG = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG);
            Guid   tdo_idRG    = String.IsNullOrEmpty(docPadraoRG) ? Guid.Empty : new Guid(docPadraoRG);

            // ID do tipo de documento NIS.
            Guid tdo_idNis = ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.TIPO_DOCUMENTACAO_NIS, ent_id);

            return(dao.SelectBuscaResponsaveis(ent_id, nome, cpf, rg, nis, tdo_idCPF, tdo_idRG, tdo_idNis, currentPage, pageSize, out totalRecords));
        }
Example #2
0
    /// <summary>
    /// Inserindo em uma lista os documentos referente
    /// ao responsável.
    /// </summary>
    /// <param name="pes_id">id da pessoa</param>
    /// <param name="documentoCPF">o número do CPF</param>
    /// <param name="documentoRG">o número do RG</param>
    /// <param name="documentoNIS">o número do NIS</param>
    /// <returns>uma lista dos documentos referente a pessoa</returns>
    private List <PES_PessoaDocumento> InserirDocumentoResponsavel(Guid pes_id, string documentoCPF, string documentoRG, string documentoNIS)
    {
        List <PES_PessoaDocumento> lista = new List <PES_PessoaDocumento>();

        // Caso for declarado o CPF, será inserindo uma lista.
        if (!string.IsNullOrEmpty(documentoCPF))
        {
            //Faz uma busca do id do tipo de documento (tdo_id).
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);

            PES_PessoaDocumento entityPessoaDocumento = new PES_PessoaDocumento
            {
                pes_id = pes_id
                ,
                tdo_id = new Guid(docPadraoCPF)
                ,
                psd_numero = documentoCPF
            };

            lista.Add(entityPessoaDocumento);
        }

        // Caso for declarado o RG, será inserindo em uma lista.
        if (!string.IsNullOrEmpty(documentoRG))
        {
            //Faz uma busca do id do tipo de documento (tdo_id).
            string docPadraoRG = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG);

            PES_PessoaDocumento entityPessoaDocumento = new PES_PessoaDocumento
            {
                pes_id = pes_id
                ,
                tdo_id = new Guid(docPadraoRG)
                ,
                psd_numero = documentoRG
            };

            lista.Add(entityPessoaDocumento);
        }

        // Caso for declarado o NIS, será inserindo em uma lista.
        if (!string.IsNullOrEmpty(documentoNIS))
        {
            // ID do tipo de documento NIS.
            Guid tdo_idNis = ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.TIPO_DOCUMENTACAO_NIS, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            PES_PessoaDocumento entityPessoaDocumento = new PES_PessoaDocumento
            {
                pes_id = pes_id
                ,
                tdo_id = tdo_idNis
                ,
                psd_numero = documentoNIS
            };

            lista.Add(entityPessoaDocumento);
        }

        return(lista);
    }
Example #3
0
        //adicionar deficiencias filhas

        protected void btnAdicionarFilha_Click(object sender, EventArgs e)
        {
            try
            {
                string mensagem = "";

                if (UCComboTipoDeficienciaFilha._Combo.SelectedIndex <= 0)
                {
                    mensagem += (string.IsNullOrEmpty(mensagem) ? "" : "<br/>") + string.Format("Deficiência relacionada é obrigatória.");
                }

                if (new Guid(UCComboTipoDeficienciaFilha._Combo.SelectedValue) == ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.DEFICIENCIA_MULTIPLA, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    mensagem += (string.IsNullOrEmpty(mensagem) ? "" : "<br/>") + string.Format("O tipo de deficiência não pode se relacionar com ele mesmo.");
                }


                if (!string.IsNullOrEmpty(mensagem))
                {
                    throw new ValidationException(mensagem.Replace(" *", ""));
                }

                if (VS_ListaFilha.Any(p => p.tde_idFilha.Equals(new Guid(UCComboTipoDeficienciaFilha._Combo.SelectedValue))))
                {
                    throw new ValidationException(string.Format("Deficiência relacionada já existe."));
                }

                VS_ListaFilha.Add(new CFG_DeficienciaFIlha
                {
                    tde_id        = VS_tde_id,
                    tde_idFilha   = new Guid(UCComboTipoDeficienciaFilha._Combo.SelectedValue),
                    tde_nomeFilha = UCComboTipoDeficienciaFilha._Combo.SelectedItem.Text,
                    IsNew         = true
                });

                VS_ListaFilha = VS_ListaFilha.OrderBy(q => q.tde_nomeFilha).ToList();

                gdvDeficienciaFilha.DataSource = VS_ListaFilha;
                gdvDeficienciaFilha.DataBind();

                UCComboTipoDeficienciaFilha._Combo.SelectedIndex = 0;
                divInserirFilha.Visible = false;
                updCadastroQualidade.Update();
            }
            catch (ValidationException ex)
            {
                lblPopupFilha.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblPopupFilha.Text = UtilBO.GetErroMessage("Erro ao adicionar detalhamento de deficiência.", UtilBO.TipoMensagem.Erro);
            }
        }
Example #4
0
        /// <summary>
        /// Método para salvar um tipo de qualidade.
        /// </summary>
        private void Salvar()
        {
            try
            {
                VS_tde_id = new Guid(UCComboTipoDeficiencia._Combo.SelectedValue);
                //verifica se é deficência multipla
                if (VS_tde_id == ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.DEFICIENCIA_MULTIPLA, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    //passar a lista para salvar as deficiencias relacionadas
                    if (CFG_DeficienciaFIlhaBO.Salvar(VS_tde_id, VS_ListaFilha))
                    {
                        ApplicationWEB._GravaLogSistema(VS_tde_id != Guid.NewGuid() ? LOG_SistemaTipo.Update : LOG_SistemaTipo.Insert, "tde_id: " + VS_tde_id);
                        __SessionWEB.PostMessages = UtilBO.GetErroMessage("Detalhamento de deficiência " + (VS_tde_id != Guid.NewGuid() ? "alterado" : "incluído") + " com sucesso.", UtilBO.TipoMensagem.Sucesso);

                        Response.Redirect("Busca.aspx", false);
                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                    }
                }

                else
                {
                    //passar a lista para salvar o detalhamento
                    if (CFG_DeficienciaDetalheBO.Salvar(VS_tde_id, VS_ListaDetalhe))
                    {
                        ApplicationWEB._GravaLogSistema(VS_tde_id != Guid.NewGuid() ? LOG_SistemaTipo.Update : LOG_SistemaTipo.Insert, "tde_id: " + VS_tde_id);
                        __SessionWEB.PostMessages = UtilBO.GetErroMessage("Detalhamento de deficiência " + (VS_tde_id != Guid.NewGuid() ? "alterado" : "incluído") + " com sucesso.", UtilBO.TipoMensagem.Sucesso);

                        Response.Redirect("Busca.aspx", false);
                        HttpContext.Current.ApplicationInstance.CompleteRequest();
                    }
                }
            }
            catch (ValidationException e)
            {
                lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (ArgumentException e)
            {
                lblMessage.Text = UtilBO.GetErroMessage(e.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar detalhamentos da deficiência.", UtilBO.TipoMensagem.Erro);
            }
        }
Example #5
0
        /// <summary>
        /// Método para carregar uma deficiência com seus detalhamentos.
        /// </summary>
        /// <param name="tde_id">ID do tipo de deficiencia</param>
        public void Carregar(Guid tde_id)
        {
            try
            {
                // verifica se é deficiencia multipla
                if (tde_id == ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.DEFICIENCIA_MULTIPLA, __SessionWEB.__UsuarioWEB.Usuario.ent_id))
                {
                    divDetalhe.Visible = false;
                    divFilha.Visible   = true;

                    UCComboTipoDeficienciaFilha._Label.Text = string.Format("Deficiência relacionada");
                    UCComboTipoDeficienciaFilha._MostrarMessageSelecione = true;

                    List <CFG_DeficienciaFIlha> lstAux = CFG_DeficienciaFIlhaBO.SelectFilhaBy_Deficiencia(tde_id);
                    VS_ListaFilha = lstAux.ToList();

                    UCComboTipoDeficiencia._Combo.Enabled = !(VS_ListaFilha.Count > 0);

                    gdvDeficienciaFilha.DataSource = VS_ListaFilha.OrderBy(p => p.tde_nomeFilha);
                    gdvDeficienciaFilha.DataBind();
                }
                //não é multipla e vai inserir o detalhamento
                else
                {
                    divDetalhe.Visible = true;
                    divFilha.Visible   = false;

                    List <CFG_DeficienciaDetalhe> lstAux = CFG_DeficienciaDetalheBO.SelectDetalheBy_Deficiencia(tde_id);
                    VS_ListaDetalhe = lstAux.ToList();

                    UCComboTipoDeficiencia._Combo.Enabled = !(VS_ListaDetalhe.Count > 0);

                    grvDetalhes.DataSource = VS_ListaDetalhe.Where(q => q.dfd_situacao != 3).OrderBy(q => q.dfd_nome);
                    grvDetalhes.DataBind();
                }
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar detalhamento.", UtilBO.TipoMensagem.Erro);
            }
        }
Example #6
0
    /// <summary>
    /// Insere as informações do responsável na tela.
    /// </summary>
    /// <param name="entCadastro">Struct de cadastro com as informações</param>
    public void CarregarResponsavel(ACA_AlunoResponsavelBO.StructCadastro entCadastro)
    {
        VS_Alr_ID = entCadastro.entAlunoResp.alr_id;
        VS_Pes_ID = entCadastro.entPessoa.pes_id;

        txtNome.Text = entCadastro.entPessoa.pes_nome;
        if (entCadastro.entPessoa.pes_dataNascimento != new DateTime())
        {
            txtDataNasc.Text = entCadastro.entPessoa.pes_dataNascimento.ToString("dd/MM/yyyy");
        }

        if (entCadastro.entPessoa.pes_estadoCivil > 0)
        {
            UCComboEstadoCivil1._Combo.SelectedValue = entCadastro.entPessoa.pes_estadoCivil.ToString();
        }

        if (entCadastro.entPessoa.pes_sexo > 0)
        {
            UCComboSexo1._Combo.SelectedValue = entCadastro.entPessoa.pes_sexo.ToString();
        }

        if (entCadastro.entPessoa.tes_id != Guid.Empty)
        {
            UCComboTipoEscolaridade1._Combo.SelectedValue = entCadastro.entPessoa.tes_id.ToString();
        }

        txtProfissao.Text = entCadastro.entAlunoResp.alr_profissao;

        //Carrega os documentos do responsável (RG e CPF)
        if (entCadastro.listPessoaDoc.Count > 0)
        {
            //Faz uma busca do id do tipo de documento (tdo_id).
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
            string docPadraoRG  = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG);

            // ID do tipo de documento NIS.
            Guid tdo_idNis = ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.TIPO_DOCUMENTACAO_NIS, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

            foreach (PES_PessoaDocumento item in entCadastro.listPessoaDoc)
            {
                if (item.tdo_id == new Guid(docPadraoCPF))
                {
                    txtCPFResponsavel.Text = item.psd_numero;
                }
                else
                if (item.tdo_id == new Guid(docPadraoRG))
                {
                    txtRGResponsavel.Text = item.psd_numero;
                }
                else if (item.tdo_id == tdo_idNis)
                {
                    txtNis.Text = item.psd_numero;
                }
            }
        }

        chkApenasFiliacao.Checked        = entCadastro.entAlunoResp.alr_apenasFiliacao;
        chkNaoConstaCertidaoNasc.Checked = !entCadastro.entAlunoResp.alr_constaCertidaoNascimento;
        chkOmitidoFormaLei.Checked       = entCadastro.entAlunoResp.alr_omitidoFormaLei;
        chkMoraComAluno.Checked          = entCadastro.entAlunoResp.alr_moraComAluno;
        chkSituacaoFalecido.Checked      = entCadastro.entAlunoResp.alr_situacao == (byte)ACA_AlunoResponsavelSituacao.Falecido;
    }
Example #7
0
    /// <summary>
    /// Método chamado quando o usuário seleciona uma pessoa na tela de busca.
    /// </summary>
    /// <param name="parameters"></param>
    void UCPessoas1BuscaPessoa(IDictionary <string, object> parameters)
    {
        //Faz uma busca do id do tipo de documento (tdo_id).
        string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
        string docPadraoRG  = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG);

        //Variáveis que recebe os valores cadastrados caso já exista.
        byte   situacao_responsavel;
        string alr_profissao;

        // ID do tipo de documento NIS.
        Guid tdo_idNis = ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.TIPO_DOCUMENTACAO_NIS, __SessionWEB.__UsuarioWEB.Usuario.ent_id);

        try
        {
            if (!String.IsNullOrEmpty(parameters["pes_id"].ToString()))
            {
                VS_Pes_ID = new Guid(parameters["pes_id"].ToString());
            }

            PES_Pessoa entity = new PES_Pessoa();
            entity.pes_id = VS_Pes_ID;
            PES_PessoaBO.GetEntity(entity);

            txtNome.Text     = entity.pes_nome;
            txtDataNasc.Text = entity.pes_dataNascimento != new DateTime() ?
                               entity.pes_dataNascimento.ToString("dd/MM/yyyy") :
                               "";
            UCComboEstadoCivil1._Combo.SelectedValue = entity.pes_estadoCivil.ToString();
            UCComboSexo1._Combo.SelectedValue        = (entity.pes_sexo == 0) ? "-1" : entity.pes_sexo.ToString();
            if (entity.tes_id != Guid.Empty)
            {
                UCComboTipoEscolaridade1._Combo.SelectedValue = entity.tes_id.ToString();
            }
            else
            {
                UCComboTipoEscolaridade1._Combo.SelectedValue = UCComboTipoEscolaridade1._Combo.Items[0].Value;
            }

            //Faz a verificação se existe as informações cadastradas referente a profissão e situação do responsável.
            ACA_AlunoResponsavelBO.RetornaAlunoResponsavel_Situacao_Profissao(entity.pes_id, out situacao_responsavel, out alr_profissao);
            chkSituacaoFalecido.Checked = situacao_responsavel == Convert.ToByte(ACA_AlunoResponsavelSituacao.Falecido);
            txtProfissao.Text           = alr_profissao;

            txtCPFResponsavel.Text = RetornaDocumentoResponsavel(entity.pes_id, docPadraoCPF);
            txtRGResponsavel.Text  = RetornaDocumentoResponsavel(entity.pes_id, docPadraoRG);
            txtNis.Text            = RetornaDocumentoResponsavel(entity.pes_id, tdo_idNis.ToString());

            if (UCBuscaPessoasAluno != null)
            {
                // Limpar campos da busca.
                UCBuscaPessoasAluno._Limpar();
            }

            ScriptManager.RegisterClientScriptBlock(Page, GetType(), "BuscaPessoa", "$('#divBuscaResponsavel').dialog('close');", true);
        }
        catch (Exception ex)
        {
            lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar carregar a pessoa.", UtilBO.TipoMensagem.Erro);
            ApplicationWEB._GravaErro(ex);
        }
    }
Example #8
0
        /// <summary>
        /// Salva os responsáveis do aluno, e o pai e a mãe na filiação do aluno.
        /// </summary>
        /// <param name="listaResponsavel">Lista da estrutura do cadastro</param>
        /// <param name="entAluno">Aluno</param>
        /// <param name="bancoGestao">Transação do Gestão</param>
        /// <param name="bancoCore">Transação do Core</param>
        /// <param name="tra_idPrincipal">Id do tipo de responsável principal</param>
        /// <param name="salvarMaiusculo">Indica se os nomes devem ser salvos em maiúsculos</param>
        /// <param name="entPessoaAluno">Pessoa referente ao aluno - seta o id do Pai e da Mãe</param>
        /// <param name="obrigatorioTipoResponsavel">Validar se foi informado o Id do tipo de responsável principal.</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        public static void SalvarResponsaveisAluno
        (
            List <StructCadastro> listaResponsavel,
            ACA_Aluno entAluno,
            TalkDBTransaction bancoGestao,
            TalkDBTransaction bancoCore,
            Int32 tra_idPrincipal,
            bool salvarMaiusculo,
            ref PES_Pessoa entPessoaAluno,
            bool obrigatorioTipoResponsavel,
            Guid ent_id
        )
        {
            List <StructCadastro> listCadastrados = new List <StructCadastro>();
            List <StructCadastro> listaInseridos  = new List <StructCadastro>();
            Guid pes_idMae = Guid.Empty;
            Guid pes_idPai = Guid.Empty;

            if (tra_idPrincipal <= 0 && obrigatorioTipoResponsavel)
            {
                throw new ValidationException("É necessário informar o responsável do aluno.");
            }

            if (listaResponsavel.Count == 0)
            {
                throw new ValidationException("Responsável é obrigatório.");
            }

            if (!entAluno.IsNew)
            {
                // Guardar os responsáveis que já tinham sido cadastrados.
                listCadastrados = RetornaResponsaveisAluno(entAluno.alu_id, null);
            }

            // Buscando ids dos tipos de responsável dos parâmetros.
            Int32 tra_idMae     = TipoResponsavelAlunoParametro.tra_idMae(ent_id);
            Int32 tra_idPai     = TipoResponsavelAlunoParametro.tra_idPai(ent_id);
            Int32 tra_idProprio = TipoResponsavelAlunoParametro.tra_idProprio(ent_id);

            // ID do tipo de documento CPF.
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
            Guid   tdo_idCPF    = String.IsNullOrEmpty(docPadraoCPF) ? Guid.Empty : new Guid(docPadraoCPF);

            // ID do tipo de documento RG.
            string docPadraoRG = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG);
            Guid   tdo_idRG    = String.IsNullOrEmpty(docPadraoRG) ? Guid.Empty : new Guid(docPadraoRG);

            // ID do tipo de documento NIS.
            Guid tdo_idNis = ACA_ParametroAcademicoBO.ParametroValorGuidPorEntidade(eChaveAcademico.TIPO_DOCUMENTACAO_NIS, ent_id);

            List <string> ListValidacoesDoc = new List <string>();

            foreach (StructCadastro resp in listaResponsavel)
            {
                //Responsáveis com o mesmo numero de documento
                foreach (PES_PessoaDocumento psd in resp.listPessoaDoc)
                {
                    if (listaResponsavel.Any(p => p.entAlunoResp.pes_id != resp.entAlunoResp.pes_id &&
                                             p.listPessoaDoc.Any(d => d.psd_numero == psd.psd_numero)) &&
                        !ListValidacoesDoc.Contains("Há mais de um responsável com o mesmo número de documento."))
                    {
                        ListValidacoesDoc.Add("Há mais de um responsável com o mesmo número de documento.");
                    }
                }

                // Responável tem data de nascimento maior que a data atual.
                if (resp.entPessoa.pes_dataNascimento > DateTime.Now)
                {
                    if (resp.entAlunoResp.tra_id == TipoResponsavelAlunoParametro.tra_idMae(ent_id))
                    {
                        ListValidacoesDoc.Add("A data de nascimento da mãe não pode ser maior que a data atual.");
                    }

                    if (resp.entAlunoResp.tra_id == TipoResponsavelAlunoParametro.tra_idPai(ent_id))
                    {
                        ListValidacoesDoc.Add("A data de nascimento do pai não pode ser maior que a data atual.");
                    }
                }

                // Responsavel do aluno é falecido e mora com ele -- erro
                if (resp.entAlunoResp.alr_moraComAluno && resp.entAlunoResp.alr_situacao == Convert.ToByte(ACA_AlunoResponsavelSituacao.Falecido))
                {
                    ListValidacoesDoc.Add("Responsável do aluno não pode morar com o aluno e ser falecido.");
                }

                // Responsavel tem data de nascimento mais nova que a do aluno
                if (resp.entPessoa.pes_dataNascimento > entPessoaAluno.pes_dataNascimento)
                {
                    if (resp.entAlunoResp.tra_id == TipoResponsavelAlunoParametro.tra_idMae(ent_id))
                    {
                        ListValidacoesDoc.Add("A data de nascimento da mãe não pode ser maior que a data de nascimento do aluno.");
                    }

                    if (resp.entAlunoResp.tra_id == TipoResponsavelAlunoParametro.tra_idPai(ent_id))
                    {
                        ListValidacoesDoc.Add("A data de nascimento do pai não pode ser maior que a data de nascimento do aluno.");
                    }
                }

                //Valida código NIS do aluno
                int index = resp.listPessoaDoc.FindIndex(p => p.tdo_id == tdo_idNis);

                if (index >= 0 && !(string.IsNullOrEmpty(resp.listPessoaDoc[index].psd_numero)))
                {
                    string TipoPessoa;

                    if (resp.entAlunoResp.tra_id == tra_idMae)
                    {
                        TipoPessoa = "A mãe";
                    }
                    else if (resp.entAlunoResp.tra_id == tra_idPai)
                    {
                        TipoPessoa = "O pai";
                    }
                    else
                    {
                        TipoPessoa = "O responsável";
                    }

                    if (ACA_AlunoBO.NISInvalido(resp.listPessoaDoc[index].psd_numero))
                    {
                        ListValidacoesDoc.Add(TipoPessoa + " possui o número do NIS inválido.");
                    }
                }

                // Adiciona na lista dos dados inseridos.
                listaInseridos.Add(
                    SalvarResponsavel(tra_idPrincipal,
                                      entAluno,
                                      resp,
                                      tra_idProprio,
                                      bancoCore,
                                      tra_idMae,
                                      tra_idPai,
                                      bancoGestao,
                                      tdo_idCPF,
                                      tdo_idRG,
                                      tdo_idNis,
                                      ref pes_idMae,
                                      ref pes_idPai,
                                      salvarMaiusculo,
                                      ref ListValidacoesDoc,
                                      listaResponsavel,
                                      ent_id));
            }

            // Se não foi inserido nenhum item na lista como principal.
            if (!listaInseridos.Exists(p => p.entAlunoResp.alr_principal) && obrigatorioTipoResponsavel)
            {
                ListValidacoesDoc.Add("É necessário informar o responsável do aluno.");
            }

            if (ListValidacoesDoc.Count > 0)
            {
                throw new ValidationException(string.Join("<BR/>", ListValidacoesDoc.ToArray()));
            }

            // Salva na pessoa do aluno os Ids do pai e da mãe.
            entPessoaAluno = new PES_Pessoa
            {
                pes_id = entAluno.pes_id
            };
            PES_PessoaBO.GetEntity(entPessoaAluno, bancoCore);

            // Se mudou a mãe.
            if (entPessoaAluno.pes_idFiliacaoMae != pes_idMae)
            {
                entPessoaAluno.pes_idFiliacaoMae = pes_idMae;
                PES_PessoaBO.Save(entPessoaAluno, bancoCore);
            }

            // Se mudou o pai.
            if (entPessoaAluno.pes_idFiliacaoPai != pes_idPai)
            {
                entPessoaAluno.pes_idFiliacaoPai = pes_idPai;
                PES_PessoaBO.Save(entPessoaAluno, bancoCore);
            }

            // Percorrer os itens que existiam antes, para excluir os que não tem mais.
            foreach (StructCadastro item in listCadastrados)
            {
                if (item.entPessoa.pes_id == entAluno.pes_id)
                {
                    continue;
                }
                VerifcaItemCadastrado(listaInseridos, bancoCore, bancoGestao, item, tra_idProprio);
            }
        }