Пример #1
0
        /// <summary>
        /// Verifica se parametro que validade duplicidade de documento por classificação esta habilitado
        /// </summary>
        /// <returns>bool</returns>
        //public static bool VerificaParametroDuplicidadeCategoria()
        //{
        //    //VERIFICA SE PARAMETRO QUE VALIDA POR DUPLICIDADE DE DOCUMENTO POR CLASSIFICAÇÃO ESTA HABILITADO
        //    var verificaParametro = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.HABILITAR_VALIDACAO_DUPLICIDADE_TIPO_DOCUMENTO_POR_CLASSIFICACAO);

        //    bool saida;
        //    if(Boolean.TryParse(verificaParametro, out saida))
        //    {
        //        if (!Convert.ToBoolean(verificaParametro))
        //        {
        //            return false;
        //        }
        //    }

        //    return true;
        //}

        /// <summary>
        /// Verifica se parametro que validade duplicidade de documento por classificação esta habilitado
        /// e (caso esteja) se existe documento com mesma classificação
        /// </summary>
        /// <returns>bool</returns>
        public static bool VerificaDuplicidadeDeClassificacao(Autenticador.Entities.SYS_TipoDocumentacao entity)
        {
            //VERIFICA SE PARAMETRO QUE VALIDA POR DUPLICIDADE DE DOCUMENTO POR CLASSIFICAÇÃO ESTA HABILITADO
            var verificaParametro = SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.HABILITAR_VALIDACAO_DUPLICIDADE_TIPO_DOCUMENTO_POR_CLASSIFICACAO);

            if (!Convert.ToBoolean(verificaParametro))
            {
                return(false);
            }
            else
            {
                try
                {
                    SYS_TipoDocumentacaoDAO dal = new SYS_TipoDocumentacaoDAO();
                    return(dal.SelectBy_Classificacao(entity.tdo_classificacao, entity.tdo_id));
                }
                catch
                {
                    throw;
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Insere um registro de falha de autentica��o para o usu�rio, ou incrementa 1
        /// no contador de erros caso o usu�rio j� tenha errado, no intervalo de minutos do par�metro.
        /// Caso o �ltimo erro do usu�rio tenha sido depois desse intervalo, reinicia o contador pra 1.
        /// Retorna o registro do usu�rio com a quantidade erros efetuada.
        /// </summary>
        /// <param name="usu_id">ID do usu�rio que efetuou o login com falha</param>
        /// <returns></returns>
        public static SYS_UsuarioFalhaAutenticacao InsereFalhaAutenticacaoUsuario(Guid usu_id)
        {
            SYS_UsuarioFalhaAutenticacaoDAO dao = new SYS_UsuarioFalhaAutenticacaoDAO();

            return(dao.InsereFalhaAutenticacaoUsuario(usu_id, SYS_ParametroBO.Parametro_IntervaloMinutosFalhaAutenticacao()));
        }
        public static void SaveEnderecosPessoa(TalkDBTransaction banco, PES_Pessoa entity, DataTable dtEndereco)
        {
            //Verifica se os dados da pessoa serão sempre salvos em maiúsculo.
            string sSalvarMaiusculo        = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.SALVAR_SEMPRE_MAIUSCULO);
            bool   Salvar_Sempre_Maiusculo = !string.IsNullOrEmpty(sSalvarMaiusculo) && Convert.ToBoolean(sSalvarMaiusculo);

            PES_PessoaEndereco entityEndereco = new PES_PessoaEndereco
            {
                pes_id = entity.pes_id
            };

            if (banco == null)
            {
                PES_PessoaEnderecoDAO dao = new PES_PessoaEnderecoDAO();
                banco = dao._Banco.CopyThisInstance();
                banco.Open(IsolationLevel.ReadCommitted);
            }


            for (int i = 0; i < dtEndereco.Rows.Count; i++)
            {
                // if (dtEndereco.Rows[i].RowState != DataRowState.Deleted)
                if (!Convert.ToBoolean(dtEndereco.Rows[i]["excluido"].ToString()))
                {
                    string end_id = dtEndereco.Rows[i]["end_id"].ToString();

                    if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
                    {
                        END_Endereco entityNovoEndereco = new END_Endereco
                        {
                            //[OLD]end_id = new Guid(dtEndereco.Rows[i]["end_id"].ToString())
                            end_cep = dtEndereco.Rows[i]["end_cep"].ToString()
                            ,
                            end_logradouro = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["end_logradouro"].ToString().ToUpper() : dtEndereco.Rows[i]["end_logradouro"].ToString()
                            ,
                            end_distrito = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["end_distrito"].ToString().ToUpper() : dtEndereco.Rows[i]["end_distrito"].ToString()
                            ,
                            end_zona = dtEndereco.Rows[i]["end_zona"].ToString() == "0" || string.IsNullOrEmpty(dtEndereco.Rows[i]["end_zona"].ToString()) ? Convert.ToByte(0) : Convert.ToByte(dtEndereco.Rows[i]["end_zona"].ToString())
                            ,
                            end_bairro = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["end_bairro"].ToString().ToUpper() : dtEndereco.Rows[i]["end_bairro"].ToString()
                            ,
                            cid_id = new Guid(dtEndereco.Rows[i]["cid_id"].ToString())
                            ,
                            end_situacao = Convert.ToByte(1)
                        };

                        //Inclui dados na tabela END_Endereco (se necessário)
                        if (entityNovoEndereco.end_id == Guid.Empty)
                        {
                            entityEndereco.end_id     = END_EnderecoBO.Save(entityNovoEndereco, Guid.Empty, banco);
                            entityNovoEndereco.end_id = entityEndereco.end_id;
                        }

                        dtEndereco.Rows[i]["end_id"] = entityNovoEndereco.end_id;
                    }
                    string endRel_id = dtEndereco.Rows[i]["endRel_id"].ToString();

                    if (dtEndereco.Rows[i].RowState == DataRowState.Added || string.IsNullOrEmpty(endRel_id))
                    {
                        //TRATA DECIMAL
                        decimal latitude  = string.IsNullOrEmpty(dtEndereco.Rows[i]["latitude"].ToString()) ? 0 : decimal.Parse(dtEndereco.Rows[i]["latitude"].ToString());
                        decimal longitude = string.IsNullOrEmpty(dtEndereco.Rows[i]["longitude"].ToString()) ? 0 : decimal.Parse(dtEndereco.Rows[i]["longitude"].ToString());

                        //ATRIBUI VALORES
                        entityEndereco.end_id          = new Guid(dtEndereco.Rows[i]["end_id"].ToString());
                        entityEndereco.pse_numero      = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["numero"].ToString().ToUpper() : dtEndereco.Rows[i]["numero"].ToString();
                        entityEndereco.pse_complemento = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["complemento"].ToString().ToUpper() : dtEndereco.Rows[i]["complemento"].ToString();
                        entityEndereco.pse_situacao    = Convert.ToByte(1);
                        entityEndereco.pse_id          = new Guid(dtEndereco.Rows[i]["id"].ToString());
                        entityEndereco.IsNew           = true;

                        entityEndereco.pse_enderecoPrincipal = string.IsNullOrEmpty(dtEndereco.Rows[i]["enderecoprincipal"].ToString()) ? false : Convert.ToBoolean(dtEndereco.Rows[i]["enderecoprincipal"]);
                        entityEndereco.pse_latitude          = latitude;
                        entityEndereco.pse_longitude         = longitude;

                        Save(entityEndereco, banco);

                        //Incrementa um na integridade do endereço
                        END_EnderecoDAO endDAL = new END_EnderecoDAO {
                            _Banco = banco
                        };
                        endDAL.Update_IncrementaIntegridade(entityEndereco.end_id);
                    }
                    else if (dtEndereco.Rows[i].RowState == DataRowState.Modified && !string.IsNullOrEmpty(endRel_id))
                    {
                        //TRATA DECIMAL
                        decimal latitude  = string.IsNullOrEmpty(dtEndereco.Rows[i]["latitude"].ToString()) ? 0 : decimal.Parse(dtEndereco.Rows[i]["latitude"].ToString());
                        decimal longitude = string.IsNullOrEmpty(dtEndereco.Rows[i]["longitude"].ToString()) ? 0 : decimal.Parse(dtEndereco.Rows[i]["longitude"].ToString());
                        //ATRIBUI VALORES
                        entityEndereco.end_id          = new Guid(dtEndereco.Rows[i]["end_id"].ToString());
                        entityEndereco.pse_numero      = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["numero"].ToString().ToUpper() : dtEndereco.Rows[i]["numero"].ToString();
                        entityEndereco.pse_complemento = Salvar_Sempre_Maiusculo ? dtEndereco.Rows[i]["complemento"].ToString().ToUpper() : dtEndereco.Rows[i]["complemento"].ToString();

                        bool excluido = Convert.ToBoolean(dtEndereco.Rows[i]["excluido"]);
                        if (excluido)
                        {
                            entityEndereco.pse_situacao = Convert.ToByte(3);
                        }
                        else
                        {
                            entityEndereco.pse_situacao = Convert.ToByte(1);
                        }

                        entityEndereco.pse_id = new Guid(dtEndereco.Rows[i]["endRel_id"].ToString());
                        entityEndereco.IsNew  = false;

                        entityEndereco.pse_enderecoPrincipal = string.IsNullOrEmpty(dtEndereco.Rows[i]["enderecoprincipal"].ToString()) ? false : Convert.ToBoolean(dtEndereco.Rows[i]["enderecoprincipal"]);
                        entityEndereco.pse_latitude          = latitude;
                        entityEndereco.pse_longitude         = longitude;

                        Save(entityEndereco, banco);
                    }
                }
                else
                {
                    entityEndereco.pse_id = new Guid(dtEndereco.Rows[i]["endRel_id", DataRowVersion.Original].ToString());
                    entityEndereco.end_id = new Guid(dtEndereco.Rows[i]["end_id", DataRowVersion.Original].ToString());
                    PES_PessoaEnderecoDAO pesendDAL = new PES_PessoaEnderecoDAO {
                        _Banco = banco
                    };
                    pesendDAL.Delete(entityEndereco);

                    //Decrementa um na integridade do endereço
                    END_EnderecoDAO endDAL = new END_EnderecoDAO {
                        _Banco = banco
                    };
                    endDAL.Update_DecrementaIntegridade(entityEndereco.end_id);
                }
            }
        }
Пример #4
0
        public static void SaveCertidoesPessoa(TalkDBTransaction banco, PES_Pessoa entity, DataTable dtCertidao)
        {
            //Verifica se os dados da pessoa serão sempre salvos em maiúsculo.
            string sSalvarMaiusculo        = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.SALVAR_SEMPRE_MAIUSCULO);
            bool   Salvar_Sempre_Maiusculo = !string.IsNullOrEmpty(sSalvarMaiusculo) && Convert.ToBoolean(sSalvarMaiusculo);

            PES_CertidaoCivil entityCertidaoCivil = new PES_CertidaoCivil
            {
                pes_id = entity.pes_id
            };

            if (banco == null)
            {
                PES_CertidaoCivilDAO dao = new PES_CertidaoCivilDAO();
                banco = dao._Banco.CopyThisInstance();
                banco.Open(IsolationLevel.ReadCommitted);
            }

            for (int i = 0; i < dtCertidao.Rows.Count; i++)
            {
                if (dtCertidao.Rows[i].RowState != DataRowState.Deleted)
                {
                    if (dtCertidao.Rows[i].RowState == DataRowState.Added)
                    {
                        entityCertidaoCivil.ctc_id               = new Guid(dtCertidao.Rows[i]["ctc_id"].ToString());
                        entityCertidaoCivil.ctc_tipo             = Convert.ToByte(dtCertidao.Rows[i]["ctc_tipo"].ToString());
                        entityCertidaoCivil.ctc_numeroTermo      = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_numeroTermo"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_numeroTermo"].ToString();
                        entityCertidaoCivil.ctc_folha            = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_folha"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_folha"].ToString();
                        entityCertidaoCivil.ctc_livro            = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_livro"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_livro"].ToString();
                        entityCertidaoCivil.ctc_nomeCartorio     = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_nomeCartorio"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_nomeCartorio"].ToString();
                        entityCertidaoCivil.ctc_distritoCartorio = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_distritoCartorio"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_distritoCartorio"].ToString();
                        entityCertidaoCivil.cid_idCartorio       = new Guid(dtCertidao.Rows[i]["cid_idCartorio"].ToString());
                        entityCertidaoCivil.unf_idCartorio       = new Guid(dtCertidao.Rows[i]["unf_idCartorio"].ToString());
                        entityCertidaoCivil.ctc_dataEmissao      = !string.IsNullOrEmpty(dtCertidao.Rows[i]["ctc_dataEmissao"].ToString()) ? Convert.ToDateTime(dtCertidao.Rows[i]["ctc_dataEmissao"].ToString()) : new DateTime();
                        entityCertidaoCivil.ctc_situacao         = Convert.ToByte(1);
                        entityCertidaoCivil.ctc_matricula        = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_matricula"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_matricula"].ToString();
                        entityCertidaoCivil.ctc_gemeo            = Convert.ToBoolean(dtCertidao.Rows[i]["ctc_gemeo"]);
                        entityCertidaoCivil.ctc_modeloNovo       = Convert.ToBoolean(dtCertidao.Rows[i]["ctc_modeloNovo"]);
                        entityCertidaoCivil.IsNew = true;
                        Save(entityCertidaoCivil, banco);

                        //Incrementa um na integridade da Cidade (se existir)
                        if (entityCertidaoCivil.cid_idCartorio != Guid.Empty)
                        {
                            END_CidadeDAO cidDao = new END_CidadeDAO {
                                _Banco = banco
                            };
                            cidDao.Update_IncrementaIntegridade(entityCertidaoCivil.cid_idCartorio);
                        }

                        //Incrementa um na integridade da Unidade Federativa (se existir)
                        if (entityCertidaoCivil.unf_idCartorio != Guid.Empty)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = banco
                            };
                            unfDAL.Update_IncrementaIntegridade(entityCertidaoCivil.unf_idCartorio);
                        }
                    }
                    else if (dtCertidao.Rows[i].RowState == DataRowState.Modified)
                    {
                        entityCertidaoCivil.ctc_id               = new Guid(dtCertidao.Rows[i]["ctc_id"].ToString());
                        entityCertidaoCivil.ctc_tipo             = Convert.ToByte(dtCertidao.Rows[i]["ctc_tipo"].ToString());
                        entityCertidaoCivil.ctc_numeroTermo      = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_numeroTermo"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_numeroTermo"].ToString();
                        entityCertidaoCivil.ctc_folha            = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_folha"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_folha"].ToString();
                        entityCertidaoCivil.ctc_livro            = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_livro"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_livro"].ToString();
                        entityCertidaoCivil.ctc_nomeCartorio     = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_nomeCartorio"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_nomeCartorio"].ToString();
                        entityCertidaoCivil.ctc_distritoCartorio = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_distritoCartorio"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_distritoCartorio"].ToString();
                        entityCertidaoCivil.cid_idCartorio       = new Guid(dtCertidao.Rows[i]["cid_idCartorio"].ToString());
                        entityCertidaoCivil.unf_idCartorio       = new Guid(dtCertidao.Rows[i]["unf_idCartorio"].ToString());
                        entityCertidaoCivil.ctc_dataEmissao      = !string.IsNullOrEmpty(dtCertidao.Rows[i]["ctc_dataEmissao"].ToString()) ? Convert.ToDateTime(dtCertidao.Rows[i]["ctc_dataEmissao"].ToString()) : new DateTime();
                        entityCertidaoCivil.ctc_situacao         = Convert.ToByte(1);
                        entityCertidaoCivil.ctc_matricula        = Salvar_Sempre_Maiusculo ? dtCertidao.Rows[i]["ctc_matricula"].ToString().ToUpper() : dtCertidao.Rows[i]["ctc_matricula"].ToString();
                        entityCertidaoCivil.ctc_gemeo            = Convert.ToBoolean(dtCertidao.Rows[i]["ctc_gemeo"]);
                        entityCertidaoCivil.ctc_modeloNovo       = Convert.ToBoolean(dtCertidao.Rows[i]["ctc_modeloNovo"]);
                        entityCertidaoCivil.IsNew = false;
                        Save(entityCertidaoCivil, banco);

                        if (new Guid(dtCertidao.Rows[i]["cid_idCartorio"].ToString()) != new Guid(dtCertidao.Rows[i]["cid_idAntigo"].ToString()))
                        {
                            END_CidadeDAO cidDao = new END_CidadeDAO {
                                _Banco = banco
                            };

                            //Decrementa um na integridade da Unidade Federativa anterior (se existia)
                            if (new Guid(dtCertidao.Rows[i]["cid_idAntigo"].ToString()) != Guid.Empty)
                            {
                                cidDao.Update_DecrementaIntegridade(new Guid(dtCertidao.Rows[i]["cid_idAntigo"].ToString()));
                            }

                            //Incrementa um na integridade da Unidade Federetiva atual (se existir)
                            if (new Guid(dtCertidao.Rows[i]["cid_idCartorio"].ToString()) != Guid.Empty)
                            {
                                cidDao.Update_IncrementaIntegridade(new Guid(dtCertidao.Rows[i]["cid_idCartorio"].ToString()));
                            }
                        }

                        if (new Guid(dtCertidao.Rows[i]["unf_idCartorio"].ToString()) != new Guid(dtCertidao.Rows[i]["unf_idAntigo"].ToString()))
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = banco
                            };

                            //Decrementa um na integridade da Unidade Federativa anterior (se existia)
                            if (new Guid(dtCertidao.Rows[i]["unf_idAntigo"].ToString()) != Guid.Empty)
                            {
                                unfDAL.Update_DecrementaIntegridade(new Guid(dtCertidao.Rows[i]["unf_idAntigo"].ToString()));
                            }

                            //Incrementa um na integridade da Unidade Federetiva atual (se existir)
                            if (new Guid(dtCertidao.Rows[i]["unf_idCartorio"].ToString()) != Guid.Empty)
                            {
                                unfDAL.Update_IncrementaIntegridade(new Guid(dtCertidao.Rows[i]["unf_idCartorio"].ToString()));
                            }
                        }
                    }
                }
                else
                {
                    entityCertidaoCivil.ctc_id         = new Guid(dtCertidao.Rows[i]["ctc_id", DataRowVersion.Original].ToString());
                    entityCertidaoCivil.cid_idCartorio = new Guid(dtCertidao.Rows[i]["cid_idCartorio", DataRowVersion.Original].ToString());
                    entityCertidaoCivil.unf_idCartorio = new Guid(dtCertidao.Rows[i]["unf_idCartorio", DataRowVersion.Original].ToString());
                    PES_CertidaoCivilDAO pescerDAL = new PES_CertidaoCivilDAO {
                        _Banco = banco
                    };
                    pescerDAL.Delete(entityCertidaoCivil);

                    //Decrementa um na integridade da Cidade (se existia)
                    if (entityCertidaoCivil.cid_idCartorio != Guid.Empty)
                    {
                        END_CidadeDAO cidDao = new END_CidadeDAO {
                            _Banco = banco
                        };
                        cidDao.Update_DecrementaIntegridade(entityCertidaoCivil.cid_idCartorio);
                    }

                    //Decrementa um na integridade da Unidade Federativa (se existia)
                    if (entityCertidaoCivil.unf_idCartorio != Guid.Empty)
                    {
                        END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                            _Banco = banco
                        };
                        unfDAL.Update_DecrementaIntegridade(entityCertidaoCivil.unf_idCartorio);
                    }
                }
            }
        }
Пример #5
0
        public static bool Save
        (
            END_Cidade entity
            , Guid pai_idAntigo
            , Guid unf_idAntigo
            , CoreLibrary.Data.Common.TalkDBTransaction banco
        )
        {
            END_CidadeDAO dal = new END_CidadeDAO();

            if (banco == null)
            {
                dal._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                dal._Banco = banco;
            }

            try
            {
                if (entity.Validate())
                {
                    if (new Guid(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.PAIS_PADRAO_BRASIL)) == entity.pai_id)
                    {
                        if (entity.unf_id == Guid.Empty)
                        {
                            throw new ArgumentException("Estado é obrigatório para este país.");
                        }

                        if (VerificaCidadeExistentePaisEstado(entity))
                        {
                            throw new DuplicateNameException("Já existe uma cidade cadastrada com este nome nesse país e estado.");
                        }
                    }
                    else
                    {
                        if (VerificaCidadeExistentePais(entity))
                        {
                            throw new DuplicateNameException("Já existe uma cidade cadastrada com este nome nesse país.");
                        }
                    }

                    if (entity.IsNew)
                    {
                        //Incrementa um na integridade do pais
                        END_PaisDAO paiDAL = new END_PaisDAO {
                            _Banco = dal._Banco
                        };
                        paiDAL.Update_IncrementaIntegridade(entity.pai_id);

                        //Incrementa um na integridade do estado (se existir)
                        if (entity.unf_id != Guid.Empty)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = dal._Banco
                            };
                            unfDAL.Update_IncrementaIntegridade(entity.unf_id);
                        }
                    }
                    else
                    {
                        if (pai_idAntigo != entity.pai_id)
                        {
                            END_PaisDAO paiDAL = new END_PaisDAO {
                                _Banco = dal._Banco
                            };

                            //Decrementa um na integridade do pais anterior
                            paiDAL.Update_DecrementaIntegridade(pai_idAntigo);

                            //Incrementa um na integridade do pais atual
                            paiDAL.Update_IncrementaIntegridade(entity.pai_id);
                        }

                        if (unf_idAntigo != entity.unf_id)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = dal._Banco
                            };

                            //Decrementa um na integridade do estado anterior (se existia)
                            if (unf_idAntigo != Guid.Empty)
                            {
                                unfDAL.Update_DecrementaIntegridade(unf_idAntigo);
                            }

                            //Incrementa um na integridade do estado atual (se existir)
                            if (entity.unf_id != Guid.Empty)
                            {
                                unfDAL.Update_IncrementaIntegridade(entity.unf_id);
                            }
                        }
                    }

                    dal.Salvar(entity);
                }
                else
                {
                    throw new CoreLibrary.Validation.Exceptions.ValidationException(entity.PropertiesErrorList[0].Message);
                }

                return(true);
            }
            catch (Exception err)
            {
                if (banco == null)
                {
                    dal._Banco.Close(err);
                }
                throw;
            }
            finally
            {
                if (banco == null)
                {
                    dal._Banco.Close();
                }
            }
        }
        public static void SaveDocumentosPessoa(TalkDBTransaction banco, PES_Pessoa entity, DataTable dtDocumento)
        {
            //Verifica se os dados da pessoa serão sempre salvos em maiúsculo.
            string sSalvarMaiusculo        = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.SALVAR_SEMPRE_MAIUSCULO);
            bool   Salvar_Sempre_Maiusculo = !string.IsNullOrEmpty(sSalvarMaiusculo) && Convert.ToBoolean(sSalvarMaiusculo);

            PES_PessoaDocumento entityDocumento = new PES_PessoaDocumento
            {
                pes_id = entity.pes_id
            };

            if (banco == null)
            {
                PES_PessoaDocumentoDAO dao = new PES_PessoaDocumentoDAO();
                banco = dao._Banco.CopyThisInstance();
                banco.Open(IsolationLevel.ReadCommitted);
            }

            for (int i = 0; i < dtDocumento.Rows.Count; i++)
            {
                if (dtDocumento.Rows[i].RowState != DataRowState.Deleted)
                {
                    if (dtDocumento.Rows[i].RowState == DataRowState.Added)
                    {
                        entityDocumento.tdo_id                 = new Guid(dtDocumento.Rows[i]["tdo_id"].ToString());
                        entityDocumento.unf_idEmissao          = new Guid(dtDocumento.Rows[i]["unf_idEmissao"].ToString());
                        entityDocumento.psd_numero             = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["numero"].ToString().ToUpper() : dtDocumento.Rows[i]["numero"].ToString();
                        entityDocumento.psd_dataEmissao        = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataemissao"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataemissao"].ToString());
                        entityDocumento.psd_orgaoEmissao       = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["orgaoemissao"].ToString().ToUpper() : dtDocumento.Rows[i]["orgaoemissao"].ToString();
                        entityDocumento.psd_infoComplementares = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["info"].ToString().ToUpper() : dtDocumento.Rows[i]["info"].ToString();
                        entityDocumento.psd_situacao           = Convert.ToByte(1);

                        //NOVOS CAMPOS
                        entityDocumento.psd_categoria     = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["categoria"].ToString().ToUpper() : dtDocumento.Rows[i]["categoria"].ToString();
                        entityDocumento.psd_classificacao = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["classificacao"].ToString().ToUpper() : dtDocumento.Rows[i]["classificacao"].ToString();
                        entityDocumento.psd_csm           = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["csm"].ToString().ToUpper() : dtDocumento.Rows[i]["csm"].ToString();
                        entityDocumento.psd_dataEntrada   = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataEntrada"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataEntrada"].ToString());
                        entityDocumento.psd_dataValidade  = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataValidade"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataValidade"].ToString());
                        entityDocumento.pai_idOrigem      = string.IsNullOrEmpty(dtDocumento.Rows[i]["pai_idOrigem"].ToString()) ? Guid.Empty : new Guid(dtDocumento.Rows[i]["pai_idOrigem"].ToString());
                        entityDocumento.psd_serie         = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["serie"].ToString().ToUpper() : dtDocumento.Rows[i]["serie"].ToString();
                        entityDocumento.psd_tipoGuarda    = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["tipoGuarda"].ToString().ToUpper() : dtDocumento.Rows[i]["tipoGuarda"].ToString();
                        entityDocumento.psd_via           = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["via"].ToString().ToUpper() : dtDocumento.Rows[i]["via"].ToString();
                        entityDocumento.psd_secao         = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["secao"].ToString().ToUpper() : dtDocumento.Rows[i]["secao"].ToString();
                        entityDocumento.psd_zona          = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["zona"].ToString().ToUpper() : dtDocumento.Rows[i]["zona"].ToString();
                        entityDocumento.psd_dataExpedicao = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataexpedicao"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataexpedicao"].ToString());
                        entityDocumento.psd_regiaoMilitar = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["regiaoMilitar"].ToString().ToUpper() : dtDocumento.Rows[i]["regiaoMilitar"].ToString();
                        entityDocumento.psd_numeroRA      = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["numeroRA"].ToString().ToUpper() : dtDocumento.Rows[i]["numeroRA"].ToString();

                        entityDocumento.IsNew = !VerificaTipoDocumentoExistente(entityDocumento.pes_id, entityDocumento.tdo_id);

                        Save(entityDocumento, banco);

                        //Incrementa um na integridade do tipo de documento
                        SYS_TipoDocumentacaoDAO tipoDAL = new SYS_TipoDocumentacaoDAO {
                            _Banco = banco
                        };
                        tipoDAL.Update_IncrementaIntegridade(entityDocumento.tdo_id);

                        //Incrementa um na integridade da Unidade Federativa (se existir)
                        if (entityDocumento.unf_idEmissao != Guid.Empty)
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = banco
                            };
                            unfDAL.Update_IncrementaIntegridade(entityDocumento.unf_idEmissao);
                        }
                    }
                    else if (dtDocumento.Rows[i].RowState == DataRowState.Modified)
                    {
                        entityDocumento.tdo_id                 = new Guid(dtDocumento.Rows[i]["tdo_id"].ToString());
                        entityDocumento.unf_idEmissao          = new Guid(dtDocumento.Rows[i]["unf_idEmissao"].ToString());
                        entityDocumento.psd_numero             = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["numero"].ToString().ToUpper() : dtDocumento.Rows[i]["numero"].ToString();
                        entityDocumento.psd_dataEmissao        = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataemissao"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataemissao"].ToString());
                        entityDocumento.psd_orgaoEmissao       = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["orgaoemissao"].ToString().ToUpper() : dtDocumento.Rows[i]["orgaoemissao"].ToString();
                        entityDocumento.psd_infoComplementares = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["info"].ToString().ToUpper() : dtDocumento.Rows[i]["info"].ToString();
                        entityDocumento.psd_situacao           = Convert.ToByte(1);

                        //NOVOS CAMPOS
                        entityDocumento.psd_categoria     = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["categoria"].ToString().ToUpper() : dtDocumento.Rows[i]["categoria"].ToString();
                        entityDocumento.psd_classificacao = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["classificacao"].ToString().ToUpper() : dtDocumento.Rows[i]["classificacao"].ToString();
                        entityDocumento.psd_csm           = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["csm"].ToString().ToUpper() : dtDocumento.Rows[i]["csm"].ToString();
                        entityDocumento.psd_dataEntrada   = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataEntrada"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataEntrada"].ToString());
                        entityDocumento.psd_dataValidade  = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataValidade"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataValidade"].ToString());
                        entityDocumento.pai_idOrigem      = string.IsNullOrEmpty(dtDocumento.Rows[i]["pai_idOrigem"].ToString()) ? Guid.Empty : new Guid(dtDocumento.Rows[i]["pai_idOrigem"].ToString());
                        entityDocumento.psd_serie         = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["serie"].ToString().ToUpper() : dtDocumento.Rows[i]["serie"].ToString();
                        entityDocumento.psd_tipoGuarda    = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["tipoGuarda"].ToString().ToUpper() : dtDocumento.Rows[i]["tipoGuarda"].ToString();
                        entityDocumento.psd_via           = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["via"].ToString().ToUpper() : dtDocumento.Rows[i]["via"].ToString();
                        entityDocumento.psd_secao         = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["secao"].ToString().ToUpper() : dtDocumento.Rows[i]["secao"].ToString();
                        entityDocumento.psd_zona          = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["zona"].ToString().ToUpper() : dtDocumento.Rows[i]["zona"].ToString();
                        entityDocumento.psd_dataExpedicao = string.IsNullOrEmpty(dtDocumento.Rows[i]["dataexpedicao"].ToString()) ? new DateTime() : Convert.ToDateTime(dtDocumento.Rows[i]["dataexpedicao"].ToString());
                        entityDocumento.psd_regiaoMilitar = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["regiaoMilitar"].ToString().ToUpper() : dtDocumento.Rows[i]["regiaoMilitar"].ToString();
                        entityDocumento.psd_numeroRA      = Salvar_Sempre_Maiusculo ? dtDocumento.Rows[i]["numeroRA"].ToString().ToUpper() : dtDocumento.Rows[i]["numeroRA"].ToString();

                        entityDocumento.tdo_id = new Guid(dtDocumento.Rows[i]["tdo_id"].ToString());
                        entityDocumento.IsNew  = false;
                        Save(entityDocumento, banco);

                        if (new Guid(dtDocumento.Rows[i]["unf_idEmissao"].ToString()) != new Guid(dtDocumento.Rows[i]["unf_idAntigo"].ToString()))
                        {
                            END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                                _Banco = banco
                            };

                            //Decrementa um na integridade da Unidade Federativa anterior (se existia)
                            if (new Guid(dtDocumento.Rows[i]["unf_idAntigo"].ToString()) != Guid.Empty)
                            {
                                unfDAL.Update_DecrementaIntegridade(new Guid(dtDocumento.Rows[i]["unf_idAntigo"].ToString()));
                            }

                            //Incrementa um na integridade da Unidade Federetiva atual (se existir)
                            if (new Guid(dtDocumento.Rows[i]["unf_idEmissao"].ToString()) != Guid.Empty)
                            {
                                unfDAL.Update_IncrementaIntegridade(new Guid(dtDocumento.Rows[i]["unf_idEmissao"].ToString()));
                            }
                        }
                    }
                }
                else
                {
                    entityDocumento.tdo_id        = new Guid(dtDocumento.Rows[i]["tdo_id", DataRowVersion.Original].ToString());
                    entityDocumento.unf_idEmissao = new Guid(dtDocumento.Rows[i]["unf_idEmissao", DataRowVersion.Original].ToString());
                    PES_PessoaDocumentoDAO pesdocDAL = new PES_PessoaDocumentoDAO {
                        _Banco = banco
                    };
                    pesdocDAL.Delete(entityDocumento);

                    //Decrementa um na integridade do tipo de documento
                    SYS_TipoDocumentacaoDAO tipoDAL = new SYS_TipoDocumentacaoDAO {
                        _Banco = banco
                    };
                    tipoDAL.Update_DecrementaIntegridade(entityDocumento.tdo_id);

                    //Decrementa um na integridade da Unidade Federativa (se existia)
                    if (entityDocumento.unf_idEmissao != Guid.Empty)
                    {
                        END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                            _Banco = banco
                        };
                        unfDAL.Update_DecrementaIntegridade(entityDocumento.unf_idEmissao);
                    }
                }
            }
        }