bdpformulas 1.0.51 → 1.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -153,8 +153,9 @@ class PrestamoDirectoHandler {
|
|
|
153
153
|
this.prestamo.AmortizacionesCapital = amortizacion;
|
|
154
154
|
}
|
|
155
155
|
setPlazoRemanente() {
|
|
156
|
-
this.prestamo.PlazoRemanenteAños =
|
|
157
|
-
(0, utils_1.ourParseFloat)(this.prestamo.
|
|
156
|
+
this.prestamo.PlazoRemanenteAños =
|
|
157
|
+
(0, utils_1.ourParseFloat)(this.prestamo.Plazo) -
|
|
158
|
+
(0, utils_1.ourParseFloat)(this.prestamo.Gracia) / 12;
|
|
158
159
|
}
|
|
159
160
|
setPlazos() {
|
|
160
161
|
this.prestamo.Plazos = (0, utils_1.generatePlazos)({
|
|
@@ -196,7 +197,7 @@ class PrestamoDirectoHandler {
|
|
|
196
197
|
if (i === 1) {
|
|
197
198
|
if (plazo && this.prestamo.AnnoProyectadoInicio === 1) {
|
|
198
199
|
if ((0, utils_1.ourParseFloat)(this.prestamo.PlazoRemanenteAños) < plazo) {
|
|
199
|
-
value = 0;
|
|
200
|
+
value = (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal);
|
|
200
201
|
}
|
|
201
202
|
else {
|
|
202
203
|
value =
|
|
@@ -13,7 +13,7 @@ exports.frecuenciaMeses = {
|
|
|
13
13
|
function simuladorCuotas({ monto, plazo, frecuencia, tipoCuota, periodoGracia = 0, tasaInteres = 0, polizaSD = 0, plazoMeses = false }) {
|
|
14
14
|
const mesesPorFrecuencia = exports.frecuenciaMeses[frecuencia];
|
|
15
15
|
const plazoEnMeses = !plazoMeses ? plazo * 12 : plazo;
|
|
16
|
-
const cuotasTotales =
|
|
16
|
+
const cuotasTotales = plazoEnMeses / mesesPorFrecuencia;
|
|
17
17
|
const tasaPorPeriodo = tasaInteres / (12 / mesesPorFrecuencia) / 100;
|
|
18
18
|
let saldoCapital = monto;
|
|
19
19
|
const cuotas = [];
|
|
@@ -22,29 +22,40 @@ function simuladorCuotas({ monto, plazo, frecuencia, tipoCuota, periodoGracia =
|
|
|
22
22
|
let interesAnual = 0;
|
|
23
23
|
let cuotaAnual = 0;
|
|
24
24
|
let anioActual = 1;
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
? (monto * tasaPorPeriodo) /
|
|
28
|
-
(1 - Math.pow(1 + tasaPorPeriodo, -cuotasTotales))
|
|
29
|
-
: 0;
|
|
25
|
+
const diasFrecuencia = 360 / (mesesPorFrecuencia * 30);
|
|
26
|
+
const diasGracia = periodoGracia / 12;
|
|
30
27
|
for (let i = 1; i <= cuotasTotales; i++) {
|
|
28
|
+
if (i > 1) {
|
|
29
|
+
const anteriorCuota = cuotas.at(-1);
|
|
30
|
+
saldoCapital =
|
|
31
|
+
ourParseFloat(anteriorCuota?.saldoCapital) -
|
|
32
|
+
ourParseFloat(anteriorCuota?.amortizacion);
|
|
33
|
+
}
|
|
34
|
+
const interes = saldoCapital * tasaPorPeriodo;
|
|
31
35
|
let amortizacion = 0;
|
|
32
|
-
let
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
cuotaCredito = cuotaFija;
|
|
39
|
-
amortizacion = cuotaCredito - interes;
|
|
36
|
+
let cuotaCredito;
|
|
37
|
+
if (tipoCuota === 'FIJA') {
|
|
38
|
+
const tasaInteresFrecuencia = tasaInteres / 100 / diasFrecuencia;
|
|
39
|
+
if (i > 1) {
|
|
40
|
+
const anteriorCuota = cuotas.at(-1);
|
|
41
|
+
cuotaCredito = anteriorCuota?.cuotaCredito ?? 0;
|
|
40
42
|
}
|
|
41
43
|
else {
|
|
44
|
+
cuotaCredito =
|
|
45
|
+
monto *
|
|
46
|
+
(tasaInteresFrecuencia /
|
|
47
|
+
(1 -
|
|
48
|
+
Math.pow(1 + tasaInteresFrecuencia, -(diasFrecuencia *
|
|
49
|
+
((plazoEnMeses - periodoGracia) / 12)))));
|
|
50
|
+
}
|
|
51
|
+
amortizacion = cuotaCredito - interes;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
if (i > diasFrecuencia * diasGracia) {
|
|
42
55
|
amortizacion =
|
|
43
|
-
monto /
|
|
44
|
-
(cuotasTotales -
|
|
45
|
-
Math.ceil(periodoGracia / mesesPorFrecuencia));
|
|
46
|
-
cuotaCredito = amortizacion + interes;
|
|
56
|
+
monto / (diasFrecuencia * (plazoEnMeses / 12 - diasGracia));
|
|
47
57
|
}
|
|
58
|
+
cuotaCredito = amortizacion + interes;
|
|
48
59
|
}
|
|
49
60
|
const cuotaTotal = cuotaCredito + polizaSD;
|
|
50
61
|
cuotas.push({
|
|
@@ -54,10 +65,8 @@ function simuladorCuotas({ monto, plazo, frecuencia, tipoCuota, periodoGracia =
|
|
|
54
65
|
cuotaCredito,
|
|
55
66
|
poliza: polizaSD,
|
|
56
67
|
cuotaTotal,
|
|
57
|
-
saldoCapital
|
|
58
|
-
tiempoDias
|
|
68
|
+
saldoCapital
|
|
59
69
|
});
|
|
60
|
-
saldoCapital -= amortizacion;
|
|
61
70
|
// Acumular valores anuales
|
|
62
71
|
capitalAnual += amortizacion;
|
|
63
72
|
interesAnual += interes;
|