bdpformulas 1.0.99 → 1.0.101

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.
@@ -566,25 +566,25 @@ exports.balanceProyectadoMapping.set('X139', {
566
566
  RubroId: 'ACT_FJ_10101',
567
567
  RubroPadreId: 'ACT_FJ_10200',
568
568
  Descripcion: 'Utilidad Neta + Gastos Financieros',
569
- Clasificador: 'C'
569
+ Clasificador: 'H'
570
570
  });
571
571
  exports.balanceProyectadoMapping.set('X140', {
572
572
  RubroId: 'ACT_FJ_10102',
573
573
  RubroPadreId: 'ACT_FJ_10200',
574
574
  Descripcion: 'Gastos Financieros',
575
- Clasificador: 'C'
575
+ Clasificador: 'H'
576
576
  });
577
577
  exports.balanceProyectadoMapping.set('X141', {
578
578
  RubroId: 'ACT_FJ_10103',
579
579
  RubroPadreId: 'ACT_FJ_10200',
580
580
  Descripcion: 'Depreciación',
581
- Clasificador: 'C'
581
+ Clasificador: 'H'
582
582
  });
583
583
  exports.balanceProyectadoMapping.set('X142', {
584
584
  RubroId: 'ACT_FJ_10104',
585
585
  RubroPadreId: 'ACT_FJ_10200',
586
586
  Descripcion: 'Otras Cuentas que No Implican Movimiento de Fondos',
587
- Clasificador: 'C'
587
+ Clasificador: 'H'
588
588
  });
589
589
  exports.balanceProyectadoMapping.set('X143', {
590
590
  RubroId: 'ACT_FJ_10200',
@@ -596,37 +596,37 @@ exports.balanceProyectadoMapping.set('X144', {
596
596
  RubroId: 'ACT_FJ_10201',
597
597
  RubroPadreId: 'ACT_FJ_10300',
598
598
  Descripcion: 'Cuentas por Cobrar Comerciales (Netas de Incobrables)',
599
- Clasificador: 'C'
599
+ Clasificador: 'H'
600
600
  });
601
601
  exports.balanceProyectadoMapping.set('X145', {
602
602
  RubroId: 'ACT_FJ_10202',
603
603
  RubroPadreId: 'ACT_FJ_10300',
604
604
  Descripcion: 'Cuentas Comerciales Empresas Relacionadas',
605
- Clasificador: 'C'
605
+ Clasificador: 'H'
606
606
  });
607
607
  exports.balanceProyectadoMapping.set('X146', {
608
608
  RubroId: 'ACT_FJ_10203',
609
609
  RubroPadreId: 'ACT_FJ_10300',
610
610
  Descripcion: 'Realizables (Inventarios)',
611
- Clasificador: 'C'
611
+ Clasificador: 'H'
612
612
  });
613
613
  exports.balanceProyectadoMapping.set('X147', {
614
614
  RubroId: 'ACT_FJ_10204',
615
615
  RubroPadreId: 'ACT_FJ_10300',
616
616
  Descripcion: 'Cuentas Comerciales por Pagar (Proveedores)',
617
- Clasificador: 'C'
617
+ Clasificador: 'H'
618
618
  });
619
619
  exports.balanceProyectadoMapping.set('X148', {
620
620
  RubroId: 'ACT_FJ_10205',
621
621
  RubroPadreId: 'ACT_FJ_10300',
622
622
  Descripcion: 'Otros Activos (Operativo)',
623
- Clasificador: 'C'
623
+ Clasificador: 'H'
624
624
  });
625
625
  exports.balanceProyectadoMapping.set('X149', {
626
626
  RubroId: 'ACT_FJ_10206',
627
627
  RubroPadreId: 'ACT_FJ_10300',
628
628
  Descripcion: 'Otros Pasivos (Operativo)',
629
- Clasificador: 'C'
629
+ Clasificador: 'H'
630
630
  });
631
631
  exports.balanceProyectadoMapping.set('X150', {
632
632
  RubroId: 'ACT_FJ_10300',
@@ -638,25 +638,25 @@ exports.balanceProyectadoMapping.set('X151', {
638
638
  RubroId: 'ACT_FJ_10301',
639
639
  RubroPadreId: 'ACT_FJ_10400',
640
640
  Descripcion: 'Activos y Pasivos Diferidos',
641
- Clasificador: 'C'
641
+ Clasificador: 'H'
642
642
  });
643
643
  exports.balanceProyectadoMapping.set('X152', {
644
644
  RubroId: 'ACT_FJ_10302',
645
645
  RubroPadreId: 'ACT_FJ_10400',
646
646
  Descripcion: 'Otros Activos (No Operativo)',
647
- Clasificador: 'C'
647
+ Clasificador: 'H'
648
648
  });
649
649
  exports.balanceProyectadoMapping.set('X153', {
650
650
  RubroId: 'ACT_FJ_10303',
651
651
  RubroPadreId: 'ACT_FJ_10400',
652
652
  Descripcion: 'Otros Pasivos (No Operativo)',
653
- Clasificador: 'C'
653
+ Clasificador: 'H'
654
654
  });
655
655
  exports.balanceProyectadoMapping.set('X154', {
656
656
  RubroId: 'ACT_FJ_10304',
657
657
  RubroPadreId: 'ACT_FJ_10400',
658
658
  Descripcion: 'Obligaciones Fiscales y Sociales',
659
- Clasificador: 'C'
659
+ Clasificador: 'H'
660
660
  });
661
661
  exports.balanceProyectadoMapping.set('X155', {
662
662
  RubroId: 'ACT_FJ_10400',
@@ -668,19 +668,19 @@ exports.balanceProyectadoMapping.set('X156', {
668
668
  RubroId: 'ACT_FJ_10401',
669
669
  RubroPadreId: 'ACT_FJ_10500',
670
670
  Descripcion: 'Inversiones (-) o Ventas (+) en Activos Fijos ',
671
- Clasificador: 'C'
671
+ Clasificador: 'H'
672
672
  });
673
673
  exports.balanceProyectadoMapping.set('X157', {
674
674
  RubroId: 'ACT_FJ_10402',
675
675
  RubroPadreId: 'ACT_FJ_10500',
676
676
  Descripcion: 'Variaciones en Activos por Arrendamiento Financiero',
677
- Clasificador: 'C'
677
+ Clasificador: 'H'
678
678
  });
679
679
  exports.balanceProyectadoMapping.set('X158', {
680
680
  RubroId: 'ACT_FJ_10403',
681
681
  RubroPadreId: 'ACT_FJ_10500',
682
682
  Descripcion: 'Inversiones de Largo Plazo',
683
- Clasificador: 'C'
683
+ Clasificador: 'H'
684
684
  });
685
685
  exports.balanceProyectadoMapping.set('X159', {
686
686
  RubroId: 'ACT_FJ_10500',
@@ -692,43 +692,43 @@ exports.balanceProyectadoMapping.set('X160', {
692
692
  RubroId: 'ACT_FJ_10501',
693
693
  RubroPadreId: 'ACT_FJ_10600',
694
694
  Descripcion: 'Amortización de Deuda (Vencimiento Corriente de deuda del año anterior)',
695
- Clasificador: 'C'
695
+ Clasificador: 'H'
696
696
  });
697
697
  exports.balanceProyectadoMapping.set('X161', {
698
698
  RubroId: 'ACT_FJ_10502',
699
699
  RubroPadreId: 'ACT_FJ_10600',
700
700
  Descripcion: 'Deuda Financiera de Corto Plazo',
701
- Clasificador: 'C'
701
+ Clasificador: 'H'
702
702
  });
703
703
  exports.balanceProyectadoMapping.set('X162', {
704
704
  RubroId: 'ACT_FJ_10503',
705
705
  RubroPadreId: 'ACT_FJ_10600',
706
706
  Descripcion: 'Deuda Financiera de Largo Plazo y Venc. Corr. Deuda del Año',
707
- Clasificador: 'C'
707
+ Clasificador: 'H'
708
708
  });
709
709
  exports.balanceProyectadoMapping.set('X163', {
710
710
  RubroId: 'ACT_FJ_10504',
711
711
  RubroPadreId: 'ACT_FJ_10600',
712
712
  Descripcion: 'Deuda Subordinada',
713
- Clasificador: 'C'
713
+ Clasificador: 'H'
714
714
  });
715
715
  exports.balanceProyectadoMapping.set('X164', {
716
716
  RubroId: 'ACT_FJ_10505',
717
717
  RubroPadreId: 'ACT_FJ_10600',
718
718
  Descripcion: 'Inversiones y/o Adelantos a (de) Empresas Relacionadas',
719
- Clasificador: 'C'
719
+ Clasificador: 'H'
720
720
  });
721
721
  exports.balanceProyectadoMapping.set('X165', {
722
722
  RubroId: 'ACT_FJ_10506',
723
723
  RubroPadreId: 'ACT_FJ_10600',
724
724
  Descripcion: 'Dividendos y Anticipo a Socios',
725
- Clasificador: 'C'
725
+ Clasificador: 'H'
726
726
  });
727
727
  exports.balanceProyectadoMapping.set('X166', {
728
728
  RubroId: 'ACT_FJ_10507',
729
729
  RubroPadreId: 'ACT_FJ_10600',
730
730
  Descripcion: 'Ajustes Patrimoniales',
731
- Clasificador: 'C'
731
+ Clasificador: 'H'
732
732
  });
733
733
  exports.balanceProyectadoMapping.set('X167', {
734
734
  RubroId: 'ACT_FJ_10600',
@@ -1,6 +1,7 @@
1
1
  import { AdministracionFinancieraCalcData } from '../../models/eeff/admFinanciera';
2
2
  import { Strategy } from '../../strategy.interface';
3
3
  export interface SupuestosStrategyData {
4
+ InicioProyeccionGestion: number;
4
5
  CantidadProyeccion: number;
5
6
  CantidadGestiones: number;
6
7
  Supuestos: any[];
@@ -8,11 +9,6 @@ export interface SupuestosStrategyData {
8
9
  balance: any[];
9
10
  eerr: any[];
10
11
  };
11
- BalanceProyectado: {
12
- Balance: any[];
13
- EERR: any[];
14
- FlujoCaja: any[];
15
- };
16
12
  AdministracionFinancieraData: AdministracionFinancieraCalcData;
17
13
  CamposCalculados: Record<string, any>;
18
14
  DeudaProyectada: {
@@ -26,10 +22,12 @@ export default class SupuestosStrategy implements Strategy {
26
22
  data: SupuestosStrategyData | null;
27
23
  private cantidadProyeccion;
28
24
  private cantidadGestiones;
25
+ private inicioProyeccionGestion;
29
26
  constructor();
30
27
  private anadirPrecalculo;
31
28
  private cleanNumber;
32
29
  execute(data: SupuestosStrategyData): SupuestosStrategyData;
30
+ private getActivoFijoNeto;
33
31
  private setDepreciacion;
34
32
  private setDepreciacionLeasing;
35
33
  private actualizarCampo;
@@ -37,10 +35,8 @@ export default class SupuestosStrategy implements Strategy {
37
35
  private esCampoCalculado;
38
36
  private quitarCampoCalculado;
39
37
  private agregarCampoCalculado;
40
- private applyAdministracionFinancieraData;
41
38
  private setRotacionDiasInventario;
42
39
  private setMontoIncremento;
43
- private getTotalesActivacionLeasing;
44
40
  private getSumaProyeccionUntil;
45
41
  private setBalanceData;
46
42
  private setCostoDeVentas;
@@ -9,10 +9,12 @@ class SupuestosStrategy {
9
9
  data;
10
10
  cantidadProyeccion;
11
11
  cantidadGestiones;
12
+ inicioProyeccionGestion;
12
13
  constructor() {
13
14
  this.data = null;
14
15
  this.cantidadGestiones = -1;
15
16
  this.cantidadProyeccion = -1;
17
+ this.inicioProyeccionGestion = -1;
16
18
  }
17
19
  //@ts-ignore
18
20
  anadirPrecalculo(origen, rubroOrigen, rubroDestino, percent = false) {
@@ -43,29 +45,71 @@ class SupuestosStrategy {
43
45
  this.cantidadGestiones = data.CantidadGestiones;
44
46
  if (data.CantidadProyeccion)
45
47
  this.cantidadProyeccion = data.CantidadProyeccion;
48
+ if (data.InicioProyeccionGestion)
49
+ this.inicioProyeccionGestion = data.InicioProyeccionGestion;
46
50
  this.setBalanceData();
51
+ this.setMontoIncremento();
47
52
  this.setDepreciacion();
48
53
  this.setDepreciacionLeasing();
49
- this.applyAdministracionFinancieraData();
50
54
  this.setDeudaProyectada();
51
55
  return this.data;
52
56
  }
57
+ getActivoFijoNeto(gestion) {
58
+ const balanceActivosFijosNetos = this.data?.EEFF.balance.find((el) => el.RubroId === balance_1.EEFFBalanceRubro.Activos_Fijos_Netos);
59
+ let res;
60
+ if (gestion > 0) {
61
+ const anterior = this.getActivoFijoNeto(gestion - 1);
62
+ const supuestoMontoIncremento = this.data?.Supuestos.find((el) => el.RubroId ===
63
+ supuestos_1.SupuestosRubro.Monto_de_Incremento_decir_en_Inversiones_en_Activos_Fijos);
64
+ const supuestoDepreciacion = this.data?.Supuestos.find((el) => el.RubroId === supuestos_1.SupuestosRubro.Depreciación);
65
+ const admFinanciera680 = (0, utils_1.ourParseFloat)(this.data?.AdministracionFinancieraData.Totales.PrestamosLeasing
66
+ .CuadroDefinicionOperacion[`Gestion${gestion}`]);
67
+ //const supuestoCoefDepreciacion = this.data?.Supuestos.find(el => el.RubroId === 'ACT_SUP_10402')
68
+ if (supuestoMontoIncremento?.Clasificacion === 'C') {
69
+ res =
70
+ anterior *
71
+ (1 +
72
+ (0, utils_1.ourParseFloat)(supuestoMontoIncremento?.[`Gestion${gestion}`])) -
73
+ admFinanciera680 -
74
+ (0, utils_1.ourParseFloat)(supuestoDepreciacion?.[`Gestion${gestion}`]);
75
+ }
76
+ else if (supuestoMontoIncremento?.Clasificacion === 'A') {
77
+ res =
78
+ (0, utils_1.ourParseFloat)(supuestoMontoIncremento?.[`Gestion${gestion}`]) -
79
+ admFinanciera680 -
80
+ (0, utils_1.ourParseFloat)(supuestoDepreciacion?.[`Gestion${gestion}`]);
81
+ }
82
+ else if (supuestoMontoIncremento?.Clasificacion === 'CA') {
83
+ res =
84
+ anterior +
85
+ (0, utils_1.ourParseFloat)(supuestoMontoIncremento?.[`Gestion${gestion}`]) -
86
+ admFinanciera680 -
87
+ (0, utils_1.ourParseFloat)(supuestoDepreciacion?.[`Gestion${gestion}`]);
88
+ }
89
+ }
90
+ else {
91
+ res =
92
+ balanceActivosFijosNetos?.[`Gestion${this.inicioProyeccionGestion}`];
93
+ }
94
+ return (0, utils_1.ourParseFloat)(res);
95
+ }
53
96
  setDepreciacion() {
54
97
  const rowDeprecCoef = this.data?.Supuestos.find((item) => item.RubroId == 'ACT_SUP_10402');
55
98
  for (let i = 1; i <= this.cantidadProyeccion; i++) {
56
- const activosFijosNetos = this.data?.BalanceProyectado.Balance.find((item) => item.RubroId == 'BP_ACT_EF_12003');
57
- this.actualizarCampo(supuestos_1.SupuestosRubro.Depreciación, i, this.cleanNumber(rowDeprecCoef[`Gestion${i}`]) *
58
- this.cleanNumber(activosFijosNetos?.[`Gestion${i}`]));
99
+ const activoFijoNeto = this.getActivoFijoNeto(i - 1);
100
+ this.actualizarCampo(supuestos_1.SupuestosRubro.Depreciación, i, this.cleanNumber(rowDeprecCoef[`Gestion${i}`]) * activoFijoNeto);
59
101
  }
60
102
  }
61
103
  setDepreciacionLeasing() {
62
104
  const rowDeprecCoefLeasing = this.data?.Supuestos.find((item) => item.RubroId ==
63
105
  supuestos_1.SupuestosRubro.Coeficiente_de_Depreciación_Operaciones_de_Leasing);
64
- const totalesActivacionLeasing = this.getTotalesActivacionLeasing();
65
- const activosPorArrendamiento = this.data?.BalanceProyectado.Balance.find((item) => item.RubroId == 'BP_ACT_EF_12004');
106
+ const totalesActivacionLeasing = this.data?.AdministracionFinancieraData.Totales.PrestamosLeasing
107
+ .ActivacionOperacionLeasing ?? {};
108
+ const balanceActivoPorArrendamiento = (0, utils_1.ourParseFloat)(this.data?.EEFF.balance.find((el) => el.RubroId ===
109
+ balance_1.EEFFBalanceRubro.Activos_por_Arrendamiento_Financiero)?.[`Gestion${this.inicioProyeccionGestion}`]);
66
110
  for (let i = 1; i <= this.cantidadProyeccion; i++) {
67
111
  this.actualizarCampo(supuestos_1.SupuestosRubro.Depreciación_Operaciones_Leasing, i, this.cleanNumber(rowDeprecCoefLeasing[`Gestion${i}`]) *
68
- (this.cleanNumber(activosPorArrendamiento?.[`Gestion${i}`]) +
112
+ (balanceActivoPorArrendamiento +
69
113
  this.getSumaProyeccionUntil(totalesActivacionLeasing, i)));
70
114
  }
71
115
  }
@@ -115,9 +159,6 @@ class SupuestosStrategy {
115
159
  [rubroId]: { [`Gestion${correlativo}`]: valor }
116
160
  });
117
161
  }
118
- applyAdministracionFinancieraData() {
119
- this.setMontoIncremento();
120
- }
121
162
  setRotacionDiasInventario() {
122
163
  const realizables = this.data?.EEFF.balance.find((el) => el.RubroId == balance_1.EEFFBalanceRubro.Realizables_Inventarios);
123
164
  const aplicaciones = this.data?.AdministracionFinancieraData.ProyeccionAplicaciones;
@@ -153,16 +194,6 @@ class SupuestosStrategy {
153
194
  this.actualizarCampo(supuestos_1.SupuestosRubro.Monto_de_Incremento_decir_en_Inversiones_en_Activos_Fijos, 1, (0, utils_1.ourParseFloat)(kiPrestamoDirecto?.[`Gestion1`]) +
154
195
  (0, utils_1.ourParseFloat)(kiKoMixta?.[`Gestion1`]));
155
196
  }
156
- getTotalesActivacionLeasing() {
157
- return (this.data?.AdministracionFinancieraData.PrestamoLeasing.filter((el) => el.IndicadorABM !== 'B' && el.Clasificador !== 'T').reduce((acc, el) => {
158
- for (let i = 1; i <= this.cantidadProyeccion; i++) {
159
- acc[`Gestion${i}`] =
160
- (0, utils_1.ourParseFloat)(acc[`Gestion${i}`]) +
161
- (0, utils_1.ourParseFloat)(el.ActivacionesOperacion?.[`Gestion${i}`]);
162
- }
163
- return acc;
164
- }, {}) ?? {});
165
- }
166
197
  getSumaProyeccionUntil(proyeccion, until) {
167
198
  let sum = 0;
168
199
  for (let i = 1; i <= until; i++) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.99",
3
+ "version": "1.0.101",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",