public new static bool Delete
        (
            END_Cidade entity
        )
        {
            END_CidadeDAO dal = new END_CidadeDAO();

            dal._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                //Verifica se a cidade pode ser deletada
                if (dal.Select_Integridade(entity.cid_id) > 0)
                {
                    throw new Exception("Não é possível excluir a cidade pois possui outros registros ligados a ela.");
                }

                //Decrementa um na integridade do pais
                END_PaisDAO paiDAL = new END_PaisDAO {
                    _Banco = dal._Banco
                };
                paiDAL.Update_DecrementaIntegridade(entity.pai_id);

                //Decrementa um na integridade do estado (se existir)
                if (entity.unf_id != Guid.Empty)
                {
                    END_UnidadeFederativaDAO unfDAL = new END_UnidadeFederativaDAO {
                        _Banco = dal._Banco
                    };
                    unfDAL.Update_DecrementaIntegridade(entity.unf_id);
                }

                //Deleta logicamente a cidade
                dal.Delete(entity);

                return(true);
            }
            catch (Exception err)
            {
                dal._Banco.Close(err);
                throw;
            }
            finally
            {
                dal._Banco.Close();
            }
        }
Exemple #2
0
        public static bool Save
        (
            MTR_MovimentacaoDadosAdicionais entity
            , TalkDBTransaction bancoCore
            , TalkDBTransaction bancoGestao
        )
        {
            MTR_MovimentacaoDadosAdicionaisDAO daoMda = new MTR_MovimentacaoDadosAdicionaisDAO();
            END_CidadeDAO daoCid = new END_CidadeDAO();

            // Verifica se foi passado uma conexão aberta com o banco de dados
            if (bancoGestao == null)
            {
                daoMda._Banco.Open(IsolationLevel.ReadCommitted);
                daoCid._Banco.Open(IsolationLevel.ReadCommitted);
            }
            else
            {
                daoMda._Banco = bancoGestao;
                daoCid._Banco = bancoCore;
            }

            try
            {
                // Valida a entidade de dados adicionais da movimentação
                if (entity.Validate())
                {
                    // Salva os dados adicionais da movimentação
                    daoMda.Salvar(entity);

                    if (entity.IsNew)
                    {
                        // Incrementa a integridade da cidade se necessário
                        if (entity.cid_id != Guid.Empty)
                        {
                            daoCid.Update_IncrementaIntegridade(entity.cid_id);
                        }

                        // Incrementa a integridade da unidade federativa se necessário
                        if (entity.unf_id != Guid.Empty)
                        {
                            END_UnidadeFederativaDAO daoUnf = new END_UnidadeFederativaDAO {
                                _Banco = daoCid._Banco
                            };
                            daoUnf.Update_IncrementaIntegridade(entity.unf_id);
                        }
                    }
                    else
                    {
                        if (entity.cid_idAnterior != entity.cid_id)
                        {
                            //Decrementa um na integridade da cidade anterior (se existia)
                            if (entity.cid_idAnterior != Guid.Empty)
                            {
                                daoCid.Update_DecrementaIntegridade(entity.cid_idAnterior);
                            }

                            //Incrementa um na integridade da cidade atual (se existir)
                            if (entity.cid_id != Guid.Empty)
                            {
                                daoCid.Update_IncrementaIntegridade(entity.cid_id);
                            }
                        }

                        if (entity.unf_idAnterior != entity.unf_id)
                        {
                            //Decrementa um na integridade da unidade federativa anterior (se existia)
                            if (entity.unf_idAnterior != Guid.Empty)
                            {
                                END_UnidadeFederativaDAO daoUnf = new END_UnidadeFederativaDAO {
                                    _Banco = daoCid._Banco
                                };
                                daoUnf.Update_DecrementaIntegridade(entity.unf_idAnterior);
                            }

                            //Incrementa um na integridade da unidade federativa atual (se existir)
                            if (entity.unf_id != Guid.Empty)
                            {
                                END_UnidadeFederativaDAO daoUnf = new END_UnidadeFederativaDAO {
                                    _Banco = daoCid._Banco
                                };
                                daoUnf.Update_IncrementaIntegridade(entity.unf_id);
                            }
                        }
                    }

                    return(true);
                }
                else
                {
                    throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity));
                }
            }
            catch (Exception err)
            {
                if (bancoGestao == null)
                {
                    daoMda._Banco.Close(err);
                    daoCid._Banco.Close(err);
                }

                throw;
            }
            finally
            {
                if (bancoGestao == null)
                {
                    daoMda._Banco.Close();
                    daoCid._Banco.Close();
                }
            }
        }
Exemple #3
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);
                    }
                }
            }
        }
        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);
                    }
                }
            }
        }