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.
Files changed (50) hide show
  1. package/build/context.js +1 -0
  2. package/build/models/eeff/admFinanciera/index.d.ts +143 -0
  3. package/build/models/eeff/admFinanciera/index.js +26 -0
  4. package/build/strategies/agriculture/balanceAgr.strategy.js +1 -0
  5. package/build/strategies/agriculture/costos.detail/costosCalc.js +1 -1
  6. package/build/strategies/agriculture/flujoProyAgr.strategy.js +3 -2
  7. package/build/strategies/agriculture/ventas.detail/ventas.calc.js +2 -1
  8. package/build/strategies/analisisFinancieros.strategy.js +20 -22
  9. package/build/strategies/balance.strategy.js +14 -2
  10. package/build/strategies/common/analisisFinCalculos/analisisGrafico.calc.js +47 -45
  11. package/build/strategies/common/analisisFinCalculos/ratios.calc.js +158 -157
  12. package/build/strategies/common/balance.calc.js +3 -1
  13. package/build/strategies/common/balanceCalculos/balanceAux.calc.js +11 -1
  14. package/build/strategies/common/balanceCalculos/flujoAux.calc.js +2 -11
  15. package/build/strategies/common/flujoCalculos/flujoConstructor.js +313 -308
  16. package/build/strategies/eeff/admFinanciera/amortizaciones.d.ts +8 -0
  17. package/build/strategies/eeff/admFinanciera/amortizaciones.js +31 -0
  18. package/build/strategies/eeff/admFinanciera/aplicacionesHandler.d.ts +16 -0
  19. package/build/strategies/eeff/admFinanciera/aplicacionesHandler.js +202 -0
  20. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.d.ts +7 -0
  21. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.js +63 -0
  22. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.d.ts +13 -0
  23. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.js +80 -0
  24. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.d.ts +26 -0
  25. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.js +310 -0
  26. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.d.ts +20 -0
  27. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.js +162 -0
  28. package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.d.ts +51 -0
  29. package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.js +291 -0
  30. package/build/strategies/eeff/admFinanciera/utils.d.ts +98 -0
  31. package/build/strategies/eeff/admFinanciera/utils.js +218 -0
  32. package/build/strategies/eeff/admFinanciera.strategy.d.ts +11 -7
  33. package/build/strategies/eeff/admFinanciera.strategy.js +139 -85
  34. package/build/strategies/eeff/balanceEEFF.strategy.js +3 -2
  35. package/build/strategies/eeff/flujoProyEEFF.strategy.js +3 -2
  36. package/build/strategies/eeff/index.d.ts +1 -0
  37. package/build/strategies/eeff/index.js +1509 -0
  38. package/build/strategies/general/balanceGeneral.strategy.js +2 -1
  39. package/build/strategies/general/flujoProyGeneral.strategy.js +2 -1
  40. package/build/strategies/pecuary/balancePec.strategy.js +7 -6
  41. package/build/strategies/pecuary/desarrollo.detail/desarrolloCalc.js +11 -3
  42. package/build/strategies/pecuary/desarrollo.strategy.js +2 -2
  43. package/build/strategies/pecuary/flujoProyPec.strategy.js +7 -6
  44. package/build/strategies/pecuary/ventas.detail/estacionalidadCalc.js +7 -1
  45. package/build/strategies/pecuary/ventas.detail/ventasIngresosCalc.js +7 -1
  46. package/build/strategies/production/balancePrd.strategy.js +7 -6
  47. package/build/strategies/production/costos.detail/costosCalc.js +1 -1
  48. package/build/strategies/production/flujoProyPrd.strategy.js +7 -6
  49. package/package.json +26 -21
  50. 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,7 @@
1
+ import { AdministracionFinancieraCalcData } from '../../../models/eeff/admFinanciera';
2
+ export declare class LineasMixtasHandler {
3
+ private data;
4
+ constructor(data: AdministracionFinancieraCalcData);
5
+ handle(): void;
6
+ private formatLineasMixtas;
7
+ }
@@ -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 {};