Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -15,7 +15,7 @@ from num2words import num2words
|
|
15 |
warnings.filterwarnings("ignore")
|
16 |
|
17 |
# Calcular a data mais recente do CUB fora da função
|
18 |
-
df_cub = pd.read_excel('
|
19 |
ultimo_cub = df_cub.columns[-1]
|
20 |
|
21 |
#função para escrever por extenso o valor atribuído
|
@@ -32,10 +32,7 @@ def numero_por_extenso(numero):
|
|
32 |
return extenso_reais
|
33 |
|
34 |
# Função para calcular o valor do imóvel
|
35 |
-
def calcular_valor_imovel(
|
36 |
-
lograd="-", munic="-", tipo_imo="-", solic="-", finalidade="-", objetivo="-", press="-",
|
37 |
-
infra="Água Potável", serv="Coleta de Lixo", uso="Residencial", pad_reg="-", tipo_via="-", obs_gerais="-",
|
38 |
-
per="Sem destaque", ofe="Sem destaque", liq="Sem destaque",
|
39 |
area=100, data_refer_str=None, data_const_str=None, tipo_cub="R 1-N (Res. Unifamiliar)",
|
40 |
data_cub_str=None, percentual_cub=1, est_custo_dir="-", BDI=22.5, BDI_tipo ="Arbitrado", fator_local = 1,
|
41 |
just_fator_local = "-", tipologia="APARTAMENTOS",
|
@@ -45,10 +42,10 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
45 |
fc=1, fc_just="Arbitrado"):
|
46 |
|
47 |
# Carregar dados dos arquivos Excel
|
48 |
-
df_cub = pd.read_excel('
|
49 |
-
df_vida = pd.read_excel('
|
50 |
-
df_dep = pd.read_excel('
|
51 |
-
df_estado_cons = pd.read_excel('
|
52 |
|
53 |
# Converter datas de entrada
|
54 |
if data_refer_str is None or data_refer_str == "":
|
@@ -92,10 +89,10 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
92 |
# Filtrar conforme o % de vida útil
|
93 |
df_conserv = df_dep.loc[df_dep['%deVida'] == percentual_vdu]
|
94 |
|
95 |
-
|
96 |
-
|
97 |
-
VR = float(VR)
|
98 |
-
|
99 |
VR = 0.0
|
100 |
# Obter da depreciação
|
101 |
coef_HH = float(df_conserv[estado]/100)
|
@@ -104,7 +101,13 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
104 |
# Valor do "Kd"
|
105 |
kd = VR + (1 - coef_HH) * (1 - VR)
|
106 |
kd = round(kd, 3)
|
107 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
# Cálculos
|
109 |
Valor_sem_deprec = round(area * valor_cub * percentual_cub * (1 + BDI / 100) * fator_local, 2)
|
110 |
Valor_com_deprec = Valor_sem_deprec * kd
|
@@ -199,37 +202,6 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
199 |
|
200 |
# criação de strings para os relatórios da interface e do word
|
201 |
|
202 |
-
dados_resp = f"""
|
203 |
-
Responsável Técnico: {nome}
|
204 |
-
Profissão: {prof}
|
205 |
-
Entidade de Classe: {ent} {uf}
|
206 |
-
Número do registro: {reg}
|
207 |
-
"""
|
208 |
-
#####
|
209 |
-
introd = f"""
|
210 |
-
Logradouro e número: {lograd}
|
211 |
-
Município: {munic}
|
212 |
-
Tipo de imóvel: {tipo_imo}
|
213 |
-
Solicitante: {solic}
|
214 |
-
Finalidade: {finalidade}
|
215 |
-
Objetivo: {objetivo}
|
216 |
-
Pressupostos, Ressalvas e Fatores Limitantes: {press}
|
217 |
-
"""
|
218 |
-
#####
|
219 |
-
regiao = f"""
|
220 |
-
Infraestrutura: {str(infra).replace("[", "").replace("]", "").replace("'", "")}
|
221 |
-
Serviços públicos: {str(serv).replace("[", "").replace("]", "").replace("'", "")}
|
222 |
-
Uso: {uso}
|
223 |
-
Padrão predominante na região: {pad_reg}
|
224 |
-
Tipo de via de acesso: {tipo_via}
|
225 |
-
Outras observações: {obs_gerais}
|
226 |
-
"""
|
227 |
-
#####
|
228 |
-
diag = f"""
|
229 |
-
Performance: {per}
|
230 |
-
Nível de Ofertas do Segmento: {ofe}
|
231 |
-
Liquidez: {liq}
|
232 |
-
"""
|
233 |
#####
|
234 |
tipo_cub = tipo_cub.replace('.', '@').replace(',', '.').replace('@', ',')
|
235 |
est_custo_dir = est_custo_dir.replace('.', '@').replace(',', '.').replace('@', ',')
|
@@ -247,7 +219,6 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
247 |
Valor CUB: R$ {valor_cub:,.2f}
|
248 |
Fator local: {fator_local}
|
249 |
Fator local(justificativa): {just_fator_local}
|
250 |
-
|
251 |
Valor antes da depreciação = área construída * CUB * fator adequação CUB * (1 + BDI / 100) * fator local
|
252 |
Valor sem depreciação: R$ {Valor_sem_deprec:,.2f}
|
253 |
"""
|
@@ -271,7 +242,6 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
271 |
Forma de cálculo da depreciação física: {deprec}
|
272 |
Kd: {kd}
|
273 |
onde: Kd = (Valor residual + (1 - percentual de depreciação)*(1 - Valor residual))
|
274 |
-
|
275 |
Valor depois da depreciação = (Valor antes da depreciação) x Kd (com coeficiente de valor residual)
|
276 |
Valor final construção: R$ {Valor_com_deprec:,.2f}
|
277 |
Especificação da Avaliação (benfeitorias) - Método da Quantificação do Custo: {est_cr}
|
@@ -315,20 +285,6 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
315 |
---------------------
|
316 |
Especificação da Avaliação - Método Evolutivo: {fundamentacao_evolutivo}
|
317 |
"""
|
318 |
-
#####
|
319 |
-
# Substituindo ponto por vírgula
|
320 |
-
#valor_final = valor_final.replace('.', '@')
|
321 |
-
#valor_final = valor_final.replace(',', '.')
|
322 |
-
#valor_final = valor_final.replace('@', ',')
|
323 |
-
|
324 |
-
#####
|
325 |
-
assinatura = f"""
|
326 |
-
Data: {data}
|
327 |
-
|
328 |
-
|
329 |
-
{nome} | {prof}
|
330 |
-
{ent}-{uf} {reg}
|
331 |
-
"""
|
332 |
|
333 |
# -------------------------------------- #
|
334 |
|
@@ -341,15 +297,10 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
341 |
|
342 |
# Definir as seções do relatório
|
343 |
sections = [
|
344 |
-
(dados_resp, "Informações do Responsável Técnico"),
|
345 |
-
(introd, "Introdução"),
|
346 |
-
(regiao, "Características da Região"),
|
347 |
-
(diag, "Diagmóstico de Mercado"),
|
348 |
(valor_inicial, "Valor Inicial da Construção"),
|
349 |
(deprec, "Cálculo da Depreciação"),
|
350 |
(valor_ter, "Valor Estimado para o Terreno"),
|
351 |
(valor_final, "Valor Final do Imóvel"),
|
352 |
-
(assinatura,""),
|
353 |
]
|
354 |
|
355 |
for content, title in sections:
|
@@ -369,133 +320,124 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", uf = 'R
|
|
369 |
# -------------------------------------- #
|
370 |
|
371 |
# Outputs
|
372 |
-
return
|
373 |
|
374 |
# -------------------------------------- #
|
375 |
|
376 |
# Interface Gradio
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
gr.
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
live=False,
|
491 |
-
#capture_session=True,
|
492 |
-
theme=gr.themes.Monochrome(primary_hue="yellow", secondary_hue="yellow"),
|
493 |
-
#title="<span style='color: gray; font-size: 50px;'>aval</span><span style='color: gray; font-size: 50px;'>ia</span><span style='color: gray; font-size: 50px;'>.EVO</span>",
|
494 |
-
description=f"""
|
495 |
-
<p style="text-align: left;"><b><span style='color: gray; font-size: 40px;'>aval</span><span style='color: orange; font-size: 40px;'>ia</span><span style='color: gray; font-size: 40px;'>.se</b></p>
|
496 |
-
<p style="text-align: left;"></span>Aplicativo Método Evolutivo (benfeitorias + terrenos) / Para ver a documentação <a href='https://huggingface.co/spaces/DavidSB/avalia.EVO/resolve/main/avaliaEVO.pdf' download='avaliaEVO.pdf'>aqui</a><br><br></p>
|
497 |
-
"""
|
498 |
-
)
|
499 |
|
500 |
if __name__ == "__main__":
|
501 |
-
interface.launch(debug=True)
|
|
|
15 |
warnings.filterwarnings("ignore")
|
16 |
|
17 |
# Calcular a data mais recente do CUB fora da função
|
18 |
+
df_cub = pd.read_excel('TABELAS_evo.xlsx', sheet_name='CUB')
|
19 |
ultimo_cub = df_cub.columns[-1]
|
20 |
|
21 |
#função para escrever por extenso o valor atribuído
|
|
|
32 |
return extenso_reais
|
33 |
|
34 |
# Função para calcular o valor do imóvel
|
35 |
+
def calcular_valor_imovel(
|
|
|
|
|
|
|
36 |
area=100, data_refer_str=None, data_const_str=None, tipo_cub="R 1-N (Res. Unifamiliar)",
|
37 |
data_cub_str=None, percentual_cub=1, est_custo_dir="-", BDI=22.5, BDI_tipo ="Arbitrado", fator_local = 1,
|
38 |
just_fator_local = "-", tipologia="APARTAMENTOS",
|
|
|
42 |
fc=1, fc_just="Arbitrado"):
|
43 |
|
44 |
# Carregar dados dos arquivos Excel
|
45 |
+
df_cub = pd.read_excel('TABELAS_evo.xlsx', sheet_name='CUB')
|
46 |
+
df_vida = pd.read_excel('TABELAS_evo.xlsx', sheet_name='VUTIL')
|
47 |
+
df_dep = pd.read_excel('TABELAS_evo.xlsx', sheet_name='DEP')
|
48 |
+
df_estado_cons = pd.read_excel('TABELAS_evo.xlsx', sheet_name='CONS')
|
49 |
|
50 |
# Converter datas de entrada
|
51 |
if data_refer_str is None or data_refer_str == "":
|
|
|
89 |
# Filtrar conforme o % de vida útil
|
90 |
df_conserv = df_dep.loc[df_dep['%deVida'] == percentual_vdu]
|
91 |
|
92 |
+
# Converter o valor residual de string para número (float)
|
93 |
+
try:
|
94 |
+
VR = float(VR.strip()) if isinstance(VR, str) and VR.strip() != "" else 0.0
|
95 |
+
except ValueError:
|
96 |
VR = 0.0
|
97 |
# Obter da depreciação
|
98 |
coef_HH = float(df_conserv[estado]/100)
|
|
|
101 |
# Valor do "Kd"
|
102 |
kd = VR + (1 - coef_HH) * (1 - VR)
|
103 |
kd = round(kd, 3)
|
104 |
+
|
105 |
+
# Converter o valor do terreno de string para número (float)
|
106 |
+
#try:
|
107 |
+
#valor_terreno = float(valor_terreno.strip()) if isinstance(valor_terreno, str) and valor_terreno.strip() != "" else 0.0
|
108 |
+
#except ValueError:
|
109 |
+
#valor_terreno = 0.0
|
110 |
+
|
111 |
# Cálculos
|
112 |
Valor_sem_deprec = round(area * valor_cub * percentual_cub * (1 + BDI / 100) * fator_local, 2)
|
113 |
Valor_com_deprec = Valor_sem_deprec * kd
|
|
|
202 |
|
203 |
# criação de strings para os relatórios da interface e do word
|
204 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
205 |
#####
|
206 |
tipo_cub = tipo_cub.replace('.', '@').replace(',', '.').replace('@', ',')
|
207 |
est_custo_dir = est_custo_dir.replace('.', '@').replace(',', '.').replace('@', ',')
|
|
|
219 |
Valor CUB: R$ {valor_cub:,.2f}
|
220 |
Fator local: {fator_local}
|
221 |
Fator local(justificativa): {just_fator_local}
|
|
|
222 |
Valor antes da depreciação = área construída * CUB * fator adequação CUB * (1 + BDI / 100) * fator local
|
223 |
Valor sem depreciação: R$ {Valor_sem_deprec:,.2f}
|
224 |
"""
|
|
|
242 |
Forma de cálculo da depreciação física: {deprec}
|
243 |
Kd: {kd}
|
244 |
onde: Kd = (Valor residual + (1 - percentual de depreciação)*(1 - Valor residual))
|
|
|
245 |
Valor depois da depreciação = (Valor antes da depreciação) x Kd (com coeficiente de valor residual)
|
246 |
Valor final construção: R$ {Valor_com_deprec:,.2f}
|
247 |
Especificação da Avaliação (benfeitorias) - Método da Quantificação do Custo: {est_cr}
|
|
|
285 |
---------------------
|
286 |
Especificação da Avaliação - Método Evolutivo: {fundamentacao_evolutivo}
|
287 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
288 |
|
289 |
# -------------------------------------- #
|
290 |
|
|
|
297 |
|
298 |
# Definir as seções do relatório
|
299 |
sections = [
|
|
|
|
|
|
|
|
|
300 |
(valor_inicial, "Valor Inicial da Construção"),
|
301 |
(deprec, "Cálculo da Depreciação"),
|
302 |
(valor_ter, "Valor Estimado para o Terreno"),
|
303 |
(valor_final, "Valor Final do Imóvel"),
|
|
|
304 |
]
|
305 |
|
306 |
for content, title in sections:
|
|
|
320 |
# -------------------------------------- #
|
321 |
|
322 |
# Outputs
|
323 |
+
return valor_inicial, deprec, valor_ter, valor_final, 'relatorio_avaliacao.doc'
|
324 |
|
325 |
# -------------------------------------- #
|
326 |
|
327 |
# Interface Gradio
|
328 |
+
with gr.Blocks(theme=gr.themes.Monochrome(primary_hue="yellow", secondary_hue="yellow",)) as interface:
|
329 |
+
gr.Markdown(f"""
|
330 |
+
<p style="text-align: center;">
|
331 |
+
<b><span style='color: grey; font-size: 25px;'>aval</span></b>
|
332 |
+
<b><span style='color: orange; font-size: 25px;'>ia</span></b>
|
333 |
+
<b><span style='color: grey; font-size: 25px;'>.se</span></b>
|
334 |
+
""")
|
335 |
+
|
336 |
+
with gr.Row():
|
337 |
+
with gr.Column():
|
338 |
+
# Valor Inicial da Construção
|
339 |
+
with gr.Row():
|
340 |
+
area = gr.Number(label="Área (m²)", value=100, info="Área construída", scale=0.5) # Remova a vírgula aqui
|
341 |
+
data_r = gr.Textbox(label="Data referência (mm/aaaa)", value=ultimo_cub, info="Data do fato gerador da demanda", scale=1) # Remova a vírgula aqui
|
342 |
+
data_c = gr.Textbox(label="Data construção (mm/aaaa)", value=ultimo_cub, info="Data de construção do imóvel", scale=1)
|
343 |
+
with gr.Group():
|
344 |
+
with gr.Row():
|
345 |
+
cub = gr.Dropdown(label="Tipo de CUB",
|
346 |
+
choices=["R 1-B (Res. Unifamiliar)", "R 1-N (Res. Unifamiliar)", "R 1-A (Res. Unifamiliar)",
|
347 |
+
"PP 4-B (Prédio Popular)", "PP 4-N (Prédio Popular)", "R 8-B (Res. Multifamiliar)",
|
348 |
+
"R 8-N (Res. Multifamiliar)", "R 8-A (Res. Multifamiliar)", "R 16-N (Res. Multifamiliar)",
|
349 |
+
"R 16-A (Res. Multifamiliar)", "PIS (Projeto Inter. Social)", "RP1Q (Residência Popular)",
|
350 |
+
"CAL 8-N (Com. Andar Livres)", "CAL 8-A (Com. Andar Livres)",
|
351 |
+
"CSL 8-N (Com.Salas e Lojas)", "CSL 8-A (Com.Salas e Lojas)",
|
352 |
+
"CSL 16-N (Com.Salas e Lojas)", "CSL 16-A (Com.Salas e Lojas)", "GI (Galpão Industrial)"],
|
353 |
+
value="R 1-N (Res. Unifamiliar)", scale=1)
|
354 |
+
data_cub = gr.Textbox(label="Data do CUB (mm/aaaa)", value=ultimo_cub, scale=1)
|
355 |
+
fator_cub = gr.Slider(0.5, 2.0, value=1, label="Fator para adequação do CUB",
|
356 |
+
info="Para contemplar insumos/serviços que não constam na composição", step=0.1)
|
357 |
+
forma_cub = gr.Dropdown(["Utilização CUB para projeto semelhante ao projeto padrão",
|
358 |
+
"Utilização CUB para projeto diferente do projeto padrão, com os devidos ajustes"],
|
359 |
+
label="Estimativa do custo direto", value="Utilização CUB para projeto semelhante ao projeto padrão")
|
360 |
+
with gr.Row():
|
361 |
+
bdi = gr.Number(label="BDI (%)", value=22.5, scale=0.5)
|
362 |
+
tipo_bdi = gr.Dropdown(["Calculado", "Justificado", "Arbitrado"], label="Tipo de BDI", value="Justificado", scale=1)
|
363 |
+
with gr.Row():
|
364 |
+
fator_local = gr.Slider(0.5, 1.5, value=1, label="Fator local", info="Atribua um coeficiente de valorização se necessário", step=0.1)
|
365 |
+
just_local = gr.Textbox(label="Justificativa para o Fator Local", value="-", info="Justifique tecnicamente o fator")
|
366 |
+
|
367 |
+
# Cálculo da Depreciação
|
368 |
+
with gr.Group():
|
369 |
+
with gr.Row():
|
370 |
+
tipo = gr.Dropdown(label="Tipologia", choices=["APARTAMENTOS", "BANCOS", "CASAS DE ALVENARIA",
|
371 |
+
"CASAS DE MADEIRA", "HOTÉIS", "LOJAS", "TEATROS",
|
372 |
+
"ARMAZÉNS", "FÁBRICAS", "CONST. RURAIS", "GARAGENS",
|
373 |
+
"EDIFÍCIOS DE ESCRITÓRIOS", "GALPÕES (DEPÓSITOS)", "SILOS"], value="CASAS DE ALVENARIA", scale=1)
|
374 |
+
rst_con = gr.Dropdown(label="Estado de conservação", choices=["A - novo", "B - entre novo e regular",
|
375 |
+
"C - regular", "D - entre regular e reparos simples",
|
376 |
+
"E - reparos simples", "F - entre reparos simples e importantes",
|
377 |
+
"G - reparos importantes", "H - entre reparos importantes e sem valor"], value="A - novo", scale=1)
|
378 |
+
vr = gr.Dropdown(label="Valor residual", choices=["0", "0.1", "0.2"], value="0", scale=0.5)
|
379 |
+
deprec = gr.Dropdown(["Por levantamento do custo de recuperação do bem, para deixá-lo no estado de novo ou caso de bens novos ou projetos hipotéticos",
|
380 |
+
"Por métodos técnicos consagrados, considerando-se idade, vida útil e estado de conservação",
|
381 |
+
"Arbitrado"],
|
382 |
+
label="Depreciação Física",
|
383 |
+
info="Forma pela qual a depreciação física foi calculada",
|
384 |
+
value="Por métodos técnicos consagrados, considerando-se idade, vida útil e estado de conservação")
|
385 |
+
#-------------------------------------------------------#
|
386 |
+
button_1 = gr.Button("Calcular Construção")
|
387 |
+
#-------------------------------------------------------#
|
388 |
+
|
389 |
+
# Valor do Terreno
|
390 |
+
with gr.Row():
|
391 |
+
vt_inp = gr.Number(label="Valor do Terreno", info="Campo não precisade de preenchimento p/ o cálculo do Custo de Reprodução", value=0)
|
392 |
+
grau_t = gr.Radio(["Grau III", "Grau II", "Grau I"], info="Escolha o Grau de Fundamentação alcançado pela avaliação do terreno", label="", value="Grau III")
|
393 |
+
|
394 |
+
# Valor final do imóvel
|
395 |
+
fc = gr.Slider(0.1, 2.0, value=1.0, label="FC (Fator de Comercialização)", info="O Fator de Comercialização, também chamado de Terceiro Componente ou Vantagem da Coisa Feita, é definido no item 3.20 da NBR 14653-1:2001: “Fator de comercialização: Razão entre o valor de mercado de um bem e o seu custo de reedição ou de substituição, que pode ser maior ou menor que 1", step=0.1)
|
396 |
+
forma_fc = gr.Radio(["Inferido em mercado semelhante", "Justificado", "Arbitrado"], label="", info="Estipule como foi elaborado o FC", value="Justificado")
|
397 |
+
|
398 |
+
#-------------------------------------------------------#
|
399 |
+
button_2 = gr.Button("Calcular Terreno + Construção")
|
400 |
+
#-------------------------------------------------------#
|
401 |
+
|
402 |
+
with gr.Column():
|
403 |
+
vi = gr.Textbox(label="Valor Inicial da Contrução")
|
404 |
+
cd = gr.Textbox(label="Cálculo da Depreciação")
|
405 |
+
vt_out = gr.Textbox(label="Valor estimado para o terreno")
|
406 |
+
vf = gr.Textbox(label="Valor final do imóvel")
|
407 |
+
la = gr.File(label="Laudo de Avaliação")
|
408 |
+
|
409 |
+
inputs = [
|
410 |
+
area, # Área construída (m²)
|
411 |
+
data_r, # Data de referência (mm/aaaa)
|
412 |
+
data_c, # Data da construção (mm/aaaa)
|
413 |
+
cub, # Tipo de CUB
|
414 |
+
data_cub, # Data do CUB (mm/aaaa)
|
415 |
+
fator_cub, # Fator para adequação do CUB
|
416 |
+
forma_cub, # Estimativa do custo direto
|
417 |
+
bdi, # BDI (%)
|
418 |
+
tipo_bdi, # Tipo de BDI
|
419 |
+
fator_local, # Fator local
|
420 |
+
just_local, # Justificativa para o Fator Local
|
421 |
+
tipo, # Tipologia
|
422 |
+
rst_con, # Estado de conservação
|
423 |
+
vr, # Valor residual (0, 0.1 ou 0.2)
|
424 |
+
deprec, # Depreciação Física
|
425 |
+
vt_inp, # Valor do Terreno
|
426 |
+
grau_t, # Grau de Fundamentação alcançado pela avaliação do terreno
|
427 |
+
fc, # FC (Fator de Comercialização)
|
428 |
+
forma_fc # Forma como foi elaborado o FC
|
429 |
+
]
|
430 |
+
|
431 |
+
outputs = [
|
432 |
+
vi, # Valor Inicial da Construção
|
433 |
+
cd, # Cálculo da Depreciação
|
434 |
+
vt_out, # Valor estimado para o terreno
|
435 |
+
vf, # Valor final do imóvel
|
436 |
+
la # Laudo de Avaliação (arquivo)
|
437 |
+
]
|
438 |
+
|
439 |
+
button_1.click(calcular_valor_imovel, inputs=inputs, outputs=outputs)
|
440 |
+
button_2.click(calcular_valor_imovel, inputs=inputs, outputs=outputs)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
|
442 |
if __name__ == "__main__":
|
443 |
+
interface.launch(debug=True)
|