Spaces:
Sleeping
Sleeping
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() |