bdpformulas 1.0.96 → 1.0.100

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 (44) 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/deudas/administracionLinea.js +1 -1
  28. package/build/strategies/eeff/deudas/aplicactionesCuadro.js +1 -1
  29. package/build/strategies/eeff/deudas/deudas.strategy.js +0 -2
  30. package/build/strategies/eeff/index.d.ts +1 -0
  31. package/build/strategies/eeff/index.js +9240 -0
  32. package/build/strategies/eeff/mappings/balance.d.ts +5 -1
  33. package/build/strategies/eeff/mappings/balance.js +481 -66
  34. package/build/strategies/eeff/mappings/balanceProyectado.d.ts +2 -0
  35. package/build/strategies/eeff/mappings/balanceProyectado.js +774 -0
  36. package/build/strategies/eeff/mappings/indices.d.ts +4 -0
  37. package/build/strategies/eeff/mappings/indices.js +262 -0
  38. package/build/strategies/eeff/mappings/supuestos.d.ts +4 -0
  39. package/build/strategies/eeff/mappings/supuestos.js +476 -0
  40. package/build/strategies/eeff/supuestos.strategy.d.ts +19 -0
  41. package/build/strategies/eeff/supuestos.strategy.js +130 -0
  42. package/build/strategies/utils.d.ts +1 -0
  43. package/build/strategies/utils.js +9 -1
  44. package/package.json +1 -1
@@ -1 +1,477 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.supuestosMapping = void 0;
4
+ exports.supuestosMapping = new Map([
5
+ [
6
+ 'X16',
7
+ { rubroId: 'ACT_SUP_00001', descripcion: 'Periodo en Meses Proyectado' }
8
+ ],
9
+ ['X19', { rubroId: 'ACT_SUP_10100', descripcion: 'SUPUESTOS DE INGRESOS' }],
10
+ [
11
+ 'X20',
12
+ {
13
+ rubroId: 'ACT_SUP_10101',
14
+ descripcion: 'Crecimiento en Ventas de Productos'
15
+ }
16
+ ],
17
+ [
18
+ 'X21',
19
+ {
20
+ rubroId: 'ACT_SUP_10102',
21
+ descripcion: 'Crecimiento en Ventas de Servicios'
22
+ }
23
+ ],
24
+ [
25
+ 'X22',
26
+ {
27
+ rubroId: 'ACT_SUP_10103',
28
+ descripcion: 'Devoluciones o Descuentos en Ventas'
29
+ }
30
+ ],
31
+ [
32
+ 'X23',
33
+ { rubroId: 'ACT_SUP_10104', descripcion: 'Ingresos No Operacionales' }
34
+ ],
35
+ [
36
+ 'X24',
37
+ {
38
+ rubroId: 'ACT_SUP_10105',
39
+ descripcion: 'Ingresos por Inflación y Tenencia de Bienes'
40
+ }
41
+ ],
42
+ ['X25', { rubroId: 'ACT_SUP_10200', descripcion: 'COSTOS' }],
43
+ [
44
+ 'X26',
45
+ { rubroId: 'ACT_SUP_10201', descripcion: 'Costo de Ventas/Ventas' }
46
+ ],
47
+ [
48
+ 'X27',
49
+ { rubroId: 'ACT_SUP_10202', descripcion: 'Gastos Operativos/Ventas' }
50
+ ],
51
+ [
52
+ 'X28',
53
+ { rubroId: 'ACT_SUP_10203', descripcion: 'Gastos No Operacionales' }
54
+ ],
55
+ [
56
+ 'X29',
57
+ {
58
+ rubroId: 'ACT_SUP_10204',
59
+ descripcion: 'Gastos por Inflación y Tenencia de Bienes'
60
+ }
61
+ ],
62
+ [
63
+ 'X30',
64
+ { rubroId: 'ACT_SUP_10300', descripcion: 'SUPUESTOS DE ACTIVIDAD' }
65
+ ],
66
+ [
67
+ 'X31',
68
+ {
69
+ rubroId: 'ACT_SUP_10301',
70
+ descripcion: 'Rotación Días Cuentas por Cobrar'
71
+ }
72
+ ],
73
+ [
74
+ 'X32',
75
+ { rubroId: 'ACT_SUP_10302', descripcion: 'Rotación Días Inventario' }
76
+ ],
77
+ [
78
+ 'X33',
79
+ {
80
+ rubroId: 'ACT_SUP_10303',
81
+ descripcion: 'Rotación Días Cuentas por Pagar'
82
+ }
83
+ ],
84
+ [
85
+ 'X34',
86
+ {
87
+ rubroId: 'ACT_SUP_10304',
88
+ descripcion: 'Cuentas por Cobrar Largo Plazo'
89
+ }
90
+ ],
91
+ [
92
+ 'X35',
93
+ { rubroId: 'ACT_SUP_10305', descripcion: 'Inventario Largo Plazo' }
94
+ ],
95
+ [
96
+ 'X36',
97
+ {
98
+ rubroId: 'ACT_SUP_10306',
99
+ descripcion: 'Cuentas por Pagar Largo Plazo'
100
+ }
101
+ ],
102
+ [
103
+ 'X37',
104
+ {
105
+ rubroId: 'ACT_SUP_10307',
106
+ descripcion: 'Cuentas por Cobrar Comerciales Empresas Relacionadas'
107
+ }
108
+ ],
109
+ ['X38', { rubroId: 'ACT_SUP_10308', descripcion: 'Anticipo de Clientes' }],
110
+ [
111
+ 'X39',
112
+ {
113
+ rubroId: 'ACT_SUP_10309',
114
+ descripcion: 'Intereses Bancarios por Pagar (N.Op)'
115
+ }
116
+ ],
117
+ [
118
+ 'X40',
119
+ {
120
+ rubroId: 'ACT_SUP_10400',
121
+ descripcion: 'SUPUESTOS DE INVERSIÓN EN ACTIVOS FIJOS'
122
+ }
123
+ ],
124
+ [
125
+ 'X41',
126
+ {
127
+ rubroId: 'ACT_SUP_10401',
128
+ descripcion: 'Monto de Incremento (decir.) en Inversiones en Activos Fijos'
129
+ }
130
+ ],
131
+ [
132
+ 'X42',
133
+ { rubroId: 'ACT_SUP_10402', descripcion: 'Coeficiente de Depreciación' }
134
+ ],
135
+ ['X43', { rubroId: 'ACT_SUP_10403', descripcion: 'Depreciación' }],
136
+ [
137
+ 'X44',
138
+ {
139
+ rubroId: 'ACT_SUP_10404',
140
+ descripcion: 'Coeficiente de Depreciación Operaciones de Leasing'
141
+ }
142
+ ],
143
+ [
144
+ 'X45',
145
+ {
146
+ rubroId: 'ACT_SUP_10405',
147
+ descripcion: 'Depreciación Operaciones Leasing'
148
+ }
149
+ ],
150
+ [
151
+ 'X46',
152
+ { rubroId: 'ACT_SUP_10500', descripcion: 'SUPUESTOS EN INVERSIONES' }
153
+ ],
154
+ [
155
+ 'X47',
156
+ {
157
+ rubroId: 'ACT_SUP_10501',
158
+ descripcion: 'Monto Incremento (Decremento) en Inversiones Permanentes'
159
+ }
160
+ ],
161
+ [
162
+ 'X48',
163
+ {
164
+ rubroId: 'ACT_SUP_10502',
165
+ descripcion: 'Ingreso por Inversiones Permanentes'
166
+ }
167
+ ],
168
+ ['X49', { rubroId: 'ACT_SUP_10503', descripcion: 'Monto Intangibles' }],
169
+ [
170
+ 'X50',
171
+ { rubroId: 'ACT_SUP_10600', descripcion: 'SUPUESTOS EN IMPUESTOS' }
172
+ ],
173
+ [
174
+ 'X51',
175
+ { rubroId: 'ACT_SUP_10601', descripcion: 'Impuesto a las Utilidades' }
176
+ ],
177
+ ['X52', { rubroId: 'ACT_SUP_10602', descripcion: 'Impuesto Neto al IVA' }],
178
+ [
179
+ 'X53',
180
+ {
181
+ rubroId: 'ACT_SUP_10603',
182
+ descripcion: 'Impuesto a las Transacciones'
183
+ }
184
+ ],
185
+ [
186
+ 'X54',
187
+ {
188
+ rubroId: 'ACT_SUP_10604',
189
+ descripcion: 'Obligaciones Fiscales y Sociales'
190
+ }
191
+ ],
192
+ [
193
+ 'X55',
194
+ { rubroId: 'ACT_SUP_10700', descripcion: 'SUPUESTOS EN PATRIMONIO' }
195
+ ],
196
+ [
197
+ 'X56',
198
+ {
199
+ rubroId: 'ACT_SUP_10701',
200
+ descripcion: 'Incremento en Capital Social'
201
+ }
202
+ ],
203
+ ['X57', { rubroId: 'ACT_SUP_10702', descripcion: 'Reserva Legal' }],
204
+ [
205
+ 'X58',
206
+ {
207
+ rubroId: 'ACT_SUP_10703',
208
+ descripcion: 'Monto Aportes por Capitalizar'
209
+ }
210
+ ],
211
+ [
212
+ 'X59',
213
+ {
214
+ rubroId: 'ACT_SUP_10704',
215
+ descripcion: 'Monto Capitalización de Utilidades No Distribuidas'
216
+ }
217
+ ],
218
+ ['X60', { rubroId: 'ACT_SUP_10705', descripcion: 'Deuda Subordinada' }],
219
+ [
220
+ 'X61',
221
+ {
222
+ rubroId: 'ACT_SUP_10706',
223
+ descripcion: 'Monto Incremento en Adelantos Socios'
224
+ }
225
+ ],
226
+ [
227
+ 'X62',
228
+ {
229
+ rubroId: 'ACT_SUP_10707',
230
+ descripcion: 'Monto Adelanto a Empresas Relacionadas No Comerciales'
231
+ }
232
+ ],
233
+ [
234
+ 'X63',
235
+ {
236
+ rubroId: 'ACT_SUP_10708',
237
+ descripcion: 'Monto Adelanto a Empresas Relacionadas No Comerciales LP'
238
+ }
239
+ ],
240
+ [
241
+ 'X64',
242
+ {
243
+ rubroId: 'ACT_SUP_10709',
244
+ descripcion: 'Monto Adelanto de Empresas Relacionadas No Comerciales'
245
+ }
246
+ ],
247
+ [
248
+ 'X65',
249
+ {
250
+ rubroId: 'ACT_SUP_10710',
251
+ descripcion: 'Monto Adelanto de Empresas Relacionadas No Comerciales LP'
252
+ }
253
+ ],
254
+ [
255
+ 'X66',
256
+ {
257
+ rubroId: 'ACT_SUP_10711',
258
+ descripcion: 'Política de Pago de Dividendos'
259
+ }
260
+ ],
261
+ [
262
+ 'X67',
263
+ {
264
+ rubroId: 'ACT_SUP_10800',
265
+ descripcion: 'SUPUESTOS DE ACTIVOS Y PASIVOS DIFERIDOS'
266
+ }
267
+ ],
268
+ [
269
+ 'X68',
270
+ {
271
+ rubroId: 'ACT_SUP_10801',
272
+ descripcion: 'Activos Circulantes Diferidos'
273
+ }
274
+ ],
275
+ [
276
+ 'X69',
277
+ {
278
+ rubroId: 'ACT_SUP_10802',
279
+ descripcion: 'Activos No Circulantes Diferidos'
280
+ }
281
+ ],
282
+ [
283
+ 'X70',
284
+ {
285
+ rubroId: 'ACT_SUP_10803',
286
+ descripcion: 'Pasivos Circulantes Diferidos'
287
+ }
288
+ ],
289
+ [
290
+ 'X71',
291
+ {
292
+ rubroId: 'ACT_SUP_10804',
293
+ descripcion: 'Pasivos No Circulantes Diferidos'
294
+ }
295
+ ],
296
+ ['X75', { rubroId: 'ACT_SUP_20100', descripcion: 'ACTIVOS' }],
297
+ [
298
+ 'X76',
299
+ {
300
+ rubroId: 'ACT_SUP_20101',
301
+ descripcion: 'Cuentas no Comerciales (N.Op)'
302
+ }
303
+ ],
304
+ [
305
+ 'X77',
306
+ {
307
+ rubroId: 'ACT_SUP_20102',
308
+ descripcion: 'Otros Activos Circulantes - Anticipo a Proveedores (Op.)'
309
+ }
310
+ ],
311
+ [
312
+ 'X78',
313
+ {
314
+ rubroId: 'ACT_SUP_20103',
315
+ descripcion: 'Otros Activos Circulantes - Prestamos a Socios (N.Op)'
316
+ }
317
+ ],
318
+ [
319
+ 'X79',
320
+ {
321
+ rubroId: 'ACT_SUP_20104',
322
+ descripcion: 'Otros Cuenta de Activos Circulantes - Credito Fiscal (N.Op)'
323
+ }
324
+ ],
325
+ ['X80', { rubroId: 'ACT_SUP_20105', descripcion: 'Obras en Curso (Op.)' }],
326
+ [
327
+ 'X81',
328
+ {
329
+ rubroId: 'ACT_SUP_20106',
330
+ descripcion: 'Otros Cuenta Activos No Circulantes (N.Op)'
331
+ }
332
+ ],
333
+ ['X82', { rubroId: 'ACT_SUP_20200', descripcion: 'PASIVOS' }],
334
+ [
335
+ 'X83',
336
+ {
337
+ rubroId: 'ACT_SUP_20201',
338
+ descripcion: 'Otros Pasivos Circulantes por Pagar (Op)'
339
+ }
340
+ ],
341
+ [
342
+ 'X84',
343
+ {
344
+ rubroId: 'ACT_SUP_20202',
345
+ descripcion: 'Otros Pasivos Circulantes por Pagar (N.Op)'
346
+ }
347
+ ],
348
+ [
349
+ 'X85',
350
+ {
351
+ rubroId: 'ACT_SUP_20203',
352
+ descripcion: 'Otras Cuenta de Pasivos Circulantes (N.Op)'
353
+ }
354
+ ],
355
+ [
356
+ 'X86',
357
+ { rubroId: 'ACT_SUP_20204', descripcion: 'Provisiones y Reservas' }
358
+ ],
359
+ [
360
+ 'X87',
361
+ {
362
+ rubroId: 'ACT_SUP_20205',
363
+ descripcion: 'Otros Pasivos No Circulantes (N.Op)'
364
+ }
365
+ ],
366
+ [
367
+ 'X88',
368
+ {
369
+ rubroId: 'ACT_SUP_20206',
370
+ descripcion: 'Otras Cuentas de Pasivos No Circulantes (N.Op)'
371
+ }
372
+ ],
373
+ ['X89', { rubroId: 'ACT_SUP_20300', descripcion: 'PATRIMONIO' }],
374
+ [
375
+ 'X90',
376
+ {
377
+ rubroId: 'ACT_SUP_20301',
378
+ descripcion: 'Ajuste Global del Patrimonio'
379
+ }
380
+ ],
381
+ ['X91', { rubroId: 'ACT_SUP_20302', descripcion: 'Otras Reservas' }],
382
+ [
383
+ 'X92',
384
+ {
385
+ rubroId: 'ACT_SUP_20303',
386
+ descripcion: 'Otra Cuenta de Patrimonio (Ajuste de Gestión Anterior + Ajuste Capital)'
387
+ }
388
+ ],
389
+ [
390
+ 'X94',
391
+ {
392
+ rubroId: 'ACT_SUP_30100',
393
+ descripcion: 'CUADRO ALTERNATIVO DE ADMINISTRACION FINANCIERA'
394
+ }
395
+ ],
396
+ [
397
+ 'X95',
398
+ {
399
+ rubroId: 'ACT_SUP_30101',
400
+ descripcion: 'Deuda Financiera de Corto Plazo'
401
+ }
402
+ ],
403
+ [
404
+ 'X96',
405
+ { rubroId: 'ACT_SUP_30102', descripcion: 'Préstamos a Plazo Fijo' }
406
+ ],
407
+ [
408
+ 'X97',
409
+ {
410
+ rubroId: 'ACT_SUP_30103',
411
+ descripcion: 'Vencimiento Corriente de Deuda de Largo Plazo BDP'
412
+ }
413
+ ],
414
+ [
415
+ 'X98',
416
+ {
417
+ rubroId: 'ACT_SUP_30104',
418
+ descripcion: 'Vencimiento Corriente de Deuda de Largo Plazo OTROS'
419
+ }
420
+ ],
421
+ [
422
+ 'X99',
423
+ {
424
+ rubroId: 'ACT_SUP_30105',
425
+ descripcion: 'Deuda Financiera de Largo Plazo BDP'
426
+ }
427
+ ],
428
+ [
429
+ 'X100',
430
+ {
431
+ rubroId: 'ACT_SUP_30106',
432
+ descripcion: 'Deuda Financiera de Largo Plazo OTROS'
433
+ }
434
+ ],
435
+ [
436
+ 'X101',
437
+ {
438
+ rubroId: 'ACT_SUP_30107',
439
+ descripcion: 'Gastos Financieros y Comisiones'
440
+ }
441
+ ],
442
+ [
443
+ 'X102',
444
+ {
445
+ rubroId: 'ACT_SUP_30108',
446
+ descripcion: 'Vencimiento Corriente Pasivos por Arrendamiento Financiero'
447
+ }
448
+ ],
449
+ [
450
+ 'X103',
451
+ {
452
+ rubroId: 'ACT_SUP_30109',
453
+ descripcion: 'Pasivos por Arrendamiento Financiero'
454
+ }
455
+ ],
456
+ [
457
+ 'X104',
458
+ {
459
+ rubroId: 'ACT_SUP_30110',
460
+ descripcion: 'Activos en Arrendamiento Financiero'
461
+ }
462
+ ],
463
+ [
464
+ 'X105',
465
+ {
466
+ rubroId: 'ACT_SUP_30111',
467
+ descripcion: 'Intereses Diferidos por Arrendamiento Financiero'
468
+ }
469
+ ],
470
+ [
471
+ 'X106',
472
+ {
473
+ rubroId: 'ACT_SUP_30112',
474
+ descripcion: 'Gastos Financieros Op. Leasing'
475
+ }
476
+ ]
477
+ ]);
@@ -15,6 +15,12 @@ export interface SupuestosStrategyData {
15
15
  };
16
16
  AdministracionFinancieraData: AdministracionFinancieraCalcData;
17
17
  CamposCalculados: Record<string, any>;
18
+ DeudaProyectada: {
19
+ Deudas: any[];
20
+ FinancierosVenc: any;
21
+ Financiamiento: any;
22
+ };
23
+ CuadroAlternativo: any[];
18
24
  }
19
25
  export default class SupuestosStrategy implements Strategy {
20
26
  data: SupuestosStrategyData | null;
@@ -27,6 +33,7 @@ export default class SupuestosStrategy implements Strategy {
27
33
  private setDepreciacion;
28
34
  private setDepreciacionLeasing;
29
35
  private actualizarCampo;
36
+ private actualizarCampoCuadroAlternativo;
30
37
  private esCampoCalculado;
31
38
  private quitarCampoCalculado;
32
39
  private agregarCampoCalculado;
@@ -41,4 +48,16 @@ export default class SupuestosStrategy implements Strategy {
41
48
  private setRotacionDiasPorCobrar;
42
49
  private setRotacionDiasPorPagar;
43
50
  private setCoeficienteDepreciacion;
51
+ private actualizarRubroDesdeMultiplesDeudas;
52
+ private obtenerValorDeuda;
53
+ private setGastosFinancieros;
54
+ private setDeudaFinancieraCortoPlazo;
55
+ private setVencimientoCorrienteBDP;
56
+ private setVencimientoCorrienteOTROS;
57
+ private setDeudaFinancieraLargoBDP;
58
+ private setDeudaFinancieraLargoOTROS;
59
+ private setVencimientoCorrientePasivos;
60
+ private setPasivosArrendamientoFinanciero;
61
+ private setGastosFinancierosLeasing;
62
+ private setDeudaProyectada;
44
63
  }
@@ -47,6 +47,7 @@ class SupuestosStrategy {
47
47
  this.setDepreciacion();
48
48
  this.setDepreciacionLeasing();
49
49
  this.applyAdministracionFinancieraData();
50
+ this.setDeudaProyectada();
50
51
  return this.data;
51
52
  }
52
53
  setDepreciacion() {
@@ -82,6 +83,22 @@ class SupuestosStrategy {
82
83
  }
83
84
  }
84
85
  }
86
+ actualizarCampoCuadroAlternativo(rubroId, correlativo, valor) {
87
+ const row = this.data?.CuadroAlternativo.find((el) => el.RubroId === rubroId);
88
+ if (!row) {
89
+ console.error(`Rubro ${rubroId} no encontrado en CuadroAlternativo`);
90
+ return;
91
+ }
92
+ const gestionKey = `Gestion${correlativo}`;
93
+ if (row[gestionKey] &&
94
+ typeof row[gestionKey] === 'object' &&
95
+ row[gestionKey].value !== undefined) {
96
+ row[gestionKey].value = valor;
97
+ }
98
+ else {
99
+ row[gestionKey] = valor;
100
+ }
101
+ }
85
102
  esCampoCalculado(rubroId, correlativo) {
86
103
  return !!this.data?.CamposCalculados[rubroId]?.[`Gestion${correlativo}`];
87
104
  }
@@ -166,6 +183,8 @@ class SupuestosStrategy {
166
183
  this.setRotacionDiasPorPagar();
167
184
  //coef depreciacion
168
185
  this.setCoeficienteDepreciacion();
186
+ //data DeudaProyectada
187
+ this.setDeudaProyectada();
169
188
  }
170
189
  setCostoDeVentas() {
171
190
  const costoMercaderia = this.data?.EEFF.eerr.find((el) => el.RubroId ==
@@ -256,5 +275,116 @@ class SupuestosStrategy {
256
275
  }
257
276
  }
258
277
  }
278
+ actualizarRubroDesdeMultiplesDeudas(cuadroAlternativoRubroId, deudaRubroIds) {
279
+ const deudas = [];
280
+ deudaRubroIds.forEach((rubroId) => {
281
+ const deudasRubro = this.data?.DeudaProyectada.Deudas.filter((el) => el.RubroId === rubroId);
282
+ if (deudasRubro && deudasRubro.length > 0) {
283
+ deudas.push(deudasRubro);
284
+ }
285
+ });
286
+ for (let i = 1; i <= this.cantidadProyeccion; i++) {
287
+ let sumaTotal = 0;
288
+ deudas.forEach((deudasRubro) => {
289
+ deudasRubro.forEach((deuda) => {
290
+ const monto = this.obtenerValorDeuda(deuda, `Monto${i}`);
291
+ sumaTotal += isNaN(monto) ? 0 : monto;
292
+ });
293
+ });
294
+ this.actualizarCampoCuadroAlternativo(cuadroAlternativoRubroId, i, sumaTotal);
295
+ }
296
+ }
297
+ obtenerValorDeuda(deuda, key) {
298
+ const valor = deuda[key];
299
+ if (valor === null || valor === undefined) {
300
+ return 0;
301
+ }
302
+ if (typeof valor === 'object' && valor.value !== undefined) {
303
+ return (0, utils_1.ourParseFloat)(valor.value);
304
+ }
305
+ return (0, utils_1.ourParseFloat)(valor);
306
+ }
307
+ setGastosFinancieros() {
308
+ const rubrosDeuda = [
309
+ 'ACT_DEU_10300',
310
+ 'ACT_DEU_20300',
311
+ 'ACT_DEU_40300',
312
+ 'ACT_DEU_41003',
313
+ 'ACT_DEU_50003',
314
+ 'ACT_DEU_60003'
315
+ ];
316
+ const rubroFinanciamiento = 'ACT_DEU_75204';
317
+ let sumaInteresesFinancierosVenc = 0;
318
+ if (this.data?.DeudaProyectada.FinancierosVenc &&
319
+ this.data.DeudaProyectada.FinancierosVenc.length > 0) {
320
+ this.data.DeudaProyectada.FinancierosVenc.forEach((item) => {
321
+ const interes = (0, utils_1.ourParseFloat)(item.Interes);
322
+ sumaInteresesFinancierosVenc += isNaN(interes) ? 0 : interes;
323
+ });
324
+ }
325
+ const gastosFinancieros = this.data?.CuadroAlternativo.find((el) => el.RubroId === supuestos_1.CuadroAlternativo.Gastos_Financieros_Comisiones);
326
+ if (!gastosFinancieros) {
327
+ console.error('Rubro ACT_SUP_30107 no encontrado en CuadroAlternativo');
328
+ return;
329
+ }
330
+ for (let i = 1; i <= this.cantidadProyeccion; i++) {
331
+ let sumaTotal = 0;
332
+ rubrosDeuda.forEach((rubroId) => {
333
+ const deudas = this.data?.DeudaProyectada.Deudas.filter((el) => el.RubroId === rubroId);
334
+ if (deudas && deudas.length > 0) {
335
+ deudas.forEach((deuda) => {
336
+ const monto = this.obtenerValorDeuda(deuda, `Monto${i}`);
337
+ sumaTotal += isNaN(monto) ? 0 : monto;
338
+ });
339
+ }
340
+ });
341
+ const financiamientos = this.data?.DeudaProyectada.Financiamiento.filter((el) => el.id === rubroFinanciamiento);
342
+ if (financiamientos && financiamientos.length > 0) {
343
+ financiamientos.forEach((financiamiento) => {
344
+ const monto = this.obtenerValorDeuda(financiamiento, `Monto${i}`);
345
+ sumaTotal += isNaN(monto) ? 0 : monto;
346
+ });
347
+ }
348
+ if (i === 1) {
349
+ sumaTotal += sumaInteresesFinancierosVenc;
350
+ }
351
+ this.actualizarCampoCuadroAlternativo('ACT_SUP_30107', i, sumaTotal);
352
+ }
353
+ }
354
+ setDeudaFinancieraCortoPlazo() {
355
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Deuda_Financiera_de_Corto_Plazo, ['ACT_DEU_50001']);
356
+ }
357
+ setVencimientoCorrienteBDP() {
358
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Vencimiento_Corriente_Deuda_Largo_Plazo_BDP, ['ACT_DEU_40100', 'ACT_DEU_41001']);
359
+ }
360
+ setVencimientoCorrienteOTROS() {
361
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Vencimiento_Corriente_Deuda_Largo_Plazo_OTROS, ['ACT_DEU_20100', 'ACT_DEU_10100']);
362
+ }
363
+ setDeudaFinancieraLargoBDP() {
364
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Deuda_Financiera_Largo_Plazo_BDP, ['ACT_DEU_40200', 'ACT_DEU_41002']);
365
+ }
366
+ setDeudaFinancieraLargoOTROS() {
367
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Deuda_Financiera_Largo_Plazo_OTROS, ['ACT_DEU_10200', 'ACT_DEU_20200']);
368
+ }
369
+ setVencimientoCorrientePasivos() {
370
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Vancimiento_Corriente_Pasivos, ['ACT_DEU_30100']);
371
+ }
372
+ setPasivosArrendamientoFinanciero() {
373
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Pasivos_Arrendamiento_Financiero, ['ACT_DEU_30200']);
374
+ }
375
+ setGastosFinancierosLeasing() {
376
+ this.actualizarRubroDesdeMultiplesDeudas(supuestos_1.CuadroAlternativo.Gastos_Financieros_Op_Leasing, ['ACT_DEU_30300']);
377
+ }
378
+ setDeudaProyectada() {
379
+ this.setDeudaFinancieraCortoPlazo();
380
+ this.setVencimientoCorrienteBDP();
381
+ this.setVencimientoCorrienteOTROS();
382
+ this.setDeudaFinancieraLargoBDP();
383
+ this.setDeudaFinancieraLargoOTROS();
384
+ this.setVencimientoCorrientePasivos();
385
+ this.setPasivosArrendamientoFinanciero();
386
+ this.setGastosFinancierosLeasing();
387
+ this.setGastosFinancieros();
388
+ }
259
389
  }
260
390
  exports.default = SupuestosStrategy;
@@ -6,4 +6,5 @@ interface FormatCamposCalculadosParams {
6
6
  }
7
7
  export declare function formatCamposCalculados({ definidos, concretos, cantidadGestiones }: FormatCamposCalculadosParams): CampoCalculado[];
8
8
  export declare function searchByKeyInMap(map: Map<string, any>, needle: string): any;
9
+ export declare function divide(num: any, by: any): number;
9
10
  export {};
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.searchByKeyInMap = exports.formatCamposCalculados = void 0;
3
+ exports.divide = exports.searchByKeyInMap = exports.formatCamposCalculados = void 0;
4
4
  const lodash_1 = require("lodash");
5
+ const utils_1 = require("./eeff/admFinanciera/utils");
5
6
  function formatCamposCalculados({ definidos, concretos, cantidadGestiones }) {
6
7
  const campos = [];
7
8
  concretos?.forEach((el) => {
@@ -54,3 +55,10 @@ function searchByKeyInMap(map, needle) {
54
55
  return map.get(key);
55
56
  }
56
57
  exports.searchByKeyInMap = searchByKeyInMap;
58
+ function divide(num, by) {
59
+ const parsedBy = (0, utils_1.ourParseFloat)(by);
60
+ if (!parsedBy)
61
+ return 0;
62
+ return (0, utils_1.ourParseFloat)(num) / parsedBy;
63
+ }
64
+ exports.divide = divide;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.96",
3
+ "version": "1.0.100",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",