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.
- package/build/models/consolidado/balance.d.ts +6 -0
- package/build/models/consolidado/balance.js +6 -0
- package/build/strategies/agriculture/balanceAgr.strategy.js +0 -6
- package/build/strategies/balance.strategy.js +18 -24
- package/build/strategies/common/balance.calc.d.ts +14 -2
- package/build/strategies/common/balance.calc.js +84 -4
- package/build/strategies/common/eerr.calc.js +8 -6
- package/build/strategies/eeff/supuestos.strategy.js +20 -6
- package/build/strategies/pecuary/balancePec.strategy.js +77 -56
- package/build/strategies/production/balancePrd.strategy.js +43 -43
- package/build/strategies/utils.d.ts +2 -1
- package/build/strategies/utils.js +9 -2
- package/package.json +1 -1
|
@@ -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";
|
|
@@ -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
|
-
|
|
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(
|
|
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:
|
|
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
|
|
381
|
+
calcularCostoVentasPecuario(result);
|
|
378
382
|
}
|
|
379
383
|
result = balanceCalc.trasponer(result);
|
|
380
384
|
return result;
|
|
381
385
|
};
|
|
382
|
-
function calcularCostoVentasPecuario(datos
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
71
|
-
sumarFilaEnFila(
|
|
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(
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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,
|
|
26
|
-
const cuentasCostoCopy = getCuentasCopy(data,
|
|
27
|
-
const cuentaGastoCopy = getCuentasCopy(data,
|
|
28
|
-
const cuentaOtrosIngresosCopy = getCuentasCopy(data,
|
|
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(
|
|
37
|
-
sumarizarCuentas(
|
|
38
|
-
sumarizarCuentas(
|
|
39
|
-
sumarizarCuentas(
|
|
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(`${
|
|
67
|
+
const cuentaIngreso = data.eerrMap.get(`${balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas}_${i}`);
|
|
65
68
|
const copy = { ...cuentaIngreso };
|
|
66
|
-
copy.RubroId =
|
|
69
|
+
copy.RubroId = balance_1.EEFFConsolidadoRubroEnum.IngresoPorVentas_Subcuenta;
|
|
67
70
|
copy.Descripcion = `Ingresos por Ventas ${actividad.Desarrollo.ActividadGanadera}`;
|
|
68
|
-
copy.UUID = `${
|
|
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
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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(`${
|
|
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 =
|
|
129
|
+
copy.RubroId = balance_1.EEFFConsolidadoRubroEnum.CostosDeVentas_Subcuenta;
|
|
115
130
|
copy.Descripcion = `Costos de Ventas ${actividad.Desarrollo.ActividadGanadera}`;
|
|
116
|
-
copy.UUID = `${
|
|
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
|
|
123
|
-
|
|
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
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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(`${
|
|
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 =
|
|
147
|
-
|
|
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.
|
|
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 ==
|
|
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 =
|
|
179
|
-
copy.UUID = `${
|
|
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.
|
|
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(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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: '
|
|
22
|
-
Correlativos: '
|
|
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:
|
|
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
|
|
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(`${
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
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
|
-
|
|
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({
|