/// <summary> /// Ajusta o valor da propriedade <see cref="EntradaRequest.GrandezaApresentacao"/> de acordo com as unidades de medida correspondentes. /// </summary> /// <remarks> /// O objetivo é transformar o valor (na unidade de armazenamento) utilizando a unidade de medida desejada para apreentação. /// </remarks> public static void AdjustToUI(this EntradaRequest valor) { UnidadeMedida unidadeMedidaNumerador = GetUnidadeMedida(valor.UnidadeMedidaNumeradorId, ref _unidadeMedidaNumerador); UnidadeMedida unidadeMedidaDenominador = GetUnidadeMedida(valor.UnidadeMedidaDenominadorId, ref _unidadeMedidaDenominador); Decimal grandeza = (valor.Grandeza.HasValue ? valor.Grandeza.Value : 0m); // Converte de SI para unidade usada na apresentação. if (!valor.Grandeza.Equals(0m)) { if (unidadeMedidaNumerador == null) { valor.GrandezaApresentacao = grandeza; } else { if (unidadeMedidaDenominador == null) { valor.GrandezaApresentacao = grandeza.Convert(valor.FatorConversaoNumerador, unidadeMedidaNumerador.FatorConversao); } else { valor.GrandezaApresentacao = grandeza.Convert ( valor.FatorConversaoNumerador, valor.FatorConversaoDenominador, unidadeMedidaNumerador.FatorConversao, unidadeMedidaDenominador.FatorConversao ); } } } else { valor.GrandezaApresentacao = 0m; } // Formata representação do valor. StringBuilder sb = new StringBuilder(); if (unidadeMedidaNumerador != null) { sb.Append(unidadeMedidaNumerador.Representacao); if (!(unidadeMedidaDenominador == null || string.IsNullOrEmpty(unidadeMedidaDenominador.Representacao))) { if (sb.Length > 0) { // Já foi acrescentada representação de unidade do numerador. sb.Append("/"); } sb.Append(unidadeMedidaDenominador.Representacao); } } valor.Representacao = sb.ToString(); }
internal ComplementacaoDados ObterDadosPropriedade(int empreendimentoId) { ComplementacaoDados dados = new ComplementacaoDados(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Reservas legais Comando comando = bancoDeDados.CriarComando(@"select distinct r.situacao from crt_dominialidade_reserva r,crt_dominialidade d, crt_dominialidade_dominio dd, tab_empreendimento e, lov_crt_domin_reserva_situacao lr where r.dominio = dd.id and lr.id = r.situacao and dd.dominialidade = d.id and d.empreendimento = e.id and e.id = :empreendimento" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32); List <eReservaLegal> situacoes = new List <eReservaLegal>(); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { while (reader.Read()) { if (reader["situacao"] != null && !Convert.IsDBNull(reader["situacao"])) { int valor = Convert.ToInt32(reader["situacao"]); switch (valor) { case 1: situacoes.Add(eReservaLegal.NaoInformado); break; case 2: situacoes.Add(eReservaLegal.Proposta); break; case 3: situacoes.Add(eReservaLegal.Averbada); break; default: situacoes.Add(eReservaLegal.NaoPossui); break; } } } dados.ReservalegalTipo = 0; bool possuiAverbada = false; bool possuiProposta = false; bool possuiNaoInformado = false; bool NaoPossui = false; foreach (eReservaLegal item in situacoes) { switch (item) { case eReservaLegal.Averbada: possuiAverbada = true; break; case eReservaLegal.Proposta: possuiProposta = true; break; case eReservaLegal.NaoInformado: possuiNaoInformado = true; break; case eReservaLegal.NaoPossui: NaoPossui = true; break; default: break; } } if (possuiNaoInformado) { possuiNaoInformado = !(possuiAverbada || possuiProposta); } if (NaoPossui) { dados.ReservalegalTipo += 8; } else { if (possuiAverbada) { dados.ReservalegalTipo += 1; } if (possuiProposta) { dados.ReservalegalTipo += 2; } if (possuiNaoInformado) { dados.ReservalegalTipo += 4; } } reader.Close(); } #endregion #region Áreas comando = bancoDeDados.CriarComando(@"select (select sum(dd.area_croqui) from crt_dominialidade d, crt_dominialidade_dominio dd where dd.dominialidade = d.id and d.empreendimento = :empreendimento) area_total, (select sum(a.valor) from crt_dominialidade_areas a, lov_crt_dominialidade_area la, crt_dominialidade d where a.tipo = la.id and a.dominialidade = d.id and (a.tipo = 1 /*AVN_I*/ or a.tipo = 2 /*AVN_M*/ or a.tipo = 3 /*AVN_A*/ or a.tipo = 4 /*AVN_D*/) and d.empreendimento = :empreendimento) area_cobertura from dual" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { if (readerAux.Read()) { Decimal areaTotalInformada = 0; Decimal areaCoberturaFlorestalNativa = 0; if (readerAux["area_total"] != null && !Convert.IsDBNull(readerAux["area_total"])) { areaTotalInformada = Convert.ToDecimal(readerAux["area_total"]); } if (readerAux["area_cobertura"] != null && !Convert.IsDBNull(readerAux["area_cobertura"])) { areaCoberturaFlorestalNativa = Convert.ToDecimal(readerAux["area_cobertura"]); } dados.AreaTotalInformada = (areaTotalInformada > 0) ? areaTotalInformada.Convert(eMetrica.M2ToHa).ToStringTrunc(4) : String.Empty; dados.AreaCoberturaFlorestalNativa = (areaCoberturaFlorestalNativa > 0) ? areaCoberturaFlorestalNativa.Convert(eMetrica.M2ToHa).ToStringTrunc(4) : String.Empty; } readerAux.Close(); } #endregion return(dados); } }