Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -19,7 +19,7 @@ ultimo_cub = df_cub.columns[-1]
|
|
19 |
|
20 |
|
21 |
# Função para calcular o valor do imóvel
|
22 |
-
def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-",
|
23 |
lograd="-", munic="-", tipo_imo="-", solic="-", finalidade="-", objetivo="-", press="-",
|
24 |
infra="Água Potável", serv="Coleta de Lixo", uso="Residencial", pad_reg="-", tipo_via="-", obs_gerais="-",
|
25 |
per="Sem destaque", ofe="Sem destaque", liq="Sem destaque",
|
@@ -184,12 +184,14 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
184 |
# -------------------------------------- #
|
185 |
|
186 |
# criação de strings para os relatórios da interface e do word
|
|
|
187 |
dados_resp = f"""
|
188 |
Responsável Técnico: {nome}
|
189 |
Profissão: {prof}
|
190 |
Entidade de Classe: {ent}
|
191 |
Número do registro: {reg}
|
192 |
"""
|
|
|
193 |
introd = f"""
|
194 |
Logradouro e número: {lograd}
|
195 |
Município: {munic}
|
@@ -199,6 +201,7 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
199 |
Objetivo: {objetivo}
|
200 |
Pressupostos, Ressalvas e Fatores Limitantes: {press}
|
201 |
"""
|
|
|
202 |
regiao = f"""
|
203 |
Infraestrutura: {str(infra).replace("[", "").replace("]", "").replace("'", "")}
|
204 |
Serviços públicos: {str(serv).replace("[", "").replace("]", "").replace("'", "")}
|
@@ -207,13 +210,18 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
207 |
Tipo de via de acesso: {tipo_via}
|
208 |
Outras observações: {obs_gerais}
|
209 |
"""
|
|
|
210 |
diag = f"""
|
211 |
Performance: {per}
|
212 |
Nível de Ofertas do Segmento: {ofe}
|
213 |
Liquidez: {liq}
|
214 |
"""
|
|
|
|
|
|
|
|
|
215 |
valor_inicial = f"""
|
216 |
-
Área construída
|
217 |
Data de referência: {data_refer.strftime("%m/%Y")}
|
218 |
Data da construção: {data_const_str}
|
219 |
Data do CUB: {data_cub.strftime("%m/%Y")}
|
@@ -222,11 +230,22 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
222 |
Estimativa do custo direto: {est_custo_dir}
|
223 |
BDI (%): {BDI}
|
224 |
Método de elaboração do BDI: {BDI_tipo}
|
225 |
-
Valor CUB: {
|
226 |
Fator local: {fator_local}
|
227 |
Fator local(justificativa): {just_fator_local}
|
228 |
-
|
|
|
|
|
229 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
230 |
deprec = f"""
|
231 |
Tipologia: {tipologia}
|
232 |
Vida útil da tipologia: {int(vdu['VIDAUTIL'])}
|
@@ -237,20 +256,53 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
237 |
Valor residual (0, 0.1 ou 0.2): {VR}
|
238 |
Forma de cálculo da depreciação física: {deprec}
|
239 |
Kd: {kd}
|
240 |
-
Valor
|
|
|
|
|
|
|
241 |
Especificação da Avaliação (benfeitorias) - Método da Quantificação do Custo: {est_cr}
|
242 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
243 |
valor_ter = f"""
|
244 |
-
Valor do Terreno: {valor_terreno}
|
245 |
Especificação da Avaliação (terreno ou gleba) - Método Comparativo ou Involutivo: {est_ter}
|
246 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
valor_final = f"""
|
248 |
FC (Fator de Comercialização): {fc}
|
249 |
Observação sobre o FC: {fc_just}
|
250 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
251 |
Especificação da Avaliação - Método Evolutivo: {fundamentacao_evolutivo}
|
252 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
assinatura = f"""
|
|
|
|
|
|
|
254 |
{nome} | {prof}
|
255 |
{ent}{reg}
|
256 |
"""
|
@@ -282,7 +334,11 @@ def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-"
|
|
282 |
p = doc.add_paragraph()
|
283 |
run = p.add_run(content)
|
284 |
run.font.size = Pt(12)
|
285 |
-
|
|
|
|
|
|
|
|
|
286 |
|
287 |
# Salvar o documento em um arquivo .doc
|
288 |
doc.save('relatorio_avaliacao.doc')
|
@@ -304,6 +360,7 @@ inputs = [
|
|
304 |
gr.Dropdown(["Engenheiro Civil", "Arquiteto e Urbanista", "Corretor de Imóveis"],label="Profissão", value="-"),
|
305 |
gr.Dropdown(["CREA", "CAU", "CRECI"],label="Entidade de Classe", value="-"),
|
306 |
gr.Number(label="Nº do registro", value="0"),
|
|
|
307 |
|
308 |
# Introdução
|
309 |
gr.Textbox(label="Endereço (Logradouro, nº e bairro)", value="-"),
|
@@ -382,7 +439,7 @@ inputs = [
|
|
382 |
gr.Radio(["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",
|
383 |
"Por métodos técnicos consagrados, considerando-se idade, vida útil e estado de conservação",
|
384 |
"Arbitrado"], label="Depreciação Física", info="Forma pela qual a depreciação física foi calculada",
|
385 |
-
value="Por métodos técnicos consagrados"),
|
386 |
|
387 |
# Valor do Terreno
|
388 |
gr.Number(label="Valor do Terreno", value=0),
|
|
|
19 |
|
20 |
|
21 |
# Função para calcular o valor do imóvel
|
22 |
+
def calcular_valor_imovel(nome="-", prof="Engenheiro Civil", ent="CREA", reg="-", data=None,
|
23 |
lograd="-", munic="-", tipo_imo="-", solic="-", finalidade="-", objetivo="-", press="-",
|
24 |
infra="Água Potável", serv="Coleta de Lixo", uso="Residencial", pad_reg="-", tipo_via="-", obs_gerais="-",
|
25 |
per="Sem destaque", ofe="Sem destaque", liq="Sem destaque",
|
|
|
184 |
# -------------------------------------- #
|
185 |
|
186 |
# criação de strings para os relatórios da interface e do word
|
187 |
+
|
188 |
dados_resp = f"""
|
189 |
Responsável Técnico: {nome}
|
190 |
Profissão: {prof}
|
191 |
Entidade de Classe: {ent}
|
192 |
Número do registro: {reg}
|
193 |
"""
|
194 |
+
#####
|
195 |
introd = f"""
|
196 |
Logradouro e número: {lograd}
|
197 |
Município: {munic}
|
|
|
201 |
Objetivo: {objetivo}
|
202 |
Pressupostos, Ressalvas e Fatores Limitantes: {press}
|
203 |
"""
|
204 |
+
#####
|
205 |
regiao = f"""
|
206 |
Infraestrutura: {str(infra).replace("[", "").replace("]", "").replace("'", "")}
|
207 |
Serviços públicos: {str(serv).replace("[", "").replace("]", "").replace("'", "")}
|
|
|
210 |
Tipo de via de acesso: {tipo_via}
|
211 |
Outras observações: {obs_gerais}
|
212 |
"""
|
213 |
+
#####
|
214 |
diag = f"""
|
215 |
Performance: {per}
|
216 |
Nível de Ofertas do Segmento: {ofe}
|
217 |
Liquidez: {liq}
|
218 |
"""
|
219 |
+
#####
|
220 |
+
tipo_cub = tipo_cub.replace('.', '@').replace(',', '.').replace('@', ',')
|
221 |
+
est_custo_dir = est_custo_dir.replace('.', '@').replace(',', '.').replace('@', ',')
|
222 |
+
just_fator_local = just_fator_local.replace('.', '@').replace(',', '.').replace('@', ',')
|
223 |
valor_inicial = f"""
|
224 |
+
Área construída : {area:,.2f} m²
|
225 |
Data de referência: {data_refer.strftime("%m/%Y")}
|
226 |
Data da construção: {data_const_str}
|
227 |
Data do CUB: {data_cub.strftime("%m/%Y")}
|
|
|
230 |
Estimativa do custo direto: {est_custo_dir}
|
231 |
BDI (%): {BDI}
|
232 |
Método de elaboração do BDI: {BDI_tipo}
|
233 |
+
Valor CUB: R$ {valor_cub:,.2f}
|
234 |
Fator local: {fator_local}
|
235 |
Fator local(justificativa): {just_fator_local}
|
236 |
+
|
237 |
+
Valor antes da depreciação = área construída * CUB * fator adequação CUB * (1 + BDI / 100) * fator local
|
238 |
+
Valor sem depreciação: R$ {Valor_sem_deprec:,.2f}
|
239 |
"""
|
240 |
+
|
241 |
+
# Substituindo ponto por vírgula
|
242 |
+
valor_inicial = valor_inicial.replace('.', '@')
|
243 |
+
valor_inicial = valor_inicial.replace(',', '.')
|
244 |
+
valor_inicial = valor_inicial.replace('@', ',')
|
245 |
+
|
246 |
+
#####
|
247 |
+
valor_obs = valor_obs.replace('.', '@').replace(',', '.').replace('@', ',')
|
248 |
+
deprec = deprec.replace('.', '@').replace(',', '.').replace('@', ',')
|
249 |
deprec = f"""
|
250 |
Tipologia: {tipologia}
|
251 |
Vida útil da tipologia: {int(vdu['VIDAUTIL'])}
|
|
|
256 |
Valor residual (0, 0.1 ou 0.2): {VR}
|
257 |
Forma de cálculo da depreciação física: {deprec}
|
258 |
Kd: {kd}
|
259 |
+
onde: Kd = (Valor residual + (1 - percentual de depreciação)*(1 - Valor residual))
|
260 |
+
|
261 |
+
Valor depois da depreciação = (Valor antes da depreciação) x Kd (com coeficiente de valor residual)
|
262 |
+
Valor final construção: R$ {Valor_com_deprec:,.2f}
|
263 |
Especificação da Avaliação (benfeitorias) - Método da Quantificação do Custo: {est_cr}
|
264 |
"""
|
265 |
+
# Substituindo ponto por vírgula
|
266 |
+
deprec = deprec.replace('.', '@')
|
267 |
+
deprec = deprec.replace(',', '.')
|
268 |
+
deprec = deprec.replace('@', ',')
|
269 |
+
|
270 |
+
#####
|
271 |
valor_ter = f"""
|
272 |
+
Valor do Terreno: R$ {valor_terreno:,.2f}
|
273 |
Especificação da Avaliação (terreno ou gleba) - Método Comparativo ou Involutivo: {est_ter}
|
274 |
"""
|
275 |
+
# Substituindo ponto por vírgula
|
276 |
+
valor_ter = valor_ter.replace('.', '@')
|
277 |
+
valor_ter = valor_ter.replace(',', '.')
|
278 |
+
valor_ter = valor_ter.replace('@', ',')
|
279 |
+
|
280 |
+
#####
|
281 |
valor_final = f"""
|
282 |
FC (Fator de Comercialização): {fc}
|
283 |
Observação sobre o FC: {fc_just}
|
284 |
+
|
285 |
+
VI = (VT + CA) * FC
|
286 |
+
Onde:
|
287 |
+
VI: Valor estimado do imóvel;
|
288 |
+
VT: Valor estimado do terreno;
|
289 |
+
CA: Custo de reedição das benfeitorias;
|
290 |
+
FC: Fator de comercialização.
|
291 |
+
|
292 |
+
Valor do Imóvel: R$ {valor_imovel:,.2f}
|
293 |
Especificação da Avaliação - Método Evolutivo: {fundamentacao_evolutivo}
|
294 |
"""
|
295 |
+
#####
|
296 |
+
# Substituindo ponto por vírgula
|
297 |
+
valor_final = valor_final.replace('.', '@')
|
298 |
+
valor_final = valor_final.replace(',', '.')
|
299 |
+
valor_final = valor_final.replace('@', ',')
|
300 |
+
|
301 |
+
#####
|
302 |
assinatura = f"""
|
303 |
+
Data: {data}
|
304 |
+
|
305 |
+
|
306 |
{nome} | {prof}
|
307 |
{ent}{reg}
|
308 |
"""
|
|
|
334 |
p = doc.add_paragraph()
|
335 |
run = p.add_run(content)
|
336 |
run.font.size = Pt(12)
|
337 |
+
|
338 |
+
if title == "": # Se for a seção de assinatura
|
339 |
+
p.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT # Define o alinhamento para à direita
|
340 |
+
else:
|
341 |
+
p.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # Define o alinhamento para à esquerda
|
342 |
|
343 |
# Salvar o documento em um arquivo .doc
|
344 |
doc.save('relatorio_avaliacao.doc')
|
|
|
360 |
gr.Dropdown(["Engenheiro Civil", "Arquiteto e Urbanista", "Corretor de Imóveis"],label="Profissão", value="-"),
|
361 |
gr.Dropdown(["CREA", "CAU", "CRECI"],label="Entidade de Classe", value="-"),
|
362 |
gr.Number(label="Nº do registro", value="0"),
|
363 |
+
gr.Textbox(label="Data", value=""),
|
364 |
|
365 |
# Introdução
|
366 |
gr.Textbox(label="Endereço (Logradouro, nº e bairro)", value="-"),
|
|
|
439 |
gr.Radio(["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",
|
440 |
"Por métodos técnicos consagrados, considerando-se idade, vida útil e estado de conservação",
|
441 |
"Arbitrado"], label="Depreciação Física", info="Forma pela qual a depreciação física foi calculada",
|
442 |
+
value="Por métodos técnicos consagrados, considerando-se idade, vida útil e estado de conservação"),
|
443 |
|
444 |
# Valor do Terreno
|
445 |
gr.Number(label="Valor do Terreno", value=0),
|