Persano commited on
Commit
8157ee6
·
verified ·
1 Parent(s): 4c837b0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +4 -17
app.py CHANGED
@@ -32,15 +32,13 @@ def index():
32
  franquia = [capital + (franquia_ret * ano) for ano in anos]
33
  acoes = [capital * ((1 + acoes_ret / 100) ** ano) for ano in anos]
34
  renda_fixa_valores = [capital * ((1 + renda_fixa / 100) ** ano) for ano in anos]
35
- ajustado_inflacao = [valor / ((1 + inflacao / 100) ** ano) for valor, ano in zip(studio, anos)]
36
 
37
  dados = {
38
  "Ano": anos,
39
  "Studio": studio,
40
  "Franquia": franquia,
41
  "Ações": acoes,
42
- "Renda Fixa": renda_fixa_valores,
43
- "Studio c/ Inflação": ajustado_inflacao,
44
  }
45
  df = pd.DataFrame(dados)
46
 
@@ -60,7 +58,6 @@ def index():
60
  plt.plot(anos, franquia, label="Franquia", marker="o")
61
  plt.plot(anos, acoes, label="Ações", marker="o")
62
  plt.plot(anos, renda_fixa_valores, label="Renda Fixa", marker="o")
63
- plt.plot(anos, ajustado_inflacao, label="Studio c/ Inflação", linestyle="--", marker="o")
64
  plt.title("Projeção de Investimentos")
65
  plt.xlabel("Ano")
66
  plt.ylabel("Valor (R$)")
@@ -82,7 +79,7 @@ def index():
82
 
83
  # Tabela com formatação
84
  df_formatado = df.copy()
85
- for col in ["Studio", "Franquia", "Ações", "Renda Fixa", "Studio c/ Inflação"]:
86
  df_formatado[col] = df_formatado[col].apply(lambda x: f"R$ {x:,.2f}".replace(",", "."))
87
 
88
  tabela = df_formatado.to_html(index=False, classes="table table-striped table-sm", border=0)
@@ -103,13 +100,10 @@ def index():
103
  valor_mais_alto=valor_mais_alto
104
  )
105
 
106
- # Se GET, página inicial limpa
107
  return render_template("index.html")
108
 
109
-
110
  @app.route("/download_pdf", methods=["POST"])
111
  def download_pdf():
112
- # Dados do formulário
113
  capital_inicial = float(request.form["capital"])
114
  retorno_mensal_studio = float(request.form["studio_ret"])
115
  valorizacao_anual = float(request.form["valorizacao"])
@@ -120,20 +114,17 @@ def download_pdf():
120
 
121
  anos = list(range(1, 6))
122
 
123
- # Simulações
124
  valores_studio = [capital_inicial * ((1 + retorno_mensal_studio / 100) ** (12 * ano)) for ano in anos]
125
  valores_franquia = [capital_inicial + (lucro_anual_franquia * ano) for ano in anos]
126
  valores_acoes = [capital_inicial * ((1 + retorno_anual_acoes / 100) ** ano) for ano in anos]
127
  valores_renda_fixa = [capital_inicial * ((1 + retorno_anual_renda_fixa / 100) ** ano) for ano in anos]
128
- valores_studio_ajustado_inflacao = [v / ((1 + inflacao_anual / 100) ** ano) for v, ano in zip(valores_studio, anos)]
129
 
130
  df = pd.DataFrame({
131
  "Ano": anos,
132
  "Studio": valores_studio,
133
  "Franquia": valores_franquia,
134
  "Ações": valores_acoes,
135
- "Renda Fixa": valores_renda_fixa,
136
- "Studio c/ Inflação": valores_studio_ajustado_inflacao,
137
  })
138
 
139
  investimentos_finais = {
@@ -145,13 +136,11 @@ def download_pdf():
145
  investimento_mais_valorizado = max(investimentos_finais, key=investimentos_finais.get)
146
  valor_mais_alto = investimentos_finais[investimento_mais_valorizado]
147
 
148
- # Gráfico
149
  plt.figure(figsize=(8, 5))
150
  plt.plot(anos, valores_studio, label="Studio")
151
  plt.plot(anos, valores_franquia, label="Franquia")
152
  plt.plot(anos, valores_acoes, label="Ações")
153
  plt.plot(anos, valores_renda_fixa, label="Renda Fixa")
154
- plt.plot(anos, valores_studio_ajustado_inflacao, label="Studio c/ Inflação", linestyle='--')
155
  plt.title("Comparação dos Investimentos")
156
  plt.xlabel("Ano")
157
  plt.ylabel("Valor (R$)")
@@ -165,9 +154,8 @@ def download_pdf():
165
  grafico_base64 = base64.b64encode(img_buffer.getvalue()).decode('utf-8')
166
  plt.close()
167
 
168
- # Tabela HTML formatada
169
  df_formatado = df.copy()
170
- for col in ["Studio", "Franquia", "Ações", "Renda Fixa", "Studio c/ Inflação"]:
171
  df_formatado[col] = df_formatado[col].apply(lambda x: f"R$ {x:,.2f}".replace(",", "."))
172
 
173
  tabela = df_formatado.to_html(index=False, classes="table table-sm table-bordered", border=1)
@@ -197,6 +185,5 @@ def download_pdf():
197
  pdf.seek(0)
198
  return send_file(pdf, mimetype="application/pdf", as_attachment=True, download_name="relatorio_simulacao.pdf")
199
 
200
-
201
  if __name__ == '__main__':
202
  app.run(host='0.0.0.0', port=7860, debug=True)
 
32
  franquia = [capital + (franquia_ret * ano) for ano in anos]
33
  acoes = [capital * ((1 + acoes_ret / 100) ** ano) for ano in anos]
34
  renda_fixa_valores = [capital * ((1 + renda_fixa / 100) ** ano) for ano in anos]
 
35
 
36
  dados = {
37
  "Ano": anos,
38
  "Studio": studio,
39
  "Franquia": franquia,
40
  "Ações": acoes,
41
+ "Renda Fixa": renda_fixa_valores
 
42
  }
43
  df = pd.DataFrame(dados)
44
 
 
58
  plt.plot(anos, franquia, label="Franquia", marker="o")
59
  plt.plot(anos, acoes, label="Ações", marker="o")
60
  plt.plot(anos, renda_fixa_valores, label="Renda Fixa", marker="o")
 
61
  plt.title("Projeção de Investimentos")
62
  plt.xlabel("Ano")
63
  plt.ylabel("Valor (R$)")
 
79
 
80
  # Tabela com formatação
81
  df_formatado = df.copy()
82
+ for col in ["Studio", "Franquia", "Ações", "Renda Fixa"]:
83
  df_formatado[col] = df_formatado[col].apply(lambda x: f"R$ {x:,.2f}".replace(",", "."))
84
 
85
  tabela = df_formatado.to_html(index=False, classes="table table-striped table-sm", border=0)
 
100
  valor_mais_alto=valor_mais_alto
101
  )
102
 
 
103
  return render_template("index.html")
104
 
 
105
  @app.route("/download_pdf", methods=["POST"])
106
  def download_pdf():
 
107
  capital_inicial = float(request.form["capital"])
108
  retorno_mensal_studio = float(request.form["studio_ret"])
109
  valorizacao_anual = float(request.form["valorizacao"])
 
114
 
115
  anos = list(range(1, 6))
116
 
 
117
  valores_studio = [capital_inicial * ((1 + retorno_mensal_studio / 100) ** (12 * ano)) for ano in anos]
118
  valores_franquia = [capital_inicial + (lucro_anual_franquia * ano) for ano in anos]
119
  valores_acoes = [capital_inicial * ((1 + retorno_anual_acoes / 100) ** ano) for ano in anos]
120
  valores_renda_fixa = [capital_inicial * ((1 + retorno_anual_renda_fixa / 100) ** ano) for ano in anos]
 
121
 
122
  df = pd.DataFrame({
123
  "Ano": anos,
124
  "Studio": valores_studio,
125
  "Franquia": valores_franquia,
126
  "Ações": valores_acoes,
127
+ "Renda Fixa": valores_renda_fixa
 
128
  })
129
 
130
  investimentos_finais = {
 
136
  investimento_mais_valorizado = max(investimentos_finais, key=investimentos_finais.get)
137
  valor_mais_alto = investimentos_finais[investimento_mais_valorizado]
138
 
 
139
  plt.figure(figsize=(8, 5))
140
  plt.plot(anos, valores_studio, label="Studio")
141
  plt.plot(anos, valores_franquia, label="Franquia")
142
  plt.plot(anos, valores_acoes, label="Ações")
143
  plt.plot(anos, valores_renda_fixa, label="Renda Fixa")
 
144
  plt.title("Comparação dos Investimentos")
145
  plt.xlabel("Ano")
146
  plt.ylabel("Valor (R$)")
 
154
  grafico_base64 = base64.b64encode(img_buffer.getvalue()).decode('utf-8')
155
  plt.close()
156
 
 
157
  df_formatado = df.copy()
158
+ for col in ["Studio", "Franquia", "Ações", "Renda Fixa"]:
159
  df_formatado[col] = df_formatado[col].apply(lambda x: f"R$ {x:,.2f}".replace(",", "."))
160
 
161
  tabela = df_formatado.to_html(index=False, classes="table table-sm table-bordered", border=1)
 
185
  pdf.seek(0)
186
  return send_file(pdf, mimetype="application/pdf", as_attachment=True, download_name="relatorio_simulacao.pdf")
187
 
 
188
  if __name__ == '__main__':
189
  app.run(host='0.0.0.0', port=7860, debug=True)