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()