bdpformulas 1.0.54 → 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 +19 -19
- package/build/strategies/agriculture/balanceAgr.strategy.d.ts +2 -1
- package/build/strategies/agriculture/balanceAgr.strategy.js +153 -16
- package/build/strategies/balance.strategy.d.ts +13 -1
- package/build/strategies/balance.strategy.js +117 -24
- package/build/strategies/common/balance.calc.js +3 -4
- package/build/strategies/common/balanceCalculos/balanceAux.calc.js +2 -2
- package/build/strategies/common/balanceCalculos/flujoAux.calc.js +6 -5
- package/build/strategies/common/declaracionJurada.calc.js +25 -9
- package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.js +3 -1
- package/build/strategies/eeff/index.js +2 -2
- package/build/strategies/general/balanceGeneral.strategy.d.ts +1 -1
- package/build/strategies/general/balanceGeneral.strategy.js +19 -9
- package/build/strategies/index.d.ts +1 -0
- package/build/strategies/index.js +7446 -0
- package/build/strategies/utils.d.ts +7 -0
- package/build/strategies/utils.js +33 -0
- package/package.json +1 -1
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
|
|
4
|
-
import Context from
|
|
5
|
-
import CostosPec from
|
|
6
|
-
import VentasPrd from
|
|
7
|
-
import CostosPrd from
|
|
8
|
-
import CostosAgr from
|
|
9
|
-
import BalanceAgrStrategy from
|
|
10
|
-
import FlujoProyectadoAgrStrategy from
|
|
11
|
-
import BalancePecStrategy from
|
|
12
|
-
import FlujoProyectadoPecStrategy from
|
|
13
|
-
import BalancePrdStrategy from
|
|
14
|
-
import FlujoProyectadoPrdStrategy from
|
|
15
|
-
import BalanceEEFFStrategy from
|
|
16
|
-
import FlujoProyectadoEEFFStrategy from
|
|
17
|
-
import Balance from
|
|
18
|
-
import FlujoProyectado from
|
|
19
|
-
import AnalisisFinancieros from
|
|
20
|
-
import BalanceGeneralStrategy from
|
|
21
|
-
import FlujoProyectadoGeneralStrategy from
|
|
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
|
|
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 (
|
|
14
|
-
|
|
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 (
|
|
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 +=
|
|
36
|
-
|
|
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 {
|
|
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 (
|
|
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('
|
|
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
|
-
|
|
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
|
-
|
|
75
|
-
if (values.MontoEmpresa &&
|
|
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 &&
|
|
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)
|
|
95
|
-
|
|
96
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
const result = {};
|
|
33
34
|
const balanceClone = balanceCalc.trasponer(commmon.clone(data.balance));
|
|
34
35
|
const eerrClone = balanceCalc.trasponer(commmon.clone(data.eerr));
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
|
|
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:
|
|
64
|
-
MontoFamiliar:
|
|
65
|
-
MontoTotal:
|
|
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([
|
|
70
|
-
'
|
|
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
|
-
|
|
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:
|
|
92
|
-
MontoFamiliar:
|
|
93
|
-
MontoTotal:
|
|
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
|
|
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
|
-
|
|
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 -=
|
|
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 +=
|
|
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
|
-
|
|
154
|
-
|
|
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:
|
|
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
|
-
|
|
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 &&
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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 =
|
|
15
|
+
data.eerrMap.get(`ACT_CN_43003_${rango}`).MontoEmpresa =
|
|
16
|
+
gastosFinancierosEmp;
|
|
16
17
|
}
|
|
17
18
|
};
|
|
18
19
|
exports.setFlujoInEERR = setFlujoInEERR;
|