Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

6
respostas

Na pratica_Financeiro

Desafio: Sistema de Fluxo de Caixa e DRE para Ambiente Materiais de Construção
A Ambiente Materiais de Construção precisa de um sistema para:

Registrar vendas, compras e despesas dos últimos 3 meses.
Calcular o fluxo de caixa mensal (entradas e saídas).
Gerar a DRE (Demonstração do Resultado do Exercício) para analisar a rentabilidade.
Acompanhar contas a receber (clientes com pagamentos pendentes).
Exibir um dashboard com os principais indicadores financeiros.

6 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

# === DADOS FICTÍCIOS ===
# Vendas mensais (R$)
vendas = {
    "Janeiro": 120000,
    "Fevereiro": 150000,
    "Março": 180000
}

# Compras mensais (R$)
compras = {
    "Janeiro": 80000,
    "Fevereiro": 90000,
    "Março": 110000
}

# Despesas fixas mensais (R$)
despesas_fixas = {
    "Aluguel": 5000,
    "Salários": 25000,
    "Energia": 3000,
    "Internet": 1000,
    "Seguro": 2000
}

# Contas a receber (cliente: valor)
contas_receber = {
    "Construtora Alpha": {"valor": 45000, "vencimento": "15/04/2026"},
    "Reforma & Cia": {"valor": 32000, "vencimento": "20/04/2026"},
    "Obra Rápida": {"valor": 18000, "vencimento": "25/04/2026"},
    "Casas Modernas": {"valor": 22000, "vencimento": "30/04/2026"}
}

# Saldo inicial (R$)
saldo_inicial = 50000

# === CÁLCULOS ===
# 1. Fluxo de Caixa
fluxo_caixa = {}
saldo_atual = saldo_inicial

for mes in vendas:
    entradas = vendas[mes]
    saidas = compras[mes] + sum(despesas_fixas.values())
    saldo_atual += entradas - saidas
    fluxo_caixa[mes] = {
        "entrada": entradas,
        "saida": saidas,
        "saldo": saldo_atual
    }

# 2. DRE (Demonstração do Resultado do Exercício)
total_vendas = sum(vendas.values())
total_compras = sum(compras.values())
total_despesas = sum(despesas_fixas.values()) * 3  # 3 meses

# CPV (Custo dos Produtos Vendidos) = 70% das vendas
cpv = total_vendas * 0.7
lucro_bruto = total_vendas - cpv
lucro_liquido = lucro_bruto - total_despesas

# 3. Total de Contas a Receber
total_contas_receber = sum(cliente["valor"] for cliente in contas_receber.values())

# === DASHBOARD ===
print("=" * 70)
print("DASHBOARD FINANCEIRO - AMBIENTE MATERIAIS DE CONSTRUÇÃO")
print("=" * 70)

# --- Fluxo de Caixa ---
print("\n**FLUXO DE CAIXA (ÚLTIMOS 3 MESES)**")
print("-" * 70)
print(f"{'Mês':<12} | {'Entradas (R$)':>15} | {'Saídas (R$)':>15} | {'Saldo (R$)':>15}")
print("-" * 70)
for mes, dados in fluxo_caixa.items():
    print(f"{mes:<12} | {dados['entrada']:>15,.2f} | {dados['saida']:>15,.2f} | {dados['saldo']:>15,.2f}")
print("-" * 70)

# --- DRE ---
print("\n**DRE (DEMONSTRAÇÃO DO RESULTADO DO EXERCÍCIO)**")
print("-" * 70)
print(f"{'Receita Bruta (Vendas)':<30} | R$ {total_vendas:>15,.2f}")
print(f"{'(-) CPV (70% das vendas)':<30} | R$ {cpv:>15,.2f}")
print(f"{'Lucro Bruto':<30} | R$ {lucro_bruto:>15,.2f}")
print(f"{'(-) Despesas Operacionais':<30} | R$ {total_despesas:>15,.2f}")
print(f"{'Lucro Líquido':<30} | R$ {lucro_liquido:>15,.2f}")
print("-" * 70)

# --- Contas a Receber ---
print("\n**CONTAS A RECEBER**")
print("-" * 70)
print(f"{'Cliente':<25} | {'Valor (R$)':>15} | {'Vencimento':>12}")
print("-" * 70)
for cliente, dados in contas_receber.items():
    print(f"{cliente:<25} | {dados['valor']:>15,.2f} | {dados['vencimento']:>12}")
print("-" * 70)
print(f"{'TOTAL A RECEBER':<25} | {total_contas_receber:>15,.2f}")
print("=" * 70)

# --- Resumo ---
print("\n**RESUMO EXECUTIVO**")
print("-" * 70)
print(f"Saldo Atual: R$ {saldo_atual:,.2f}")
print(f"Total de Contas a Receber: R$ {total_contas_receber:,.2f}")
print(f"Lucro Líquido (3 meses): R$ {lucro_liquido:,.2f}")
print("=" * 70)

Oi, Luckas! Como vai?

Gostei da proposta que você elaborou, pois ela reúne funcionalidades muito utilizadas em sistemas financeiros, como fluxo de caixa, DRE, contas a receber e um dashboard para acompanhamento dos indicadores.

Dica: organize o projeto em funções separadas para cada responsabilidade, facilitando a manutenção e a evolução do sistema.

Continue praticando e adicionando melhorias aos poucos, como validações de dados e tratamento de exceções para tornar a aplicação mais robusta.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!