@page "/transacoes" Transações - FinControl

Transações

Receitas

R$ @totalReceitas.ToString("F2")

Despesas

R$ @totalDespesas.ToString("F2")

Líquido

R$ @totalLiquido.ToString("F2")

Histórico de Transações
@if (transacoes.Any()) {
@foreach (var transacao in transacoes) { }
Data Descrição Categoria Conta Valor
@transacao.Data.ToString("dd/MM/yyyy") @transacao.Descricao @transacao.Categoria @transacao.Conta @(transacao.Tipo == "Receita" ? "+" : "-") R$ @transacao.Valor.ToString("F2")
} else {

Nenhuma transação registrada

}
@if (mostrarModal) { } @code { private List transacoes = new(); private bool mostrarModal = false; private decimal totalReceitas = 0; private decimal totalDespesas = 0; private decimal totalLiquido = 0; private Transacao novaTransacao = new(); protected override void OnInitialized() { CarregarTransacoes(); } private void CarregarTransacoes() { transacoes = new List { new Transacao { Id = 1, Data = DateTime.Now.AddDays(-10), Descricao = "Salário mensal", Categoria = "Salário", Conta = "Conta Corrente", Valor = 5000, Tipo = "Receita" }, new Transacao { Id = 2, Data = DateTime.Now.AddDays(-5), Descricao = "Compras no supermercado", Categoria = "Alimentação", Conta = "Conta Corrente", Valor = 300, Tipo = "Despesa" }, new Transacao { Id = 3, Data = DateTime.Now.AddDays(-3), Descricao = "Combustível", Categoria = "Transporte", Conta = "Conta Corrente", Valor = 150, Tipo = "Despesa" } }; AtualizarTotais(); } private void AtualizarTotais() { totalReceitas = transacoes.Where(t => t.Tipo == "Receita").Sum(t => t.Valor); totalDespesas = transacoes.Where(t => t.Tipo == "Despesa").Sum(t => t.Valor); totalLiquido = totalReceitas - totalDespesas; } private void AbrirModalNovaTransacao() { novaTransacao = new() { Tipo = "Receita", Data = DateTime.Now }; mostrarModal = true; } private void FecharModal() { mostrarModal = false; } private async Task SalvarTransacao() { if (string.IsNullOrEmpty(novaTransacao.Descricao)) return; var transacao = new Transacao { Id = transacoes.Count + 1, Data = novaTransacao.Data, Descricao = novaTransacao.Descricao, Categoria = novaTransacao.Categoria, Conta = novaTransacao.Conta, Valor = novaTransacao.Valor, Tipo = novaTransacao.Tipo }; transacoes.Add(transacao); AtualizarTotais(); FecharModal(); await Task.CompletedTask; } private void DeletarTransacao(int id) { transacoes.RemoveAll(t => t.Id == id); AtualizarTotais(); } public class Transacao { public int Id { get; set; } public DateTime Data { get; set; } public string? Descricao { get; set; } public string? Categoria { get; set; } public string? Conta { get; set; } public decimal Valor { get; set; } public string? Tipo { get; set; } } }