コード例 #1
0
        /// <summary>
        /// Salva os tipos de documento do responsável
        /// </summary>
        /// <param name="pesRespDoc">entidade Pes_PessoaDocumento</param>
        /// <param name="pes_id"></param>
        /// <param name="bancoCore"></param>
        private static void SalvaDocumento(PES_PessoaDocumento pesRespDoc, Guid pes_id, TalkDBTransaction bancoCore)
        {
            // Verifica se já existe esse documento para essa pessoa.
            PES_PessoaDocumento docAux = new PES_PessoaDocumento
            {
                pes_id = pes_id,
                tdo_id = pesRespDoc.tdo_id
            };

            PES_PessoaDocumentoBO.GetEntity(docAux, bancoCore);

            // Salvar documento.
            PES_PessoaDocumento doc = new PES_PessoaDocumento
            {
                pes_id                 = pes_id,
                tdo_id                 = pesRespDoc.tdo_id,
                psd_numero             = pesRespDoc.psd_numero,
                IsNew                  = docAux.IsNew,
                psd_infoComplementares = docAux.psd_infoComplementares,
                psd_orgaoEmissao       = docAux.psd_orgaoEmissao,
                psd_dataEmissao        = docAux.psd_dataEmissao,
                unf_idEmissao          = docAux.unf_idEmissao,
                psd_situacao           = 1
            };

            PES_PessoaDocumentoBO.Save(doc, bancoCore);

            if (doc.IsNew)
            {
                // Incrementar a integridade do tipo de documento.
                SYS_TipoDocumentacaoBO.IncrementaIntegridade(doc.tdo_id, bancoCore);
            }
        }
コード例 #2
0
    /// <summary>
    /// Método para carregar os documentos da pessoa no grid.
    /// </summary>
    /// <param name="pes_id"> Id da pessoa.</param>
    public void _CarregarDocumento(Guid pes_id)
    {
        // Carrega dados dos documentos da pessoa.
        var pessoaDocumentos = PES_PessoaDocumentoBO.GetSelect(pes_id, false, 1, 1);

        if (pessoaDocumentos.Rows.Count > 0)
        {
            // Adiciona colunas banco e excluído.
            pessoaDocumentos.Columns.Add("banco", typeof(Boolean));
            pessoaDocumentos.Columns.Add("excluido", typeof(Boolean));

            // Atribui a cada registro que ele veio do banco.
            foreach (DataRow dr in pessoaDocumentos.Rows)
            {
                dr["banco"]    = true;
                dr["excluido"] = false;
            }

            _VS_documentos = pessoaDocumentos;

            rptDocumento.DataSource = _VS_documentos;
            rptDocumento.DataBind();
        }
        else
        {
            AdicionarLinhaRepeater();
        }

        _VS_pes_id = pes_id;

        updGridDocumentos.Update();
    }
コード例 #3
0
        /// <summary>
        /// Excluindo documento do responsável
        /// </summary>
        /// <param name="listaRespDocumento">Busca do banco os documentos anteriores</param>
        /// <param name="listaDocumentoInseridos">Documentos atuais</param>
        /// <param name="pes_id">pes_id do responsável</param>
        /// <param name="bancoCore"></param>
        private static void ExcluirDocumentoReponsavel
        (
            List <PES_PessoaDocumento> listaRespDocumento
            , List <PES_PessoaDocumento> listaDocumentoInseridos
            , Guid pes_id
            , TalkDBTransaction bancoCore
        )
        {
            foreach (PES_PessoaDocumento item in listaRespDocumento)
            {
                if (!listaDocumentoInseridos.Exists
                        (p =>
                        p.tdo_id == item.tdo_id
                        ))
                {
                    // Se o tipo de documento não existir mais, excluir.
                    PES_PessoaDocumento doc = new PES_PessoaDocumento {
                        pes_id = pes_id, tdo_id = item.tdo_id
                    };
                    PES_PessoaDocumentoBO.Delete(doc, bancoCore);

                    // Decrementa integridade do tipo de documento.
                    SYS_TipoDocumentacaoBO.DecrementaIntegridade(doc.tdo_id, bancoCore);
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// Retorna ID da entidade de pessoa do responsável por CPF.
        /// </summary>
        /// <param name="cpf">Número de CPF.</param>
        /// <returns></returns>
        public static Guid RetornaIdPessoaResponsavelPorCPF(string cpf)
        {
            // Faz uma busca do id do tipo de documento (tdo_id).
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
            Guid   PadraoCPF    = new Guid(docPadraoCPF);

            // Verifica se existe uma pessoa cadastro com o número de CPF informado.
            PES_PessoaDocumento pessoaResponsavel = PES_PessoaDocumentoBO.GetEntityBy_Documento(cpf, PadraoCPF);

            return(pessoaResponsavel.pes_id);
        }
コード例 #5
0
    /// <summary>
    /// Retorna o documento do responsável
    /// </summary>
    /// <param name="pes_id">id da pessoa</param>
    /// <param name="docPadrao">tipo de documento (RG ou CPF)</param>
    /// <returns>número do documento</returns>
    private string RetornaDocumentoResponsavel(Guid pes_id, string docPadrao)
    {
        PES_PessoaDocumento entityPessoaDocumento = new PES_PessoaDocumento
        {
            pes_id = pes_id
            ,
            tdo_id = new Guid(docPadrao)
        };

        PES_PessoaDocumentoBO.GetEntity(entityPessoaDocumento);

        return(entityPessoaDocumento.psd_numero);
    }
コード例 #6
0
        /// <summary>
        /// Valida o CPF do responsável
        /// 1º verifica se o CPF é válido.
        /// 2º verifica se já existe uma pessoa cadastra com mesmo número de CPF.
        /// </summary>
        /// <param name="responsavelCPF">numero do documento - CPF</param>
        /// <param name="tra_id"></param>
        /// <param name="ListValidacoesDoc">Lista das validações dos reponsáveis</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        /// <param name="ListSalvar">Lista de responsaveis que estao sendo salvos, para nao considerar o mesmo documento</param>
        /// <returns>
        /// Retorna o pes_id novo caso não tenha uma pessoa cadastrada com número do CPF.
        /// </returns>
        private static Guid Valida_Responsavel_CPF(List <PES_PessoaDocumento> responsavelCPF, Int32 tra_id, ref List <string> ListValidacoesDoc, Guid ent_id, Guid pes_id, List <StructCadastro> ListSalvar)
        {
            // Faz uma busca do id do tipo de documento (tdo_id).
            string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
            Guid   PadraoCPF    = new Guid(docPadraoCPF);

            foreach (PES_PessoaDocumento item in responsavelCPF)
            {
                if (item.tdo_id == PadraoCPF)
                {
                    // Faz a validação do número do Cpf
                    if (!UtilBO._ValidaCPF(item.psd_numero))
                    {
                        string msg;
                        Int32  tra_idMae = TipoResponsavelAlunoParametro.tra_idMae(ent_id);
                        Int32  tra_idPai = TipoResponsavelAlunoParametro.tra_idPai(ent_id);

                        if (!(tra_id == tra_idMae) && !(tra_id == tra_idPai))
                        {
                            msg = "O responsável ";
                        }
                        else
                        {
                            msg = (tra_id == tra_idMae) ? "A mãe " : "O pai ";
                        }

                        ListValidacoesDoc.Add(msg + "possui o número do CPF inválido.");
                    }

                    // Verifica se existe uma pessoa cadastrada com o número de CPF informado.
                    PES_PessoaDocumento pessoaResponsavel = PES_PessoaDocumentoBO.GetEntityBy_Documento(item.psd_numero, PadraoCPF);

                    // Se encontrou uma pessoa diferente com o mesmo numero de CPF
                    // e nao eh nenhuma das outras pessoas que tambem estao sendo salvas...
                    if (pessoaResponsavel.pes_id != Guid.Empty &&
                        pessoaResponsavel.pes_id != pes_id &&
                        !ListSalvar.Any(p => p.entPessoa.pes_id == pessoaResponsavel.pes_id))
                    {
                        // Retorna a pessoa cadastrada com o mesmo numero de CPF
                        return(pessoaResponsavel.pes_id);
                    }
                    else
                    {
                        // Retorno a propria pessoa
                        return(pes_id);
                    }
                }
            }
            return(pes_id);
        }
コード例 #7
0
    /// <summary>
    /// Método para validar os campos a serem salvos.
    /// </summary>
    /// <param name="row">Linha a ser validada.</param>
    /// <param name="msgErro">Mensagens de erros.</param>
    /// <returns></returns>
    private bool ValidarLinhaGrid(RepeaterItem row, out string msgErro)
    {
        try
        {
            string msg    = "";
            Guid   tdo_id = new Guid(((DropDownList)row.FindControl("ddlTipoDoc")).SelectedValue);

            //Valida o tipo de documento.
            if (tdo_id != Guid.Empty)
            {
                SYS_TipoDocumentacao tdo = new SYS_TipoDocumentacao {
                    tdo_id = tdo_id
                };

                SYS_TipoDocumentacaoBO.GetEntity(tdo);

                if (((TextBox)row.FindControl("tbNumDoc")).Visible == true &&
                    string.IsNullOrEmpty(((TextBox)row.FindControl("tbNumDoc")).Text))
                {
                    //Valida o número do documento.
                    msg += "Número é obrigatório.</br>";
                }
                else
                {
                    if (tdo.tdo_validacao == 1)
                    {
                        if (!UtilBO._ValidaCPF(((TextBox)row.FindControl("tbNumDoc")).Text))
                        {
                            msg += "Número inválido para CPF.</br>";
                        }
                    }

                    if (tdo.tdo_validacao == 2)
                    {
                        Regex regex = new Regex("^[0-9]+$");
                        if (!regex.IsMatch(((TextBox)row.FindControl("tbNumDoc")).Text))
                        {
                            msg += "Número inválido.</br>";
                        }
                    }

                    string docPadraoCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
                    if (((DropDownList)row.FindControl("ddlTipoDoc")).SelectedValue == docPadraoCPF)
                    {
                        if (PES_PessoaDocumentoBO.VerificaDocumentoExistente(((TextBox)row.FindControl("tbNumDoc")).Text, _VS_pes_id))
                        {
                            msg += "Já existe uma pessoa cadastrada com esse documento. (" + ((DropDownList)row.FindControl("ddlTipoDoc")).SelectedItem + ")</br>";
                        }
                    }
                }
            }
            else
            {
                msg += "Tipo de documento é obrigatório.</br>";
            }

            // Valida a data de emissão.
            if (!string.IsNullOrEmpty(((TextBox)row.FindControl("tbDtEmissao")).Text.Trim()))
            {
                DateTime dt;
                if (!DateTime.TryParse(((TextBox)row.FindControl("tbDtEmissao")).Text, out dt))
                {
                    msg += "Data de emissão não está no formato dd/mm/aaaa ou é inexistente.</br>";
                }
            }

            // Valida se já existe o documentos do mesmo tipo cadastrados.
            var x = from RepeaterItem gvr in rptDocumento.Items
                    where
                    (((DropDownList)gvr.FindControl("ddlTipoDoc")).SelectedValue.Equals(((DropDownList)row.FindControl("ddlTipoDoc")).SelectedValue, StringComparison.OrdinalIgnoreCase)) &&
                    !string.IsNullOrEmpty((((TextBox)gvr.FindControl("tbNumDoc")).Text))

                    select gvr;

            if (x.Count() > 1)
            {
                msg += "Existem documentos cadastrados com mesmo tipo.";
            }

            if (string.IsNullOrEmpty(msg))
            {
                _lblMessage.Visible = false;
                msgErro             = "";
                return(true);
            }
            else
            {
                _lblMessage.Visible = true;
                msgErro             = msg;
                return(false);
            }
        }
        catch (Exception ex)
        {
            msgErro = "Não foi possível verificar o(s) documento(s).";
            ApplicationWEB._GravaErro(ex);
            return(false);
        }
    }
コード例 #8
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
        }
コード例 #9
0
    /// <summary>
    /// Arruma a StructColaboradorFiliacao da mae, que vai retornar a estrutura com os dados necessários para salvar a pessoa no banco.
    /// </summary>
    public StructColaboradorFiliacao ArrumaStructMae()
    {
        if (ValidaCampoDocumento(false))
        {
            throw new ValidationException("Nome da mãe é obrigatório.");
        }

        StructColaboradorFiliacao colaborador = new StructColaboradorFiliacao();

        // se a textbox estiver vazia, nao há dados da mãe
        if (!string.IsNullOrEmpty(txtMae.Text))
        {
            PES_Pessoa entPessoa = new PES_Pessoa();
            List <PES_PessoaDocumento> lstDocumento = new List <PES_PessoaDocumento>();
            PES_PessoaDocumento        cpf          = new PES_PessoaDocumento
            {
                tdo_id = new Guid(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF))
            };
            PES_PessoaDocumento rg = new PES_PessoaDocumento
            {
                tdo_id = new Guid(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_RG))
            };
            if (_VS_pes_idFiliacaoMae != Guid.Empty)
            {
                entPessoa.pes_id = _VS_pes_idFiliacaoMae;
                PES_PessoaBO.GetEntity(entPessoa);
            }
            else
            {
                entPessoa.IsNew = true;
                cpf.IsNew       = true;
                rg.IsNew        = true;
            }

            entPessoa.pes_nome     = txtMae.Text;
            entPessoa.pes_situacao = 1;

            // Adiciona dados do CPF
            if (!string.IsNullOrEmpty(txtCPFMae.Text))
            {
                if (!UtilBO._ValidaCPF(txtCPFMae.Text))
                {
                    throw new ValidationException("CPF da mãe é inválido.");
                }

                cpf.pes_id = _VS_pes_idFiliacaoMae;
                PES_PessoaDocumentoBO.GetEntity(cpf);
                cpf.psd_numero   = txtCPFMae.Text;
                cpf.psd_situacao = 1;
                lstDocumento.Add(cpf);
            }

            // Adiciona dados do Rg
            if (!string.IsNullOrEmpty(txtRGMae.Text))
            {
                rg.pes_id = _VS_pes_idFiliacaoMae;
                PES_PessoaDocumentoBO.GetEntity(rg);
                rg.psd_numero   = txtRGMae.Text;
                rg.psd_situacao = 1;
                lstDocumento.Add(rg);
            }

            colaborador.listaDocumentos = lstDocumento;
            colaborador.entPessoa       = entPessoa;
        }

        return(colaborador);
    }