public new static bool Delete ( SYS_UnidadeAdministrativa entity , TalkDBTransaction banco ) { SYS_UnidadeAdministrativaDAO dal = new SYS_UnidadeAdministrativaDAO(); if (banco == null) { dal._Banco.Open(IsolationLevel.ReadCommitted); } else { dal._Banco = banco; } try { //Verifica se a unidade administrativa pode ser deletada if (dal.Select_Integridade(entity.ent_id, entity.uad_id) > 0) { throw new CoreLibrary.Validation.Exceptions.ValidationException("Não é possível excluir a unidade administrativa pois possui outros registros ligados a ela."); } //Decrementa um na integridade do endereço (se necessário) SYS_UnidadeAdministrativaEnderecoDAO uadendDal = new SYS_UnidadeAdministrativaEnderecoDAO { _Banco = dal._Banco }; SYS_UnidadeAdministrativaEndereco entityUnidadeAdministrativaEndereco = new SYS_UnidadeAdministrativaEndereco { ent_id = entity.ent_id, uad_id = entity.uad_id, uae_id = uadendDal.SelectBy_ent_id_uad_id_top_one(entity.ent_id, entity.uad_id) }; uadendDal.Carregar(entityUnidadeAdministrativaEndereco); if (entityUnidadeAdministrativaEndereco.uae_situacao != 3) { END_EnderecoDAO endDal = new END_EnderecoDAO { _Banco = dal._Banco }; endDal.Update_DecrementaIntegridade(entityUnidadeAdministrativaEndereco.end_id); } //Decrementa um na integridade de cada tipo de contato da unidade administrativa SYS_UnidadeAdministrativaContatoDAO uadconDal = new SYS_UnidadeAdministrativaContatoDAO { _Banco = dal._Banco }; SYS_TipoMeioContatoDAO conDal = new SYS_TipoMeioContatoDAO { _Banco = dal._Banco }; DataTable dt = uadconDal.SelectBy_ent_id(entity.ent_id, entity.uad_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 da entidade SYS_EntidadeDAO entDal = new SYS_EntidadeDAO { _Banco = dal._Banco }; entDal.Update_DecrementaIntegridade(entity.ent_id); //Decrementa um na integridade do tipo de unidade administrativa SYS_TipoUnidadeAdministrativaDAO tipoDAL = new SYS_TipoUnidadeAdministrativaDAO { _Banco = dal._Banco }; tipoDAL.Update_DecrementaIntegridade(entity.tua_id); //Decrementa um na integridade da unidade administrativa superior (se existir) if (entity.uad_idSuperior != Guid.Empty) { dal.Update_DecrementaIntegridade(entity.ent_id, entity.uad_idSuperior); } //Deleta logicamente a unidade administrativa dal.Delete(entity); return(true); } catch (Exception err) { if (banco == null) { dal._Banco.Close(err); } throw; } finally { if (banco == null) { dal._Banco.Close(); } } }
/// <summary> /// Valida os dados da unidade administrativa de acordo com o padrão do censo escolar. /// </summary> /// <param name="entityUnidadeAdministrativa">Entidade SYS_UnidadeAdministrativa</param> /// <param name="entityEndereco">Entidade END_Endereco</param> /// <param name="entityUnidadeAdministrativaEndereco">Entidade SYS_UnidadeAdministrativaEndereco</param> public static void ValidaCensoEscolar(SYS_UnidadeAdministrativa entityUnidadeAdministrativa, END_Endereco entityEndereco, SYS_UnidadeAdministrativaEndereco entityUnidadeAdministrativaEndereco) { string numero = entityUnidadeAdministrativaEndereco != null ? entityUnidadeAdministrativaEndereco.uae_numero : string.Empty; string complemento = entityUnidadeAdministrativaEndereco != null ? entityUnidadeAdministrativaEndereco.uae_complemento : string.Empty; ValidaCensoEscolar(entityUnidadeAdministrativa.uad_nome, "Unidade administrativa", entityEndereco, numero, complemento); }