Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 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 |
-
|
| 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=
|
| 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 |
)
|