DavidSB commited on
Commit
d92df38
·
1 Parent(s): 63eae5d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +36 -23
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/2022", 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):
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":"-------VALOR INICIAL-------",
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":"-----VALOR DEPRECIADO-----",
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
- # gr.inputs.Textbox(label="Tipo de CUB", default="R 1-N (Res. Unifamiliar)"),
110
- 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)"]),
111
- gr.inputs.Textbox(label="Data do CUB (mm/aaaa)", default=""),
112
- gr.inputs.Number(label="Percentual para adequação do CUB (%)", default=1),
113
  gr.inputs.Number(label="BDI (%)", default=22.5),
114
- # gr.inputs.Textbox(label="Tipologia", default="APARTAMENTOS"),
115
- 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"]),
116
- 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"]),
117
- # gr.inputs.Number(label="Valor residual (0, 0.1 ou 0.2)", default=0.2)
118
- gr.inputs.Dropdown(label="Valor residual (0, 0.1 ou 0.2)", choices=["0", "0.1", "0.2"])
119
  ]
120
 
121
  saida = gr.outputs.JSON()
122
 
123
- # # Add a button to print the outputs
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()