Update app.py
Browse files
app.py
CHANGED
@@ -92,38 +92,27 @@ Tabela de Valorização do Imóvel:
|
|
92 |
|
93 |
explicacao = """
|
94 |
---
|
95 |
-
|
96 |
|
97 |
-
1
|
98 |
-
|
99 |
Onde:
|
100 |
-
-
|
101 |
-
-
|
102 |
-
-
|
103 |
|
104 |
-
2
|
105 |
-
|
106 |
-
|
107 |
|
108 |
-
3
|
109 |
-
|
110 |
-
Onde:
|
111 |
-
- **Rₘ**: Receita mensal líquida
|
112 |
-
- **PMT**: Parcela do financiamento
|
113 |
-
- **I**: Investimento próprio
|
114 |
|
115 |
-
4
|
116 |
-
|
117 |
-
Onde:
|
118 |
-
- **Rₐ**: Receita anual líquida
|
119 |
|
120 |
-
5
|
121 |
-
|
122 |
-
Onde:
|
123 |
-
- **VF**: Valor futuro
|
124 |
-
- **VI**: Valor inicial
|
125 |
-
- **v**: taxa de valorização anual
|
126 |
-
- **t**: anos (máx. 10 anos considerados)
|
127 |
---
|
128 |
"""
|
129 |
|
@@ -147,7 +136,8 @@ def gerar_pdf(valor_imovel, investimento_proprio, aluguel, anos, selic, desconto
|
|
147 |
pdf.set_font("Arial", size=10)
|
148 |
for linha in resultados.strip().split("\n"):
|
149 |
if linha.strip():
|
150 |
-
|
|
|
151 |
|
152 |
if graph_path and os.path.exists(graph_path):
|
153 |
pdf.add_page()
|
|
|
92 |
|
93 |
explicacao = """
|
94 |
---
|
95 |
+
Explicações e Fórmulas Utilizadas:
|
96 |
|
97 |
+
1. Financiamento Price (Sistema Francês de Amortização):
|
98 |
+
PMT = P x [i x (1 + i)^n] / [(1 + i)^n - 1]
|
99 |
Onde:
|
100 |
+
- P: valor financiado
|
101 |
+
- i: taxa de juros mensal
|
102 |
+
- n: número total de parcelas
|
103 |
|
104 |
+
2. Financiamento SAC (Sistema de Amortização Constante):
|
105 |
+
A = P / n
|
106 |
+
Parcela mensal = A + juros sobre saldo devedor
|
107 |
|
108 |
+
3. ROI Mensal (%):
|
109 |
+
ROI mensal = [(Receita mensal líquida - PMT) / Investimento] × 100
|
|
|
|
|
|
|
|
|
110 |
|
111 |
+
4. ROI Anual (%):
|
112 |
+
ROI anual = [(Receita anual líquida - Total parcelas no ano) / Investimento] × 100
|
|
|
|
|
113 |
|
114 |
+
5. Valorização do Imóvel:
|
115 |
+
Valor Futuro = Valor Inicial × (1 + taxa)^anos (máx. 10 anos)
|
|
|
|
|
|
|
|
|
|
|
116 |
---
|
117 |
"""
|
118 |
|
|
|
136 |
pdf.set_font("Arial", size=10)
|
137 |
for linha in resultados.strip().split("\n"):
|
138 |
if linha.strip():
|
139 |
+
linha_latin1 = linha.encode('latin-1', errors='ignore').decode('latin-1')
|
140 |
+
pdf.multi_cell(0, 6, linha_latin1)
|
141 |
|
142 |
if graph_path and os.path.exists(graph_path):
|
143 |
pdf.add_page()
|