Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -8,11 +8,12 @@ from gradio import Interface # Certifique-se de importar o módulo corretamente
|
|
8 |
# Suprimir todos os avisos durante a execução do script
|
9 |
warnings.filterwarnings("ignore")
|
10 |
|
11 |
-
def calcular_valor_imovel(area=100, data_refer_str=None, data_const_str=
|
12 |
# Carregar dados dos arquivos Excel
|
13 |
df_cub = pd.read_excel('TABELAS.xlsx', sheet_name='CUB')
|
14 |
df_vida = pd.read_excel('TABELAS.xlsx', sheet_name='VUTIL')
|
15 |
df_dep = pd.read_excel('TABELAS.xlsx', sheet_name='DEP')
|
|
|
16 |
|
17 |
# Converter datas de entrada
|
18 |
if data_refer_str is None or data_refer_str == "":
|
@@ -73,9 +74,22 @@ def calcular_valor_imovel(area=100, data_refer_str=None, data_const_str="12/2022
|
|
73 |
Valor_sem_deprec = round(Valor_sem_deprec, 2)
|
74 |
Valor_com_deprec = Valor_sem_deprec * kd
|
75 |
Valor_com_deprec = round(Valor_com_deprec, 2)
|
76 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
resumo = {
|
78 |
-
"01":"
|
79 |
"Área construída (m²)": area,
|
80 |
"Data de referência": data_refer.strftime("%m/%Y"),
|
81 |
"Data da construção": data_const_str,
|
@@ -85,43 +99,42 @@ def calcular_valor_imovel(area=100, data_refer_str=None, data_const_str="12/2022
|
|
85 |
"BDI (%)": BDI,
|
86 |
"Valor CUB": round(valor_cub, 2),
|
87 |
"Valor_sem_deprec": Valor_sem_deprec,
|
88 |
-
"02":"
|
89 |
"Tipologia": tipologia,
|
90 |
"Vida útil da tipologia": int(vdu['VIDAUTIL']),
|
91 |
"Estado de conservação": estado,
|
|
|
92 |
"% de Vida Útil": percentual_vdu,
|
93 |
"Coeficiente de Depreciação": coef_HH,
|
94 |
"Valor residual (0, 0.1 ou 0.2)": VR,
|
95 |
"Kd": kd,
|
96 |
-
"Valor final": Valor_com_deprec
|
|
|
|
|
|
|
|
|
97 |
}
|
98 |
|
|
|
99 |
return resumo
|
100 |
|
101 |
-
# # Define a function to print the outputs
|
102 |
-
# def print_outputs(outputs):
|
103 |
-
# print(outputs)
|
104 |
|
105 |
entradas = [
|
106 |
gr.inputs.Number(label="Área construída (m²)", default=100),
|
107 |
-
gr.inputs.Textbox(label="Data de referência (mm/aaaa)", default=
|
108 |
-
gr.inputs.Textbox(label="Data da construção (mm/aaaa)", default=
|
109 |
-
|
110 |
-
gr.inputs.
|
111 |
-
gr.inputs.
|
112 |
-
gr.inputs.Number(label="Percentual para adequação do CUB (%)", default=1),
|
113 |
gr.inputs.Number(label="BDI (%)", default=22.5),
|
114 |
-
|
115 |
-
gr.inputs.Dropdown(label="
|
116 |
-
gr.inputs.Dropdown(label="
|
117 |
-
|
118 |
-
gr.inputs.Dropdown(label="
|
119 |
]
|
120 |
|
121 |
saida = gr.outputs.JSON()
|
122 |
|
123 |
-
|
124 |
-
# button_print = Button(label="Print Outputs", onclick=print_outputs)
|
125 |
-
|
126 |
-
interface = gr.Interface(fn=calcular_valor_imovel, inputs=entradas, outputs=saida)
|
127 |
interface.launch()
|
|
|
8 |
# Suprimir todos os avisos durante a execução do script
|
9 |
warnings.filterwarnings("ignore")
|
10 |
|
11 |
+
def calcular_valor_imovel(area=100, data_refer_str=None, data_const_str=None, tipo_cub="R 1-N (Res. Unifamiliar)", data_cub_str=None, percentual_cub=1, BDI=22.5, tipologia="APARTAMENTOS", estado="B - entre novo e regular", VR=0.2, valor_terreno=0, fc="0.1"):
|
12 |
# Carregar dados dos arquivos Excel
|
13 |
df_cub = pd.read_excel('TABELAS.xlsx', sheet_name='CUB')
|
14 |
df_vida = pd.read_excel('TABELAS.xlsx', sheet_name='VUTIL')
|
15 |
df_dep = pd.read_excel('TABELAS.xlsx', sheet_name='DEP')
|
16 |
+
df_estado_cons = pd.read_excel('TABELAS.xlsx', sheet_name='estado_cons')
|
17 |
|
18 |
# Converter datas de entrada
|
19 |
if data_refer_str is None or data_refer_str == "":
|
|
|
74 |
Valor_sem_deprec = round(Valor_sem_deprec, 2)
|
75 |
Valor_com_deprec = Valor_sem_deprec * kd
|
76 |
Valor_com_deprec = round(Valor_com_deprec, 2)
|
77 |
+
valor_imovel = (valor_terreno + Valor_com_deprec) * float(fc)
|
78 |
+
|
79 |
+
# Carregar a planilha
|
80 |
+
df_cub = pd.read_excel('TABELAS.xlsx', sheet_name='CUB')
|
81 |
+
# Obter a lista de cabeçalhos (colunas)
|
82 |
+
cabecalhos = df_cub.columns.tolist()
|
83 |
+
# O último cabeçalho será o último elemento da lista
|
84 |
+
ultimo_cabecalho = cabecalhos[-1]
|
85 |
+
|
86 |
+
# Atributo da coluna "cons" pelo qual você deseja fazer a correspondência
|
87 |
+
atributo_desejado = estado
|
88 |
+
# Encontrar o valor da coluna "obs" com base no atributo da coluna "cons"
|
89 |
+
valor_obs = df_estado_cons.loc[df_estado_cons['cons'] == atributo_desejado, 'obs'].iloc[0]
|
90 |
+
|
91 |
resumo = {
|
92 |
+
"01":"---VALOR INICIAL CONST---",
|
93 |
"Área construída (m²)": area,
|
94 |
"Data de referência": data_refer.strftime("%m/%Y"),
|
95 |
"Data da construção": data_const_str,
|
|
|
99 |
"BDI (%)": BDI,
|
100 |
"Valor CUB": round(valor_cub, 2),
|
101 |
"Valor_sem_deprec": Valor_sem_deprec,
|
102 |
+
"02":"--VALOR DEPRECIADO CONST--",
|
103 |
"Tipologia": tipologia,
|
104 |
"Vida útil da tipologia": int(vdu['VIDAUTIL']),
|
105 |
"Estado de conservação": estado,
|
106 |
+
"Estado de conservação - descrição": valor_obs,
|
107 |
"% de Vida Útil": percentual_vdu,
|
108 |
"Coeficiente de Depreciação": coef_HH,
|
109 |
"Valor residual (0, 0.1 ou 0.2)": VR,
|
110 |
"Kd": kd,
|
111 |
+
"Valor final const": Valor_com_deprec,
|
112 |
+
"03": "--VALOR DO IMÓVEL (TERRENO + CONSTRUÇÃO)--",
|
113 |
+
"Valor do Terreno": valor_terreno,
|
114 |
+
"FC (Fator de Comercialização)": fc,
|
115 |
+
"Valor do Imóvel": valor_imovel
|
116 |
}
|
117 |
|
118 |
+
|
119 |
return resumo
|
120 |
|
|
|
|
|
|
|
121 |
|
122 |
entradas = [
|
123 |
gr.inputs.Number(label="Área construída (m²)", default=100),
|
124 |
+
gr.inputs.Textbox(label="Data de referência (mm/aaaa)", default=ultimo_cabecalho),
|
125 |
+
gr.inputs.Textbox(label="Data da construção (mm/aaaa)", default=ultimo_cabecalho),
|
126 |
+
gr.inputs.Dropdown(label="Tipo de CUB", choices=["R 1-B (Res. Unifamiliar)", "R 1-N (Res. Unifamiliar)", "R 1-A (Res. Unifamiliar)", "PP 4-B (Prédio Popular)", "PP 4-N (Prédio Popular)", "R 8-B (Res. Multifamiliar)", "R 8-N (Res. Multifamiliar)", "R 8-A (Res. Multifamiliar)", "R 16-N (Res. Multifamiliar)", "R 16-A (Res. Multifamiliar)", "PIS (Projeto Inter. Social)", "RP1Q (Residência Popular)", "CAL 8-N (Com. Andar Livres)", "CAL 8-A (Com. Andar Livres)", "CSL 8-N (Com.Salas e Lojas)", "CSL 8-A (Com.Salas e Lojas)", "CSL 16-N (Com.Salas e Lojas)", "CSL 16-A (Com.Salas e Lojas)", "GI (Galpão Industrial)"],default="R 1-N (Res. Unifamiliar)"),
|
127 |
+
gr.inputs.Textbox(label="Data do CUB (mm/aaaa)", default=ultimo_cabecalho),
|
128 |
+
gr.inputs.Number(label="Percentual para adequação do CUB (%) - (Adapatação do CUB para uma situação atípica)", default=1),
|
|
|
129 |
gr.inputs.Number(label="BDI (%)", default=22.5),
|
130 |
+
gr.inputs.Dropdown(label="Tipologia", choices=["APARTAMENTOS", "BANCOS", "CASAS DE ALVENARIA", "CASAS DE MADEIRA", "HOTÉIS", "LOJAS", "TEATROS", "ARMAZÉNS", "FÁBRICAS", "CONST. RURAIS", "GARAGENS", "EDIFÍCIOS DE ESCRITÓRIOS", "GALPÕES (DEPÓSITOS)", "SILOS"], default="CASAS DE ALVENARIA"),
|
131 |
+
gr.inputs.Dropdown(label="Estado de conservação", choices=["A - novo", "B - entre novo e regular", "C - regular", "D - entre regular e reparos simples", "E - reparos simples", "F - entre reparos simples e importantes", "G - reparos importantes", "H - entre reparos importantes e sem valor"], default="A - novo"),
|
132 |
+
gr.inputs.Dropdown(label="Valor residual (0, 0.1 ou 0.2)", choices=["0", "0.1", "0.2"], default="0"),
|
133 |
+
gr.inputs.Number(label="Valor do Terreno", default=0),
|
134 |
+
gr.inputs.Dropdown(label="FC (Fator de Comercialização)", choices=["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","2.0"], default="1")
|
135 |
]
|
136 |
|
137 |
saida = gr.outputs.JSON()
|
138 |
|
139 |
+
interface = gr.Interface(fn=calcular_valor_imovel, inputs=entradas, outputs=saida, title="Método Evolutivo (NBR 14653-2)" )
|
|
|
|
|
|
|
140 |
interface.launch()
|