public List <ResumoFinanceiro> PrevisaoRendimentos(int mesesPrevisao)
        {
            if (ConfigCiclos == null || !ConfigCiclos.Any())
            {
                throw new ArgumentNullException("Configuração dos ciclos está vazia");
            }

            ConfigCiclos ConfigAtual = ConfigCiclos.OrderBy(c => c.AnoMes)
                                       .FirstOrDefault();

            List <ResumoFinanceiro> resumosFinanceiros = new List <ResumoFinanceiro>();

            string AnoMes = ConfigAtual.AnoMes;

            DatasHelper.TrySplitAnoMes(ConfigAtual.AnoMes, out int ano, out int mes);
            double valorAtual = ValorBase;

            for (int i = 0; i < mesesPrevisao; i++)
            {
                ResumoFinanceiro resumoFinanceiro = ConfigAtual.Ciclo.RendimentoMensal(valorAtual, ano, mes);
                resumosFinanceiros.Add(resumoFinanceiro);

                DatasHelper.AvancaAnoMes(ref ano, ref mes);
                valorAtual  = resumoFinanceiro.ValorTotal;
                ConfigAtual = PegarUltimoConfigData(ano, mes);
            }

            return(resumosFinanceiros);
        }
Exemple #2
0
        public ResumoFinanceiro RendimentoMensal(double valorBase, int ano, int mes)
        {
            ResumoFinanceiro resumoFinanceiro = new ResumoFinanceiro();

            resumoFinanceiro.AnoMes            = $"{ano}-{mes.ToString().PadLeft(2, '0')}";
            resumoFinanceiro.GastosMes         = GastosMes(mes, ano);
            resumoFinanceiro.RendimentoSalario = GanhosMes(mes, ano);
            resumoFinanceiro.RendimentoJuros   = CalculaGanhoJuros(valorBase);
            resumoFinanceiro.ValorTotal        = valorBase + resumoFinanceiro.Lucro;

            return(resumoFinanceiro);
        }