Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        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);
            }
        }