DavidSB commited on
Commit
134bb33
·
1 Parent(s): 7ea822d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -9
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 (m²): {area}
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: {round(valor_cub, 2)}
226
  Fator local: {fator_local}
227
  Fator local(justificativa): {just_fator_local}
228
- Valor sem depreciação: {Valor_sem_deprec}
 
 
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 final construção: {Valor_com_deprec}
 
 
 
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
- Valor do Imóvel: {valor_imovel}
 
 
 
 
 
 
 
 
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
- p.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT # Define o alinhamento para à esquerda
 
 
 
 
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}
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),