File size: 3,521 Bytes
ebb20f5
dfda7c6
 
ebb20f5
5395303
ebb20f5
 
 
 
5395303
 
3a69924
ebb20f5
 
5395303
ebb20f5
 
5395303
ebb20f5
 
 
 
 
5395303
ebb20f5
 
 
 
 
 
 
 
 
 
5395303
ebb20f5
6890ec2
3f6834d
f7b660c
 
f7ec213
344c5df
 
f7ec213
c5a71b2
 
 
 
 
 
 
 
 
 
 
f7ec213
 
f7b660c
 
 
 
 
 
 
344c5df
2d96032
c5a71b2
5395303
 
3f6834d
c5a71b2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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()