Persano commited on
Commit
c9cc1c7
·
verified ·
1 Parent(s): 945383a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +29 -5
app.py CHANGED
@@ -9,9 +9,19 @@ from xhtml2pdf import pisa
9
  from datetime import datetime
10
  import openai
11
  import logging
 
 
12
 
13
  app = Flask(__name__)
14
 
 
 
 
 
 
 
 
 
15
  # Configuração de logger
16
  logging.basicConfig(level=logging.DEBUG)
17
 
@@ -187,10 +197,22 @@ def index():
187
 
188
 
189
 
 
 
190
 
191
  @app.route("/gerar-pdf", methods=["POST"])
192
  def gerar_pdf():
193
  try:
 
 
 
 
 
 
 
 
 
 
194
  # --- Coleta e conversão dos dados do formulário
195
  capital = float(request.form["capital"])
196
  studio_ret = float(request.form["studio_ret"])
@@ -206,7 +228,7 @@ def gerar_pdf():
206
  patrimonio_studio = [capital * ((1 + valorizacao / 100) ** ano) for ano in anos]
207
  renda_acumulada_studio = [capital * (((1 + studio_ret / 100) ** (12 * ano)) - 1) for ano in anos]
208
  studio_total = [p + r for p, r in zip(patrimonio_studio, renda_acumulada_studio)]
209
- patrimonio_final = patrimonio_studio[-1]
210
 
211
  franquia = [capital + (franquia_ret * ano) for ano in anos]
212
  acoes = [capital * ((1 + acoes_ret / 100) ** ano) for ano in anos]
@@ -248,23 +270,26 @@ def gerar_pdf():
248
  buf.close()
249
  plt.close()
250
 
251
- # --- Formata a tabela
252
  df_formatado = df.copy()
253
  for col in df.columns:
254
  if col != "Ano":
255
  df_formatado[col] = df_formatado[col].apply(formatar_brl)
256
  tabela_html = df_formatado.to_html(index=False, classes="tabela", border=0)
257
 
258
- # --- Geração da análise com IA
259
  analise_final_ia = gerar_analise_ia(investimentos_finais, capital, patrimonio_final)
260
 
 
 
 
261
  # --- Contexto para o PDF
262
  context = {
263
  "capital": capital,
264
  "grafico": grafico_base64,
265
  "tabela": tabela_html,
266
  "analise_final": analise_final_ia,
267
- "data_hoje": datetime.now().strftime("São Paulo, %d de %B de %Y")
268
  }
269
 
270
  # --- Renderiza e retorna o PDF
@@ -279,6 +304,5 @@ def gerar_pdf():
279
  return "Erro interno ao gerar o PDF", 500
280
 
281
 
282
-
283
  if __name__ == "__main__":
284
  app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 7860)), debug=True)
 
9
  from datetime import datetime
10
  import openai
11
  import logging
12
+ import locale
13
+ from datetime import datetime
14
 
15
  app = Flask(__name__)
16
 
17
+ # Setar locale para português do Brasil
18
+ try:
19
+ locale.setlocale(locale.LC_TIME, "pt_BR.UTF-8")
20
+ except locale.Error:
21
+ # fallback caso o locale não esteja instalado no servidor
22
+ locale.setlocale(locale.LC_TIME, "pt_BR")
23
+
24
+
25
  # Configuração de logger
26
  logging.basicConfig(level=logging.DEBUG)
27
 
 
197
 
198
 
199
 
200
+ import locale
201
+ from datetime import datetime
202
 
203
  @app.route("/gerar-pdf", methods=["POST"])
204
  def gerar_pdf():
205
  try:
206
+ # --- Configurar locale para português do Brasil (formatação de mês em pt)
207
+ try:
208
+ locale.setlocale(locale.LC_TIME, "pt_BR.UTF-8")
209
+ except locale.Error:
210
+ try:
211
+ locale.setlocale(locale.LC_TIME, "pt_BR")
212
+ except locale.Error:
213
+ # Se falhar, continua com o locale padrão (possivelmente inglês)
214
+ pass
215
+
216
  # --- Coleta e conversão dos dados do formulário
217
  capital = float(request.form["capital"])
218
  studio_ret = float(request.form["studio_ret"])
 
228
  patrimonio_studio = [capital * ((1 + valorizacao / 100) ** ano) for ano in anos]
229
  renda_acumulada_studio = [capital * (((1 + studio_ret / 100) ** (12 * ano)) - 1) for ano in anos]
230
  studio_total = [p + r for p, r in zip(patrimonio_studio, renda_acumulada_studio)]
231
+ patrimonio_final = studio_total[-1]
232
 
233
  franquia = [capital + (franquia_ret * ano) for ano in anos]
234
  acoes = [capital * ((1 + acoes_ret / 100) ** ano) for ano in anos]
 
270
  buf.close()
271
  plt.close()
272
 
273
+ # --- Formata a tabela (função formatar_brl deve estar definida)
274
  df_formatado = df.copy()
275
  for col in df.columns:
276
  if col != "Ano":
277
  df_formatado[col] = df_formatado[col].apply(formatar_brl)
278
  tabela_html = df_formatado.to_html(index=False, classes="tabela", border=0)
279
 
280
+ # --- Geração da análise com IA (função gerar_analise_ia deve estar definida)
281
  analise_final_ia = gerar_analise_ia(investimentos_finais, capital, patrimonio_final)
282
 
283
+ # --- Formatar data para português
284
+ data_hoje = datetime.now().strftime("São Paulo, %d de %B de %Y")
285
+
286
  # --- Contexto para o PDF
287
  context = {
288
  "capital": capital,
289
  "grafico": grafico_base64,
290
  "tabela": tabela_html,
291
  "analise_final": analise_final_ia,
292
+ "data_hoje": data_hoje
293
  }
294
 
295
  # --- Renderiza e retorna o PDF
 
304
  return "Erro interno ao gerar o PDF", 500
305
 
306
 
 
307
  if __name__ == "__main__":
308
  app.run(host="0.0.0.0", port=int(os.environ.get("PORT", 7860)), debug=True)