bdpformulas 1.0.55 → 1.0.56

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.
package/build/index.d.ts CHANGED
@@ -1,24 +1,24 @@
1
1
  import Auxiliar from './strategies/pecuary/anexo.strategy';
2
2
  import Desarrollo from './strategies/pecuary/desarrollo.strategy';
3
- import VentasPec from "./strategies/pecuary/ventas.strategy";
4
- import Context from "./context";
5
- import CostosPec from "./strategies/pecuary/costos.strategy";
6
- import VentasPrd from "./strategies/production/ventas.strategy";
7
- import CostosPrd from "./strategies/production/costos.strategy";
8
- import CostosAgr from "./strategies/agriculture/costos.strategy";
9
- import BalanceAgrStrategy from "./strategies/agriculture/balanceAgr.strategy";
10
- import FlujoProyectadoAgrStrategy from "./strategies/agriculture/flujoProyAgr.strategy";
11
- import BalancePecStrategy from "./strategies/pecuary/balancePec.strategy";
12
- import FlujoProyectadoPecStrategy from "./strategies/pecuary/flujoProyPec.strategy";
13
- import BalancePrdStrategy from "./strategies/production/balancePrd.strategy";
14
- import FlujoProyectadoPrdStrategy from "./strategies/production/flujoProyPrd.strategy";
15
- import BalanceEEFFStrategy from "./strategies/eeff/balanceEEFF.strategy";
16
- import FlujoProyectadoEEFFStrategy from "./strategies/eeff/flujoProyEEFF.strategy";
17
- import Balance from "./strategies/balance.strategy";
18
- import FlujoProyectado from "./strategies/flujoProyectado.strategy";
19
- import AnalisisFinancieros from "./strategies/analisisFinancieros.strategy";
20
- import BalanceGeneralStrategy from "./strategies/general/balanceGeneral.strategy";
21
- import FlujoProyectadoGeneralStrategy from "./strategies/general/flujoProyGeneral.strategy";
3
+ import VentasPec from './strategies/pecuary/ventas.strategy';
4
+ import Context from './context';
5
+ import CostosPec from './strategies/pecuary/costos.strategy';
6
+ import VentasPrd from './strategies/production/ventas.strategy';
7
+ import CostosPrd from './strategies/production/costos.strategy';
8
+ import CostosAgr from './strategies/agriculture/costos.strategy';
9
+ import BalanceAgrStrategy from './strategies/agriculture/balanceAgr.strategy';
10
+ import FlujoProyectadoAgrStrategy from './strategies/agriculture/flujoProyAgr.strategy';
11
+ import BalancePecStrategy from './strategies/pecuary/balancePec.strategy';
12
+ import FlujoProyectadoPecStrategy from './strategies/pecuary/flujoProyPec.strategy';
13
+ import BalancePrdStrategy from './strategies/production/balancePrd.strategy';
14
+ import FlujoProyectadoPrdStrategy from './strategies/production/flujoProyPrd.strategy';
15
+ import BalanceEEFFStrategy from './strategies/eeff/balanceEEFF.strategy';
16
+ import FlujoProyectadoEEFFStrategy from './strategies/eeff/flujoProyEEFF.strategy';
17
+ import Balance from './strategies/balance.strategy';
18
+ import FlujoProyectado from './strategies/flujoProyectado.strategy';
19
+ import AnalisisFinancieros from './strategies/analisisFinancieros.strategy';
20
+ import BalanceGeneralStrategy from './strategies/general/balanceGeneral.strategy';
21
+ import FlujoProyectadoGeneralStrategy from './strategies/general/flujoProyGeneral.strategy';
22
22
  import AdmFinancieraStrategy from './strategies/eeff/admFinanciera.strategy';
23
23
  declare const Pecuario: {
24
24
  Auxiliar: typeof Auxiliar;
@@ -1,6 +1,7 @@
1
- import { Strategy } from "../../strategy.interface";
1
+ import { Strategy } from '../../strategy.interface';
2
2
  export default class BalanceAgrStrategy implements Strategy {
3
3
  actividades: any[];
4
+ private camposCalculadosDefinidos;
4
5
  constructor();
5
6
  execute(data: any): any;
6
7
  }
@@ -1,20 +1,143 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const balanceAux_calc_1 = require("../common/balanceCalculos/balanceAux.calc");
4
+ const utils_1 = require("../utils");
4
5
  class BalanceAgrStrategy {
5
6
  actividades;
7
+ camposCalculadosDefinidos;
6
8
  constructor() {
7
9
  this.actividades = [];
10
+ this.camposCalculadosDefinidos = [
11
+ {
12
+ RubroId: 'ACT_CN_11001',
13
+ Correlativos: 'ultima',
14
+ Familiar: true,
15
+ Empresa: true
16
+ },
17
+ {
18
+ RubroId: 'ACT_CN_11002',
19
+ Correlativos: 'ultima',
20
+ Familiar: true,
21
+ Empresa: true
22
+ },
23
+ {
24
+ RubroId: 'ACT_CN_11003',
25
+ Correlativos: 'ultima',
26
+ Familiar: true,
27
+ Empresa: true
28
+ },
29
+ {
30
+ RubroId: 'ACT_CN_12001',
31
+ Correlativos: 'ultima',
32
+ Familiar: true,
33
+ Empresa: true
34
+ },
35
+ {
36
+ RubroId: 'ACT_CN_12002',
37
+ Correlativos: 'ultima',
38
+ Familiar: true,
39
+ Empresa: true
40
+ },
41
+ {
42
+ RubroId: 'ACT_CN_12003',
43
+ Correlativos: 'ultima',
44
+ Familiar: true,
45
+ Empresa: true
46
+ },
47
+ {
48
+ RubroId: 'ACT_CN_12004',
49
+ Correlativos: 'ultima',
50
+ Familiar: true,
51
+ Empresa: true
52
+ },
53
+ {
54
+ RubroId: 'ACT_CN_12005',
55
+ Correlativos: 'ultima',
56
+ Familiar: true,
57
+ Empresa: true
58
+ },
59
+ {
60
+ RubroId: 'ACT_CN_21001',
61
+ Correlativos: 'ultima',
62
+ Familiar: true,
63
+ Empresa: true
64
+ },
65
+ {
66
+ RubroId: 'ACT_CN_21002',
67
+ Correlativos: 'ultima',
68
+ Familiar: true,
69
+ Empresa: true
70
+ },
71
+ {
72
+ RubroId: 'ACT_CN_22001',
73
+ Correlativos: 'ultima',
74
+ Familiar: true,
75
+ Empresa: true
76
+ },
77
+ {
78
+ RubroId: 'ACT_CN_30001',
79
+ Correlativos: '*',
80
+ Familiar: true,
81
+ Empresa: true
82
+ },
83
+ //eeff
84
+ {
85
+ RubroId: 'ACT_CN_40001',
86
+ Correlativos: '*',
87
+ Familiar: false,
88
+ Empresa: true
89
+ },
90
+ {
91
+ RubroId: 'ACT_CN_41001',
92
+ Correlativos: 'ultima',
93
+ Familiar: false,
94
+ Empresa: true
95
+ },
96
+ {
97
+ RubroId: 'ACT_CN_41002',
98
+ Correlativos: '*',
99
+ Familiar: true,
100
+ Empresa: true
101
+ },
102
+ {
103
+ RubroId: 'ACT_CN_43001',
104
+ Correlativos: 'ultima',
105
+ Familiar: false,
106
+ Empresa: true
107
+ },
108
+ {
109
+ RubroId: 'ACT_CN_43002',
110
+ Correlativos: '*',
111
+ Familiar: false,
112
+ Empresa: true
113
+ },
114
+ {
115
+ RubroId: 'ACT_CN_45001',
116
+ Correlativos: 'ultima',
117
+ Familiar: true,
118
+ Empresa: false
119
+ },
120
+ {
121
+ RubroId: 'ACT_CN_45003',
122
+ Correlativos: 'ultima',
123
+ Familiar: true,
124
+ Empresa: false
125
+ }
126
+ ];
8
127
  }
9
128
  execute(data) {
10
129
  if (!this.actividades || this.actividades.length == 0)
11
130
  return data;
12
131
  let acumuladoActividades = null;
13
- for (let actividad of this.actividades) {
14
- let actividadCalculada = calcularActividad(actividad);
132
+ for (const actividad of this.actividades) {
133
+ const actividadCalculada = calcularActividad(actividad);
15
134
  acumuladoActividades = addAcumulado(acumuladoActividades, actividadCalculada);
16
135
  }
17
136
  data.eerrMap = calcularEERR(data.eerrMap, data.eerr, acumuladoActividades);
137
+ data.camposCalculados = (0, utils_1.formatCamposCalculados)({
138
+ cantidadGestiones: data.cantidadGestiones,
139
+ definidos: this.camposCalculadosDefinidos
140
+ });
18
141
  return data;
19
142
  }
20
143
  }
@@ -23,7 +146,7 @@ const addAcumulado = (acumuladoActividades, actividadCalculada) => {
23
146
  if (acumuladoActividades == null)
24
147
  return actividadCalculada;
25
148
  else {
26
- for (let [key, value] of actividadCalculada.ventas) {
149
+ for (const [key, value] of actividadCalculada.ventas) {
27
150
  if (acumuladoActividades.ventas.has(key)) {
28
151
  let acumulado = acumuladoActividades.ventas.get(key);
29
152
  acumulado += value;
@@ -32,8 +155,10 @@ const addAcumulado = (acumuladoActividades, actividadCalculada) => {
32
155
  }
33
156
  acumuladoActividades.otrosIngresos += actividadCalculada.otrosIngresos;
34
157
  acumuladoActividades.costoTotal += actividadCalculada.costoTotal;
35
- acumuladoActividades.otrosGastos.GastosOperativos += actividadCalculada.otrosGastos.GastosOperativos;
36
- acumuladoActividades.otrosGastos.GastosFamiliares += actividadCalculada.otrosGastos.GastosFamiliares;
158
+ acumuladoActividades.otrosGastos.GastosOperativos +=
159
+ actividadCalculada.otrosGastos.GastosOperativos;
160
+ acumuladoActividades.otrosGastos.GastosFamiliares +=
161
+ actividadCalculada.otrosGastos.GastosFamiliares;
37
162
  return acumuladoActividades;
38
163
  }
39
164
  };
@@ -42,14 +167,16 @@ const calcularActividad = (actividades) => {
42
167
  const otrosIngresos = getOtrosIngresos(actividades.Ventas);
43
168
  const costoTotal = calcularCostoTotal(actividades.Costos);
44
169
  const otrosGastos = calcularOtrosGastos(actividades.OtrosGastos);
45
- return { ventas: ventas,
170
+ return {
171
+ ventas: ventas,
46
172
  otrosIngresos: otrosIngresos,
47
173
  costoTotal: costoTotal,
48
- otrosGastos: otrosGastos };
174
+ otrosGastos: otrosGastos
175
+ };
49
176
  };
50
177
  const calcularEERR = (eerrMap, eerr, consolidado) => {
51
178
  if (consolidado) {
52
- for (let [key, value] of consolidado.ventas) {
179
+ for (const [key, value] of consolidado.ventas) {
53
180
  const rubroKey = `ACT_CN_40001_${key}`;
54
181
  if (!eerrMap.has(rubroKey))
55
182
  throw new Error(`No existe el rubro llave ${rubroKey}`);
@@ -58,7 +185,7 @@ const calcularEERR = (eerrMap, eerr, consolidado) => {
58
185
  }
59
186
  setValueInOtros('ACT_CN_41002', eerrMap, eerr, { MontoEmpresa: consolidado.costoTotal }, 'Costos de Ventas COSTOS AGR Costo Total');
60
187
  setValueInOtros('ACT_CN_43002', eerrMap, eerr, { MontoEmpresa: consolidado.otrosGastos.GastosOperativos }, 'Gastos Administrativos/Operativos Gastos AGR Total Gastos Operativos');
61
- setValueInOtros('ACT_CN_43004', eerrMap, eerr, { MontoFamiliar: consolidado.otrosGastos.GastosFamiliares }, 'Gastos Familiares Gastos AGR Total Gastos Familiares');
188
+ setValueInOtros('ACT_CN_45003', eerrMap, eerr, { MontoFamiliar: consolidado.otrosGastos.GastosFamiliares }, 'Gastos Familiares Gastos AGR Total Gastos Familiares');
62
189
  setValueInOtros('ACT_CN_45001', eerrMap, eerr, { MontoFamiliar: consolidado.otrosIngresos }, 'Otros Ingresos Ventas AGR');
63
190
  }
64
191
  return eerrMap;
@@ -67,14 +194,23 @@ const setValueInOtros = (rubroKey, eerrMap, eerr, values, descripcion) => {
67
194
  const muestra = eerr.find((item) => item.RubroId === rubroKey);
68
195
  if (!muestra)
69
196
  throw new Error(`No existe el rubro ${rubroKey}`);
70
- if (!eerrMap.has(`${rubroKey}_${muestra.Rango}`)) {
197
+ let key = rubroKey;
198
+ if (muestra.Clasificador !== 'H') {
199
+ key = `${rubroKey}_${!muestra.UUID ? '0' : muestra.UUID}`;
200
+ }
201
+ key += `_${muestra.Rango}`;
202
+ if (!eerrMap.has(key)) {
71
203
  (0, balanceAux_calc_1.anadirNuevoRubro)(muestra, eerrMap, values, descripcion);
72
204
  }
73
205
  else {
74
- let column = eerrMap.get(`${rubroKey}_${muestra.Rango}`);
75
- if (values.MontoEmpresa && values.MontoEmpresa > 0 && column.MontoEmpresa == 0)
206
+ const column = eerrMap.get(key);
207
+ if (values.MontoEmpresa &&
208
+ values.MontoEmpresa > 0 &&
209
+ column.MontoEmpresa == 0)
76
210
  column.MontoEmpresa = values.MontoEmpresa;
77
- if (values.MontoFamiliar && values.MontoFamiliar > 0 && column.MontoFamiliar == 0)
211
+ if (values.MontoFamiliar &&
212
+ values.MontoFamiliar > 0 &&
213
+ column.MontoFamiliar == 0)
78
214
  column.MontoFamiliar = values.MontoFamiliar;
79
215
  }
80
216
  };
@@ -91,9 +227,10 @@ const getOtrosIngresos = (ventas) => {
91
227
  };
92
228
  //@ts-ignore
93
229
  const getVentasXGestion = (ventas) => {
94
- const ingresosTotales = ventas.Productos.map((item) => item.Ingresos).flat().
95
- filter((item) => item.RubroId === 'ACT_AGR_ING_TO');
96
- let result = ingresosTotales.reduce((acc, item) => {
230
+ const ingresosTotales = ventas.Productos.map((item) => item.Ingresos)
231
+ .flat()
232
+ .filter((item) => item.RubroId === 'ACT_AGR_ING_TO');
233
+ const result = ingresosTotales.reduce((acc, item) => {
97
234
  const rango = item.Rango;
98
235
  for (let i = 1; i <= rango; i++) {
99
236
  if (!acc.has(i)) {
@@ -1,4 +1,16 @@
1
- import { Strategy } from "../strategy.interface";
1
+ import { Strategy } from '../strategy.interface';
2
+ export interface CampoCalculadoDefinido {
3
+ RubroId: string;
4
+ Correlativos: '*' | 'ultima' | number[];
5
+ Empresa: boolean;
6
+ Familiar: boolean;
7
+ }
8
+ export interface CampoCalculado {
9
+ RubroId: string;
10
+ Correlativo: number;
11
+ Empresa: boolean;
12
+ Familiar: boolean;
13
+ }
2
14
  export default class Balance implements Strategy {
3
15
  execute(data: any): any;
4
16
  }
@@ -26,25 +26,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  const balanceCalc = __importStar(require("./common/balance.calc"));
27
27
  const commmon = __importStar(require("./common/balance.calc"));
28
28
  const declaracionJurada_calc_1 = require("./common/declaracionJurada.calc");
29
- const flujoAux_calc_1 = require("./common/balanceCalculos/flujoAux.calc");
29
+ //import { setFlujoInEERR } from './common/balanceCalculos/flujoAux.calc'
30
+ const utils_1 = require("./eeff/admFinanciera/utils");
30
31
  class Balance {
31
32
  execute(data) {
32
- let result = {};
33
+ const result = {};
33
34
  const balanceClone = balanceCalc.trasponer(commmon.clone(data.balance));
34
35
  const eerrClone = balanceCalc.trasponer(commmon.clone(data.eerr));
35
- let balanceMap = balanceCalc.getBalanceHashMap(data.balance);
36
- let eerrMap = balanceCalc.getBalanceHashMap(data.eerr);
36
+ const balanceMap = balanceCalc.getBalanceHashMap(data.balance);
37
+ const eerrMap = balanceCalc.getBalanceHashMap(data.eerr);
37
38
  (0, declaracionJurada_calc_1.anadirDeclaracionJurada)(balanceMap, data.balance, data.declaracionJurada.Balance);
38
39
  data.balanceMap = balanceMap;
39
40
  data.eerrMap = eerrMap;
40
- (0, flujoAux_calc_1.setFlujoInEERR)(data);
41
+ //setFlujoInEERR(data)
41
42
  if (data.strategy != null)
42
43
  data = data.strategy.execute(data);
44
+ result.camposCalculados = data.camposCalculados;
43
45
  delete data.eerrMap;
44
46
  data.balance = Array.from(balanceMap.values());
45
47
  data.eerr = Array.from(eerrMap.values());
46
- result.balance = calcularBalance(data.balance);
47
- result.eerr = calcularEERR(data.eerr);
48
+ result.balance = calcularBalance(data.balance, data.cantidadGestiones);
49
+ result.eerr = calcularEERR(data.eerr, data.cantidadGestiones);
48
50
  result.DataOriginal = {
49
51
  balance: balanceClone,
50
52
  eerr: eerrClone
@@ -53,21 +55,28 @@ class Balance {
53
55
  }
54
56
  }
55
57
  exports.default = Balance;
56
- const calcularBalance = (balance) => {
58
+ const calcularBalance = (balance, cantidadGestiones) => {
57
59
  let i = 0;
58
60
  let result = balance.map((item) => {
59
61
  i++;
60
62
  const esGrupo = item.Clasificador == 'P' || item.Clasificador == 'C';
61
63
  return {
62
64
  ...item,
63
- MontoEmpresa: (!esGrupo ? parseFloat(item.MontoEmpresa) : 0),
64
- MontoFamiliar: (!esGrupo ? parseFloat(item.MontoFamiliar) : 0),
65
- MontoTotal: (!esGrupo ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar) : 0),
65
+ MontoEmpresa: !esGrupo ? parseFloat(item.MontoEmpresa) : 0,
66
+ MontoFamiliar: !esGrupo ? parseFloat(item.MontoFamiliar) : 0,
67
+ MontoTotal: !esGrupo
68
+ ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar)
69
+ : 0,
66
70
  IdVirtual: i
67
71
  };
68
72
  });
69
- result = sumarizarCuenta(['ACT_CN_11000', 'ACT_CN_12000',
70
- 'ACT_CN_21000', 'ACT_CN_22000', 'ACT_CN_30000'], result);
73
+ result = sumarizarCuenta([
74
+ 'ACT_CN_11000',
75
+ 'ACT_CN_12000',
76
+ 'ACT_CN_21000',
77
+ 'ACT_CN_22000',
78
+ 'ACT_CN_30000'
79
+ ], result);
71
80
  result = sumarizarCuenta(['ACT_CN_10000', 'ACT_CN_20000'], result);
72
81
  result = adicionarCuenta('ACT_CN_11000', 'ACT_CN_11900', result);
73
82
  result = adicionarCuenta('ACT_CN_12000', 'ACT_CN_12900', result);
@@ -78,19 +87,70 @@ const calcularBalance = (balance) => {
78
87
  result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39000', result);
79
88
  result = adicionarCuenta('ACT_CN_20000', 'ACT_CN_39900', result);
80
89
  result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39900', result);
90
+ calcularCapital(result, cantidadGestiones);
81
91
  result = balanceCalc.trasponer(result);
82
92
  return result;
83
93
  };
84
- const calcularEERR = (eerr) => {
94
+ function calcularCapital(datos, cantidadGestiones) {
95
+ const totalActivos = datos.filter((el) => el.RubroId === 'ACT_CN_19000');
96
+ const totalPasivos = datos.filter((el) => el.RubroId === 'ACT_CN_29000');
97
+ const capitales = datos.filter((el) => el.RubroId === 'ACT_CN_30001' &&
98
+ el.Correlativo <= cantidadGestiones - 1);
99
+ capitales.forEach((cap) => {
100
+ const activo = totalActivos.find((el) => el.Correlativo === cap.Correlativo);
101
+ const pasivo = totalPasivos.find((el) => el.Correlativo === cap.Correlativo);
102
+ cap.MontoEmpresa =
103
+ (0, utils_1.ourParseFloat)(activo?.MontoEmpresa) -
104
+ (0, utils_1.ourParseFloat)(pasivo?.MontoEmpresa);
105
+ cap.MontoFamiliar =
106
+ (0, utils_1.ourParseFloat)(activo?.MontoFamiliar) -
107
+ (0, utils_1.ourParseFloat)(pasivo?.MontoFamiliar);
108
+ cap.MontoTotal = cap.MontoEmpresa + cap.MontoFamiliar;
109
+ });
110
+ const totalesPatrimonio = datos.filter((el) => el.RubroId === 'ACT_CN_39000' &&
111
+ el.Correlativo <= cantidadGestiones - 1);
112
+ totalesPatrimonio.forEach((el) => {
113
+ const capital = capitales.find((cap) => el.Correlativo === cap.Correlativo);
114
+ el.MontoEmpresa += (0, utils_1.ourParseFloat)(capital?.MontoEmpresa);
115
+ el.MontoFamiliar += (0, utils_1.ourParseFloat)(capital?.MontoFamiliar);
116
+ el.MontoTotal = el.MontoEmpresa + el.MontoFamiliar;
117
+ });
118
+ const totalesPasivoPatrimonio = datos.filter((el) => el.RubroId === 'ACT_CN_39900' &&
119
+ el.Correlativo <= cantidadGestiones - 1);
120
+ totalesPasivoPatrimonio.forEach((el) => {
121
+ const capital = capitales.find((cap) => el.Correlativo === cap.Correlativo);
122
+ el.MontoEmpresa += (0, utils_1.ourParseFloat)(capital?.MontoEmpresa);
123
+ el.MontoFamiliar += (0, utils_1.ourParseFloat)(capital?.MontoFamiliar);
124
+ el.MontoTotal = el.MontoEmpresa + el.MontoFamiliar;
125
+ });
126
+ }
127
+ const calcularEERR = (eerr, cantidadGestiones) => {
85
128
  let i = 0;
129
+ //calcular porcentajes
130
+ calcularPorcentajes({
131
+ rubroDatos: 'ACT_CN_40001',
132
+ rubroPorcentajes: 'ACT_CN_41001',
133
+ rubroDestino: 'ACT_CN_41002',
134
+ cantidadGestiones,
135
+ datos: eerr
136
+ });
137
+ calcularPorcentajes({
138
+ rubroDatos: 'ACT_CN_40001',
139
+ rubroPorcentajes: 'ACT_CN_43001',
140
+ rubroDestino: 'ACT_CN_43002',
141
+ cantidadGestiones,
142
+ datos: eerr
143
+ });
86
144
  let result = eerr.map((item) => {
87
145
  i++;
88
146
  const esGrupo = item.Clasificador == 'P' || item.Clasificador == 'C';
89
147
  return {
90
148
  ...item,
91
- MontoEmpresa: (!esGrupo ? parseFloat(item.MontoEmpresa) : 0),
92
- MontoFamiliar: (!esGrupo ? parseFloat(item.MontoFamiliar) : 0),
93
- MontoTotal: (!esGrupo ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar) : 0),
149
+ MontoEmpresa: !esGrupo ? parseFloat(item.MontoEmpresa) : 0,
150
+ MontoFamiliar: !esGrupo ? parseFloat(item.MontoFamiliar) : 0,
151
+ MontoTotal: !esGrupo
152
+ ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar)
153
+ : 0,
94
154
  IdVirtual: i
95
155
  };
96
156
  });
@@ -106,8 +166,8 @@ const calcularEERR = (eerr) => {
106
166
  result = adicionarCuenta('ACT_CN_40000', 'ACT_CN_42000', result);
107
167
  result = adicionarCuenta('ACT_CN_41000', 'ACT_CN_42000', result, true);
108
168
  //Gastos
109
- result = adicionarCuenta('ACT_CN_43003', 'ACT_CN_43000', result);
110
169
  result = adicionarCuenta('ACT_CN_43002', 'ACT_CN_43000', result);
170
+ result = adicionarCuenta('ACT_CN_43003', 'ACT_CN_43000', result);
111
171
  result = adicionarCuenta('ACT_CN_43004', 'ACT_CN_43000', result);
112
172
  //Total gastos
113
173
  result = adicionarCuenta('ACT_CN_43000', 'ACT_CN_43900', result);
@@ -128,30 +188,63 @@ const calcularEERR = (eerr) => {
128
188
  result = balanceCalc.trasponer(result);
129
189
  return result;
130
190
  };
191
+ function calcularPorcentajes({ rubroDatos, rubroPorcentajes, datos, cantidadGestiones, rubroDestino }) {
192
+ const porcentajes = datos.filter((el) => el.RubroId === rubroPorcentajes);
193
+ const montos = datos.filter((el) => el.RubroId === rubroDatos);
194
+ const destinos = datos.filter((el) => el.RubroId === rubroDestino);
195
+ destinos.forEach((item) => {
196
+ const porcentaje = porcentajes.find((el) => el.Correlativo === item.Correlativo);
197
+ const monto = montos.find((el) => el.Correlativo === item.Correlativo);
198
+ if (item.Correlativo === cantidadGestiones) {
199
+ if (porcentaje) {
200
+ porcentaje.MontoEmpresa =
201
+ ((0, utils_1.ourParseFloat)(item.MontoEmpresa) /
202
+ (0, utils_1.ourParseFloat)(monto?.MontoEmpresa)) *
203
+ 100;
204
+ }
205
+ }
206
+ else {
207
+ item.MontoEmpresa =
208
+ ((0, utils_1.ourParseFloat)(monto.MontoEmpresa) *
209
+ (0, utils_1.ourParseFloat)(porcentaje.MontoEmpresa)) /
210
+ 100;
211
+ }
212
+ item.MontoFamiliar =
213
+ ((0, utils_1.ourParseFloat)(monto.MontoFamiliar) *
214
+ (0, utils_1.ourParseFloat)(porcentaje.MontoFamiliar)) /
215
+ 100;
216
+ });
217
+ }
131
218
  const adicionarCuenta = (origen, destino, datos, isNegative = false) => {
132
- const origenVector = datos.filter((item) => item.RubroId == origen).reduce((acc, valor) => {
219
+ const origenVector = datos
220
+ .filter((item) => item.RubroId == origen)
221
+ .reduce((acc, valor) => {
133
222
  if (!acc.has(valor.Correlativo))
134
223
  acc.set(valor.Correlativo, valor);
135
224
  return acc;
136
225
  }, new Map());
137
- let destinoVector = datos.filter((item) => item.RubroId == destino);
226
+ const destinoVector = datos.filter((item) => item.RubroId == destino);
138
227
  destinoVector.forEach((item) => {
139
228
  if (isNegative) {
140
229
  item.MontoEmpresa -= origenVector.get(item.Correlativo).MontoEmpresa;
141
230
  item.MontoFamiliar -= origenVector.get(item.Correlativo).MontoFamiliar;
142
- item.MontoTotal -= origenVector.get(item.Correlativo).MontoEmpresa;
231
+ item.MontoTotal -=
232
+ origenVector.get(item.Correlativo).MontoEmpresa +
233
+ origenVector.get(item.Correlativo).MontoFamiliar;
143
234
  }
144
235
  else {
145
236
  item.MontoEmpresa += origenVector.get(item.Correlativo).MontoEmpresa;
146
237
  item.MontoFamiliar += origenVector.get(item.Correlativo).MontoFamiliar;
147
- item.MontoTotal += origenVector.get(item.Correlativo).MontoEmpresa;
238
+ item.MontoTotal +=
239
+ origenVector.get(item.Correlativo).MontoEmpresa +
240
+ origenVector.get(item.Correlativo).MontoFamiliar;
148
241
  }
149
242
  });
150
243
  return datos;
151
244
  };
152
245
  const sumarizarCuenta = (rubros, datos) => {
153
- let filtrados = datos.filter((item) => rubros.includes(item.RubroPadreId));
154
- let grupos = datos.filter((item) => rubros.includes(item.RubroId));
246
+ const filtrados = datos.filter((item) => rubros.includes(item.RubroPadreId));
247
+ const grupos = datos.filter((item) => rubros.includes(item.RubroId));
155
248
  const suma = filtrados.reduce((acc, item) => {
156
249
  const key = `${item.RubroPadreId}_${item.Correlativo}`;
157
250
  if (!acc.has(key)) {
@@ -36,11 +36,11 @@ const trasponer = (data) => {
36
36
  Descripcion: item.Descripcion,
37
37
  IndicadorABM: item.IndicadorABM,
38
38
  Clasificador: item.Clasificador,
39
- Borrable: (item.Clasificador == 'HABM'),
39
+ Borrable: item.Clasificador == 'HABM',
40
40
  Editable: item.Editable,
41
41
  Secuencia: item.Secuencia,
42
42
  UUID: item.UUID,
43
- Rango: item.Rango,
43
+ Rango: item.Rango
44
44
  });
45
45
  for (let i = 1; i <= item.Rango; i++) {
46
46
  acc.get(key)[`MontoEmpresa_${i}`] = 0;
@@ -60,6 +60,5 @@ const trasponer = (data) => {
60
60
  return result;
61
61
  };
62
62
  exports.trasponer = trasponer;
63
- const calcularPorcentaje = (balance) => {
64
- };
63
+ const calcularPorcentaje = (balance) => { };
65
64
  exports.calcularPorcentaje = calcularPorcentaje;
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.anadirNuevoRubro = void 0;
4
4
  const anadirNuevoRubro = (muestra, balanceMap, values, descripcion) => {
5
5
  for (let i = 1; i <= muestra.Rango; i++) {
6
- let newData = {
6
+ const newData = {
7
7
  ...muestra,
8
8
  Descripcion: `${descripcion}`,
9
9
  Fecha: null,
@@ -12,7 +12,7 @@ const anadirNuevoRubro = (muestra, balanceMap, values, descripcion) => {
12
12
  MontoEmpresa: 0,
13
13
  IndicadorABM: 'N',
14
14
  Editable: false,
15
- Clasificador: 'CT',
15
+ Clasificador: 'CT'
16
16
  };
17
17
  if (i == muestra.Rango) {
18
18
  if (values.MontoEmpresa && values.MontoEmpresa > 0)
@@ -2,17 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setFlujoInEERR = void 0;
4
4
  const setFlujoInEERR = async (data) => {
5
- if (data.flujoProyectado && data.flujoProyectado.FlujoProyectadoMensual
6
- && data.flujoProyectado.FlujoProyectadoMensual.length > 0) {
7
- let gastosFinancierosEmp = data.flujoProyectado.FlujoProyectadoMensual.
8
- filter((value) => value.RubroId == 'ACT_CNFL_61001').reduce((acc, item) => {
5
+ if (data.flujoProyectado &&
6
+ data.flujoProyectado.FlujoProyectadoMensual &&
7
+ data.flujoProyectado.FlujoProyectadoMensual.length > 0) {
8
+ const gastosFinancierosEmp = data.flujoProyectado.FlujoProyectadoMensual.filter((value) => value.RubroId == 'ACT_CNFL_61001').reduce((acc, item) => {
9
9
  for (let i = 1; i <= 12; i++) {
10
10
  acc += parseFloat(item[`Monto${i}`]);
11
11
  }
12
12
  return acc;
13
13
  }, 0);
14
14
  const rango = data.eerrMap.get('ACT_CN_43003_1').Rango;
15
- data.eerrMap.get(`ACT_CN_43003_${rango}`).MontoEmpresa = gastosFinancierosEmp;
15
+ data.eerrMap.get(`ACT_CN_43003_${rango}`).MontoEmpresa =
16
+ gastosFinancierosEmp;
16
17
  }
17
18
  };
18
19
  exports.setFlujoInEERR = setFlujoInEERR;