bdpformulas 1.0.96 → 1.0.99

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 (41) hide show
  1. package/build/models/eeff/admFinanciera/index.d.ts +27 -0
  2. package/build/models/eeff/balanceProyectado.d.ts +75 -0
  3. package/build/models/eeff/balanceProyectado.js +34 -0
  4. package/build/models/eeff/supuestos.d.ts +15 -0
  5. package/build/models/eeff/supuestos.js +17 -1
  6. package/build/strategies/balance.strategy.js +6 -5
  7. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.d.ts +3 -0
  8. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.js +23 -2
  9. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.d.ts +4 -2
  10. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.js +9 -0
  11. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.d.ts +8 -2
  12. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.js +38 -0
  13. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.d.ts +10 -2
  14. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.js +89 -3
  15. package/build/strategies/eeff/admFinanciera.strategy.d.ts +2 -0
  16. package/build/strategies/eeff/admFinanciera.strategy.js +37 -1
  17. package/build/strategies/eeff/balanceProyectado/balanceHandler.d.ts +77 -0
  18. package/build/strategies/eeff/balanceProyectado/balanceHandler.js +760 -0
  19. package/build/strategies/eeff/balanceProyectado/balanceProyectado.strategy.d.ts +15 -4
  20. package/build/strategies/eeff/balanceProyectado/balanceProyectado.strategy.js +165 -3
  21. package/build/strategies/eeff/balanceProyectado/eerrHandler.d.ts +33 -0
  22. package/build/strategies/eeff/balanceProyectado/eerrHandler.js +284 -0
  23. package/build/strategies/eeff/balanceProyectado/flujoCajaHandler.d.ts +46 -0
  24. package/build/strategies/eeff/balanceProyectado/flujoCajaHandler.js +294 -0
  25. package/build/strategies/eeff/balanceProyectado/map.d.ts +10 -0
  26. package/build/strategies/eeff/balanceProyectado/map.js +24 -0
  27. package/build/strategies/eeff/index.d.ts +1 -0
  28. package/build/strategies/eeff/index.js +9240 -0
  29. package/build/strategies/eeff/mappings/balance.d.ts +5 -1
  30. package/build/strategies/eeff/mappings/balance.js +481 -66
  31. package/build/strategies/eeff/mappings/balanceProyectado.d.ts +2 -0
  32. package/build/strategies/eeff/mappings/balanceProyectado.js +774 -0
  33. package/build/strategies/eeff/mappings/indices.d.ts +4 -0
  34. package/build/strategies/eeff/mappings/indices.js +262 -0
  35. package/build/strategies/eeff/mappings/supuestos.d.ts +4 -0
  36. package/build/strategies/eeff/mappings/supuestos.js +476 -0
  37. package/build/strategies/eeff/supuestos.strategy.d.ts +19 -0
  38. package/build/strategies/eeff/supuestos.strategy.js +130 -0
  39. package/build/strategies/utils.d.ts +1 -0
  40. package/build/strategies/utils.js +9 -1
  41. package/package.json +1 -1
@@ -97,6 +97,10 @@ export interface PrestamoLeasing extends Deuda {
97
97
  PorcionesNoCorrientes: Partial<ProyeccionPrestamo>;
98
98
  Aplicaciones: Partial<ProyeccionPrestamo>;
99
99
  ActivacionesOperacion: Partial<ProyeccionPrestamo>;
100
+ CuadroDefinicionOperacion: Partial<ProyeccionPrestamo>;
101
+ EfectoDiferimientoPrincipal: Partial<ProyeccionPrestamo>;
102
+ EfectoSaldoDiferimiento: Partial<ProyeccionPrestamo>;
103
+ EfectoPerdidaLeaseback: Partial<ProyeccionPrestamo>;
100
104
  }
101
105
  export interface LineaCreditoMixta {
102
106
  Descripcion: string;
@@ -132,6 +136,29 @@ export interface AdministracionFinancieraCalcData extends AdministracionFinancie
132
136
  ProyeccionPrestamosBajoLineas: Partial<ProyeccionPrestamo>[];
133
137
  ProyeccionPrestamosDirectos: Partial<ProyeccionPrestamo>[];
134
138
  ProyeccionAplicaciones: Partial<ProyeccionPrestamo>[];
139
+ Totales: {
140
+ PrestamosDirectos: {
141
+ CuadroPorcionesCorrientesBDP: Partial<ProyeccionPrestamo>;
142
+ CuadroPorcionesCorrientesOtros: Partial<ProyeccionPrestamo>;
143
+ };
144
+ PrestamosLeasing: {
145
+ ActivacionOperacionLeasing: Partial<ProyeccionPrestamo>;
146
+ AmortizacionesInteres: Partial<ProyeccionPrestamo>;
147
+ AmortizacionesCapital: Partial<ProyeccionPrestamo>;
148
+ CuadroDefinicionOperacion: Partial<ProyeccionPrestamo>;
149
+ EfectoSaldoDiferimiento: Partial<ProyeccionPrestamo>;
150
+ PorcionesCorrientes: Partial<ProyeccionPrestamo>;
151
+ EfectoPerdidaLeaseback: Partial<ProyeccionPrestamo>;
152
+ };
153
+ PrestamosBajoLinea: {
154
+ DeudasCortoPlazoSobregiros: Partial<ProyeccionPrestamo>;
155
+ };
156
+ General: {
157
+ CuadroCostosFinancierosComisiones: Partial<ProyeccionPrestamo>;
158
+ CuadroEfectoLinea: Partial<ProyeccionPrestamo>;
159
+ DeudaDirecta: Partial<ProyeccionPrestamo>;
160
+ };
161
+ };
135
162
  }
136
163
  export type TipoExistencia = 'EXISTENTE' | 'NUEVA';
137
164
  export declare const rubros: {
@@ -0,0 +1,75 @@
1
+ import { BalanceProyectadoMap } from '../../strategies/eeff/balanceProyectado/map';
2
+ import { AdministracionFinancieraCalcData } from './admFinanciera';
3
+ export interface Proyeccion extends Omit<Configuracion, 'Rubro' | 'TipoConfiguracionId'>, Record<string, any> {
4
+ RubroId: string;
5
+ Descripcion: string;
6
+ [key: `Gestion${number}`]: number | string;
7
+ }
8
+ interface BalanceData {
9
+ Balance: Proyeccion[];
10
+ EstadoResultados: Proyeccion[];
11
+ FlujoCaja: Proyeccion[];
12
+ }
13
+ interface Configuracion {
14
+ TipoConfiguracionId: string;
15
+ RubroId: string;
16
+ RubroPadreId: string;
17
+ Clasificador: string;
18
+ Rubro: {
19
+ Descripcion: string;
20
+ };
21
+ }
22
+ export interface BalanceProyectadoStrategyData {
23
+ Supuestos: Proyeccion[];
24
+ Balance: BalanceData;
25
+ Indices: Proyeccion[];
26
+ AnhoBase: string;
27
+ InicioProyeccion: string;
28
+ InicioProyeccionGestion: number;
29
+ CantidadProyeccion: number;
30
+ CantidadGestiones: number;
31
+ AdmFinancieraData: AdministracionFinancieraCalcData;
32
+ }
33
+ export interface Cuenta {
34
+ Monto: number;
35
+ RubroId: string;
36
+ RubroPadreId: string;
37
+ Descripcion: string;
38
+ Clasificador: string;
39
+ Padre?: string;
40
+ }
41
+ export interface BalanceProyectadoCalcData {
42
+ Balance: Proyeccion[];
43
+ EERR: Proyeccion[];
44
+ FlujoCaja: Proyeccion[];
45
+ }
46
+ export type BalanceMap = Map<string, number>;
47
+ export interface SupuestoValue {
48
+ Clasificacion: string;
49
+ Monto: number;
50
+ }
51
+ export type IndicesMap = Map<string, number>;
52
+ export type SupuestosMap = Map<string, SupuestoValue>;
53
+ export interface BalanceProyectadoHandlerData {
54
+ balanceData: BalanceMap;
55
+ supuestosData: SupuestosMap;
56
+ indicesData: IndicesMap;
57
+ proyectado: BalanceProyectadoMap;
58
+ data: BalanceProyectadoStrategyData;
59
+ }
60
+ export type SupuestoClasificacion = 'A' | 'D' | 'C' | 'P' | 'CA' | 'PV' | 'NA';
61
+ export declare function getValueWithSupuestoByClasificacion({ supuesto, value, valueForCa, valueForPv, valueForD }: {
62
+ supuesto?: SupuestoValue;
63
+ value: number;
64
+ valueForPv?: number;
65
+ valueForCa?: number;
66
+ valueForD?: number;
67
+ }): number;
68
+ interface GetSumaParams {
69
+ map: Map<string, any>;
70
+ gestion: number;
71
+ desde: number;
72
+ hasta: number;
73
+ }
74
+ export declare function getSumaDesdeHastaGestionMap({ map, gestion, desde, hasta }: GetSumaParams): number;
75
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSumaDesdeHastaGestionMap = exports.getValueWithSupuestoByClasificacion = void 0;
4
+ const utils_1 = require("../../strategies/eeff/admFinanciera/utils");
5
+ function getValueWithSupuestoByClasificacion({ supuesto, value, valueForCa, valueForPv = 0, valueForD = 0 }) {
6
+ let val = 0;
7
+ const montoSupuesto = (0, utils_1.ourParseFloat)(supuesto?.Monto);
8
+ if (supuesto?.Clasificacion === 'C') {
9
+ val = value * (1 + montoSupuesto);
10
+ }
11
+ else if (supuesto?.Clasificacion === 'A') {
12
+ val = montoSupuesto;
13
+ }
14
+ else if (supuesto?.Clasificacion === 'CA') {
15
+ val = valueForCa ?? value + montoSupuesto;
16
+ }
17
+ else if (supuesto?.Clasificacion === 'PV') {
18
+ val = montoSupuesto * valueForPv;
19
+ }
20
+ else if (supuesto?.Clasificacion === 'D') {
21
+ val = valueForD;
22
+ }
23
+ return val;
24
+ }
25
+ exports.getValueWithSupuestoByClasificacion = getValueWithSupuestoByClasificacion;
26
+ function getSumaDesdeHastaGestionMap({ map, gestion, desde, hasta }) {
27
+ let suma = 0;
28
+ for (let i = desde; i <= hasta; i++) {
29
+ const key = `X${i}_${gestion}`;
30
+ suma += (0, utils_1.ourParseFloat)(map.get(key));
31
+ }
32
+ return suma;
33
+ }
34
+ exports.getSumaDesdeHastaGestionMap = getSumaDesdeHastaGestionMap;
@@ -72,6 +72,21 @@ export declare enum SupuestosRubro {
72
72
  Otras_Reservas = "ACT_SUP_20302",
73
73
  Otra_Cuenta_de_Patrimonio_Ajuste_de_Gestión_Anterior__Ajuste_Capital = "ACT_SUP_20303"
74
74
  }
75
+ export declare enum CuadroAlternativo {
76
+ CUADRO_ALTERNATIVO_DE_ADMINISTRACION_FINANCIERA = "ACT_SUP_30100",
77
+ Deuda_Financiera_de_Corto_Plazo = "ACT_SUP_30101",
78
+ Prestamo_Plazo_Fijo = "ACT_SUP_30102",
79
+ Vencimiento_Corriente_Deuda_Largo_Plazo_BDP = "ACT_SUP_30103",
80
+ Vencimiento_Corriente_Deuda_Largo_Plazo_OTROS = "ACT_SUP_30104",
81
+ Deuda_Financiera_Largo_Plazo_BDP = "ACT_SUP_30105",
82
+ Deuda_Financiera_Largo_Plazo_OTROS = "ACT_SUP_30106",
83
+ Gastos_Financieros_Comisiones = "ACT_SUP_30107",
84
+ Vancimiento_Corriente_Pasivos = "ACT_SUP_30108",
85
+ Pasivos_Arrendamiento_Financiero = "ACT_SUP_30109",
86
+ Activos_Arrendamiento_Financiero = "ACT_SUP_30110",
87
+ Intereses_Diferidos_Arrendamiento_Financiero = "ACT_SUP_30111",
88
+ Gastos_Financieros_Op_Leasing = "ACT_SUP_30112"
89
+ }
75
90
  export declare const FilasCalculadas: {
76
91
  ACT_SUP_10201: string[];
77
92
  ACT_SUP_10202: string[];
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FilasCalculadas = exports.SupuestosRubro = void 0;
3
+ exports.FilasCalculadas = exports.CuadroAlternativo = exports.SupuestosRubro = void 0;
4
4
  var SupuestosRubro;
5
5
  (function (SupuestosRubro) {
6
6
  SupuestosRubro["Periodo_en_Meses_Proyectado"] = "ACT_SUP_00001";
@@ -76,6 +76,22 @@ var SupuestosRubro;
76
76
  SupuestosRubro["Otras_Reservas"] = "ACT_SUP_20302";
77
77
  SupuestosRubro["Otra_Cuenta_de_Patrimonio_Ajuste_de_Gesti\u00F3n_Anterior__Ajuste_Capital"] = "ACT_SUP_20303";
78
78
  })(SupuestosRubro || (exports.SupuestosRubro = SupuestosRubro = {}));
79
+ var CuadroAlternativo;
80
+ (function (CuadroAlternativo) {
81
+ CuadroAlternativo["CUADRO_ALTERNATIVO_DE_ADMINISTRACION_FINANCIERA"] = "ACT_SUP_30100";
82
+ CuadroAlternativo["Deuda_Financiera_de_Corto_Plazo"] = "ACT_SUP_30101";
83
+ CuadroAlternativo["Prestamo_Plazo_Fijo"] = "ACT_SUP_30102";
84
+ CuadroAlternativo["Vencimiento_Corriente_Deuda_Largo_Plazo_BDP"] = "ACT_SUP_30103";
85
+ CuadroAlternativo["Vencimiento_Corriente_Deuda_Largo_Plazo_OTROS"] = "ACT_SUP_30104";
86
+ CuadroAlternativo["Deuda_Financiera_Largo_Plazo_BDP"] = "ACT_SUP_30105";
87
+ CuadroAlternativo["Deuda_Financiera_Largo_Plazo_OTROS"] = "ACT_SUP_30106";
88
+ CuadroAlternativo["Gastos_Financieros_Comisiones"] = "ACT_SUP_30107";
89
+ CuadroAlternativo["Vancimiento_Corriente_Pasivos"] = "ACT_SUP_30108";
90
+ CuadroAlternativo["Pasivos_Arrendamiento_Financiero"] = "ACT_SUP_30109";
91
+ CuadroAlternativo["Activos_Arrendamiento_Financiero"] = "ACT_SUP_30110";
92
+ CuadroAlternativo["Intereses_Diferidos_Arrendamiento_Financiero"] = "ACT_SUP_30111";
93
+ CuadroAlternativo["Gastos_Financieros_Op_Leasing"] = "ACT_SUP_30112";
94
+ })(CuadroAlternativo || (exports.CuadroAlternativo = CuadroAlternativo = {}));
79
95
  exports.FilasCalculadas = {
80
96
  [SupuestosRubro.Costo_de_VentasVentas]: ['Gestion1'],
81
97
  [SupuestosRubro.Gastos_OperativosVentas]: ['Gestion1'],
@@ -171,11 +171,12 @@ class Balance {
171
171
  data.eerr = Array.from(eerrMap.values());
172
172
  result.balance = calcularBalance(data.balance);
173
173
  result.eerr = calcularEERR(data.eerr, data.cantidadGestiones, data.tipoConsolidado);
174
- balanceCalc.setResultadosGestion({
175
- data: result,
176
- cantidadGestiones: data.cantidadGestiones,
177
- declaracionJurada: data.declaracionJurada
178
- });
174
+ result.balance = result.balance.filter(item => item.RubroId !== 'ACT_CN_30001_a');
175
+ // balanceCalc.setResultadosGestion({
176
+ // data: result,
177
+ // cantidadGestiones: data.cantidadGestiones,
178
+ // declaracionJurada: data.declaracionJurada
179
+ // })
179
180
  (0, analisisHorizontal_1.calcularPorcentajesYAnalisisHorizontal)({
180
181
  data: result,
181
182
  cantidadGestiones: data.cantidadGestiones,
@@ -4,4 +4,7 @@ export declare class LineasMixtasHandler {
4
4
  constructor(data: AdministracionFinancieraCalcData);
5
5
  handle(): void;
6
6
  private formatLineasMixtas;
7
+ private setTotalPorcionesCorrientesBDP;
8
+ private setTotalPorcionesCorrientesOtros;
9
+ private setTotalCuadroFinancieroComisiones;
7
10
  }
@@ -9,10 +9,10 @@ class LineasMixtasHandler {
9
9
  this.data = data;
10
10
  }
11
11
  handle() {
12
- this.formatLineasMixtas(this.data.LineasMixtasBDP);
12
+ this.formatLineasMixtas(this.data.LineasMixtasBDP, true);
13
13
  this.formatLineasMixtas(this.data.LineasMixtasOtros);
14
14
  }
15
- formatLineasMixtas(lineas) {
15
+ formatLineasMixtas(lineas, esBdp = false) {
16
16
  const lineasActivas = lineas.filter((lin) => lin.IndicadorABM !== 'B');
17
17
  if (lineasActivas.length) {
18
18
  const filasTotales = [
@@ -53,11 +53,32 @@ class LineasMixtasHandler {
53
53
  filasTotales[2][`Gestion${j}`] =
54
54
  (0, utils_1.ourParseFloat)(filasTotales[2][`Gestion${j}`]) +
55
55
  (0, utils_1.ourParseFloat)(filaGastos?.[`Gestion${j}`]);
56
+ if (esBdp) {
57
+ this.setTotalPorcionesCorrientesBDP(filasTotales[0][`Gestion${j}`], j);
58
+ }
59
+ else {
60
+ this.setTotalPorcionesCorrientesOtros(filasTotales[0][`Gestion${j}`], j);
61
+ }
62
+ this.setTotalCuadroFinancieroComisiones(filasTotales[2][`Gestion${j}`], j);
56
63
  }
57
64
  i += 4;
58
65
  }
59
66
  lineas.push(...filasTotales);
60
67
  }
61
68
  }
69
+ setTotalPorcionesCorrientesBDP(valor, gestion) {
70
+ this.data.Totales.PrestamosDirectos.CuadroPorcionesCorrientesBDP[`Gestion${gestion}`] =
71
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosDirectos
72
+ .CuadroPorcionesCorrientesBDP[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
73
+ }
74
+ setTotalPorcionesCorrientesOtros(valor, gestion) {
75
+ this.data.Totales.PrestamosDirectos.CuadroPorcionesCorrientesOtros[`Gestion${gestion}`] =
76
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosDirectos
77
+ .CuadroPorcionesCorrientesOtros[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
78
+ }
79
+ setTotalCuadroFinancieroComisiones(valor, gestion) {
80
+ this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`] =
81
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
82
+ }
62
83
  }
63
84
  exports.LineasMixtasHandler = LineasMixtasHandler;
@@ -1,8 +1,8 @@
1
- import { AdministracionFinancieraData, PrestamoBajoLinea } from '../../../models/eeff/admFinanciera';
1
+ import { AdministracionFinancieraCalcData, PrestamoBajoLinea } from '../../../models/eeff/admFinanciera';
2
2
  export declare class PrestamoBajoLineaHandler {
3
3
  private data;
4
4
  private prestamo;
5
- constructor(prestamo: Partial<PrestamoBajoLinea>, data: AdministracionFinancieraData);
5
+ constructor(prestamo: Partial<PrestamoBajoLinea>, data: AdministracionFinancieraCalcData);
6
6
  handle(): Partial<PrestamoBajoLinea>;
7
7
  private setCantidadAños;
8
8
  private setSaldoLineaAplicar;
@@ -10,4 +10,6 @@ export declare class PrestamoBajoLineaHandler {
10
10
  private setProyecciones;
11
11
  private setAplicacion;
12
12
  private setProyeccion;
13
+ private setTotal;
14
+ private setTotalDeudaCortoPlazoSobregiro;
13
15
  }
@@ -78,6 +78,15 @@ class PrestamoBajoLineaHandler {
78
78
  if (gestion >= añoProyectadoInicio && gestion <= cantidadAños) {
79
79
  this.prestamo.Proyecciones[`Gestion${gestion}`] = (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal);
80
80
  }
81
+ this.setTotalDeudaCortoPlazoSobregiro(gestion);
82
+ }
83
+ setTotal(keyTotales, key, gestion) {
84
+ this.data.Totales.PrestamosBajoLinea[keyTotales][`Gestion${gestion}`] =
85
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosBajoLinea[keyTotales][`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(this.prestamo[key]?.[`Gestion${gestion}`]);
86
+ }
87
+ setTotalDeudaCortoPlazoSobregiro(gestion) {
88
+ this.data.Totales.PrestamosBajoLinea.DeudasCortoPlazoSobregiros[`Gestion${gestion}`] =
89
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosBajoLinea.DeudasCortoPlazoSobregiros[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(this.prestamo.Proyecciones?.[`Gestion${gestion}`]);
81
90
  }
82
91
  }
83
92
  exports.PrestamoBajoLineaHandler = PrestamoBajoLineaHandler;
@@ -1,6 +1,6 @@
1
- import { AdministracionFinancieraData, PrestamoDirecto } from '../../../models/eeff/admFinanciera';
1
+ import { AdministracionFinancieraCalcData, PrestamoDirecto } from '../../../models/eeff/admFinanciera';
2
2
  interface HandlerData {
3
- data: AdministracionFinancieraData;
3
+ data: AdministracionFinancieraCalcData;
4
4
  prestamo: Partial<PrestamoDirecto>;
5
5
  }
6
6
  export declare class PrestamoDirectoHandler {
@@ -22,5 +22,11 @@ export declare class PrestamoDirectoHandler {
22
22
  private setAmortizacionesCapitalEfectoCorrienteYCuotaFinal;
23
23
  private setCuadroExposicion;
24
24
  private setCuadroEfectoLinea;
25
+ private setTotal;
26
+ private setTotalPorcionesCorrientesBDP;
27
+ private setTotalPorcionesCorrientesOtros;
28
+ private setTotalCuadroFinancieroComisiones;
29
+ private setTotalCuadroEfectoLinea;
30
+ private setTotalDeudaDirecta;
25
31
  }
26
32
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrestamoDirectoHandler = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  const utils_1 = require("./utils");
5
6
  class PrestamoDirectoHandler {
6
7
  data;
@@ -90,6 +91,7 @@ class PrestamoDirectoHandler {
90
91
  value = (porcionCorriente + porcionNoCorriente) * tasa;
91
92
  }
92
93
  this.prestamo.AmortizacionesInteres[`Gestion${gestion}`] = value;
94
+ this.setTotalCuadroFinancieroComisiones(value, gestion);
93
95
  }
94
96
  }
95
97
  setAmortizacionesInteresFija() {
@@ -99,6 +101,7 @@ class PrestamoDirectoHandler {
99
101
  (((0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal) * tasa) / 12) *
100
102
  (0, utils_1.ourParseFloat)(this.prestamo.MesesPorcionPagada);
101
103
  const añoProyectadoInicio = (0, utils_1.ourParseFloat)(this.prestamo.AnnoProyectadoInicio);
104
+ this.setTotalCuadroFinancieroComisiones(this.prestamo.AmortizacionesInteres?.[`Gestion1`], 1);
102
105
  if (this.simuladorFijo2 &&
103
106
  añoProyectadoInicio &&
104
107
  añoProyectadoInicio <= 3) {
@@ -106,6 +109,7 @@ class PrestamoDirectoHandler {
106
109
  this.simuladorFijo2.pagosAnuales.forEach((resumen) => {
107
110
  this.prestamo.AmortizacionesInteres[`Gestion${i}`] =
108
111
  resumen.interesAnual;
112
+ this.setTotalCuadroFinancieroComisiones(this.prestamo.AmortizacionesInteres?.[`Gestion${i}`], i);
109
113
  i++;
110
114
  });
111
115
  }
@@ -195,6 +199,12 @@ class PrestamoDirectoHandler {
195
199
  amortizacion[`Gestion${i}`] = valor;
196
200
  amortizacionCuotaFinal[`Gestion${i}`] = (0, utils_1.ourParseFloat)(valor +
197
201
  (0, utils_1.ourParseFloat)(this.prestamo.AmortizacionesCapital?.[`Gestion${i}`]));
202
+ if (this.prestamo.EsNuestroBanco) {
203
+ this.setTotalPorcionesCorrientesBDP(amortizacionCuotaFinal[`Gestion${i}`], i);
204
+ }
205
+ else {
206
+ this.setTotalPorcionesCorrientesOtros(amortizacionCuotaFinal[`Gestion${i}`], i);
207
+ }
198
208
  }
199
209
  this.prestamo.AmortizacionesCapitalEfectoCorriente = amortizacion;
200
210
  this.prestamo.AmortizacionesCapitalCuotaFinal = amortizacionCuotaFinal;
@@ -266,6 +276,7 @@ class PrestamoDirectoHandler {
266
276
  }
267
277
  }
268
278
  cuadro[`Gestion${i}`] = (0, utils_1.ourParseFloat)(value);
279
+ this.setTotalDeudaDirecta(cuadro[`Gestion${i}`], i);
269
280
  }
270
281
  }
271
282
  this.prestamo.CuadroEfectoExposicion = cuadro;
@@ -319,9 +330,36 @@ class PrestamoDirectoHandler {
319
330
  }
320
331
  }
321
332
  cuadro[`Gestion${i}`] = (0, utils_1.ourParseFloat)(value);
333
+ this.setTotalCuadroEfectoLinea(cuadro[`Gestion${i}`], i);
322
334
  }
323
335
  }
324
336
  this.prestamo.CuadroEfectoLinea = cuadro;
325
337
  }
338
+ setTotal(keyTotales, key, gestion) {
339
+ this.data.Totales.PrestamosDirectos[keyTotales][`Gestion${gestion}`] =
340
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosDirectos[keyTotales][`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)((0, lodash_1.get)(this.prestamo, `${key}.Gestion${gestion}`));
341
+ }
342
+ setTotalPorcionesCorrientesBDP(valor, gestion) {
343
+ this.data.Totales.PrestamosDirectos.CuadroPorcionesCorrientesBDP[`Gestion${gestion}`] =
344
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosDirectos
345
+ .CuadroPorcionesCorrientesBDP[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
346
+ }
347
+ setTotalPorcionesCorrientesOtros(valor, gestion) {
348
+ this.data.Totales.PrestamosDirectos.CuadroPorcionesCorrientesOtros[`Gestion${gestion}`] =
349
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosDirectos
350
+ .CuadroPorcionesCorrientesOtros[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
351
+ }
352
+ setTotalCuadroFinancieroComisiones(valor, gestion) {
353
+ this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`] =
354
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
355
+ }
356
+ setTotalCuadroEfectoLinea(value, gestion) {
357
+ this.data.Totales.General.CuadroEfectoLinea[`Gestion${gestion}`] =
358
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.CuadroEfectoLinea[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(value);
359
+ }
360
+ setTotalDeudaDirecta(value, gestion) {
361
+ this.data.Totales.General.DeudaDirecta[`Gestion${gestion}`] =
362
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.DeudaDirecta[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(value);
363
+ }
326
364
  }
327
365
  exports.PrestamoDirectoHandler = PrestamoDirectoHandler;
@@ -1,6 +1,6 @@
1
- import { AdministracionFinancieraData, PrestamoLeasing } from '../../../models/eeff/admFinanciera';
1
+ import { AdministracionFinancieraCalcData, PrestamoLeasing } from '../../../models/eeff/admFinanciera';
2
2
  interface HandlerData {
3
- data: AdministracionFinancieraData;
3
+ data: AdministracionFinancieraCalcData;
4
4
  prestamo: Partial<PrestamoLeasing>;
5
5
  }
6
6
  export declare class PrestamoLeasingHandler {
@@ -16,5 +16,13 @@ export declare class PrestamoLeasingHandler {
16
16
  private getGeneracionValorResidual;
17
17
  private setPorcionesCorrientesNoCorrientes;
18
18
  private setActivaciones;
19
+ private setCuadroDefinicionOperacion;
20
+ private setEfectoDiferimientoPrincipal;
21
+ private setEfectoSaldoDiferimiento;
22
+ private setEfectoPerdidaLeaseback;
23
+ private setTotal;
24
+ private setTotalActivacionOperacionLeasing;
25
+ private setTotalAmortizacionInteres;
26
+ private setTotalCuadroDefinicionOperacion;
19
27
  }
20
28
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PrestamoLeasingHandler = void 0;
4
+ const lodash_1 = require("lodash");
4
5
  const admFinanciera_1 = require("../../../models/eeff/admFinanciera");
5
6
  const utils_1 = require("./utils");
6
7
  const frecuencias = {
@@ -44,13 +45,19 @@ class PrestamoLeasingHandler {
44
45
  this.prestamo.AmortizacionesCapitalFinal = {};
45
46
  this.prestamo.AmortizacionesInteres = {};
46
47
  this.prestamo.PorcionesNoCorrientes = {};
48
+ this.prestamo.CuadroDefinicionOperacion = {};
49
+ this.prestamo.EfectoDiferimientoPrincipal = {};
50
+ this.prestamo.EfectoSaldoDiferimiento = {};
51
+ this.prestamo.EfectoPerdidaLeaseback = {};
47
52
  for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
48
- // plazos
49
53
  this.setPlazo(i);
50
- // plazos multiplicados
51
54
  this.setPlazoMultiplicado(i);
52
- //amortizacion capital
53
55
  this.setAmortizacionCapital(i);
56
+ this.setTotalAmortizacionInteres(i);
57
+ this.setCuadroDefinicionOperacion(i);
58
+ this.setEfectoDiferimientoPrincipal(i);
59
+ this.setEfectoSaldoDiferimiento(i);
60
+ this.setEfectoPerdidaLeaseback(i);
54
61
  }
55
62
  }
56
63
  setPlazo(gestion) {
@@ -128,6 +135,7 @@ class PrestamoLeasingHandler {
128
135
  this.prestamo.AmortizacionesCapitalFinal[`Gestion${gestion}`] =
129
136
  (0, utils_1.ourParseFloat)(value) +
130
137
  (0, utils_1.ourParseFloat)(this.getGeneracionValorResidual(gestion));
138
+ this.setTotal('AmortizacionesCapital', 'AmortizacionesCapital', gestion);
131
139
  }
132
140
  getGeneracionValorResidual(gestion) {
133
141
  if ((0, utils_1.ourParseFloat)(this.prestamo.Plazos[`Gestion${gestion}`]) == 1) {
@@ -145,6 +153,7 @@ class PrestamoLeasingHandler {
145
153
  const porcionCorriente = (0, utils_1.ourParseFloat)(this.prestamo.AmortizacionesCapitalFinal?.[`Gestion${index}`]) +
146
154
  (0, utils_1.ourParseFloat)(this.prestamo.AmortizacionesInteres?.[`Gestion${index}`]);
147
155
  this.prestamo.PorcionesCorrientes[`Gestion${i}`] = porcionCorriente;
156
+ this.setTotal('PorcionesCorrientes', 'PorcionesCorrientes', i);
148
157
  const plazo = (0, utils_1.ourParseFloat)(this.prestamo.Plazos?.[`Gestion${i}`]);
149
158
  if (plazo && this.prestamo.TipoAmortizacion) {
150
159
  let value;
@@ -183,8 +192,85 @@ class PrestamoLeasingHandler {
183
192
  this.prestamo.ActivacionesOperacion[`Gestion${i}`] =
184
193
  this.prestamo.ActivacionOperacion;
185
194
  }
195
+ this.setTotalActivacionOperacionLeasing(i);
186
196
  }
187
197
  }
188
198
  }
199
+ setCuadroDefinicionOperacion(gestion) {
200
+ const plazo = this.prestamo.Plazos[`Gestion${gestion}`];
201
+ if (plazo && this.prestamo.Plazo && plazo == this.prestamo.Plazo) {
202
+ this.prestamo.CuadroDefinicionOperacion[`Gestion${gestion}`] =
203
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoValorBien);
204
+ }
205
+ this.setTotalCuadroDefinicionOperacion(gestion);
206
+ }
207
+ setEfectoDiferimientoPrincipal(gestion) {
208
+ if (gestion > 1) {
209
+ if (this.prestamo.AnnoProyectadoInicio === gestion - 1 &&
210
+ this.prestamo.TipoAmortizacion) {
211
+ const frecuenciaMeses = {
212
+ MENSUAL: 12,
213
+ BIMENSUAL: 6,
214
+ TRIMESTRAL: 4,
215
+ CUATRIMESTRAL: 3,
216
+ SEMESTRAL: 2,
217
+ ANUAL: 1
218
+ };
219
+ this.prestamo.EfectoDiferimientoPrincipal[`Gestion${gestion}`] =
220
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoCuotaPeriodo) *
221
+ (0, utils_1.ourParseFloat)(this.prestamo.Plazo) *
222
+ frecuenciaMeses[this.prestamo.TipoAmortizacion] -
223
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal);
224
+ }
225
+ }
226
+ }
227
+ setEfectoSaldoDiferimiento(gestion) {
228
+ if (gestion > 1) {
229
+ this.prestamo.EfectoSaldoDiferimiento[`Gestion${gestion}`] =
230
+ (0, utils_1.sumCorrelativeKeys)({
231
+ data: this.prestamo.EfectoDiferimientoPrincipal ?? {},
232
+ baseKey: 'Gestion',
233
+ startIndex: 1,
234
+ endIndex: gestion
235
+ }) -
236
+ (0, utils_1.sumCorrelativeKeys)({
237
+ data: this.prestamo.AmortizacionesInteres ?? {},
238
+ baseKey: 'Gestion',
239
+ startIndex: 1,
240
+ endIndex: gestion - 1
241
+ });
242
+ }
243
+ this.setTotal('EfectoSaldoDiferimiento', 'EfectoSaldoDiferimiento', gestion);
244
+ }
245
+ setEfectoPerdidaLeaseback(gestion) {
246
+ if (this.prestamo.TipoOperacion === 'LEASEBACK') {
247
+ if (this.prestamo.Plazo &&
248
+ this.prestamo.Plazo ===
249
+ this.prestamo.Plazos?.[`Gestion${gestion}`]) {
250
+ this.prestamo.EfectoPerdidaLeaseback[`Gestion${gestion}`] =
251
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoValorBien) -
252
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoOriginal) -
253
+ (0, utils_1.ourParseFloat)(this.prestamo.MontoValorResidual);
254
+ }
255
+ }
256
+ this.setTotal('EfectoPerdidaLeaseback', 'EfectoPerdidaLeaseback', gestion);
257
+ }
258
+ setTotal(keyTotales, key, gestion) {
259
+ this.data.Totales.PrestamosLeasing[keyTotales][`Gestion${gestion}`] =
260
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosLeasing[keyTotales][`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)((0, lodash_1.get)(this.prestamo, `${key}.Gestion${gestion}`));
261
+ }
262
+ setTotalActivacionOperacionLeasing(gestion) {
263
+ this.setTotal('ActivacionOperacionLeasing', 'ActivacionesOperacion', gestion);
264
+ }
265
+ setTotalAmortizacionInteres(gestion) {
266
+ if (gestion > 1) {
267
+ this.data.Totales.PrestamosLeasing.AmortizacionesInteres[`Gestion${gestion}`] =
268
+ (0, utils_1.ourParseFloat)(this.data.Totales.PrestamosLeasing.AmortizacionesInteres[`Gestion${gestion}`]) +
269
+ (0, utils_1.ourParseFloat)(this.prestamo.AmortizacionesInteres?.[`Gestion${gestion - 1}`]);
270
+ }
271
+ }
272
+ setTotalCuadroDefinicionOperacion(gestion) {
273
+ this.setTotal('CuadroDefinicionOperacion', 'CuadroDefinicionOperacion', gestion);
274
+ }
189
275
  }
190
276
  exports.PrestamoLeasingHandler = PrestamoLeasingHandler;
@@ -11,4 +11,6 @@ export default class AdmFinancieraStrategy implements Strategy {
11
11
  private formatLineasMixtas;
12
12
  private setProyeccionesPrestamosDirectos;
13
13
  private setProyeccionesAplicaciones;
14
+ private setTotalCuadroFinancieroComisiones;
15
+ private setTotalDeudaDirecta;
14
16
  }
@@ -25,7 +25,30 @@ class AdmFinancieraStrategy {
25
25
  ...cloned,
26
26
  ProyeccionPrestamosDirectos: cloned.ProyeccionPrestamosDirectos ?? [],
27
27
  ProyeccionAplicaciones: [],
28
- ProyeccionPrestamosBajoLineas: []
28
+ ProyeccionPrestamosBajoLineas: [],
29
+ Totales: {
30
+ PrestamosDirectos: {
31
+ CuadroPorcionesCorrientesBDP: {},
32
+ CuadroPorcionesCorrientesOtros: {}
33
+ },
34
+ PrestamosLeasing: {
35
+ ActivacionOperacionLeasing: {},
36
+ AmortizacionesInteres: {},
37
+ CuadroDefinicionOperacion: {},
38
+ EfectoSaldoDiferimiento: {},
39
+ PorcionesCorrientes: {},
40
+ EfectoPerdidaLeaseback: {},
41
+ AmortizacionesCapital: {}
42
+ },
43
+ PrestamosBajoLinea: {
44
+ DeudasCortoPlazoSobregiros: {}
45
+ },
46
+ General: {
47
+ CuadroCostosFinancierosComisiones: {},
48
+ CuadroEfectoLinea: {},
49
+ DeudaDirecta: {}
50
+ }
51
+ }
29
52
  };
30
53
  this.formatPrestamosDirectos();
31
54
  this.formatPrestamosBajoLinea();
@@ -107,6 +130,7 @@ class AdmFinancieraStrategy {
107
130
  value = sumaColumnaAnterior * totalTasaPonderada;
108
131
  }
109
132
  pagoCostosFinancieros[`Gestion${i}`] = value;
133
+ this.setTotalCuadroFinancieroComisiones(value, i);
110
134
  }
111
135
  proyecciones.push(pagoCostosFinancieros);
112
136
  this.data.ProyeccionPrestamosBajoLineas = proyecciones;
@@ -129,6 +153,8 @@ class AdmFinancieraStrategy {
129
153
  totalValorResidual += (0, utils_1.ourParseFloat)(handled.MontoValorResidual);
130
154
  totalValorBien += (0, utils_1.ourParseFloat)(handled.MontoValorBien);
131
155
  });
156
+ this.setTotalDeudaDirecta((0, utils_1.ourParseFloat)(this.data?.Totales.PrestamosBajoLinea
157
+ .DeudasCortoPlazoSobregiros['Gestion1']), 1);
132
158
  if (prestamos.length)
133
159
  this.data?.PrestamoLeasing.push({
134
160
  Descripcion: 'TOTAL LEASING BS',
@@ -152,5 +178,15 @@ class AdmFinancieraStrategy {
152
178
  setProyeccionesAplicaciones() {
153
179
  new aplicacionesHandler_1.AplicacionesHandler({ data: this.data }).handle();
154
180
  }
181
+ setTotalCuadroFinancieroComisiones(valor, gestion) {
182
+ if (this.data)
183
+ this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`] =
184
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.CuadroCostosFinancierosComisiones[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(valor);
185
+ }
186
+ setTotalDeudaDirecta(value, gestion) {
187
+ if (this.data)
188
+ this.data.Totales.General.DeudaDirecta[`Gestion${gestion}`] =
189
+ (0, utils_1.ourParseFloat)(this.data.Totales.General.DeudaDirecta[`Gestion${gestion}`]) + (0, utils_1.ourParseFloat)(value);
190
+ }
155
191
  }
156
192
  exports.default = AdmFinancieraStrategy;