bdpformulas 1.0.80 → 1.0.82

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.
@@ -17,25 +17,31 @@ export declare enum EEFFConsolidadoRubroEnum {
17
17
  TotalPasivoNoCorriente = "ACT_CN_22900",
18
18
  TotalPasivo = "ACT_CN_29000",
19
19
  Patrimonio = "ACT_CN_30000",
20
+ Capital = "ACT_CN_30001",
20
21
  Resultados_de_la_Gestión = "ACT_CN_30001_a",
21
22
  OtrosPatrimonio = "ACT_CN_30002",
22
23
  TotalPatrimonio = "ACT_CN_39000",
23
24
  TotalPasivoPatrimonio = "ACT_CN_39900",
24
25
  Ingresos = "ACT_CN_40000",
25
26
  IngresoPorVentas = "ACT_CN_40001",
27
+ IngresoPorVentas_Subcuenta = "ACT_CN_40001.1",
26
28
  OtrosIngresos = "ACT_CN_40002",
27
29
  TotalIngresos = "ACT_CN_40003",
28
30
  Costos = "ACT_CN_41000",
29
31
  'CostosDeVentas%' = "ACT_CN_41001",
30
32
  CostosDeVentas = "ACT_CN_41002",
33
+ CostosDeVentas_Subcuenta = "ACT_CN_41002.1",
31
34
  OtrosCostos = "ACT_CN_41003",
32
35
  TotalCostos = "ACT_CN_41004",
33
36
  Gastos = "ACT_CN_43000",
34
37
  'GastosAdministrativos/Operativos%' = "ACT_CN_43001",
35
38
  'GastosAdministrativos/Operativos' = "ACT_CN_43002",
39
+ 'GastosAdministrativos/Operativos_Subcuenta' = "ACT_CN_43002.1",
36
40
  OtrosGastos = "ACT_CN_43004",
37
41
  TotalGastosOperativos = "ACT_CN_43900",
38
42
  OtrosIngresosEgresos = "ACT_CN_45000",
43
+ EERROtrosIngresos = "ACT_CN_45001",
44
+ EERROtrosIngresos_Subcuenta = "ACT_CN_45001.1",
39
45
  OtrosOtrosIngresosEgresos = "ACT_CN_45001D",
40
46
  TotalOtrosIngresosEgresos = "ACT_CN_45900",
41
47
  UtilidadBruta = "ACT_CN_42000",
@@ -21,6 +21,7 @@ var EEFFConsolidadoRubroEnum;
21
21
  EEFFConsolidadoRubroEnum["TotalPasivoNoCorriente"] = "ACT_CN_22900";
22
22
  EEFFConsolidadoRubroEnum["TotalPasivo"] = "ACT_CN_29000";
23
23
  EEFFConsolidadoRubroEnum["Patrimonio"] = "ACT_CN_30000";
24
+ EEFFConsolidadoRubroEnum["Capital"] = "ACT_CN_30001";
24
25
  EEFFConsolidadoRubroEnum["Resultados_de_la_Gesti\u00F3n"] = "ACT_CN_30001_a";
25
26
  EEFFConsolidadoRubroEnum["OtrosPatrimonio"] = "ACT_CN_30002";
26
27
  EEFFConsolidadoRubroEnum["TotalPatrimonio"] = "ACT_CN_39000";
@@ -28,19 +29,24 @@ var EEFFConsolidadoRubroEnum;
28
29
  //eerr
29
30
  EEFFConsolidadoRubroEnum["Ingresos"] = "ACT_CN_40000";
30
31
  EEFFConsolidadoRubroEnum["IngresoPorVentas"] = "ACT_CN_40001";
32
+ EEFFConsolidadoRubroEnum["IngresoPorVentas_Subcuenta"] = "ACT_CN_40001.1";
31
33
  EEFFConsolidadoRubroEnum["OtrosIngresos"] = "ACT_CN_40002";
32
34
  EEFFConsolidadoRubroEnum["TotalIngresos"] = "ACT_CN_40003";
33
35
  EEFFConsolidadoRubroEnum["Costos"] = "ACT_CN_41000";
34
36
  EEFFConsolidadoRubroEnum["CostosDeVentas%"] = "ACT_CN_41001";
35
37
  EEFFConsolidadoRubroEnum["CostosDeVentas"] = "ACT_CN_41002";
38
+ EEFFConsolidadoRubroEnum["CostosDeVentas_Subcuenta"] = "ACT_CN_41002.1";
36
39
  EEFFConsolidadoRubroEnum["OtrosCostos"] = "ACT_CN_41003";
37
40
  EEFFConsolidadoRubroEnum["TotalCostos"] = "ACT_CN_41004";
38
41
  EEFFConsolidadoRubroEnum["Gastos"] = "ACT_CN_43000";
39
42
  EEFFConsolidadoRubroEnum["GastosAdministrativos/Operativos%"] = "ACT_CN_43001";
40
43
  EEFFConsolidadoRubroEnum["GastosAdministrativos/Operativos"] = "ACT_CN_43002";
44
+ EEFFConsolidadoRubroEnum["GastosAdministrativos/Operativos_Subcuenta"] = "ACT_CN_43002.1";
41
45
  EEFFConsolidadoRubroEnum["OtrosGastos"] = "ACT_CN_43004";
42
46
  EEFFConsolidadoRubroEnum["TotalGastosOperativos"] = "ACT_CN_43900";
43
47
  EEFFConsolidadoRubroEnum["OtrosIngresosEgresos"] = "ACT_CN_45000";
48
+ EEFFConsolidadoRubroEnum["EERROtrosIngresos"] = "ACT_CN_45001";
49
+ EEFFConsolidadoRubroEnum["EERROtrosIngresos_Subcuenta"] = "ACT_CN_45001.1";
44
50
  EEFFConsolidadoRubroEnum["OtrosOtrosIngresosEgresos"] = "ACT_CN_45001D";
45
51
  EEFFConsolidadoRubroEnum["TotalOtrosIngresosEgresos"] = "ACT_CN_45900";
46
52
  EEFFConsolidadoRubroEnum["UtilidadBruta"] = "ACT_CN_42000";
@@ -21,12 +21,6 @@ class BalanceAgrStrategy {
21
21
  Empresa: true,
22
22
  esPorcentaje: true
23
23
  }
24
- /* {
25
- RubroId: 'ACT_CN_45003',
26
- Correlativos: 'ultima',
27
- Familiar: true,
28
- Empresa: false
29
- } */
30
24
  ];
31
25
  }
32
26
  execute(data) {
@@ -32,6 +32,7 @@ const utils_1 = require("./eeff/admFinanciera/utils");
32
32
  const utils_2 = require("./utils");
33
33
  const analisisHorizontal_1 = require("./eeff/balanceConsolidado/analisisHorizontal");
34
34
  const balance_1 = require("../models/consolidado/balance");
35
+ const lodash_1 = require("lodash");
35
36
  class Balance {
36
37
  camposCalculadosDefinidos;
37
38
  rubrosPorcentaje;
@@ -148,6 +149,7 @@ class Balance {
148
149
  ];
149
150
  }
150
151
  execute(data) {
152
+ console.log('como entra', (0, lodash_1.cloneDeep)(data));
151
153
  const result = {};
152
154
  const balanceClone = balanceCalc.trasponer(commmon.clone(data.balance));
153
155
  const eerrClone = balanceCalc.trasponer(commmon.clone(data.eerr));
@@ -161,17 +163,19 @@ class Balance {
161
163
  data = data.strategy.execute(data);
162
164
  result.camposCalculados = (0, utils_2.formatCamposCalculados)({
163
165
  cantidadGestiones: data.cantidadGestiones,
164
- definidos: [
165
- ...this.camposCalculadosDefinidos,
166
- ...(data.camposCalculadosDefinidos ?? [])
167
- ]
166
+ definidos: this.camposCalculadosDefinidos,
167
+ concretos: data.camposCalculadosDefinidos
168
168
  });
169
169
  delete data.eerrMap;
170
170
  data.balance = Array.from(balanceMap.values());
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(result, data.cantidadGestiones);
174
+ balanceCalc.setResultadosGestion({
175
+ data: result,
176
+ cantidadGestiones: data.cantidadGestiones,
177
+ declaracionJurada: data.declaracionJurada
178
+ });
175
179
  (0, analisisHorizontal_1.calcularPorcentajesYAnalisisHorizontal)({
176
180
  data: result,
177
181
  cantidadGestiones: data.cantidadGestiones,
@@ -296,7 +300,7 @@ const calcularEERR = (eerr, cantidadGestiones, tipoConsolidado) => {
296
300
  rubroDividendo: balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos'],
297
301
  rubroDivisor: balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas,
298
302
  datos: eerr,
299
- soloEmpresa: true
303
+ soloEmpresa: tipoConsolidado === 'AGRICOLA'
300
304
  });
301
305
  }
302
306
  let result = eerr.map((item) => {
@@ -374,28 +378,18 @@ const calcularEERR = (eerr, cantidadGestiones, tipoConsolidado) => {
374
378
  result = adicionarCuenta('ACT_CN_46000', 'ACT_CN_47000', result);
375
379
  result = adicionarCuenta('ACT_CN_46001', 'ACT_CN_47000', result, true);
376
380
  if (tipoConsolidado === 'GANADERIA') {
377
- calcularCostoVentasPecuario(result, cantidadGestiones);
381
+ calcularCostoVentasPecuario(result);
378
382
  }
379
383
  result = balanceCalc.trasponer(result);
380
384
  return result;
381
385
  };
382
- function calcularCostoVentasPecuario(datos, cantidadGestiones) {
383
- const totalIngresos = datos.find((el) => el.RubroId === 'ACT_CN_40003' &&
384
- el.Correlativo === cantidadGestiones);
385
- const costos = datos.find((el) => el.RubroId === 'ACT_CN_41002.1' &&
386
- el.Correlativo === cantidadGestiones);
387
- const costosPorcentaje = datos.find((el) => el.RubroId === 'ACT_CN_41001' &&
388
- el.Correlativo === cantidadGestiones);
389
- if (costosPorcentaje) {
390
- const montoTotal = (0, utils_1.ourParseFloat)(totalIngresos?.MontoEmpresa);
391
- if (montoTotal) {
392
- costosPorcentaje.MontoEmpresa =
393
- ((0, utils_1.ourParseFloat)(costos?.MontoEmpresa) / montoTotal) * 100;
394
- costosPorcentaje.MontoTotal =
395
- (0, utils_1.ourParseFloat)(costosPorcentaje.MontoFamiliar) +
396
- costosPorcentaje.MontoEmpresa;
397
- }
398
- }
386
+ function calcularCostoVentasPecuario(datos) {
387
+ eerrCalc.calcularPorcentajes({
388
+ rubroDestino: balance_1.EEFFConsolidadoRubroEnum['CostosDeVentas%'],
389
+ rubroDividendo: balance_1.EEFFConsolidadoRubroEnum.TotalCostos,
390
+ rubroDivisor: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
391
+ datos
392
+ });
399
393
  }
400
394
  /* interface CalculaPorcentajeParams {
401
395
  rubroDatos: string
@@ -2,6 +2,18 @@ import { BalanceConsolidadoCalc } from '../../models/consolidado/balance';
2
2
  export declare const clone: (data: any) => any;
3
3
  export declare const getBalanceHashMap: (balance: any) => any;
4
4
  export declare const trasponer: (data: any) => any;
5
- export declare function setResultadosGestion(data: BalanceConsolidadoCalc, cantidadGestiones: number): void;
5
+ interface SetResultadosGestionParams {
6
+ data: BalanceConsolidadoCalc;
7
+ cantidadGestiones: number;
8
+ declaracionJurada: any;
9
+ }
10
+ export declare function setResultadosGestion({ data, cantidadGestiones, declaracionJurada }: SetResultadosGestionParams): void;
6
11
  export declare function copiarValoresFila(origen: Record<string, any>, destino: Record<string, any>, cantidadGestiones: number): void;
7
- export declare function sumarFilaEnFila(origen: Record<string, any>, destino: Record<string, any>, cantidadGestiones: number): void;
12
+ interface SumarFilaEnFilaParams {
13
+ origen: Record<string, any>;
14
+ destino: Record<string, any>;
15
+ cantidadGestiones: number;
16
+ excepciones?: number[];
17
+ }
18
+ export declare function sumarFilaEnFila({ origen, destino, cantidadGestiones, excepciones }: SumarFilaEnFilaParams): void;
19
+ export {};
@@ -62,13 +62,24 @@ const trasponer = (data) => {
62
62
  return result;
63
63
  };
64
64
  exports.trasponer = trasponer;
65
- function setResultadosGestion(data, cantidadGestiones) {
65
+ function setResultadosGestion({ data, cantidadGestiones, declaracionJurada }) {
66
66
  copiarValoresFila(data.eerr.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.UtilidadNetaEjercicio), data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.Resultados_de_la_Gestión), cantidadGestiones);
67
67
  const resultados = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.Resultados_de_la_Gestión);
68
68
  const totalPatrimonio = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.TotalPatrimonio);
69
69
  const totalPasivoPatrimonio = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio);
70
- sumarFilaEnFila(resultados, totalPatrimonio, cantidadGestiones);
71
- sumarFilaEnFila(resultados, totalPasivoPatrimonio, cantidadGestiones);
70
+ restarResultadosEnCapital({ data, cantidadGestiones, declaracionJurada });
71
+ sumarFilaEnFila({
72
+ origen: resultados,
73
+ destino: totalPatrimonio,
74
+ cantidadGestiones,
75
+ excepciones: [cantidadGestiones]
76
+ });
77
+ sumarFilaEnFila({
78
+ origen: resultados,
79
+ destino: totalPasivoPatrimonio,
80
+ cantidadGestiones,
81
+ excepciones: [cantidadGestiones]
82
+ });
72
83
  }
73
84
  exports.setResultadosGestion = setResultadosGestion;
74
85
  function copiarValoresFila(origen, destino, cantidadGestiones) {
@@ -80,9 +91,11 @@ function copiarValoresFila(origen, destino, cantidadGestiones) {
80
91
  }
81
92
  }
82
93
  exports.copiarValoresFila = copiarValoresFila;
83
- function sumarFilaEnFila(origen, destino, cantidadGestiones) {
94
+ function sumarFilaEnFila({ origen, destino, cantidadGestiones, excepciones }) {
84
95
  if (origen && destino)
85
96
  for (let i = 1; i <= cantidadGestiones; i++) {
97
+ if (excepciones?.includes(i))
98
+ continue;
86
99
  if (!destino[`MontoEmpresa_${i}`])
87
100
  destino[`MontoEmpresa_${i}`] = 0;
88
101
  if (!destino[`MontoFamiliar_${i}`])
@@ -94,3 +107,70 @@ function sumarFilaEnFila(origen, destino, cantidadGestiones) {
94
107
  }
95
108
  }
96
109
  exports.sumarFilaEnFila = sumarFilaEnFila;
110
+ function restarResultadosEnCapital({ data, cantidadGestiones, declaracionJurada }) {
111
+ const capital = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.Capital);
112
+ const resultados = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.Resultados_de_la_Gestión);
113
+ if (capital && resultados) {
114
+ const totalBalance = getTotalBalance(declaracionJurada.Balance);
115
+ capital[`MontoEmpresa_${cantidadGestiones}`] =
116
+ totalBalance.activos.MontoEmpresa -
117
+ totalBalance.pasivos.MontoEmpresa -
118
+ (0, utils_1.ourParseFloat)(resultados[`MontoEmpresa_${cantidadGestiones}`]);
119
+ capital[`MontoFamiliar_${cantidadGestiones}`] =
120
+ totalBalance.activos.MontoFamiliar -
121
+ totalBalance.pasivos.MontoFamiliar -
122
+ (0, utils_1.ourParseFloat)(resultados[`MontoFamiliar_${cantidadGestiones}`]);
123
+ capital[`MontoTotal_${cantidadGestiones}`] =
124
+ capital[`MontoEmpresa_${cantidadGestiones}`] +
125
+ capital[`MontoFamiliar_${cantidadGestiones}`];
126
+ const totalPatrimonio = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.TotalPatrimonio);
127
+ const totalPatrimonioPasivo = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio);
128
+ if (totalPatrimonio) {
129
+ const sumaPatrimonio = getTotalCuentaCorrelativo(data.balance, balance_1.EEFFConsolidadoRubroEnum.Patrimonio, cantidadGestiones);
130
+ totalPatrimonio[`MontoEmpresa_${cantidadGestiones}`] =
131
+ sumaPatrimonio.MontoEmpresa;
132
+ totalPatrimonio[`MontoFamiliar_${cantidadGestiones}`] =
133
+ sumaPatrimonio.MontoFamiliar;
134
+ totalPatrimonio[`MontoTotal_${cantidadGestiones}`] =
135
+ totalPatrimonio[`MontoEmpresa_${cantidadGestiones}`] +
136
+ totalPatrimonio[`MontoFamiliar_${cantidadGestiones}`];
137
+ }
138
+ if (totalPatrimonioPasivo) {
139
+ const totalPasivo = data.balance.find((el) => el.RubroId === balance_1.EEFFConsolidadoRubroEnum.TotalPasivo);
140
+ totalPatrimonioPasivo[`MontoEmpresa_${cantidadGestiones}`] =
141
+ (0, utils_1.ourParseFloat)(totalPatrimonio[`MontoEmpresa_${cantidadGestiones}`]) +
142
+ (0, utils_1.ourParseFloat)(totalPasivo[`MontoEmpresa_${cantidadGestiones}`]);
143
+ totalPatrimonioPasivo[`MontoFamiliar_${cantidadGestiones}`] =
144
+ (0, utils_1.ourParseFloat)(totalPatrimonio[`MontoFamiliar_${cantidadGestiones}`]) +
145
+ (0, utils_1.ourParseFloat)(totalPasivo[`MontoFamiliar_${cantidadGestiones}`]);
146
+ totalPatrimonioPasivo[`MontoTotal_${cantidadGestiones}`] =
147
+ totalPatrimonioPasivo[`MontoEmpresa_${cantidadGestiones}`] +
148
+ totalPatrimonioPasivo[`MontoFamiliar_${cantidadGestiones}`];
149
+ }
150
+ }
151
+ }
152
+ function getTotalBalance(balance) {
153
+ return balance.reduce((acc, item) => {
154
+ if (item.RubroId.includes('ACT')) {
155
+ acc.activos.MontoEmpresa += (0, utils_1.ourParseFloat)(item.MontoEmpresa);
156
+ acc.activos.MontoFamiliar += (0, utils_1.ourParseFloat)(item.MontoFamiliar);
157
+ }
158
+ else {
159
+ acc.pasivos.MontoEmpresa += (0, utils_1.ourParseFloat)(item.MontoEmpresa);
160
+ acc.pasivos.MontoFamiliar += (0, utils_1.ourParseFloat)(item.MontoFamiliar);
161
+ }
162
+ return acc;
163
+ }, {
164
+ activos: { MontoEmpresa: 0, MontoFamiliar: 0 },
165
+ pasivos: { MontoEmpresa: 0, MontoFamiliar: 0 }
166
+ });
167
+ }
168
+ function getTotalCuentaCorrelativo(data, rubroPadreId, correlativo) {
169
+ return data.reduce((acc, item) => {
170
+ if (item.RubroPadreId === rubroPadreId) {
171
+ acc.MontoEmpresa += (0, utils_1.ourParseFloat)(item[`MontoEmpresa_${correlativo}`]);
172
+ acc.MontoFamiliar += (0, utils_1.ourParseFloat)(item[`MontoFamiliar_${correlativo}`]);
173
+ }
174
+ return acc;
175
+ }, { MontoEmpresa: 0, MontoFamiliar: 0 });
176
+ }
@@ -9,15 +9,17 @@ function calcularPorcentajes({ datos, rubroDestino, rubroDividendo, rubroDivisor
9
9
  destinos.forEach((item) => {
10
10
  const dividendo = dividendos.find((el) => el.Correlativo === item.Correlativo);
11
11
  const divisor = divisores.find((el) => el.Correlativo === item.Correlativo);
12
- item.MontoEmpresa =
13
- ((0, utils_1.ourParseFloat)(dividendo?.MontoEmpresa) /
12
+ item.MontoEmpresa = divisor?.MontoEmpresa
13
+ ? ((0, utils_1.ourParseFloat)(dividendo?.MontoEmpresa) /
14
14
  (0, utils_1.ourParseFloat)(divisor?.MontoEmpresa)) *
15
- 100;
15
+ 100
16
+ : 0;
16
17
  if (!soloEmpresa)
17
- item.MontoFamiliar =
18
- ((0, utils_1.ourParseFloat)(dividendo?.MontoFamiliar) /
18
+ item.MontoFamiliar = divisor?.MontoFamiliar
19
+ ? ((0, utils_1.ourParseFloat)(dividendo?.MontoFamiliar) /
19
20
  (0, utils_1.ourParseFloat)(divisor?.MontoFamiliar)) *
20
- 100;
21
+ 100
22
+ : 0;
21
23
  });
22
24
  }
23
25
  exports.calcularPorcentajes = calcularPorcentajes;
@@ -51,12 +51,26 @@ class SupuestosStrategy {
51
51
  this.cleanNumber(rowDeprecCoefLeasing[`Gestion${i}`]) *
52
52
  this.cleanNumber(activosPorArrendamiento.Monto);
53
53
  }
54
- this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_42000', 'ACT_SUP_10101');
55
- this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_44003', 'ACT_SUP_10104');
56
- this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_42001', 'ACT_SUP_10201', true);
57
- this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_43001', 'ACT_SUP_10202', true);
58
- this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_44004', 'ACT_SUP_10203');
59
- this.anadirPrecalculo(data.EEFF.balance, 'ACT_EF_11008', 'ACT_SUP_20102');
54
+ // this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_42000', 'ACT_SUP_10101')
55
+ //this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_44003', 'ACT_SUP_10104')
56
+ // this.anadirPrecalculo(
57
+ // data.EEFF.eerr,
58
+ // 'ACT_EF_42001',
59
+ // 'ACT_SUP_10201',
60
+ // true
61
+ // )
62
+ // this.anadirPrecalculo(
63
+ // data.EEFF.eerr,
64
+ // 'ACT_EF_43001',
65
+ // 'ACT_SUP_10202',
66
+ // true
67
+ // )
68
+ // this.anadirPrecalculo(data.EEFF.eerr, 'ACT_EF_44004', 'ACT_SUP_10203')
69
+ // this.anadirPrecalculo(
70
+ // data.EEFF.balance,
71
+ // 'ACT_EF_11008',
72
+ // 'ACT_SUP_20102'
73
+ // )
60
74
  return this.data;
61
75
  }
62
76
  }
@@ -1,10 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const balance_1 = require("../../models/consolidado/balance");
3
4
  const utils_1 = require("../eeff/admFinanciera/utils");
4
- const gCuentaIngreso = 'ACT_CN_40001';
5
- const gCuentaCosto = 'ACT_CN_41002';
6
- const gCuentaGasto = 'ACT_CN_43002';
7
- const gCuentaOtrosIngresosDet = 'ACT_CN_45001';
8
5
  class BalancePecStrategy {
9
6
  actividades;
10
7
  camposCalculadosDefinidos;
@@ -16,16 +13,22 @@ class BalancePecStrategy {
16
13
  Correlativos: 'ultima',
17
14
  Familiar: false,
18
15
  Empresa: true
16
+ },
17
+ {
18
+ RubroId: balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos'],
19
+ Correlativos: '*',
20
+ Familiar: false,
21
+ Empresa: true
19
22
  }
20
23
  ];
21
24
  }
22
25
  execute(data) {
23
26
  if (!this.actividades || this.actividades.length == 0)
24
27
  return data;
25
- const cuentasIngresosCopy = getCuentasCopy(data, gCuentaIngreso);
26
- const cuentasCostoCopy = getCuentasCopy(data, gCuentaCosto);
27
- const cuentaGastoCopy = getCuentasCopy(data, gCuentaGasto);
28
- const cuentaOtrosIngresosCopy = getCuentasCopy(data, gCuentaOtrosIngresosDet);
28
+ const cuentasIngresosCopy = getCuentasCopy(data, balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas);
29
+ const cuentasCostoCopy = getCuentasCopy(data, balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas);
30
+ const cuentaGastoCopy = getCuentasCopy(data, balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos']);
31
+ const cuentaOtrosIngresosCopy = getCuentasCopy(data, balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos);
29
32
  for (const actividad of this.actividades) {
30
33
  anadirIngresosAuxPec(actividad, data);
31
34
  //anadirIngresoVenta(actividad, data)
@@ -33,10 +36,10 @@ class BalancePecStrategy {
33
36
  anadirGasto(actividad, data);
34
37
  anadirOtrosIngresos(actividad, data);
35
38
  }
36
- sumarizarCuentas(`${gCuentaIngreso}.1`, gCuentaIngreso, data, cuentasIngresosCopy);
37
- sumarizarCuentas(`${gCuentaCosto}.1`, gCuentaCosto, data, cuentasCostoCopy);
38
- sumarizarCuentas(`${gCuentaGasto}.1`, gCuentaGasto, data, cuentaGastoCopy);
39
- sumarizarCuentas(`${gCuentaOtrosIngresosDet}.1`, gCuentaOtrosIngresosDet, data, cuentaOtrosIngresosCopy);
39
+ sumarizarCuentas(balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas_Subcuenta, balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas, data, cuentasIngresosCopy);
40
+ sumarizarCuentas(balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas_Subcuenta, balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas, data, cuentasCostoCopy);
41
+ sumarizarCuentas(balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos_Subcuenta'], balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos'], data, cuentaGastoCopy);
42
+ sumarizarCuentas(balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos_Subcuenta, balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos, data, cuentaOtrosIngresosCopy);
40
43
  data.camposCalculadosDefinidos = this.camposCalculadosDefinidos;
41
44
  return data;
42
45
  }
@@ -61,24 +64,36 @@ const getCuentasCopy = (data, rubroId, withZero = false) => {
61
64
  const anadirIngresosAuxPec = (actividad, data) => {
62
65
  const rango = data.eerr[0].Rango;
63
66
  for (let i = 1; i <= rango; i++) {
64
- const cuentaIngreso = data.eerrMap.get(`${gCuentaIngreso}_${i}`);
67
+ const cuentaIngreso = data.eerrMap.get(`${balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas}_${i}`);
65
68
  const copy = { ...cuentaIngreso };
66
- copy.RubroId = `${gCuentaIngreso}.1`;
69
+ copy.RubroId = balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas_Subcuenta;
67
70
  copy.Descripcion = `Ingresos por Ventas ${actividad.Desarrollo.ActividadGanadera}`;
68
- copy.UUID = `${gCuentaIngreso}_${actividad.AuxPec.ActividadEconomicaId}`;
71
+ copy.UUID = `${balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas}_${actividad.AuxPec.ActividadEconomicaId}`;
69
72
  copy.MontoEmpresa = 0;
70
73
  copy.MontoFamiliar = 0;
71
74
  copy.Correlativo = i;
72
75
  copy.Clasificador = 'SBCT';
73
76
  copy.Subcuenta = true;
74
- const historicoHato = actividad.AuxPec?.HistoricoHato;
75
- if (historicoHato) {
76
- const historico = historicoHato.at(i - 1);
77
- const filaTotales = historico?.find((h) => h.key === 'TOTALES');
78
- if (filaTotales)
79
- copy.MontoEmpresa = parseFloat(filaTotales.Total);
77
+ if (i < rango) {
78
+ const historicoHato = actividad.AuxPec?.HistoricoHato;
79
+ if (historicoHato) {
80
+ const historico = historicoHato.at(i - 1);
81
+ const filaTotales = historico?.find((h) => h.key === 'TOTALES');
82
+ if (filaTotales)
83
+ copy.MontoEmpresa = parseFloat(filaTotales.Total);
84
+ }
85
+ }
86
+ else {
87
+ copy.MontoEmpresa =
88
+ actividad.Ventas?.VentasIngreso?.reduce((acc, curr) => acc + (0, utils_1.ourParseFloat)(curr.IngresoTotal), 0) ?? 0;
89
+ }
90
+ const exists = data.eerr.find((el) => el.UUID === copy.UUID && el.Correlativo === copy.Correlativo);
91
+ if (exists) {
92
+ Object.assign(exists, copy);
93
+ }
94
+ else {
95
+ data.eerr.push(copy);
80
96
  }
81
- data.eerr.push(copy);
82
97
  data.eerrMap.set(`${copy.UUID}_${i}`, copy);
83
98
  }
84
99
  };
@@ -108,43 +123,39 @@ const anadirIngresosAuxPec = (actividad, data) => {
108
123
  } */
109
124
  const anadirCosto = (actividad, data) => {
110
125
  const rango = data.eerr[0].Rango;
111
- const cuentaCosto = data.eerrMap.get(`${gCuentaCosto}_${rango}`);
126
+ const cuentaCosto = data.eerrMap.get(`${balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas}_${rango}`);
112
127
  for (let i = 1; i <= rango; i++) {
113
128
  const copy = { ...cuentaCosto };
114
- copy.RubroId = `${gCuentaCosto}.1`;
129
+ copy.RubroId = balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas_Subcuenta;
115
130
  copy.Descripcion = `Costos de Ventas ${actividad.Desarrollo.ActividadGanadera}`;
116
- copy.UUID = `${gCuentaCosto}_${actividad.AuxPec.ActividadEconomicaId}`;
131
+ copy.UUID = `${balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas}_${actividad.AuxPec.ActividadEconomicaId}`;
117
132
  copy.MontoEmpresa = 0;
118
133
  copy.MontoFamiliar = 0;
119
134
  copy.Correlativo = i;
120
135
  copy.Clasificador = 'SBCT';
121
136
  copy.Subcuenta = true;
122
- if (i < rango) {
123
- const porcentaje = data.eerrMap.get(`ACT_CN_41001_${i}`);
124
- const ingreso = data.eerrMap.get(`ACT_CN_40001_${actividad.AuxPec.ActividadEconomicaId}_${i}`);
125
- copy.MontoEmpresa =
126
- ((0, utils_1.ourParseFloat)(ingreso?.MontoEmpresa) *
127
- (0, utils_1.ourParseFloat)(porcentaje?.MontoEmpresa)) /
128
- 100;
137
+ if (i === rango) {
138
+ copy.MontoEmpresa = (0, utils_1.ourParseFloat)(actividad.Costos?.Calculo?.find((value) => value.RubroId === 'TOT01')?.Total);
129
139
  }
130
- if (i === rango && actividad.Costos.Calculo) {
131
- const filaTotal = actividad.Costos.Calculo.find((value) => value.RubroId === 'TOT01');
132
- if (filaTotal) {
133
- copy.MontoEmpresa = (0, utils_1.ourParseFloat)(filaTotal.Total);
134
- }
140
+ const exists = data.eerr.find((el) => el.UUID === copy.UUID && el.Correlativo === copy.Correlativo);
141
+ if (exists) {
142
+ Object.assign(exists, copy);
143
+ }
144
+ else {
145
+ data.eerr.push(copy);
135
146
  }
136
- data.eerr.push(copy);
137
147
  data.eerrMap.set(`${copy.UUID}_${i}`, copy);
138
148
  }
139
149
  };
140
150
  const anadirGasto = (actividad, data) => {
141
151
  const rango = data.eerr[0].Rango;
142
- const cuentaGasto = data.eerrMap.get(`${gCuentaGasto}_${rango}`);
152
+ const cuentaGasto = data.eerrMap.get(`${balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos']}_${rango}`);
143
153
  const otrosGastos = calcularOtrosGastos(actividad.OtrosGastos);
144
154
  for (let i = 1; i <= rango; i++) {
145
155
  const copy = { ...cuentaGasto };
146
- copy.RubroId = `${gCuentaGasto}.1`;
147
- copy.UUID = `${gCuentaGasto}_${actividad.AuxPec.ActividadEconomicaId}`;
156
+ copy.RubroId =
157
+ balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos_Subcuenta'];
158
+ copy.UUID = `${balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos']}_${actividad.AuxPec.ActividadEconomicaId}`;
148
159
  copy.Descripcion = `Gastos Administrativos Operativos ${actividad.Desarrollo.ActividadGanadera}`;
149
160
  copy.MontoEmpresa = 0;
150
161
  copy.MontoFamiliar = 0;
@@ -152,7 +163,13 @@ const anadirGasto = (actividad, data) => {
152
163
  copy.Clasificador = 'SBCT';
153
164
  copy.MontoEmpresa = (0, utils_1.ourParseFloat)(otrosGastos.GastosOperativos);
154
165
  copy.Subcuenta = true;
155
- data.eerr.push(copy);
166
+ const exists = data.eerr.find((el) => el.UUID === copy.UUID && el.Correlativo === copy.Correlativo);
167
+ if (exists) {
168
+ Object.assign(exists, copy);
169
+ }
170
+ else {
171
+ data.eerr.push(copy);
172
+ }
156
173
  data.eerrMap.set(`${copy.UUID}_${i}`, copy);
157
174
  }
158
175
  };
@@ -172,11 +189,11 @@ const calcularOtrosGastos = (gastos) => {
172
189
  };
173
190
  const anadirOtrosIngresos = (actividad, data) => {
174
191
  const rango = data.eerr[0].Rango;
175
- const cuentaOtrosIngresos = data.eerr.find((item) => item.RubroId == gCuentaOtrosIngresosDet);
192
+ const cuentaOtrosIngresos = data.eerr.find((item) => item.RubroId == balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos);
176
193
  for (let i = 1; i <= rango; i++) {
177
194
  const copy = { ...cuentaOtrosIngresos };
178
- copy.RubroId = `${gCuentaOtrosIngresosDet}.1`;
179
- copy.UUID = `${gCuentaOtrosIngresosDet}_${actividad.AuxPec.ActividadEconomicaId}`;
195
+ copy.RubroId = balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos_Subcuenta;
196
+ copy.UUID = `${balance_1.EEFFConsolidadoRubroEnum.EERROtrosIngresos}_${actividad.AuxPec.ActividadEconomicaId}`;
180
197
  copy.Descripcion = `Otros Ingresos ${actividad.Desarrollo.ActividadGanadera}`;
181
198
  copy.MontoEmpresa = 0;
182
199
  copy.MontoFamiliar = 0;
@@ -186,7 +203,13 @@ const anadirOtrosIngresos = (actividad, data) => {
186
203
  if (rango == i && actividad.Ventas?.OtrosIngresos) {
187
204
  copy.MontoFamiliar = calcularOtrosIngresos(actividad.Ventas.OtrosIngresos, data.cantidadProyeccion);
188
205
  }
189
- data.eerr.push(copy);
206
+ const exists = data.eerr.find((el) => el.UUID === copy.UUID && el.Correlativo === copy.Correlativo);
207
+ if (exists) {
208
+ Object.assign(exists, copy);
209
+ }
210
+ else {
211
+ data.eerr.push(copy);
212
+ }
190
213
  data.eerrMap.set(`${copy.UUID}_${i}`, copy);
191
214
  }
192
215
  };
@@ -204,14 +227,12 @@ const sumarizarCuentas = (rubroOrigen, rubroDestino, data, dataOriginal, withZer
204
227
  for (let i = 1; i <= rango; i++) {
205
228
  const cuentaOrigen = data.eerr.filter((item) => item.RubroId == rubroOrigen && item.Correlativo == i);
206
229
  if (!cuentaOrigen || cuentaOrigen.length == 0)
207
- throw new Error('No existe el rubro Calculado ${rubroOrigen}_${i} en el EERR');
208
- cuentaOrigen.forEach((itemCuentaOrigen) => {
209
- const key = withZero
210
- ? `${rubroDestino}_0_${i}`
211
- : `${rubroDestino}_${i}`;
212
- const original = dataOriginal.get(key);
213
- if (original.MontoEmpresa == 0 || original.MontoFamiliar == 0) {
214
- const cuentaDestino = data.eerrMap.get(key);
230
+ throw new Error(`No existe el rubro Calculado ${rubroOrigen}_${i} en el EERR`);
231
+ const key = withZero ? `${rubroDestino}_0_${i}` : `${rubroDestino}_${i}`;
232
+ const original = dataOriginal.get(key);
233
+ const cuentaDestino = data.eerrMap.get(key);
234
+ if (original.MontoEmpresa == 0 || original.MontoFamiliar == 0) {
235
+ cuentaOrigen.forEach((itemCuentaOrigen) => {
215
236
  if (original.MontoEmpresa == 0)
216
237
  cuentaDestino.MontoEmpresa += itemCuentaOrigen.MontoEmpresa;
217
238
  if (original.MontoFamiliar == 0)
@@ -221,7 +242,7 @@ const sumarizarCuentas = (rubroOrigen, rubroDestino, data, dataOriginal, withZer
221
242
  Math.round(cuentaDestino.MontoEmpresa * 100) / 100;
222
243
  cuentaDestino.MontoFamiliar =
223
244
  Math.round(cuentaDestino.MontoFamiliar * 100) / 100;
224
- }
225
- });
245
+ });
246
+ }
226
247
  }
227
248
  };
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const balance_1 = require("../../models/consolidado/balance");
4
+ const utils_1 = require("../eeff/admFinanciera/utils");
3
5
  const gCuentaIngreso = 'ACT_CN_40001';
4
6
  const gCuentaCosto = 'ACT_CN_41002';
5
7
  const gCuentaGasto = 'ACT_CN_43002';
6
- const gCuentaGastoFamiliares = 'ACT_CN_45003';
8
+ //const gCuentaGastoFamiliares = 'ACT_CN_45003'
7
9
  const gCuentaOtrosIngresosDet = 'ACT_CN_45001';
8
10
  class BalancePrdStrategy {
9
11
  actividades;
@@ -18,16 +20,11 @@ class BalancePrdStrategy {
18
20
  Empresa: true
19
21
  },
20
22
  {
21
- RubroId: 'ACT_CN_43001',
22
- Correlativos: 'ultima',
23
- Familiar: false,
24
- Empresa: true
25
- },
26
- {
27
- RubroId: 'ACT_CN_45003',
28
- Correlativos: 'ultima',
23
+ RubroId: balance_1.EEFFConsolidadoRubroEnum['GastosAdministrativos/Operativos%'],
24
+ Correlativos: '*',
29
25
  Familiar: true,
30
- Empresa: false
26
+ Empresa: true,
27
+ esPorcentaje: true
31
28
  }
32
29
  ];
33
30
  }
@@ -40,18 +37,17 @@ class BalancePrdStrategy {
40
37
  const cuentasCostoCopy = getCuentasCopy(data, gCuentaCosto);
41
38
  //@ts-ignore
42
39
  const cuentaGastoCopy = getCuentasCopy(data, gCuentaGasto);
43
- const cuentaGastoFamiliarCopy = getCuentasCopy(data, gCuentaGastoFamiliares);
40
+ const cuentaOtrosIngresosCopy = getCuentasCopy(data, gCuentaOtrosIngresosDet);
44
41
  for (const actividad of this.actividades) {
45
42
  anadirIngreso(actividad, data);
46
43
  anadirCosto(actividad, data);
47
44
  anadirGasto(actividad, data);
48
45
  anadirOtrosIngresos(actividad, data);
49
- anadirGastoFamiliares(actividad, data);
50
46
  }
51
47
  sumarizarCuentas(`${gCuentaIngreso}.1`, gCuentaIngreso, data, cuentasIngresosCopy);
52
48
  sumarizarCuentas(`${gCuentaCosto}.1`, gCuentaCosto, data, cuentasCostoCopy);
53
49
  sumarizarCuentas(`${gCuentaGasto}.1`, gCuentaGasto, data, cuentaGastoCopy);
54
- sumarizarCuentas(`${gCuentaGastoFamiliares}.1`, gCuentaGastoFamiliares, data, cuentaGastoFamiliarCopy);
50
+ sumarizarCuentas(`${gCuentaOtrosIngresosDet}.1`, gCuentaOtrosIngresosDet, data, cuentaOtrosIngresosCopy);
55
51
  data.camposCalculadosDefinidos = this.camposCalculadosDefinidos;
56
52
  return data;
57
53
  }
@@ -143,26 +139,28 @@ const anadirGasto = (actividad, data) => {
143
139
  data.eerr.push(copy);
144
140
  }
145
141
  };
146
- const anadirGastoFamiliares = (actividad, data) => {
147
- const rango = data.eerr[0].Rango;
148
- const cuentaGasto = data.eerrMap.get(`${gCuentaGastoFamiliares}_${rango}`);
142
+ /* const anadirGastoFamiliares = (actividad: any, data: any) => {
143
+ const rango = data.eerr[0].Rango
144
+ const cuentaGasto = data.eerrMap.get(`${gCuentaGastoFamiliares}_${rango}`)
149
145
  for (let i = 1; i <= rango; i++) {
150
- const copy = { ...cuentaGasto };
151
- copy.RubroId = `${gCuentaGastoFamiliares}.1`;
152
- copy.UUID = `${gCuentaGastoFamiliares}_${actividad.ActividadEconomicaId}_${i}`;
153
- copy.Descripcion = `Gastos Familiares Actividad: ${actividad.ActividadEconomicaId}`;
154
- copy.MontoEmpresa = 0;
155
- copy.MontoFamiliar = 0;
156
- copy.Correlativo = i;
157
- copy.Clasificador = 'CT';
146
+ const copy = { ...cuentaGasto }
147
+ copy.RubroId = `${gCuentaGastoFamiliares}.1`
148
+ copy.UUID = `${gCuentaGastoFamiliares}_${actividad.ActividadEconomicaId}_${i}`
149
+ copy.Descripcion = `Gastos Familiares Actividad: ${actividad.ActividadEconomicaId}`
150
+ copy.MontoEmpresa = 0
151
+ copy.MontoFamiliar = 0
152
+ copy.Correlativo = i
153
+ copy.Clasificador = 'CT'
154
+
158
155
  if (rango == i) {
159
- const otrosGastos = calcularOtrosGastos(actividad.OtrosGastos);
156
+ const otrosGastos: any = calcularOtrosGastos(actividad.OtrosGastos)
157
+
160
158
  copy.MontoFamiliar =
161
- Math.round(parseFloat(otrosGastos.GastosFamiliares) * 100) / 100;
159
+ Math.round(parseFloat(otrosGastos.GastosFamiliares) * 100) / 100
162
160
  }
163
- data.eerr.push(copy);
161
+ data.eerr.push(copy)
164
162
  }
165
- };
163
+ } */
166
164
  const calcularOtrosGastos = (gastos) => {
167
165
  const gastosOperativos = gastos.Operativos.reduce((acc, item) => {
168
166
  acc += parseFloat(item.ImporteAnual);
@@ -182,35 +180,37 @@ const anadirOtrosIngresos = (actividad, data) => {
182
180
  const cuentaOtrosIngresos = data.eerr.find((item) => item.RubroId == gCuentaOtrosIngresosDet);
183
181
  for (let i = 1; i <= rango; i++) {
184
182
  const copy = { ...cuentaOtrosIngresos };
183
+ copy.RubroId = `${gCuentaOtrosIngresosDet}.1`;
185
184
  copy.UUID = `${gCuentaOtrosIngresosDet}_${actividad.ActividadEconomicaId}_${rango}`;
186
185
  copy.Descripcion = `Otros Ingresos ${actividad.ActividadEconomicaId}`;
187
186
  copy.MontoEmpresa = 0;
188
187
  copy.MontoFamiliar = 0;
189
188
  copy.Correlativo = i;
190
189
  copy.Clasificador = 'CT';
191
- if (rango == i &&
192
- actividad.Ventas &&
193
- actividad.Ventas.OtrosIngresos &&
194
- actividad.Ventas.OtrosIngresos.length > 0) {
195
- copy.MontoFamiliar = actividad.Ventas.OtrosIngresos.reduce((acc, item) => {
196
- acc += parseFloat(item.Monto);
197
- return acc;
198
- }, 0);
199
- copy.MontoFamiliar = Math.round(copy.MontoFamiliar * 100) / 100;
190
+ if (rango == i) {
191
+ copy.MontoFamiliar = getTotalOtrosIngresos(actividad.Ventas.OtrosIngresos, data.cantidadProyeccion);
200
192
  }
201
193
  data.eerr.push(copy);
202
194
  }
203
195
  };
196
+ function getTotalOtrosIngresos(otrosIngresos, cantidadProyeccion) {
197
+ return otrosIngresos.reduce((acc, item) => {
198
+ for (let i = 1; i <= cantidadProyeccion; i++) {
199
+ acc += (0, utils_1.ourParseFloat)(item[`Gestion${i}`]);
200
+ }
201
+ return acc;
202
+ }, 0);
203
+ }
204
204
  const sumarizarCuentas = (rubroOrigen, rubroDestino, data, dataOriginal) => {
205
205
  const rango = data.eerr[0].Rango;
206
206
  for (let i = 1; i <= rango; i++) {
207
207
  const cuentaOrigen = data.eerr.filter((item) => item.RubroId == rubroOrigen && item.Correlativo == i);
208
208
  if (!cuentaOrigen || cuentaOrigen.length == 0)
209
209
  throw new Error('No existe el rubro Calculado ${rubroOrigen}_${i} en el EERR');
210
- cuentaOrigen.forEach((itemCuentaOrigen) => {
211
- const original = dataOriginal.get(`${rubroDestino}_${i}`);
212
- if (original.MontoEmpresa == 0 || original.MontoFamiliar == 0) {
213
- const cuentaDestino = data.eerrMap.get(`${rubroDestino}_${i}`);
210
+ const original = dataOriginal.get(`${rubroDestino}_${i}`);
211
+ if (original.MontoEmpresa == 0 || original.MontoFamiliar == 0) {
212
+ const cuentaDestino = data.eerrMap.get(`${rubroDestino}_${i}`);
213
+ cuentaOrigen.forEach((itemCuentaOrigen) => {
214
214
  if (original.MontoEmpresa == 0)
215
215
  cuentaDestino.MontoEmpresa += itemCuentaOrigen.MontoEmpresa;
216
216
  if (original.MontoFamiliar == 0)
@@ -220,7 +220,7 @@ const sumarizarCuentas = (rubroOrigen, rubroDestino, data, dataOriginal) => {
220
220
  Math.round(cuentaDestino.MontoEmpresa * 100) / 100;
221
221
  cuentaDestino.MontoFamiliar =
222
222
  Math.round(cuentaDestino.MontoFamiliar * 100) / 100;
223
- }
224
- });
223
+ });
224
+ }
225
225
  }
226
226
  };
@@ -1,8 +1,9 @@
1
1
  import { CampoCalculado, CampoCalculadoDefinido } from '..';
2
2
  interface FormatCamposCalculadosParams {
3
3
  definidos: CampoCalculadoDefinido[];
4
+ concretos?: CampoCalculadoDefinido[];
4
5
  cantidadGestiones: number;
5
6
  }
6
- export declare function formatCamposCalculados({ definidos, cantidadGestiones }: FormatCamposCalculadosParams): CampoCalculado[];
7
+ export declare function formatCamposCalculados({ definidos, concretos, cantidadGestiones }: FormatCamposCalculadosParams): CampoCalculado[];
7
8
  export declare function searchByKeyInMap(map: Map<string, any>, needle: string): any;
8
9
  export {};
@@ -2,9 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.searchByKeyInMap = exports.formatCamposCalculados = void 0;
4
4
  const lodash_1 = require("lodash");
5
- function formatCamposCalculados({ definidos, cantidadGestiones }) {
5
+ function formatCamposCalculados({ definidos, concretos, cantidadGestiones }) {
6
6
  const campos = [];
7
- definidos.forEach((el) => {
7
+ concretos?.forEach((el) => {
8
+ const existsIndex = definidos.findIndex((def) => def.RubroId === el.RubroId);
9
+ if (existsIndex >= 0) {
10
+ definidos.splice(existsIndex, 1);
11
+ }
12
+ });
13
+ const joined = [...definidos, ...(concretos ?? [])];
14
+ joined.forEach((el) => {
8
15
  if (el.Correlativos === '*') {
9
16
  for (let i = 1; i <= cantidadGestiones; i++) {
10
17
  campos.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.80",
3
+ "version": "1.0.82",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",