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); }
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); }