bdpformulas 1.0.49 → 1.0.51
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.
- package/build/context.js +1 -0
- package/build/models/eeff/admFinanciera/index.d.ts +143 -0
- package/build/models/eeff/admFinanciera/index.js +26 -0
- package/build/strategies/agriculture/balanceAgr.strategy.js +1 -0
- package/build/strategies/agriculture/costos.detail/costosCalc.js +1 -1
- package/build/strategies/agriculture/flujoProyAgr.strategy.js +3 -2
- package/build/strategies/agriculture/ventas.detail/ventas.calc.js +2 -1
- package/build/strategies/analisisFinancieros.strategy.js +20 -22
- package/build/strategies/balance.strategy.js +14 -2
- package/build/strategies/common/analisisFinCalculos/analisisGrafico.calc.js +47 -45
- package/build/strategies/common/analisisFinCalculos/ratios.calc.js +158 -157
- package/build/strategies/common/balance.calc.js +3 -1
- package/build/strategies/common/balanceCalculos/balanceAux.calc.js +11 -1
- package/build/strategies/common/balanceCalculos/flujoAux.calc.js +2 -11
- package/build/strategies/common/flujoCalculos/flujoConstructor.js +313 -308
- package/build/strategies/eeff/admFinanciera/amortizaciones.d.ts +8 -0
- package/build/strategies/eeff/admFinanciera/amortizaciones.js +31 -0
- package/build/strategies/eeff/admFinanciera/aplicacionesHandler.d.ts +16 -0
- package/build/strategies/eeff/admFinanciera/aplicacionesHandler.js +202 -0
- package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.d.ts +7 -0
- package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.js +63 -0
- package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.d.ts +13 -0
- package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.js +80 -0
- package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.d.ts +26 -0
- package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.js +310 -0
- package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.d.ts +20 -0
- package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.js +162 -0
- package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.d.ts +51 -0
- package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.js +291 -0
- package/build/strategies/eeff/admFinanciera/utils.d.ts +98 -0
- package/build/strategies/eeff/admFinanciera/utils.js +218 -0
- package/build/strategies/eeff/admFinanciera.strategy.d.ts +11 -7
- package/build/strategies/eeff/admFinanciera.strategy.js +139 -85
- package/build/strategies/eeff/balanceEEFF.strategy.js +3 -2
- package/build/strategies/eeff/flujoProyEEFF.strategy.js +3 -2
- package/build/strategies/eeff/index.d.ts +1 -0
- package/build/strategies/eeff/index.js +1509 -0
- package/build/strategies/general/balanceGeneral.strategy.js +2 -1
- package/build/strategies/general/flujoProyGeneral.strategy.js +2 -1
- package/build/strategies/pecuary/balancePec.strategy.js +7 -6
- package/build/strategies/pecuary/desarrollo.detail/desarrolloCalc.js +11 -3
- package/build/strategies/pecuary/desarrollo.strategy.js +2 -2
- package/build/strategies/pecuary/flujoProyPec.strategy.js +7 -6
- package/build/strategies/pecuary/ventas.detail/estacionalidadCalc.js +7 -1
- package/build/strategies/pecuary/ventas.detail/ventasIngresosCalc.js +7 -1
- package/build/strategies/production/balancePrd.strategy.js +7 -6
- package/build/strategies/production/costos.detail/costosCalc.js +1 -1
- package/build/strategies/production/flujoProyPrd.strategy.js +7 -6
- package/package.json +26 -21
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PrestamoDirecto, ProyeccionPrestamo } from "../../../models/eeff/admFinanciera";
|
|
2
|
+
import { ResumenAnual } from "./utils";
|
|
3
|
+
export declare class Amortizaciones {
|
|
4
|
+
cuadroAmortizacionesCapitalVariable: Partial<ProyeccionPrestamo>[];
|
|
5
|
+
cuadroAmortizacionesCapitalFija: Partial<ProyeccionPrestamo>[];
|
|
6
|
+
constructor();
|
|
7
|
+
agregarAmortizacionCapital(prestamo: Partial<PrestamoDirecto>, resumenAnual: ResumenAnual[]): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Amortizaciones = void 0;
|
|
4
|
+
class Amortizaciones {
|
|
5
|
+
cuadroAmortizacionesCapitalVariable;
|
|
6
|
+
cuadroAmortizacionesCapitalFija;
|
|
7
|
+
constructor() {
|
|
8
|
+
this.cuadroAmortizacionesCapitalVariable = [];
|
|
9
|
+
this.cuadroAmortizacionesCapitalFija = [];
|
|
10
|
+
}
|
|
11
|
+
agregarAmortizacionCapital(prestamo, resumenAnual) {
|
|
12
|
+
const añoProyectadoInicio = prestamo.AnnoProyectadoInicio;
|
|
13
|
+
const amortizacion = { Descripcion: prestamo.Descripcion };
|
|
14
|
+
if (añoProyectadoInicio && añoProyectadoInicio <= 3) {
|
|
15
|
+
let i = añoProyectadoInicio;
|
|
16
|
+
resumenAnual.forEach(resumen => {
|
|
17
|
+
amortizacion[`Gestion${i}`] = resumen.capitalAnual;
|
|
18
|
+
i++;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
if (prestamo.TipoFacilidad == 'FIJA') {
|
|
22
|
+
this.cuadroAmortizacionesCapitalFija.push(amortizacion);
|
|
23
|
+
this.cuadroAmortizacionesCapitalVariable.push({});
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.cuadroAmortizacionesCapitalVariable.push(amortizacion);
|
|
27
|
+
this.cuadroAmortizacionesCapitalFija.push({});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.Amortizaciones = Amortizaciones;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AdministracionFinancieraCalcData } from '../../../models/eeff/admFinanciera';
|
|
2
|
+
interface AplicacionesData {
|
|
3
|
+
data: AdministracionFinancieraCalcData;
|
|
4
|
+
}
|
|
5
|
+
export declare class AplicacionesHandler {
|
|
6
|
+
private data;
|
|
7
|
+
constructor({ data }: AplicacionesData);
|
|
8
|
+
handle(): void;
|
|
9
|
+
private setKOLineaCredito;
|
|
10
|
+
private setKOPrestamoDirecto;
|
|
11
|
+
private setKIPrestamoDirecto;
|
|
12
|
+
private setMixtos;
|
|
13
|
+
private setKILeasingFinanciero;
|
|
14
|
+
private setKIKOLineas;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AplicacionesHandler = void 0;
|
|
4
|
+
const admFinanciera_1 = require("../../../models/eeff/admFinanciera");
|
|
5
|
+
const proyeccionPrestamosDirectosHandler_1 = require("./proyeccionPrestamosDirectosHandler");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
class AplicacionesHandler {
|
|
8
|
+
data;
|
|
9
|
+
constructor({ data }) {
|
|
10
|
+
this.data = data;
|
|
11
|
+
}
|
|
12
|
+
handle() {
|
|
13
|
+
this.setKOLineaCredito();
|
|
14
|
+
this.setKOPrestamoDirecto();
|
|
15
|
+
this.setKIPrestamoDirecto();
|
|
16
|
+
this.setMixtos();
|
|
17
|
+
this.setKILeasingFinanciero();
|
|
18
|
+
this.setKIKOLineas();
|
|
19
|
+
}
|
|
20
|
+
setKOLineaCredito() {
|
|
21
|
+
const filaTotales = {
|
|
22
|
+
Descripcion: 'KO - Línea de Crédito 100% KO',
|
|
23
|
+
Clasificador: 'T'
|
|
24
|
+
};
|
|
25
|
+
const filas = this.data.PrestamoBajoLinea.filter((pr) => pr.IndicadorABM !== 'B' && pr.Clasificador !== 'T').map((pr) => {
|
|
26
|
+
for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
|
|
27
|
+
filaTotales[`Gestion${i}`] =
|
|
28
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${i}`]) +
|
|
29
|
+
(0, utils_1.ourParseFloat)(pr.Aplicaciones?.[`Gestion${i}`]);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
Descripcion: pr.Descripcion,
|
|
33
|
+
...pr.Aplicaciones
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
37
|
+
}
|
|
38
|
+
setKOPrestamoDirecto() {
|
|
39
|
+
const filaTotales = {
|
|
40
|
+
Descripcion: 'KO - Prestamo Directo',
|
|
41
|
+
Clasificador: 'T'
|
|
42
|
+
};
|
|
43
|
+
const filas = this.data.PrestamoDirecto.filter((pr) => pr.IndicadorABM !== 'B' &&
|
|
44
|
+
pr.TipoExistencia === 'NUEVA' &&
|
|
45
|
+
pr.DestinoOperacionId === admFinanciera_1.TipoDestinoEnum.CapitalOperacion).map((pr) => {
|
|
46
|
+
const proyeccion = {};
|
|
47
|
+
if (pr.AnnoProyectadoInicio) {
|
|
48
|
+
const value = (0, utils_1.ourParseFloat)(pr.MontoOriginal);
|
|
49
|
+
proyeccion[`Gestion${pr.AnnoProyectadoInicio}`] = value;
|
|
50
|
+
filaTotales[`Gestion${pr.AnnoProyectadoInicio}`] =
|
|
51
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${pr.AnnoProyectadoInicio}`]) + value;
|
|
52
|
+
}
|
|
53
|
+
return {
|
|
54
|
+
Descripcion: pr.Descripcion,
|
|
55
|
+
...proyeccion
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
for (let i = 2; i <= this.data.CantidadProyeccion; i++) {
|
|
59
|
+
const KOBDP = (0, utils_1.ourParseFloat)(this.data.ProyeccionPrestamosDirectos[proyeccionPrestamosDirectosHandler_1.FILAS_PROYECCION_PRESTAMOS_DIRECTOS['KO - Porción CP - BDP SAM']][`Gestion${i - 1}`]);
|
|
60
|
+
const KOOtros = (0, utils_1.ourParseFloat)(this.data.ProyeccionPrestamosDirectos[proyeccionPrestamosDirectosHandler_1.FILAS_PROYECCION_PRESTAMOS_DIRECTOS['KO - Porción CP - Otras EIFs']][`Gestion${i - 1}`]);
|
|
61
|
+
filaTotales[`Gestion${i}`] =
|
|
62
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${i}`]) - (KOBDP + KOOtros);
|
|
63
|
+
}
|
|
64
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
65
|
+
}
|
|
66
|
+
setKIPrestamoDirecto() {
|
|
67
|
+
const filaTotales = {
|
|
68
|
+
Descripcion: 'KI - Prestamo Directo',
|
|
69
|
+
Clasificador: 'T'
|
|
70
|
+
};
|
|
71
|
+
const filas = this.data.PrestamoDirecto.filter((pr) => pr.IndicadorABM !== 'B' &&
|
|
72
|
+
pr.TipoExistencia === 'NUEVA' &&
|
|
73
|
+
pr.DestinoOperacionId === admFinanciera_1.TipoDestinoEnum.CapitalInversion).map((pr) => {
|
|
74
|
+
const proyeccion = {};
|
|
75
|
+
if (pr.AnnoProyectadoInicio) {
|
|
76
|
+
const value = (0, utils_1.ourParseFloat)(pr.MontoOriginal);
|
|
77
|
+
proyeccion[`Gestion${pr.AnnoProyectadoInicio}`] = value;
|
|
78
|
+
filaTotales[`Gestion${pr.AnnoProyectadoInicio}`] =
|
|
79
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${pr.AnnoProyectadoInicio}`]) + value;
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
Descripcion: pr.Descripcion,
|
|
83
|
+
...proyeccion
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
87
|
+
}
|
|
88
|
+
setMixtos() {
|
|
89
|
+
const filaTotales = {
|
|
90
|
+
Descripcion: 'MIXTO - Pagares, Bonos, Etc.',
|
|
91
|
+
Clasificador: 'T'
|
|
92
|
+
};
|
|
93
|
+
const filas = this.data.PrestamoDirecto.filter((pr) => pr.IndicadorABM !== 'B' &&
|
|
94
|
+
pr.TipoExistencia === 'NUEVA' &&
|
|
95
|
+
pr.DestinoOperacionId === admFinanciera_1.TipoDestinoEnum.Otros).map((pr) => {
|
|
96
|
+
const proyeccion = {};
|
|
97
|
+
if (pr.AnnoProyectadoInicio) {
|
|
98
|
+
const value = (0, utils_1.ourParseFloat)(pr.MontoOriginal);
|
|
99
|
+
proyeccion[`Gestion${pr.AnnoProyectadoInicio}`] = value;
|
|
100
|
+
filaTotales[`Gestion${pr.AnnoProyectadoInicio}`] =
|
|
101
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${pr.AnnoProyectadoInicio}`]) + value;
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
Descripcion: pr.Descripcion,
|
|
105
|
+
...proyeccion
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
109
|
+
}
|
|
110
|
+
setKILeasingFinanciero() {
|
|
111
|
+
const filaTotales = {
|
|
112
|
+
Descripcion: 'KI - Leasing Financiero',
|
|
113
|
+
Clasificador: 'T'
|
|
114
|
+
};
|
|
115
|
+
const filas = this.data.PrestamoLeasing.filter((pr) => pr.IndicadorABM !== 'B' &&
|
|
116
|
+
pr.TipoOperacion2 === admFinanciera_1.TipoOperacionExistencia.Nueva).map((pr) => {
|
|
117
|
+
const proyeccion = {};
|
|
118
|
+
if (pr.AnnoProyectadoInicio) {
|
|
119
|
+
const value = (0, utils_1.ourParseFloat)(pr.ActivacionOperacion);
|
|
120
|
+
proyeccion[`Gestion${pr.AnnoProyectadoInicio}`] = value;
|
|
121
|
+
filaTotales[`Gestion${pr.AnnoProyectadoInicio}`] =
|
|
122
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${pr.AnnoProyectadoInicio}`]) + value;
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
Descripcion: pr.Descripcion,
|
|
126
|
+
...proyeccion
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
130
|
+
}
|
|
131
|
+
setKIKOLineas() {
|
|
132
|
+
const filaTotales = {
|
|
133
|
+
Descripcion: 'KO - Línea de Crédito 100% KO',
|
|
134
|
+
Clasificador: 'T'
|
|
135
|
+
};
|
|
136
|
+
const filas = [];
|
|
137
|
+
let i = 0;
|
|
138
|
+
let lineas = this.data.LineasMixtasBDP.filter((lin) => lin.IndicadorABM !== 'B');
|
|
139
|
+
while (i < lineas.length) {
|
|
140
|
+
const filaVencimiento = lineas.at(i + 1);
|
|
141
|
+
if (filaVencimiento?.Clasificador !== 'T') {
|
|
142
|
+
const filaDescripcion = lineas.at(i);
|
|
143
|
+
const filaDeuda = lineas.at(i + 2);
|
|
144
|
+
const fila = {
|
|
145
|
+
Descripcion: filaDescripcion?.Descripcion
|
|
146
|
+
};
|
|
147
|
+
for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
|
|
148
|
+
let value;
|
|
149
|
+
if (i == 1) {
|
|
150
|
+
value =
|
|
151
|
+
(0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${i}`]) +
|
|
152
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i}`]);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
value =
|
|
156
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i}`]) -
|
|
157
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i - 1}`]) +
|
|
158
|
+
(0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${i}`]);
|
|
159
|
+
}
|
|
160
|
+
fila[`Gestion${i}`] = value;
|
|
161
|
+
filaTotales[`Gestion${i}`] =
|
|
162
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${i}`]) + value;
|
|
163
|
+
}
|
|
164
|
+
filas.push(fila);
|
|
165
|
+
}
|
|
166
|
+
i += 4;
|
|
167
|
+
}
|
|
168
|
+
i = 0;
|
|
169
|
+
lineas = this.data.LineasMixtasOtros.filter((lin) => lin.IndicadorABM !== 'B');
|
|
170
|
+
while (i < lineas.length) {
|
|
171
|
+
const filaVencimiento = lineas.at(i + 1);
|
|
172
|
+
if (filaVencimiento?.Clasificador !== 'T') {
|
|
173
|
+
const filaDescripcion = lineas.at(i);
|
|
174
|
+
const filaDeuda = lineas.at(i + 2);
|
|
175
|
+
const fila = {
|
|
176
|
+
Descripcion: filaDescripcion?.Descripcion
|
|
177
|
+
};
|
|
178
|
+
for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
|
|
179
|
+
let value;
|
|
180
|
+
if (i == 1) {
|
|
181
|
+
value =
|
|
182
|
+
(0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${i}`]) +
|
|
183
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i}`]);
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
value =
|
|
187
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i}`]) -
|
|
188
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${i - 1}`]) +
|
|
189
|
+
(0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${i}`]);
|
|
190
|
+
}
|
|
191
|
+
fila[`Gestion${i}`] = value;
|
|
192
|
+
filaTotales[`Gestion${i}`] =
|
|
193
|
+
(0, utils_1.ourParseFloat)(filaTotales[`Gestion${i}`]) + value;
|
|
194
|
+
}
|
|
195
|
+
filas.push(fila);
|
|
196
|
+
}
|
|
197
|
+
i += 4;
|
|
198
|
+
}
|
|
199
|
+
this.data.ProyeccionAplicaciones.push(...filas, filaTotales);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.AplicacionesHandler = AplicacionesHandler;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LineasMixtasHandler = void 0;
|
|
4
|
+
const admFinanciera_1 = require("../../../models/eeff/admFinanciera");
|
|
5
|
+
const utils_1 = require("./utils");
|
|
6
|
+
class LineasMixtasHandler {
|
|
7
|
+
data;
|
|
8
|
+
constructor(data) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
}
|
|
11
|
+
handle() {
|
|
12
|
+
this.formatLineasMixtas(this.data.LineasMixtasBDP);
|
|
13
|
+
this.formatLineasMixtas(this.data.LineasMixtasOtros);
|
|
14
|
+
}
|
|
15
|
+
formatLineasMixtas(lineas) {
|
|
16
|
+
const lineasActivas = lineas.filter((lin) => lin.IndicadorABM !== 'B');
|
|
17
|
+
if (lineasActivas.length) {
|
|
18
|
+
const filasTotales = [
|
|
19
|
+
{
|
|
20
|
+
Descripcion: 'Total Vencimiento Corriente de Deuda de Largo Plazo',
|
|
21
|
+
Clasificador: 'T',
|
|
22
|
+
RubroId: admFinanciera_1.rubros.lineasMixtas.vencimientoCorrienteLargoPlazo
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
Descripcion: 'Total Deuda Financiera de largo plazo',
|
|
26
|
+
Clasificador: 'T',
|
|
27
|
+
RubroId: admFinanciera_1.rubros.lineasMixtas.deudaFinancieraLargoPlazo
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
Descripcion: 'Total Gastos Financieros y Comisiones',
|
|
31
|
+
Clasificador: 'T',
|
|
32
|
+
RubroId: admFinanciera_1.rubros.lineasMixtas.gastosFinancierosYComisiones
|
|
33
|
+
}
|
|
34
|
+
];
|
|
35
|
+
let i = 0;
|
|
36
|
+
while (i < lineasActivas.length) {
|
|
37
|
+
const filaVencimiento = lineasActivas.at(i + 1);
|
|
38
|
+
const filaDeuda = lineasActivas.at(i + 2);
|
|
39
|
+
const filaGastos = lineasActivas.at(i + 3);
|
|
40
|
+
const tasa = (0, utils_1.ourParseFloat)(filaGastos?.Tasa) / 100;
|
|
41
|
+
for (let j = 1; j <= this.data.CantidadProyeccion; j++) {
|
|
42
|
+
if (j > 1 && filaGastos) {
|
|
43
|
+
filaGastos[`Gestion${j}`] = (0, utils_1.ourParseFloat)(((0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${j - 1}`]) +
|
|
44
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${j - 1}`])) *
|
|
45
|
+
tasa);
|
|
46
|
+
}
|
|
47
|
+
filasTotales[0][`Gestion${j}`] =
|
|
48
|
+
(0, utils_1.ourParseFloat)(filasTotales[0][`Gestion${j}`]) +
|
|
49
|
+
(0, utils_1.ourParseFloat)(filaVencimiento?.[`Gestion${j}`]);
|
|
50
|
+
filasTotales[1][`Gestion${j}`] =
|
|
51
|
+
(0, utils_1.ourParseFloat)(filasTotales[1][`Gestion${j}`]) +
|
|
52
|
+
(0, utils_1.ourParseFloat)(filaDeuda?.[`Gestion${j}`]);
|
|
53
|
+
filasTotales[2][`Gestion${j}`] =
|
|
54
|
+
(0, utils_1.ourParseFloat)(filasTotales[2][`Gestion${j}`]) +
|
|
55
|
+
(0, utils_1.ourParseFloat)(filaGastos?.[`Gestion${j}`]);
|
|
56
|
+
}
|
|
57
|
+
i += 4;
|
|
58
|
+
}
|
|
59
|
+
lineas.push(...filasTotales);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.LineasMixtasHandler = LineasMixtasHandler;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AdministracionFinancieraData, PrestamoBajoLinea } from '../../../models/eeff/admFinanciera';
|
|
2
|
+
export declare class PrestamoBajoLineaHandler {
|
|
3
|
+
private data;
|
|
4
|
+
private prestamo;
|
|
5
|
+
constructor(prestamo: Partial<PrestamoBajoLinea>, data: AdministracionFinancieraData);
|
|
6
|
+
handle(): Partial<PrestamoBajoLinea>;
|
|
7
|
+
private setCantidadAños;
|
|
8
|
+
private setSaldoLineaAplicar;
|
|
9
|
+
private setTasaPonderada;
|
|
10
|
+
private setProyecciones;
|
|
11
|
+
private setAplicacion;
|
|
12
|
+
private setProyeccion;
|
|
13
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrestamoBajoLineaHandler = void 0;
|
|
4
|
+
const utils_1 = require("./utils");
|
|
5
|
+
class PrestamoBajoLineaHandler {
|
|
6
|
+
data;
|
|
7
|
+
prestamo;
|
|
8
|
+
constructor(prestamo, data) {
|
|
9
|
+
this.data = data;
|
|
10
|
+
this.prestamo = prestamo;
|
|
11
|
+
}
|
|
12
|
+
handle() {
|
|
13
|
+
this.prestamo.Proyecciones = {};
|
|
14
|
+
this.prestamo.Aplicaciones = {};
|
|
15
|
+
this.setCantidadAños();
|
|
16
|
+
this.setTasaPonderada();
|
|
17
|
+
this.setSaldoLineaAplicar();
|
|
18
|
+
this.setProyecciones();
|
|
19
|
+
return this.prestamo;
|
|
20
|
+
}
|
|
21
|
+
setCantidadAños() {
|
|
22
|
+
let cantidadAños;
|
|
23
|
+
if (this.prestamo.TipoExistencia == 'EXISTENTE' &&
|
|
24
|
+
this.prestamo.VencimientoLinea) {
|
|
25
|
+
const fechaInicio = (0, utils_1.getDateTime)(this.data.InicioProyeccion).endOf('month');
|
|
26
|
+
const fechaVencimiento = (0, utils_1.getDateTime)(this.prestamo.VencimientoLinea).endOf('month');
|
|
27
|
+
const diferenciaAños = Math.ceil(Math.abs(fechaInicio.diff(fechaVencimiento, 'years').years));
|
|
28
|
+
if (diferenciaAños > 0) {
|
|
29
|
+
cantidadAños = diferenciaAños;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
cantidadAños = this.prestamo.Plazo;
|
|
34
|
+
}
|
|
35
|
+
this.prestamo.CantidadAnnos = cantidadAños;
|
|
36
|
+
}
|
|
37
|
+
setSaldoLineaAplicar() {
|
|
38
|
+
this.prestamo.SaldoLineaAplicar =
|
|
39
|
+
(0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal) -
|
|
40
|
+
(0, utils_1.ourParseFloat)(this.prestamo.MontoUtilizado);
|
|
41
|
+
}
|
|
42
|
+
setTasaPonderada() {
|
|
43
|
+
const totalMonto = this.data.PrestamoBajoLinea.filter((pr) => pr.IndicadorABM !== 'B').reduce((acc, curr) => acc + (0, utils_1.ourParseFloat)(curr.MontoOriginal), 0);
|
|
44
|
+
let promedio = 0;
|
|
45
|
+
if (totalMonto) {
|
|
46
|
+
promedio = (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal) / totalMonto;
|
|
47
|
+
}
|
|
48
|
+
this.prestamo.TasaPonderada =
|
|
49
|
+
promedio * (0, utils_1.ourParseFloat)(this.prestamo.Tasa);
|
|
50
|
+
}
|
|
51
|
+
setProyecciones() {
|
|
52
|
+
for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
|
|
53
|
+
this.setProyeccion(i);
|
|
54
|
+
this.setAplicacion(i);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
setAplicacion(gestion) {
|
|
58
|
+
let value;
|
|
59
|
+
if (gestion === 1) {
|
|
60
|
+
if (this.prestamo.TipoExistencia === 'EXISTENTE') {
|
|
61
|
+
value = this.prestamo.SaldoLineaAplicar;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
value = this.prestamo.MontoOriginal;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
value =
|
|
69
|
+
(0, utils_1.ourParseFloat)(this.prestamo.Proyecciones?.[`Gestion${gestion}`]) -
|
|
70
|
+
(0, utils_1.ourParseFloat)(this.prestamo.Proyecciones?.[`Gestion${gestion - 1}`]);
|
|
71
|
+
}
|
|
72
|
+
this.prestamo.Aplicaciones[`Gestion${gestion}`] = (0, utils_1.ourParseFloat)(value);
|
|
73
|
+
}
|
|
74
|
+
setProyeccion(gestion) {
|
|
75
|
+
if (gestion <= (0, utils_1.ourParseFloat)(this.prestamo.CantidadAnnos)) {
|
|
76
|
+
this.prestamo.Proyecciones[`Gestion${gestion}`] = (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.PrestamoBajoLineaHandler = PrestamoBajoLineaHandler;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { AdministracionFinancieraData, PrestamoDirecto } from '../../../models/eeff/admFinanciera';
|
|
2
|
+
interface HandlerData {
|
|
3
|
+
data: AdministracionFinancieraData;
|
|
4
|
+
prestamo: Partial<PrestamoDirecto>;
|
|
5
|
+
}
|
|
6
|
+
export declare class PrestamoDirectoHandler {
|
|
7
|
+
private data;
|
|
8
|
+
private prestamo;
|
|
9
|
+
private simulador;
|
|
10
|
+
private simuladorFijo2;
|
|
11
|
+
constructor({ data, prestamo }: HandlerData);
|
|
12
|
+
handle(): Partial<PrestamoDirecto>;
|
|
13
|
+
private setMesesPorcionPagada;
|
|
14
|
+
private setProyecciones;
|
|
15
|
+
private setAmortizacionInteresVariable;
|
|
16
|
+
private setAmortizacionesInteresFija;
|
|
17
|
+
private setPorcionNoCorriente;
|
|
18
|
+
private setPorcionCuotasPagadas;
|
|
19
|
+
private setAmortizacionesCapital;
|
|
20
|
+
private setPlazoRemanente;
|
|
21
|
+
private setPlazos;
|
|
22
|
+
private setAmortizacionesCapitalEfectoCorrienteYCuotaFinal;
|
|
23
|
+
private setCuadroExposicion;
|
|
24
|
+
private setCuadroEfectoLinea;
|
|
25
|
+
}
|
|
26
|
+
export {};
|