Exemplo n.º 1
0
        /// <summary>
        /// Construtor padrão.
        /// </summary>
        /// <param name="indicadoresFinanceiros"></param>
        /// <param name="variaveisItem"></param>
        /// <param name="expressoesCalculo"></param>
        /// <param name="custoTotal"></param>
        /// <param name="item"></param>
        internal ResultadoRentabilidade(
            Mathematical.IVariavelCollection indicadoresFinanceiros,
            Mathematical.IVariavelCollection variaveisItem,
            Mathematical.IVariavelCollection expressoesCalculo,
            double custoTotal, IItemRentabilidade item)
        {
            item.Require(nameof(item)).NotNull();

            IndicadoresFinanceiros = new Dictionary <string, decimal>();
            VariaveisItem          = new Dictionary <string, decimal>();
            ExpressoesCalculo      = new Dictionary <string, decimal>();

            foreach (var i in indicadoresFinanceiros)
            {
                IndicadoresFinanceiros.Add(i.Nome, (decimal)i.ObterValor());
            }

            foreach (var i in variaveisItem)
            {
                VariaveisItem.Add(i.Nome, (decimal)i.ObterValor());
            }

            foreach (var i in expressoesCalculo)
            {
                ExpressoesCalculo.Add(i.Nome, (decimal)i.ObterValor());
            }

            CustoTotal = (decimal)custoTotal;
            Item       = item;
        }
Exemplo n.º 2
0
 /// <summary>
 /// Construtor padrão.
 /// </summary>
 /// <param name="provedorDescritores"></param>
 /// <param name="item"></param>
 /// <param name="culture"></param>
 public ItemRentabilidadeDataSource(
     IProvedorDescritorRegistroRentabilidade provedorDescritores,
     IItemRentabilidade item,
     System.Globalization.CultureInfo culture = null)
 {
     provedorDescritores.Require(nameof(provedorDescritores)).NotNull();
     item.Require(nameof(item)).NotNull();
     ProvedorDescritores = provedorDescritores;
     Item    = item;
     Cultura = culture ?? System.Globalization.CultureInfo.CurrentCulture;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Executa o calculo da rentabilidade sobre o item informado.
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        public ResultadoRentabilidade Calcular(IItemRentabilidade item)
        {
            item.Require(nameof(item)).NotNull();

            var variaveisItem = CriarVariaveisItem(item);
            var agregador     = new Mathematical.AggregateVariavelCollection();

            agregador.Add(variaveisItem);
            agregador.Add(_variaveisIndicadoresFinanceiro);

            // Percorre as variáveis de calculo compiladas
            var variaveisCalculo = new Mathematical.VariavelCollection(
                _variaveisCalculo.Select(f => ((Mathematical.Formula)f).CreateCopy(agregador)));

            agregador.Add(variaveisCalculo);

            var formula = _formulaCalculo.CreateCopy(agregador);

            var custoTotal = formula.ObterValor();

            return(new ResultadoRentabilidade(_variaveisIndicadoresFinanceiro, variaveisItem, variaveisCalculo, custoTotal, item));
        }