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); } } }
public new static bool Delete ( SYS_Entidade entity , CoreLibrary.Data.Common.TalkDBTransaction banco ) { SYS_EntidadeDAO dal = new SYS_EntidadeDAO(); if (banco == null) { dal._Banco.Open(IsolationLevel.ReadCommitted); } else { dal._Banco = banco; } try { //Verifica se a entidade pode ser deletada if (dal.Select_Integridade(entity.ent_id) > 0) { throw new Exception("Não é possível excluir a entidade pois possui outros registros ligados a ela."); } //Decrementa um na integridade do endereço (se necessário) SYS_EntidadeEnderecoDAO entendDal = new SYS_EntidadeEnderecoDAO { _Banco = dal._Banco }; SYS_EntidadeEndereco entityEntidadeEndereco = new SYS_EntidadeEndereco { ent_id = entity.ent_id, ene_id = entendDal.SelectBy_ent_id_top_one(entity.ent_id) }; entendDal.Carregar(entityEntidadeEndereco); if (entityEntidadeEndereco.ene_situacao != 3) { END_EnderecoDAO endDal = new END_EnderecoDAO { _Banco = dal._Banco }; endDal.Update_DecrementaIntegridade(entityEntidadeEndereco.end_id); } //Decrementa um na integridade de cada tipo de contato da entidade SYS_EntidadeContatoDAO entconDal = new SYS_EntidadeContatoDAO { _Banco = dal._Banco }; SYS_TipoMeioContatoDAO conDal = new SYS_TipoMeioContatoDAO { _Banco = dal._Banco }; DataTable dt = entconDal.SelectBy_ent_id(entity.ent_id, false, 1, 1, out totalRecords); for (int i = 0; i < dt.Rows.Count; i++) { conDal.Update_DecrementaIntegridade(new Guid(dt.Rows[i]["tmc_id"].ToString())); } //Decrementa um na integridade do tipo de entidade SYS_TipoEntidadeDAO tipoDAL = new SYS_TipoEntidadeDAO { _Banco = dal._Banco }; tipoDAL.Update_DecrementaIntegridade(entity.ten_id); //Decrementa um na integridade da entidade superior (se existir) if (entity.ent_idSuperior != Guid.Empty) { dal.Update_DecrementaIntegridade(entity.ent_idSuperior); } //Deleta logicamente a entidade dal.Delete(entity); return(true); } catch (Exception err) { if (banco == null) { dal._Banco.Close(err); } throw; } finally { if (banco == null) { dal._Banco.Close(); } } }
public static bool Save ( SYS_UnidadeAdministrativa entityUnidadeAdministrativa , List <END_Endereco> ltEntityEndereco , List <SYS_UnidadeAdministrativaEndereco> ltEntityUnidadeAdministrativaEndereco , DataTable dtContatos , Guid uad_idSuperiorAntigo , Guid end_idAntigo , TalkDBTransaction banco ) { SYS_UnidadeAdministrativaDAO uadDAL = new SYS_UnidadeAdministrativaDAO(); if (banco == null) { uadDAL._Banco.Open(IsolationLevel.ReadCommitted); } else { uadDAL._Banco = banco; } try { if (ltEntityEndereco.Count > 0) { for (int i = 0; i < ltEntityEndereco.Count; i++) { // Inclui dados na tabela END_Endereco (se necessário) // if (ltEntityEndereco[i].IsNew) string end_situacao = ltEntityEndereco[i].end_situacao.ToString(); if (!end_situacao.Equals("3")) { ltEntityEndereco[i].end_id = END_EnderecoBO.Save(ltEntityEndereco[i], Guid.Empty, uadDAL._Banco); ltEntityUnidadeAdministrativaEndereco[i].end_id = ltEntityEndereco[i].end_id; } } } // Salva dados na tabela SYS_UnidadeAdministrativa if (entityUnidadeAdministrativa.Validate()) { Func <Guid, Guid, bool> VerificaUASuperior = (x, y) => x != Guid.Empty && y != Guid.Empty && x.Equals(y); //VERIFICA SE O USUÁRIO ESTÁ TENTANDO VINCULA A MESMA UNIDADE ADMINISTRATIVA COMO SUPERIOR if (VerificaUASuperior(entityUnidadeAdministrativa.uad_id, entityUnidadeAdministrativa.uad_idSuperior)) { throw new CoreLibrary.Validation.Exceptions.ValidationException("Não é possível vincular a mesma unidade administrativa como superior."); } else if (VerificaNomeExistente(entityUnidadeAdministrativa)) { throw new DuplicateNameException("Já existe uma unidade administrativa cadastrada com este nome."); } uadDAL.Salvar(entityUnidadeAdministrativa); } else { throw new ValidationException(entityUnidadeAdministrativa.PropertiesErrorList[0].Message); } if (ltEntityUnidadeAdministrativaEndereco.Count > 0) { for (int i = 0; i < ltEntityUnidadeAdministrativaEndereco.Count; i++) { // Salva dados na tabela SYS_UnidadeAdministrativaEndereco if (ltEntityUnidadeAdministrativaEndereco[i].Validate()) { /* SYS_UnidadeAdministrativaEnderecoDAO uaendDAL = new SYS_UnidadeAdministrativaEnderecoDAO { _Banco = uadDAL._Banco }; * ltEntityUnidadeAdministrativaEndereco[i].uad_id = entityUnidadeAdministrativa.uad_id; * uaendDAL.Salvar(ltEntityUnidadeAdministrativaEndereco[i]);*/ SYS_UnidadeAdministrativaEnderecoDAO uaendDAL = new SYS_UnidadeAdministrativaEnderecoDAO { _Banco = uadDAL._Banco }; //Se for Delete string end_situacao = ltEntityEndereco[i].end_situacao.ToString(); if (end_situacao.Equals("3")) { uaendDAL.Delete(ltEntityUnidadeAdministrativaEndereco[i]); } else {// Se for Update ou Save // Salva dados na tabela SYS_UnidadeAdministrativaEndereco ltEntityUnidadeAdministrativaEndereco[i].uad_id = entityUnidadeAdministrativa.uad_id; uaendDAL.Salvar(ltEntityUnidadeAdministrativaEndereco[i]); } } else { throw new ValidationException(ltEntityUnidadeAdministrativaEndereco[i].PropertiesErrorList[0].Message); } if (ltEntityUnidadeAdministrativaEndereco[i].IsNew) { if (ltEntityUnidadeAdministrativaEndereco[i].end_id != Guid.Empty) { // Incrementa um na integridade do endereço END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = uadDAL._Banco }; endDAL.Update_IncrementaIntegridade(ltEntityUnidadeAdministrativaEndereco[i].end_id); } } else { if (end_idAntigo != ltEntityUnidadeAdministrativaEndereco[i].end_id) { END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = uadDAL._Banco }; if (ltEntityUnidadeAdministrativaEndereco[i].uae_situacao != 3) { // Decrementa um na integridade do endereço antigo (se existia) if (end_idAntigo != Guid.Empty) { endDAL.Update_DecrementaIntegridade(end_idAntigo); } // Incrementa um na integridade do endereço atual (se existir) if (ltEntityUnidadeAdministrativaEndereco[i].end_id != Guid.Empty) { endDAL.Update_IncrementaIntegridade(ltEntityUnidadeAdministrativaEndereco[i].end_id); } } } else { if (ltEntityUnidadeAdministrativaEndereco[i].uae_situacao == 3) { // Decrementa um na integridade do endereço atual if (end_idAntigo != Guid.Empty) { END_EnderecoDAO endDAL = new END_EnderecoDAO { _Banco = uadDAL._Banco }; endDAL.Update_DecrementaIntegridade(ltEntityUnidadeAdministrativaEndereco[i].end_id); } } } } } } // Salva dados na tabela SYS_UnidadeAdministrativaContato SYS_UnidadeAdministrativaContato entityContato = new SYS_UnidadeAdministrativaContato { ent_id = entityUnidadeAdministrativa.ent_id , uad_id = entityUnidadeAdministrativa.uad_id }; for (int i = 0; i < dtContatos.Rows.Count; i++) { if (dtContatos.Rows[i].RowState != DataRowState.Deleted) { if (dtContatos.Rows[i].RowState == DataRowState.Added) { entityContato.tmc_id = new Guid(dtContatos.Rows[i]["tmc_id"].ToString()); entityContato.uac_contato = dtContatos.Rows[i]["contato"].ToString(); entityContato.uac_situacao = Convert.ToByte(1); entityContato.uac_id = new Guid(dtContatos.Rows[i]["id"].ToString()); entityContato.IsNew = true; SYS_UnidadeAdministrativaContatoBO.Save(entityContato, uadDAL._Banco); // Incrementa um na integridade do tipo de contato SYS_TipoMeioContatoDAO tipoDAL = new SYS_TipoMeioContatoDAO { _Banco = uadDAL._Banco }; tipoDAL.Update_IncrementaIntegridade(entityContato.tmc_id); } else if (dtContatos.Rows[i].RowState == DataRowState.Modified) { entityContato.tmc_id = new Guid(dtContatos.Rows[i]["tmc_id"].ToString()); entityContato.uac_contato = dtContatos.Rows[i]["contato"].ToString(); entityContato.uac_situacao = Convert.ToByte(1); entityContato.uac_id = new Guid(dtContatos.Rows[i]["id"].ToString()); entityContato.IsNew = false; SYS_UnidadeAdministrativaContatoBO.Save(entityContato, uadDAL._Banco); } } else { entityContato.uac_id = (Guid)dtContatos.Rows[i]["id", DataRowVersion.Original]; entityContato.tmc_id = (Guid)dtContatos.Rows[i]["tmc_id", DataRowVersion.Original]; SYS_UnidadeAdministrativaContatoDAO uadconDAL = new SYS_UnidadeAdministrativaContatoDAO { _Banco = uadDAL._Banco }; uadconDAL.Delete(entityContato); //Decrementa um na integridade do tipo de contato SYS_TipoMeioContatoDAO tipoDAL = new SYS_TipoMeioContatoDAO { _Banco = uadDAL._Banco }; tipoDAL.Update_DecrementaIntegridade(entityContato.tmc_id); } } if (entityUnidadeAdministrativa.IsNew) { // Incrementa um na integridade da entidade SYS_EntidadeDAO entDAL = new SYS_EntidadeDAO { _Banco = uadDAL._Banco }; entDAL.Update_IncrementaIntegridade(entityUnidadeAdministrativa.ent_id); // Incrementa um na integridade do tipo de unidade administrativa SYS_TipoUnidadeAdministrativaDAO tipoDAL = new SYS_TipoUnidadeAdministrativaDAO { _Banco = uadDAL._Banco }; tipoDAL.Update_IncrementaIntegridade(entityUnidadeAdministrativa.tua_id); // Incrementa um na integridade da unidade administrativa superior (se existir) if (entityUnidadeAdministrativa.uad_idSuperior != Guid.Empty) { uadDAL.Update_IncrementaIntegridade(entityUnidadeAdministrativa.ent_id, entityUnidadeAdministrativa.uad_idSuperior); } } else { if (uad_idSuperiorAntigo != entityUnidadeAdministrativa.uad_idSuperior) { // Decrementa um na integridade da unidade administrativa superior anterior (se existia) if (uad_idSuperiorAntigo != Guid.Empty) { uadDAL.Update_DecrementaIntegridade(entityUnidadeAdministrativa.ent_id, uad_idSuperiorAntigo); } // Incrementa um na integridade da unidade administrativa superior atual (se existir) if (entityUnidadeAdministrativa.uad_idSuperior != Guid.Empty) { uadDAL.Update_IncrementaIntegridade(entityUnidadeAdministrativa.ent_id, entityUnidadeAdministrativa.uad_idSuperior); } } } return(true); } catch (Exception err) { if (banco == null) { uadDAL._Banco.Close(err); } throw; } finally { if (banco == null) { uadDAL._Banco.Close(); } } }