NicollasMarques commited on
Commit
4e83bba
·
verified ·
1 Parent(s): 3d73370

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -12
app.py CHANGED
@@ -107,16 +107,20 @@ def buscar_combinacoes(credito_desejado, entrada_desejada, parcela_desejada, adm
107
  resultados.sort(key=lambda x: x[2])
108
  return formatar_resultados(resultados)
109
 
 
 
 
110
  def formatar_resultados(resultados):
111
- """Formata os resultados para exibição ao usuário."""
112
  resposta = ""
113
- for idx, (adm, combinacao, _) in enumerate(resultados[:10], 1): # Limita a 10 resultados para a UI
114
- codigos = [str(c.get('codigo', 'N/A')) for c in combinacao] # Usar .get para segurança
 
115
  total_credito = sum(c['valor_credito'] for c in combinacao)
116
  total_entrada = sum(c['valor_entrada'] for c in combinacao)
117
  total_saldo = sum(c['saldo_devedor'] for c in combinacao)
118
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
119
- maior_prazo = max(int(c.get('qtd_parcelas', 0)) for c in combinacao) # Usar .get para segurança
120
 
121
  valor_final = round(total_entrada + total_saldo, 2)
122
  credito_real = round(total_credito - total_entrada, 2)
@@ -125,22 +129,23 @@ def formatar_resultados(resultados):
125
  taxa_mensal = taxa_percentual / maior_prazo if maior_prazo > 0 else 0
126
 
127
  resposta += f"""
128
- --- Combinação {idx} ---
129
  🏢 Administradora: {adm}
130
  🔢 Códigos: {', '.join(codigos)}
131
- 💰 Crédito Total: R$ {total_credito:,.2f}
132
- 💵 Entrada: R$ {total_entrada:,.2f}
133
- 📉 Saldo Devedor: R$ {total_saldo:,.2f}
134
- 💲 Parcela: R$ {total_parcelas:,.2f}
135
  ⏳ Prazo: {maior_prazo} meses
136
- 🔚 Valor Final: R$ {valor_final:,.2f}
137
- 💠 Crédito Líquido: R$ {credito_real:,.2f}
138
- 📊 Taxa Total: {taxa_percentual:.2f}% (R$ {taxa_total:,.2f})
139
  🗓️ Taxa Mensal: {taxa_mensal:.2f}%
140
  🗓️ Taxa Anual: {taxa_mensal * 12:.2f}%
141
  """
142
  return resposta
143
 
 
144
  # --- INICIALIZAÇÃO PARA GRADIO ---
145
  # Carrega a planilha UMA VEZ no início do aplicativo
146
  # Se der erro, a função de busca tentará carregar novamente.
 
107
  resultados.sort(key=lambda x: x[2])
108
  return formatar_resultados(resultados)
109
 
110
+ def formatar_moeda(valor):
111
+ return f"R$ {valor:,.2f}".replace(",", "v").replace(".", ",").replace("v", ".")
112
+
113
  def formatar_resultados(resultados):
114
+ """Formata os resultados para exibição."""
115
  resposta = ""
116
+ # Limita a 15 resultados para evitar saídas muito longas
117
+ for idx, (adm, combinacao, _) in enumerate(resultados[:15], 1):
118
+ codigos = [str(c.get('codigo', 'N/A')) for c in combinacao]
119
  total_credito = sum(c['valor_credito'] for c in combinacao)
120
  total_entrada = sum(c['valor_entrada'] for c in combinacao)
121
  total_saldo = sum(c['saldo_devedor'] for c in combinacao)
122
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
123
+ maior_prazo = max(int(c.get('qtd_parcelas', 0)) for c in combinacao)
124
 
125
  valor_final = round(total_entrada + total_saldo, 2)
126
  credito_real = round(total_credito - total_entrada, 2)
 
129
  taxa_mensal = taxa_percentual / maior_prazo if maior_prazo > 0 else 0
130
 
131
  resposta += f"""
132
+ --- COMBINAÇÃO {idx} ---
133
  🏢 Administradora: {adm}
134
  🔢 Códigos: {', '.join(codigos)}
135
+ 💰 Crédito Total: {formatar_moeda(total_credito)}
136
+ 💵 Entrada (+comissão): {formatar_moeda(total_entrada)}
137
+ 📉 Saldo Devedor: {formatar_moeda(total_saldo)}
138
+ 💲 Parcela: {formatar_moeda(total_parcelas)}
139
  ⏳ Prazo: {maior_prazo} meses
140
+ 🔚 Valor Final: {formatar_moeda(valor_final)}
141
+ 💠 Crédito Líquido: {formatar_moeda(credito_real)}
142
+ 📊 Taxa Total: {taxa_percentual:.2f}% ({formatar_moeda(taxa_total)})
143
  🗓️ Taxa Mensal: {taxa_mensal:.2f}%
144
  🗓️ Taxa Anual: {taxa_mensal * 12:.2f}%
145
  """
146
  return resposta
147
 
148
+
149
  # --- INICIALIZAÇÃO PARA GRADIO ---
150
  # Carrega a planilha UMA VEZ no início do aplicativo
151
  # Se der erro, a função de busca tentará carregar novamente.