示例#1
0
        /// <summary>
        /// Salva no banco os dados do item passado por parâmetro, retorna o item inserido.
        /// </summary>
        /// <param name="tra_idPrincipal">ID do tipo de responsável</param>
        /// <param name="entAluno">Aluno</param>
        /// <param name="item">Item a ser inserido</param>
        /// <param name="tra_idProprio">Id padrão do tipo de responsável "O próprio"</param>
        /// <param name="bancoCore">Transação do banco do Core</param>
        /// <param name="tra_idMae">Id padrão do tipo de responsável "Mãe"</param>
        /// <param name="tra_idPai">Id padrão do tipo de responsável "Pai"</param>
        /// <param name="bancoGestao">Transação do banco do Gestão</param>
        /// <param name="tdo_idCPF">ID padrão do tipo de documento CPF</param>
        /// <param name="tdo_idRG">ID padrão do tipo de documento RG</param>
        /// <param name="tdo_idNis">ID padrão do tipo de documento NIS</param>
        /// <param name="pes_idMae">ref - id da Mãe do aluno</param>
        /// <param name="pes_idPai">ref - id do Pai do aluno</param>
        /// <param name="salvarMaiusculo">Indica se os nomes devem ser salvos em maiúsculos</param>
        /// <param name="ListValidacoesDoc"></param>
        /// <param name="ListSalvar">Lista de responsaveis que estao sendo salvos, para nao considerar o mesmo documento</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        /// <returns>Os dados inseridos</returns>
        private static StructCadastro SalvarResponsavel
        (
            Int32 tra_idPrincipal
            , ACA_Aluno entAluno
            , StructCadastro item
            , int tra_idProprio
            , TalkDBTransaction bancoCore
            , int tra_idMae
            , int tra_idPai
            , TalkDBTransaction bancoGestao
            , Guid tdo_idCPF
            , Guid tdo_idRG
            , Guid tdo_idNis
            , ref Guid pes_idMae
            , ref Guid pes_idPai
            , bool salvarMaiusculo
            , ref List <string> ListValidacoesDoc
            , List <StructCadastro> ListSalvar
            , Guid ent_id
        )
        {
            // Salvar os responsáveis.
            ACA_AlunoResponsavel       entResp   = item.entAlunoResp;
            PES_Pessoa                 entPessoa = item.entPessoa;
            List <PES_PessoaDocumento> lisDocResp;

            entResp.alu_id = entAluno.alu_id;

            if (entResp.tra_id == tra_idProprio)
            {
                // Se for o próprio, seta o id da Pessoa = o Id da pessoa do aluno.
                entResp.pes_id = entAluno.pes_id;

                // Salvar a integridade da pessoa.
                if (entResp.IsNew)
                {
                    PES_PessoaBO.IncrementaIntegridade(entAluno.pes_id, bancoCore);
                }
            }
            else
            {
                if ((salvarMaiusculo) && (!String.IsNullOrEmpty(entPessoa.pes_nome)))
                {
                    entPessoa.pes_nome = entPessoa.pes_nome.ToUpper();
                }

                // Só salva a pessoa se o nome estiver preenchido.
                if (!String.IsNullOrEmpty(entPessoa.pes_nome))
                {
                    // Faz a verificação caso exista a pessoa com o CPF passado por parâmetro.
                    Guid responsavel = Valida_Responsavel_CPF(item.listPessoaDoc, entResp.tra_id, ref ListValidacoesDoc, ent_id, entPessoa.pes_id, ListSalvar);
                    if (responsavel == new Guid())
                    {
                        // Se não existir, salva a entidade pessoa.
                        PES_PessoaBO.Save(entPessoa, bancoCore);
                    }
                    else
                    {
                        entPessoa.pes_id = responsavel;
                        entPessoa.IsNew  = false;

                        #region Atualiza - Entidade Pessoa (Cria uma entidade auxiliar para atualizar apenas o nome)

                        //Atualiza apenas o nome do responsável, recebendo todas as informações ja cadastradas
                        PES_Pessoa pesAux = new PES_Pessoa
                        {
                            pes_id = entPessoa.pes_id
                        };
                        PES_PessoaBO.GetEntity(pesAux);

                        pesAux.pes_nome = entPessoa.pes_nome;
                        //// movimentado os valores por que esses campos não estavam sendo gravados
                        pesAux.pes_dataNascimento = entPessoa.pes_dataNascimento;
                        pesAux.pes_estadoCivil    = entPessoa.pes_estadoCivil;
                        pesAux.tes_id             = entPessoa.tes_id;
                        ////
                        entPessoa = pesAux;

                        #endregion Atualiza - Entidade Pessoa (Cria uma entidade auxiliar para atualizar apenas o nome)

                        // Se for matricula
                        if (entAluno.IsNew)
                        {
                            #region Atualiza - Entidade Aluno Responsavel (Caso existir a informações referente a profissão e situação)

                            //Faz verificação se existe as informações referente a profissão e situação do responsável
                            byte   situacao_responsavel;
                            string profissao_responsavel;

                            RetornaAlunoResponsavel_Situacao_Profissao(entPessoa.pes_id, out situacao_responsavel, out profissao_responsavel);

                            if (situacao_responsavel == Convert.ToByte(ACA_AlunoResponsavelSituacao.Falecido))
                            {
                                entResp.alr_situacao = Convert.ToByte(ACA_AlunoResponsavelSituacao.Falecido);
                            }
                            else
                            {
                                entResp.alr_situacao = Convert.ToByte(ACA_AlunoResponsavelSituacao.Ativo);
                            }

                            entResp.alr_profissao = profissao_responsavel;

                            #endregion Atualiza - Entidade Aluno Responsavel (Caso existir a informações referente a profissão e situação)
                        }
                        else
                        {
                            // Caso já exista o responsável, será atualizado os campos: situção (Quando for falecido = 4) e o campo profissão.
                            AtualizaResponsavel_Profissao_Situacao(entPessoa.pes_id, entResp.alr_profissao, entResp.alr_empresa, entResp.alr_situacao, bancoGestao);
                        }

                        PES_PessoaBO.Save(entPessoa, bancoCore);
                    }
                }
                else
                {
                    entPessoa.pes_id = Guid.Empty;
                }

                if ((entPessoa.IsNew) || (entResp.IsNew))
                {
                    PES_PessoaBO.IncrementaIntegridade(entPessoa.pes_id, bancoCore);
                }

                entResp.pes_id = entPessoa.pes_id;

                // Seta o Id da mãe e do Pai para alterar na pessoa do aluno.
                if (entResp.tra_id == tra_idMae)
                {
                    pes_idMae = entPessoa.pes_id;
                }
                else if (entResp.tra_id == tra_idPai)
                {
                    pes_idPai = entPessoa.pes_id;
                }
            }

            // Seta responsável principal.
            entResp.alr_principal = (entResp.tra_id == tra_idPrincipal);

            Save(entResp, bancoGestao);

            if (entResp.tra_id != tra_idProprio)
            {
                // Salva os documentos dos responsáveis
                lisDocResp = SalvaDocumentoResponsavel(
                    item.listPessoaDoc
                    , entResp.pes_id
                    , tra_idProprio
                    , entResp.tra_id
                    , tdo_idCPF
                    , tdo_idRG
                    , tdo_idNis
                    , bancoCore
                    , ref ListValidacoesDoc);
            }
            else
            {
                lisDocResp = new List <PES_PessoaDocumento>();
            }

            // Retorna item inserido.
            return(new StructCadastro
            {
                entAlunoResp = entResp,
                entPessoa = entPessoa,
                listPessoaDoc = lisDocResp
            });
        }
示例#2
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);
            }
        }
示例#3
0
        /// <summary>
        /// Método utilizado via Web API para alteração de Usuários
        /// </summary>
        /// <param name="data">Parametros de entrada: Id Entidade, Id Grupo, ID Usuario, Nome,
        /// CPF, Data de nascimento, E-mail, Senha</param>
        /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param>
        public static void Update(UsuarioEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI)
        {
            #region [ Validação de campos obrigatórios ]

            if (data.ent_id == Guid.Empty || string.IsNullOrWhiteSpace(data.usu_login))
            {
                throw new ValidationException("Id da entidade e login do usuário são obrigatórios.");
            }

            #endregion

            SYS_Usuario entity = new SYS_Usuario
            {
                ent_id = data.ent_id
                ,
                usu_login = data.usu_login
            };
            SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entity);

            PES_Pessoa entityPessoa = null;

            if (!entity.IsNew)
            {
                //Validação de usuário padrão do sistema
                if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema)
                {
                    throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema.");
                }

                //Se o usuário recuperado não possuir pessoa, pula os passos de update de Pessoa
                if (entity.pes_id != Guid.Empty)
                {
                    #region [Pessoa]

                    entityPessoa = new PES_Pessoa {
                        pes_id = entity.pes_id
                    };
                    PES_PessoaBO.GetEntity(entityPessoa);

                    if (!string.IsNullOrWhiteSpace(data.nome) && entityPessoa.pes_nome.ToLower() != data.nome.ToLower())
                    {
                        entityPessoa.pes_nome = data.nome;
                    }

                    if (data.dataNascimento != new DateTime() && entityPessoa.pes_dataNascimento != data.dataNascimento)
                    {
                        entityPessoa.pes_dataNascimento = data.dataNascimento;
                    }

                    if (data.sexo == 1 || data.sexo == 2)
                    {
                        entityPessoa.pes_sexo = data.sexo;
                    }

                    entityPessoa.pes_dataAlteracao = DateTime.Now;

                    #region [Validações CPF]

                    Guid?tdo_id   = null;
                    bool criarCPF = false;

                    //Recupera os documentos da pessoa
                    DataTable documentosPessoa = PES_PessoaDocumentoBO.GetSelect(entityPessoa.pes_id, false, 1, 1);

                    //Se CPF existir, realiza validações
                    if (!string.IsNullOrWhiteSpace(data.CPF))
                    {
                        if (UtilBO._ValidaCPF(data.CPF))
                        {
                            //Recupera o tipo de documento CPF
                            string tipoDocCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
                            if (!string.IsNullOrEmpty(tipoDocCPF))
                            {
                                tdo_id   = Guid.Parse(tipoDocCPF);
                                criarCPF = true;
                            }
                        }
                        else
                        {
                            throw new ValidationException("CPF inválido.");
                        }

                        if (documentosPessoa.Rows.Count > 0)
                        {
                            //Recupera o indice da linha que contém o documento do tipo CPF
                            var indiceRowCPF = documentosPessoa.AsEnumerable()
                                               .Select((row, index) => new { row, index })
                                               .Where(item => item.row.Field <Guid>("tdo_id") == tdo_id)
                                               .Select(item => item.index).ToArray();

                            //Se a pessoa possui um documento do tipo CPF, verifica se precisa alterar
                            if (indiceRowCPF.Count() > 0)
                            {
                                if (documentosPessoa.Rows[indiceRowCPF[0]]["numero"].ToString() != data.CPF)
                                {
                                    documentosPessoa.Rows[indiceRowCPF[0]]["numero"] = data.CPF;
                                }
                            }
                            else
                            {
                                //Pessoa ainda não possue CPF, nesse caso cria usando o datatable recuperado

                                DataRow rowDoc = documentosPessoa.NewRow();

                                rowDoc["tdo_id"]        = tdo_id;
                                rowDoc["unf_idEmissao"] = Guid.Empty.ToString();
                                rowDoc["unf_idAntigo"]  = Guid.Empty.ToString();
                                rowDoc["numero"]        = data.CPF;
                                rowDoc["dataemissao"]   = string.Empty;
                                rowDoc["orgaoemissao"]  = string.Empty;
                                rowDoc["info"]          = string.Empty;

                                documentosPessoa.Rows.Add(rowDoc);
                            }
                            criarCPF = false;
                        }

                        if (criarCPF)
                        {
                            if (tdo_id != null)
                            {
                                //Cria o datatable na estrutura necessária com o CPF enviado
                                documentosPessoa = RetornaDocumento(data.CPF);
                            }
                        }
                    }

                    #endregion

                    PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia
                    {
                        pes_id = Guid.Empty,
                        tde_id = Guid.Empty,
                        IsNew  = true
                    };

                    PES_PessoaBO.Save(entityPessoa
                                      , entityPessoaDeficiencia
                                      , new DataTable()  //dtEndereco
                                      , new DataTable()  //dtContato
                                      , documentosPessoa //dtDocumento
                                      , new DataTable()  //dtCertidao
                                      , Guid.Empty       //pai_idAntigo
                                      , Guid.Empty       //cid_idAntigo
                                      , Guid.Empty       //pes_idPaiAntigo
                                      , Guid.Empty       //pes_idMaeAntigo
                                      , Guid.Empty       //tes_idAntigo
                                      , Guid.Empty       //tde_idAntigo
                                      , null             //arquivosPermitidos
                                      , 0                //tamanhoMaximoKB
                                      , null             //entFoto
                                      , false            //ExcluirImagemAtual
                                      );

                    #endregion
                }

                #region [Usuário]

                //entity.usu_login = data.usu_login;

                if (!string.IsNullOrWhiteSpace(data.email) && entity.usu_email != data.email)
                {
                    entity.usu_email = data.email;
                }

                //Se não vier senha, seta a senha da entidade como vazia para o método do sistema
                //não encriptar novamente o que já estava encriptado
                if (string.IsNullOrWhiteSpace(data.senha))
                {
                    entity.usu_senha = string.Empty;
                }
                else
                {
                    entity.usu_senha = data.senha;
                }

                if (entityPessoa != null)
                {
                    entity.pes_id = entityPessoa.pes_id;
                }

                entity.usu_criptografia  = Convert.ToByte(eCriptografa.TripleDES);
                entity.usu_dataAlteracao = DateTime.Now;

                SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>             grupos     = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>();
                SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > entidadeUA = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >();

                //Se vier grupos cria a lista com base nesses grupos
                if (data.gru_id.Count() > 0)
                {
                    foreach (Guid gruId in data.gru_id)
                    {
                        SYS_UsuarioBO.AddTmpGrupo(gruId, grupos, 1);
                    }
                }
                else
                {
                    //Senão, recupera os grupos do usuário para enviar ao método salvar
                    SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, entidadeUA);
                }

                SYS_UsuarioBO.Save(entity, grupos, entidadeUA, false, data.nome, string.Empty, string.Empty, string.Empty, null);

                #endregion
            }
            else
            {
                throw new ValidationException("Usuário não existe.");
            }

            #region [ Log de ação]

            LOG_UsuarioAPIBO.Save
            (
                new LOG_UsuarioAPI
            {
                usu_id = entity.usu_id
                ,
                uap_id = entityUsuarioAPI.uap_id
                ,
                lua_dataHora = DateTime.Now
                ,
                lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AlteracaoUsuario
            }
            );

            #endregion
        }
示例#4
0
        /// <summary>
        /// Método utilizado via Web API para criação de Usuários
        /// OBSERVACAO: Este metodo faz uma busca por nome, data de nascimento e CPF
        /// para tentar vincular uma pessoa já existente com estes dados ao usuario
        /// que esta sendo criado, sendo que apenas nome e data de nascimento são requeridos.
        /// </summary>
        /// <param name="data">Parametros de entrada: Id Entidade, Id Grupo,  ID Usuario, Nome,
        /// CPF, Data de nascimento, E-mail, Senha</param>
        /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param>
        public static void Create(UsuarioEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI)
        {
            #region [ Validação de campos obrigatórios ]

            if (data.ent_id == Guid.Empty)
            {
                throw new ValidationException("Id da entidade é obrigatório.");
            }
            if (string.IsNullOrWhiteSpace(data.usu_login))
            {
                throw new ValidationException("Login do usuário é obrigatório.");
            }
            if (data.gru_id.Count() == 0)
            {
                throw new ValidationException("Ao menos um grupo deve ser informado.");
            }
            if (data.dataNascimento == new DateTime())
            {
                throw new ValidationException("Data de nascimento é obrigatória.");
            }
            if (data.sexo != null && data.sexo > 2)
            {
                throw new ValidationException("Para o sexo informe: 1 - masculino ou 2 - feminino");
            }

            #endregion

            SYS_Usuario entity = new SYS_Usuario
            {
                ent_id = data.ent_id
                ,
                usu_login = data.usu_login
            };
            SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entity);

            // Verifica se o id do usuário enviado existe na base de dados.
            if (entity.IsNew)
            {
                Guid?      tdo_id           = null;
                bool       savePessoaReturn = false;
                PES_Pessoa entityPessoa     = null;

                //Se não for informado nome e data de nascimento não cria a pessoa
                if (!string.IsNullOrWhiteSpace(data.nome) && data.dataNascimento != null)
                {
                    #region [Validações CPF]

                    //Se CPF existir, realiza validações
                    if (!string.IsNullOrWhiteSpace(data.CPF))
                    {
                        if (UtilBO._ValidaCPF(data.CPF))
                        {
                            //Recupera o tipo de documento CPF, utilizado para recuperar a pessoa
                            string tipoDocCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
                            if (!string.IsNullOrEmpty(tipoDocCPF))
                            {
                                tdo_id = Guid.Parse(tipoDocCPF);
                            }
                        }
                        else
                        {
                            throw new ValidationException("CPF inválido.");
                        }
                    }

                    #endregion

                    //Recupera a pessoa
                    entityPessoa = PES_PessoaBO.SelecionaPorNomeNascimentoDocumento(data.nome, data.dataNascimento, tdo_id, data.CPF);

                    //Se pessoa não existir, faz o cadastro com as informações básicas
                    if (entityPessoa.pes_id == Guid.Empty)
                    {
                        #region [Cria Pessoa]

                        //Adiciona valores na entidade de pessoa

                        entityPessoa.pes_id              = Guid.Empty;
                        entityPessoa.pes_nome            = data.nome;
                        entityPessoa.pes_sexo            = data.sexo;
                        entityPessoa.pes_nome_abreviado  = string.Empty;
                        entityPessoa.pai_idNacionalidade = Guid.Empty;
                        entityPessoa.pes_naturalizado    = false;
                        entityPessoa.cid_idNaturalidade  = Guid.Empty;
                        entityPessoa.pes_dataNascimento  = (String.IsNullOrEmpty(data.dataNascimento.ToString()) ? new DateTime() : Convert.ToDateTime(data.dataNascimento.ToString()));
                        entityPessoa.pes_racaCor         = Convert.ToByte(null);
                        entityPessoa.pes_idFiliacaoPai   = Guid.Empty;
                        entityPessoa.pes_idFiliacaoMae   = Guid.Empty;
                        entityPessoa.tes_id              = Guid.Empty;
                        entityPessoa.pes_estadoCivil     = Convert.ToByte(null);
                        entityPessoa.pes_situacao        = 1;

                        PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia
                        {
                            pes_id = Guid.Empty,
                            tde_id = Guid.Empty,
                            IsNew  = true
                        };

                        savePessoaReturn = PES_PessoaBO.Save(entityPessoa
                                                             , entityPessoaDeficiencia
                                                             , new DataTable()            //dtEndereco
                                                             , new DataTable()            //dtContato
                                                             , RetornaDocumento(data.CPF) //dtDocumento
                                                             , new DataTable()            //dtCertidao
                                                             , Guid.Empty                 //pai_idAntigo
                                                             , Guid.Empty                 //cid_idAntigo
                                                             , Guid.Empty                 //pes_idPaiAntigo
                                                             , Guid.Empty                 //pes_idMaeAntigo
                                                             , Guid.Empty                 //tes_idAntigo
                                                             , Guid.Empty                 //tde_idAntigo
                                                             , null                       //arquivosPermitidos
                                                             , 0                          //tamanhoMaximoKB
                                                             , null                       //entFoto
                                                             , false                      //ExcluirImagemAtual
                                                             );

                        #endregion
                    }
                }
                #region [ Cria usuário ]

                entity.ent_id    = data.ent_id;
                entity.usu_id    = Guid.Empty;
                entity.usu_login = data.usu_login;
                entity.usu_email = string.IsNullOrEmpty(data.email) ? string.Empty : data.email;
                entity.usu_senha = string.IsNullOrEmpty(data.senha) ? string.Empty : data.senha;

                //Se foi recuperado ou criado uma pessoa, vincula o pes_id
                if (entityPessoa != null)
                {
                    entity.pes_id = entityPessoa.pes_id;
                }

                entity.usu_criptografia  = Convert.ToByte(eCriptografa.TripleDES);
                entity.usu_situacao      = 1;
                entity.usu_dataAlteracao = DateTime.Now;
                entity.usu_dataCriacao   = DateTime.Now;
                entity.usu_dominio       = string.Empty;
                entity.usu_integracaoAD  = (byte)SYS_UsuarioBO.eIntegracaoAD.NaoIntegrado;
                entity.IsNew             = true;

                SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos> grupos = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>();

                foreach (Guid gruId in data.gru_id)
                {
                    SYS_UsuarioBO.AddTmpGrupo(gruId, grupos, 1);
                }

                SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > entidadeUA = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >();

                SYS_UsuarioBO.Save(entity, grupos, entidadeUA, false, data.nome, string.Empty, string.Empty, string.Empty, null);

                #endregion
            }
            else
            {
                throw new ValidationException("Usuário já existe.");
            }

            #region [ Log de ação]

            LOG_UsuarioAPIBO.Save
            (
                new LOG_UsuarioAPI
            {
                usu_id = entity.usu_id
                ,
                uap_id = entityUsuarioAPI.uap_id
                ,
                lua_dataHora = DateTime.Now
                ,
                lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.CriacaoUsuario
            }
            );

            #endregion
        }
示例#5
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);
        }
    }
        public static bool Salvar(RelatorioPreenchimentoAluno relatorio, List <CLS_AlunoDeficienciaDetalhe> lstDeficienciaDetalhe, bool permiteAlterarRacaCor, byte racaCor, List <CLS_RelatorioPreenchimentoAcoesRealizadas> lstAcoesRealizadas)
        {
            CLS_RelatorioPreenchimentoDAO dao = new CLS_RelatorioPreenchimentoDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            PES_PessoaDAO daoCore = new PES_PessoaDAO();

            daoCore._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                bool retorno = true;

                if (permiteAlterarRacaCor)
                {
                    ACA_Aluno alu = new ACA_Aluno {
                        alu_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id
                    };
                    ACA_AlunoBO.GetEntity(alu);

                    PES_Pessoa pes = new PES_Pessoa {
                        pes_id = alu.pes_id
                    };
                    PES_PessoaBO.GetEntity(pes);

                    pes.pes_racaCor = racaCor;
                    PES_PessoaBO.Save(pes, daoCore._Banco);
                }

                List <CLS_AlunoDeficienciaDetalhe> lstDeficienciaDetalheBanco =
                    (from sAlunoDeficiencia alunoDeficiencia in CLS_AlunoDeficienciaDetalheBO.SelecionaPorAluno(relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id)
                     from sAlunoDeficienciaDetalhe alunoDeficienciaDetalhe in alunoDeficiencia.lstDeficienciaDetalhe
                     select new CLS_AlunoDeficienciaDetalhe
                {
                    alu_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id
                    ,
                    tde_id = alunoDeficiencia.tde_id
                    ,
                    dfd_id = alunoDeficienciaDetalhe.dfd_id
                }).ToList();

                if (lstDeficienciaDetalheBanco.Any())
                {
                    lstDeficienciaDetalheBanco.ForEach(p => CLS_AlunoDeficienciaDetalheBO.Delete(p, dao._Banco));
                }


                if (relatorio.entityRelatorioPreenchimento.reap_id > 0)
                {
                    CLS_QuestionarioConteudoPreenchimentoBO.ExcluiPorReapId(relatorio.entityRelatorioPreenchimento.reap_id, dao._Banco);
                    CLS_QuestionarioRespostaPreenchimentoBO.ExcluiPorReapId(relatorio.entityRelatorioPreenchimento.reap_id, dao._Banco);
                }

                retorno &= Save(relatorio.entityRelatorioPreenchimento, dao._Banco);

                relatorio.entityPreenchimentoAlunoTurmaDisciplina.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                retorno &= CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaBO.Save(relatorio.entityPreenchimentoAlunoTurmaDisciplina, dao._Banco);

                relatorio.lstQuestionarioConteudoPreenchimento.ForEach
                (
                    p =>
                {
                    p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                    retorno  &= CLS_QuestionarioConteudoPreenchimentoBO.Save(p, dao._Banco);
                }
                );

                relatorio.lstQuestionarioRespostaPreenchimento.ForEach
                (
                    p =>
                {
                    p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                    retorno  &= CLS_QuestionarioRespostaPreenchimentoBO.Save(p, dao._Banco);
                }
                );

                lstDeficienciaDetalhe.ForEach
                (
                    p =>
                {
                    retorno &= CLS_AlunoDeficienciaDetalheBO.Save(p, dao._Banco);
                }
                );

                lstAcoesRealizadas.ForEach
                (
                    p =>
                {
                    if (p.rpa_situacao == (byte)CLS_RelatorioPreenchimentoAcoesRealizadasSituacao.Excluido)
                    {
                        retorno &= CLS_RelatorioPreenchimentoAcoesRealizadasBO.Delete(p, dao._Banco);
                    }
                    else
                    {
                        p.reap_id = relatorio.entityRelatorioPreenchimento.reap_id;
                        retorno  &= CLS_RelatorioPreenchimentoAcoesRealizadasBO.Save(p, dao._Banco);
                    }
                }
                );

                CLS_RelatorioAtendimento relatorioAtendimento = CLS_RelatorioAtendimentoBO.GetEntity(new CLS_RelatorioAtendimento {
                    rea_id = relatorio.entityRelatorioPreenchimento.rea_id
                });

                ACA_CalendarioAnual       calendario    = ACA_CalendarioAnualBO.SelecionaPorTurma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id);
                List <MTR_MatriculaTurma> matriculasAno = MTR_MatriculaTurmaBO.GetSelectMatriculasAlunoAno(relatorio.entityPreenchimentoAlunoTurmaDisciplina.alu_id, calendario.cal_ano);
                matriculasAno.ForEach(p => CLS_RelatorioPreenchimentoAlunoTurmaDisciplinaBO.LimpaCache_AlunoPreenchimentoPorPeriodoDisciplina(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id, p.tur_id));

                if (relatorioAtendimento.rea_gerarPendenciaFechamento &&
                    ACA_FormatoAvaliacaoBO.CarregarPorTur(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco).fav_fechamentoAutomatico)
                {
                    List <AlunoFechamentoPendencia> FilaProcessamento = new List <AlunoFechamentoPendencia>();
                    if (relatorioAtendimento.rea_tipo == (byte)CLS_RelatorioAtendimentoTipo.RP &&
                        relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id > 0)
                    {
                        if (relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id > 0)
                        {
                            FilaProcessamento.Add(
                                new AlunoFechamentoPendencia
                            {
                                tud_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id
                                ,
                                tpc_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            });
                        }
                        else
                        {
                            FilaProcessamento.AddRange(ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(calendario.cal_id, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .Select(p => new AlunoFechamentoPendencia
                            {
                                tud_id         = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tud_id,
                                tpc_id         = p.tpc_id,
                                afp_frequencia = true,
                                afp_nota       = false,
                                afp_processado = 2
                            }).ToList());
                        }
                    }
                    else
                    {
                        if (relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id > 0)
                        {
                            FilaProcessamento.AddRange(TUR_TurmaDisciplinaBO.GetSelectBy_Turma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .Select(p => new AlunoFechamentoPendencia
                            {
                                tud_id = p.tud_id
                                ,
                                tpc_id = relatorio.entityPreenchimentoAlunoTurmaDisciplina.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            }).ToList());
                        }
                        else
                        {
                            var periodos = ACA_CalendarioPeriodoBO.SelecionaPor_Calendario(calendario.cal_id, GestaoEscolarUtilBO.MinutosCacheLongo);
                            FilaProcessamento.AddRange(TUR_TurmaDisciplinaBO.GetSelectBy_Turma(relatorio.entityPreenchimentoAlunoTurmaDisciplina.tur_id, dao._Banco, GestaoEscolarUtilBO.MinutosCacheLongo)
                                                       .SelectMany
                                                       (
                                                           tud =>

                                                           periodos.Select
                                                           (
                                                               tpc =>
                                                               new AlunoFechamentoPendencia
                            {
                                tud_id = tud.tud_id
                                ,
                                tpc_id = tpc.tpc_id
                                ,
                                afp_frequencia = true
                                ,
                                afp_nota = true
                                ,
                                afp_processado = 2
                            }
                                                           ).ToList()
                                                       ));
                        }
                    }

                    if (FilaProcessamento.Any())
                    {
                        CLS_AlunoFechamentoPendenciaBO.SalvarFilaPendencias(FilaProcessamento, dao._Banco);
                    }
                }

                return(retorno);
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                daoCore._Banco.Close(ex);
                throw;
            }
            finally
            {
                if (dao._Banco.ConnectionIsOpen)
                {
                    dao._Banco.Close();
                }

                if (daoCore._Banco.ConnectionIsOpen)
                {
                    daoCore._Banco.Close();
                }
            }
        }