victormottatz commited on
Commit
76266bc
·
verified ·
1 Parent(s): e297129

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -12
app.py CHANGED
@@ -36,8 +36,6 @@ def carregar_planilha():
36
 
37
  # Padroniza nomes das colunas
38
  df.columns = df.columns.str.strip().str.lower().str.replace(" ", "_")
39
- df['administradora'] = df['administradora'].str.strip().str.lower()
40
-
41
 
42
  # Converte colunas numéricas
43
  colunas_numericas = ['valor_credito', 'valor_entrada', 'valor_parcela', 'saldo_devedor', 'qtd_parcelas']
@@ -80,7 +78,6 @@ def buscar_combinacoes(credito_desejado, entrada_desejada, parcela_desejada, adm
80
  # Certifica-se de que administradoras é uma lista (Gradio retorna tupla)
81
  if isinstance(administradoras, tuple):
82
  administradoras = list(administradoras)
83
- administradoras = [a.strip().lower() for a in administradoras]
84
  df_filtrado = df_filtrado[df_filtrado['administradora'].isin(administradoras)]
85
 
86
  if df_filtrado.empty:
@@ -98,8 +95,7 @@ def buscar_combinacoes(credito_desejado, entrada_desejada, parcela_desejada, adm
98
  for r in range(1, min(3, len(cotas)) + 1): # Máximo 3 cotas por combinação
99
  for combinacao in itertools.combinations(cotas, r):
100
  total_credito = sum(c['valor_credito'] for c in combinacao)
101
- total_entrada_base = sum(c['valor_entrada'] for c in combinacao)
102
- total_entrada = total_entrada_base + (total_credito * 0.085) # aplica os 8,5% sobre o crédito
103
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
104
 
105
  if (credito_min <= total_credito <= credito_max and
@@ -129,8 +125,7 @@ def formatar_resultados(resultados):
129
  for idx, (adm, combinacao, _) in enumerate(resultados[:15], 1):
130
  codigos = [str(c.get('codigo', 'N/A')) for c in combinacao]
131
  total_credito = sum(c['valor_credito'] for c in combinacao)
132
- total_entrada_base = sum(c['valor_entrada'] for c in combinacao)
133
- total_entrada = total_entrada_base + (total_credito * 0.085)
134
  total_saldo = sum(c['saldo_devedor'] for c in combinacao)
135
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
136
  maior_prazo = max(int(c.get('qtd_parcelas', 0)) for c in combinacao)
@@ -161,10 +156,6 @@ def formatar_resultados(resultados):
161
  # Carrega a planilha uma vez quando o aplicativo inicia
162
  carregar_planilha()
163
 
164
- def ajustar_e_buscar(credito_desejado, entrada_desejada, parcela_desejada, administradoras):
165
- entrada_calculada = credito_desejado * 0.085 + entrada_desejada
166
- return buscar_combinacoes(credito_desejado, entrada_calculada, parcela_desejada, administradoras)
167
-
168
  # Prepara a lista de administradoras para o Gradio
169
  def get_administradoras_options():
170
  if df is not None:
@@ -262,7 +253,7 @@ with gr.Blocks(title="Sistema de Busca de Consórcio Imóvel") as demo:
262
  output_text = gr.Textbox(label="Resultados da Busca", lines=20, max_lines=40, interactive=False, placeholder="Os resultados aparecerão aqui...")
263
 
264
  submit_btn.click(
265
- fn=ajustar_e_buscar,
266
  inputs=[credito_input, entrada_input, parcela_input, administradoras_multiselect],
267
  outputs=output_text
268
  )
 
36
 
37
  # Padroniza nomes das colunas
38
  df.columns = df.columns.str.strip().str.lower().str.replace(" ", "_")
 
 
39
 
40
  # Converte colunas numéricas
41
  colunas_numericas = ['valor_credito', 'valor_entrada', 'valor_parcela', 'saldo_devedor', 'qtd_parcelas']
 
78
  # Certifica-se de que administradoras é uma lista (Gradio retorna tupla)
79
  if isinstance(administradoras, tuple):
80
  administradoras = list(administradoras)
 
81
  df_filtrado = df_filtrado[df_filtrado['administradora'].isin(administradoras)]
82
 
83
  if df_filtrado.empty:
 
95
  for r in range(1, min(3, len(cotas)) + 1): # Máximo 3 cotas por combinação
96
  for combinacao in itertools.combinations(cotas, r):
97
  total_credito = sum(c['valor_credito'] for c in combinacao)
98
+ total_entrada = sum(c['valor_entrada'] for c in combinacao)
 
99
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
100
 
101
  if (credito_min <= total_credito <= credito_max and
 
125
  for idx, (adm, combinacao, _) in enumerate(resultados[:15], 1):
126
  codigos = [str(c.get('codigo', 'N/A')) for c in combinacao]
127
  total_credito = sum(c['valor_credito'] for c in combinacao)
128
+ total_entrada = sum(c['valor_entrada'] for c in combinacao)
 
129
  total_saldo = sum(c['saldo_devedor'] for c in combinacao)
130
  total_parcelas = sum(c['valor_parcela'] for c in combinacao)
131
  maior_prazo = max(int(c.get('qtd_parcelas', 0)) for c in combinacao)
 
156
  # Carrega a planilha uma vez quando o aplicativo inicia
157
  carregar_planilha()
158
 
 
 
 
 
159
  # Prepara a lista de administradoras para o Gradio
160
  def get_administradoras_options():
161
  if df is not None:
 
253
  output_text = gr.Textbox(label="Resultados da Busca", lines=20, max_lines=40, interactive=False, placeholder="Os resultados aparecerão aqui...")
254
 
255
  submit_btn.click(
256
+ fn=buscar_combinacoes,
257
  inputs=[credito_input, entrada_input, parcela_input, administradoras_multiselect],
258
  outputs=output_text
259
  )