DHEIVER's picture
Update app.py
1e5e64f
import pandas as pd
import gradio as gr
class CalculadoraCenarios:
def __init__(self, receitas_iniciais, custos_operacionais_iniciais, depreciacao_amortizacao_inicial, taxa_crescimento_receitas, taxa_reducao_custos):
self.receitas_iniciais = receitas_iniciais
self.custos_operacionais_iniciais = custos_operacionais_iniciais
self.depreciacao_amortizacao_inicial = depreciacao_amortizacao_inicial
self.anos = [1, 2, 3, 4, 5]
self.taxa_crescimento_receitas = taxa_crescimento_receitas
self.taxa_reducao_custos = taxa_reducao_custos
def calcular_cenario(self):
resultados = []
for ano in self.anos:
receitas_anual = self.receitas_iniciais * (1 + self.taxa_crescimento_receitas) ** (ano - 1)
custos_operacionais_anual = self.custos_operacionais_iniciais * (1 - self.taxa_reducao_custos) ** (ano - 1)
depreciacao_amortizacao_anual = self.depreciacao_amortizacao_inicial * (1 + 0.5) ** ano
lucro_bruto_anual = receitas_anual - custos_operacionais_anual
lucro_operacional_anual = lucro_bruto_anual - depreciacao_amortizacao_anual
imposto_renda_anual = lucro_operacional_anual * 0.28
lucro_liquido_anual = lucro_operacional_anual - imposto_renda_anual
resultados.append({
"Ano": ano,
"Receitas": receitas_anual,
"Custos Operacionais": custos_operacionais_anual,
"Depreciação e Amortização": depreciacao_amortizacao_anual,
"Lucro Bruto": lucro_bruto_anual,
"Lucro Operacional": lucro_operacional_anual,
"Imposto de Renda": imposto_renda_anual,
"Lucro Líquido": lucro_liquido_anual
})
return pd.DataFrame(resultados)
# Função da interface Gradio
def calculate_and_return_df(receitas_iniciais, custos_operacionais_iniciais, depreciacao_amortizacao_inicial, taxa_crescimento_receitas, taxa_reducao_custos):
cenario = CalculadoraCenarios(receitas_iniciais, custos_operacionais_iniciais, depreciacao_amortizacao_inicial, taxa_crescimento_receitas, taxa_reducao_custos)
df = cenario.calcular_cenario()
df = df.set_index('Ano') # Definir 'Ano' como índice
return df.to_markdown() # Convertendo DataFrame para Markdown
# Adicione instruções explicativas
instrucoes_explicativas = """
**Instruções:**
1. Utilize os controles deslizantes para ajustar os valores dos parâmetros financeiros.
2. Observe as atualizações em tempo real na seção de resultados.
3. Analise diferentes cenários para tomadas de decisão informadas.
4. Os resultados são projeções aproximadas com base nos parâmetros inseridos.
"""
# Interface Gradio com instruções
iface = gr.Interface(
fn=calculate_and_return_df,
inputs=[
gr.Slider(minimum=0, maximum=1000000, label="Receitas Iniciais"),
gr.Slider(minimum=0, maximum=1000000, label="Custos Operacionais Iniciais"),
gr.Slider(minimum=0, maximum=1000000, label="Depreciação e Amortização Inicial"),
gr.Slider(minimum=0, maximum=1, label="Taxa de Crescimento Anual das Receitas"),
gr.Slider(minimum=0, maximum=1, label="Taxa de Redução Anual dos Custos"),
],
outputs=gr.Markdown(), # Usando Markdown para exibir resultados
live=True, # Enable live updates
description=instrucoes_explicativas, # Adicionar instruções explicativas
)
# Lançar a interface Gradio
iface.launch()