bdpformulas 1.0.35 → 1.0.36
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/strategies/agriculture/balanceAgr.strategy.js +83 -26
- package/build/strategies/balance.strategy.js +19 -49
- package/build/strategies/common/balance.calc.d.ts +2 -0
- package/build/strategies/common/balance.calc.js +54 -1
- package/build/strategies/common/balanceCalculos/balanceAux.calc.d.ts +1 -0
- package/build/strategies/common/balanceCalculos/balanceAux.calc.js +16 -0
- package/build/strategies/common/balanceCalculos/declaracionJurada.calc.d.ts +1 -0
- package/build/strategies/common/balanceCalculos/declaracionJurada.calc.js +74 -0
- package/build/strategies/common/balanceCalculos/flujoAux.calc.d.ts +1 -0
- package/build/strategies/common/balanceCalculos/flujoAux.calc.js +27 -0
- package/package.json +1 -1
|
@@ -1,35 +1,90 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const balanceAux_calc_1 = require("../common/balanceCalculos/balanceAux.calc");
|
|
3
4
|
class BalanceAgrStrategy {
|
|
4
5
|
constructor() {
|
|
5
6
|
this.actividades = [];
|
|
6
7
|
}
|
|
7
8
|
execute(data) {
|
|
8
|
-
|
|
9
|
+
if (!this.actividades || this.actividades.length == 0)
|
|
10
|
+
throw new Error('Debe ingresar actividades Agrícolas');
|
|
11
|
+
let acumuladoActividades = null;
|
|
12
|
+
for (let actividad of this.actividades) {
|
|
13
|
+
let actividadCalculada = calcularActividad(actividad);
|
|
14
|
+
acumuladoActividades = addAcumulado(acumuladoActividades, actividadCalculada);
|
|
15
|
+
}
|
|
16
|
+
data.eerrMap = calcularEERR(data.eerrMap, data.eerr, acumuladoActividades);
|
|
9
17
|
return data;
|
|
10
18
|
}
|
|
11
19
|
}
|
|
12
20
|
exports.default = BalanceAgrStrategy;
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
const addAcumulado = (acumuladoActividades, actividadCalculada) => {
|
|
22
|
+
if (acumuladoActividades == null)
|
|
23
|
+
return actividadCalculada;
|
|
24
|
+
else {
|
|
25
|
+
for (let [key, value] of actividadCalculada.ventas) {
|
|
26
|
+
if (acumuladoActividades.ventas.has(key)) {
|
|
27
|
+
let acumulado = acumuladoActividades.ventas.get(key);
|
|
28
|
+
acumulado += value;
|
|
29
|
+
acumuladoActividades.ventas.set(key, acumulado);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
acumuladoActividades.otrosIngresos += actividadCalculada.otrosIngresos;
|
|
33
|
+
acumuladoActividades.costoTotal += actividadCalculada.costoTotal;
|
|
34
|
+
acumuladoActividades.otrosGastos.GastosOperativos += actividadCalculada.otrosGastos.GastosOperativos;
|
|
35
|
+
acumuladoActividades.otrosGastos.GastosFamiliares += actividadCalculada.otrosGastos.GastosFamiliares;
|
|
36
|
+
return acumuladoActividades;
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const calcularActividad = (actividades) => {
|
|
40
|
+
const ventas = getVentasXGestion(actividades.Ventas);
|
|
41
|
+
const otrosIngresos = getOtrosIngresos(actividades.Ventas);
|
|
42
|
+
const costoTotal = calcularCostoTotal(actividades.Costos);
|
|
43
|
+
const otrosGastos = calcularOtrosGastos(actividades.OtrosGastos);
|
|
44
|
+
return { ventas: ventas,
|
|
45
|
+
otrosIngresos: otrosIngresos,
|
|
46
|
+
costoTotal: costoTotal,
|
|
47
|
+
otrosGastos: otrosGastos };
|
|
48
|
+
};
|
|
49
|
+
const calcularEERR = (eerrMap, eerr, consolidado) => {
|
|
50
|
+
if (consolidado) {
|
|
51
|
+
for (let [key, value] of consolidado.ventas) {
|
|
52
|
+
const rubroKey = `ACT_CN_40001_${key}`;
|
|
53
|
+
if (!eerrMap.has(rubroKey))
|
|
54
|
+
throw new Error(`No existe el rubro llave ${rubroKey}`);
|
|
55
|
+
if (eerrMap.get(rubroKey).MontoEmpresa == 0)
|
|
56
|
+
eerrMap.get(rubroKey).MontoEmpresa = value;
|
|
57
|
+
}
|
|
58
|
+
setValueInOtros('ACT_CN_41002', eerrMap, eerr, { MontoEmpresa: consolidado.costoTotal }, 'COSTOS AGR Costo Total');
|
|
59
|
+
setValueInOtros('ACT_CN_43002', eerrMap, eerr, { MontoEmpresa: consolidado.otrosGastos.GastosOperativos }, 'Gastos AGR Total Gastos Operativos');
|
|
60
|
+
setValueInOtros('ACT_CN_43004', eerrMap, eerr, { MontoFamiliar: consolidado.otrosGastos.GastosFamiliares }, 'Gastos AGR Total Gastos Familiares');
|
|
61
|
+
setValueInOtros('ACT_CN_45001', eerrMap, eerr, { MontoFamiliar: consolidado.otrosIngresos }, 'Ventas AGR Otros Ingresos');
|
|
62
|
+
}
|
|
63
|
+
return eerrMap;
|
|
64
|
+
};
|
|
65
|
+
const setValueInOtros = (rubroKey, eerrMap, eerr, values, descripcion) => {
|
|
66
|
+
const muestra = eerr.find((item) => item.RubroId === rubroKey);
|
|
67
|
+
if (!muestra)
|
|
68
|
+
throw new Error(`No existe el rubro ${rubroKey}`);
|
|
69
|
+
if (!eerrMap.has(rubroKey)) {
|
|
70
|
+
(0, balanceAux_calc_1.anadirNuevoRubro)(muestra, eerrMap, values, descripcion);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
if (values.MontoEmpresa && values.MontoEmpresa > 0)
|
|
74
|
+
eerrMap.get(`${rubroKey}_${muestra.Rango}`).MontoEmpresa = values.MontoEmpresa;
|
|
75
|
+
if (values.MontoFamiliar && values.MontoFamiliar > 0)
|
|
76
|
+
eerrMap.get(`${rubroKey}_${muestra.Rango}`).MontoFamiliar = values.MontoFamiliar;
|
|
77
|
+
}
|
|
24
78
|
};
|
|
25
79
|
//@ts-ignore
|
|
26
80
|
const getOtrosIngresos = (ventas) => {
|
|
27
|
-
|
|
81
|
+
let ingresosTotales = ventas.OtrosIngresos.reduce((acc, item) => {
|
|
28
82
|
for (let i = 1; i <= 12; i++) {
|
|
29
|
-
acc += item[`Gestion${i}`];
|
|
83
|
+
acc += parseFloat(item[`Gestion${i}`]);
|
|
30
84
|
}
|
|
31
85
|
return acc;
|
|
32
86
|
}, 0);
|
|
87
|
+
ingresosTotales = Math.round(ingresosTotales * 100) / 100;
|
|
33
88
|
return ingresosTotales;
|
|
34
89
|
};
|
|
35
90
|
//@ts-ignore
|
|
@@ -42,36 +97,38 @@ const getVentasXGestion = (ventas) => {
|
|
|
42
97
|
if (!acc.has(i)) {
|
|
43
98
|
acc.set(i, 0);
|
|
44
99
|
}
|
|
45
|
-
let value = acc.get(i);
|
|
46
|
-
value += item[`Gestion${i}`];
|
|
47
|
-
acc.set(i, value);
|
|
100
|
+
let value = parseFloat(acc.get(i));
|
|
101
|
+
value += parseFloat(item[`Gestion${i}`]);
|
|
102
|
+
acc.set(i, Math.round(value * 100) / 100);
|
|
48
103
|
}
|
|
49
104
|
return acc;
|
|
50
105
|
}, new Map());
|
|
51
|
-
return
|
|
106
|
+
return result;
|
|
52
107
|
};
|
|
53
108
|
//@ts-ignore
|
|
54
109
|
const calcularCostoTotal = (costos) => {
|
|
55
110
|
let numero = 0;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
111
|
+
if (costos && costos.Meses) {
|
|
112
|
+
const filter = costos.Meses.filter((item) => item.ActividadProductoId == 0);
|
|
113
|
+
if (filter.length > 0) {
|
|
114
|
+
numero = parseFloat(filter[0].Total);
|
|
115
|
+
}
|
|
116
|
+
numero = Math.round(numero * 100) / 100;
|
|
59
117
|
}
|
|
60
|
-
numero = Math.round(numero * 100) / 100;
|
|
61
118
|
return numero;
|
|
62
119
|
};
|
|
63
120
|
//@ts-ignore
|
|
64
121
|
const calcularOtrosGastos = (gastos) => {
|
|
65
122
|
const gastosOperativos = gastos.Operativos.reduce((acc, item) => {
|
|
66
|
-
acc += item.ImporteAnual;
|
|
123
|
+
acc += parseFloat(item.ImporteAnual);
|
|
67
124
|
return acc;
|
|
68
125
|
}, 0);
|
|
69
126
|
const gastosFamiliares = gastos.Familiares.reduce((acc, item) => {
|
|
70
|
-
acc += item.ImporteAnual;
|
|
127
|
+
acc += parseFloat(item.ImporteAnual);
|
|
71
128
|
return acc;
|
|
72
129
|
}, 0);
|
|
73
130
|
return {
|
|
74
|
-
GastosOperativos: gastosOperativos,
|
|
75
|
-
GastosFamiliares: gastosFamiliares
|
|
131
|
+
GastosOperativos: Math.round(gastosOperativos * 100) / 100,
|
|
132
|
+
GastosFamiliares: Math.round(gastosFamiliares * 100) / 100
|
|
76
133
|
};
|
|
77
134
|
};
|
|
@@ -23,14 +23,25 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const balanceCalc = __importStar(require("./common/balance.calc"));
|
|
26
27
|
const commmon = __importStar(require("./common/balance.calc"));
|
|
28
|
+
const declaracionJurada_calc_1 = require("./common/balanceCalculos/declaracionJurada.calc");
|
|
29
|
+
const flujoAux_calc_1 = require("./common/balanceCalculos/flujoAux.calc");
|
|
27
30
|
class Balance {
|
|
28
31
|
execute(data) {
|
|
29
32
|
let result = {};
|
|
30
|
-
const balanceClone = trasponer(commmon.clone(data.balance));
|
|
31
|
-
const eerrClone = trasponer(commmon.clone(data.eerr));
|
|
33
|
+
const balanceClone = balanceCalc.trasponer(commmon.clone(data.balance));
|
|
34
|
+
const eerrClone = balanceCalc.trasponer(commmon.clone(data.eerr));
|
|
35
|
+
let balanceMap = balanceCalc.getBalanceHashMap(data.balance);
|
|
36
|
+
let eerrMap = balanceCalc.getBalanceHashMap(data.eerr);
|
|
37
|
+
(0, declaracionJurada_calc_1.anadirDeclaracionJurada)(balanceMap, data.balance, data.declaracionJurada.Balance);
|
|
38
|
+
data.eerrMap = eerrMap;
|
|
39
|
+
(0, flujoAux_calc_1.setFlujoInEERR)(data);
|
|
32
40
|
if (data.strategy != null)
|
|
33
41
|
data = data.strategy.execute(data);
|
|
42
|
+
delete data.eerrMap;
|
|
43
|
+
data.balance = Array.from(balanceMap.values());
|
|
44
|
+
data.eerr = Array.from(eerrMap.values());
|
|
34
45
|
result.balance = calcularBalance(data.balance);
|
|
35
46
|
result.eerr = calcularEERR(data.eerr);
|
|
36
47
|
result.DataOriginal = {
|
|
@@ -45,7 +56,8 @@ const calcularBalance = (balance) => {
|
|
|
45
56
|
let i = 0;
|
|
46
57
|
let result = balance.map((item) => {
|
|
47
58
|
i++;
|
|
48
|
-
|
|
59
|
+
const esGrupo = item.Clasificador == 'P' || item.Clasificador == 'C';
|
|
60
|
+
return Object.assign(Object.assign({}, item), { MontoEmpresa: (!esGrupo ? parseFloat(item.MontoEmpresa) : 0), MontoFamiliar: (!esGrupo ? parseFloat(item.MontoFamiliar) : 0), MontoTotal: (!esGrupo ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar) : 0), IdVirtual: i });
|
|
49
61
|
});
|
|
50
62
|
result = sumarizarCuenta(['ACT_CN_11000', 'ACT_CN_12000',
|
|
51
63
|
'ACT_CN_21000', 'ACT_CN_22000', 'ACT_CN_30000'], result);
|
|
@@ -59,14 +71,15 @@ const calcularBalance = (balance) => {
|
|
|
59
71
|
result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39000', result);
|
|
60
72
|
result = adicionarCuenta('ACT_CN_20000', 'ACT_CN_39900', result);
|
|
61
73
|
result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39900', result);
|
|
62
|
-
result = trasponer(result);
|
|
74
|
+
result = balanceCalc.trasponer(result);
|
|
63
75
|
return result;
|
|
64
76
|
};
|
|
65
77
|
const calcularEERR = (eerr) => {
|
|
66
78
|
let i = 0;
|
|
67
79
|
let result = eerr.map((item) => {
|
|
68
80
|
i++;
|
|
69
|
-
|
|
81
|
+
const esGrupo = item.Clasificador == 'P' || item.Clasificador == 'C';
|
|
82
|
+
return Object.assign(Object.assign({}, item), { MontoEmpresa: (!esGrupo ? parseFloat(item.MontoEmpresa) : 0), MontoFamiliar: (!esGrupo ? parseFloat(item.MontoFamiliar) : 0), MontoTotal: (!esGrupo ? parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar) : 0), IdVirtual: i });
|
|
70
83
|
});
|
|
71
84
|
//Ingresos
|
|
72
85
|
result = sumarizarCuenta(['ACT_CN_40000'], result);
|
|
@@ -99,7 +112,7 @@ const calcularEERR = (eerr) => {
|
|
|
99
112
|
//Utilidad neta
|
|
100
113
|
result = adicionarCuenta('ACT_CN_46000', 'ACT_CN_47000', result);
|
|
101
114
|
result = adicionarCuenta('ACT_CN_46001', 'ACT_CN_47000', result, true);
|
|
102
|
-
result = trasponer(result);
|
|
115
|
+
result = balanceCalc.trasponer(result);
|
|
103
116
|
return result;
|
|
104
117
|
};
|
|
105
118
|
const adicionarCuenta = (origen, destino, datos, isNegative = false) => {
|
|
@@ -151,46 +164,3 @@ const sumarizarCuenta = (rubros, datos) => {
|
|
|
151
164
|
});
|
|
152
165
|
return datos;
|
|
153
166
|
};
|
|
154
|
-
//@ts-ignore
|
|
155
|
-
const trasponer = (data) => {
|
|
156
|
-
let result = data.reduce((acc, item) => {
|
|
157
|
-
const uuid = item.UUID != null ? item.UUID : '0';
|
|
158
|
-
const key = `${item.RubroId}_${uuid}`;
|
|
159
|
-
if (!acc.has(key)) {
|
|
160
|
-
acc.set(key, {
|
|
161
|
-
RubroId: item.RubroId,
|
|
162
|
-
RubroPadreId: item.RubroPadreId,
|
|
163
|
-
Descripcion: item.Descripcion,
|
|
164
|
-
IndicadorABM: item.IndicadorABM,
|
|
165
|
-
Clasificador: item.Clasificador,
|
|
166
|
-
Borrable: (item.Clasificador == 'HABM'),
|
|
167
|
-
Editable: item.Editable,
|
|
168
|
-
Secuencia: item.Secuencia,
|
|
169
|
-
UUID: item.UUID,
|
|
170
|
-
Rango: item.Rango,
|
|
171
|
-
});
|
|
172
|
-
for (let i = 1; i <= item.Rango; i++) {
|
|
173
|
-
acc.get(key)[`MontoEmpresa_${i}`] = 0;
|
|
174
|
-
acc.get(key)[`MontoFamiliar_${i}`] = 0;
|
|
175
|
-
acc.get(key)[`MontoTotal_${i}`] = 0;
|
|
176
|
-
acc.get(key)[`Fecha_${i}`] = null;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
acc.get(key)[`MontoEmpresa_${item.Correlativo}`] = item.MontoEmpresa;
|
|
180
|
-
acc.get(key)[`MontoFamiliar_${item.Correlativo}`] = item.MontoFamiliar;
|
|
181
|
-
acc.get(key)[`MontoTotal_${item.Correlativo}`] = item.MontoTotal;
|
|
182
|
-
acc.get(key)[`Fecha_${item.Correlativo}`] = item.Fecha;
|
|
183
|
-
return acc;
|
|
184
|
-
}, new Map());
|
|
185
|
-
result = Array.from(result.values());
|
|
186
|
-
result = result.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
|
|
187
|
-
return result;
|
|
188
|
-
};
|
|
189
|
-
// const esBorrable=(rubroId: string )=>{
|
|
190
|
-
//
|
|
191
|
-
// // const rubrosBorrables = ['ACT_CN_11004','ACT_CN_12005',
|
|
192
|
-
// // 'ACT_CN_21003','ACT_CN_22003','ACT_CN_30002',
|
|
193
|
-
// // 'ACT_CN_40002','ACT_CN_41003','ACT_CN_43004','ACT_CN_45001']
|
|
194
|
-
// return (rubrosBorrables.includes(rubroId))
|
|
195
|
-
// }
|
|
196
|
-
//
|
|
@@ -1,10 +1,63 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calcularPorcentaje = exports.clone = void 0;
|
|
3
|
+
exports.calcularPorcentaje = exports.trasponer = exports.getBalanceHashMap = exports.clone = void 0;
|
|
4
4
|
const clone = (data) => {
|
|
5
5
|
return JSON.parse(JSON.stringify(data));
|
|
6
6
|
};
|
|
7
7
|
exports.clone = clone;
|
|
8
|
+
const getBalanceHashMap = (balance) => {
|
|
9
|
+
if (!balance || balance.length == 0)
|
|
10
|
+
throw new Error('Debe ingresar un balance válido');
|
|
11
|
+
const result = balance.reduce((acc, item) => {
|
|
12
|
+
if (item.Clasificador !== 'CT') {
|
|
13
|
+
let key = `${item.RubroId}_${item.Correlativo}`;
|
|
14
|
+
if (item.Clasificador !== 'H') {
|
|
15
|
+
key = `${item.RubroId}_${!item.UUID ? '0' : item.UUID}_${item.Correlativo}`;
|
|
16
|
+
}
|
|
17
|
+
if (!acc.has(key)) {
|
|
18
|
+
acc.set(key, Object.assign({}, item));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return acc;
|
|
22
|
+
}, new Map());
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
exports.getBalanceHashMap = getBalanceHashMap;
|
|
26
|
+
const trasponer = (data) => {
|
|
27
|
+
let result = data.reduce((acc, item) => {
|
|
28
|
+
const uuid = item.UUID != null ? item.UUID : '0';
|
|
29
|
+
const key = `${item.RubroId}_${uuid}`;
|
|
30
|
+
if (!acc.has(key)) {
|
|
31
|
+
acc.set(key, {
|
|
32
|
+
RubroId: item.RubroId,
|
|
33
|
+
RubroPadreId: item.RubroPadreId,
|
|
34
|
+
Descripcion: item.Descripcion,
|
|
35
|
+
IndicadorABM: item.IndicadorABM,
|
|
36
|
+
Clasificador: item.Clasificador,
|
|
37
|
+
Borrable: (item.Clasificador == 'HABM'),
|
|
38
|
+
Editable: item.Editable,
|
|
39
|
+
Secuencia: item.Secuencia,
|
|
40
|
+
UUID: item.UUID,
|
|
41
|
+
Rango: item.Rango,
|
|
42
|
+
});
|
|
43
|
+
for (let i = 1; i <= item.Rango; i++) {
|
|
44
|
+
acc.get(key)[`MontoEmpresa_${i}`] = 0;
|
|
45
|
+
acc.get(key)[`MontoFamiliar_${i}`] = 0;
|
|
46
|
+
acc.get(key)[`MontoTotal_${i}`] = 0;
|
|
47
|
+
acc.get(key)[`Fecha_${i}`] = null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
acc.get(key)[`MontoEmpresa_${item.Correlativo}`] = item.MontoEmpresa;
|
|
51
|
+
acc.get(key)[`MontoFamiliar_${item.Correlativo}`] = item.MontoFamiliar;
|
|
52
|
+
acc.get(key)[`MontoTotal_${item.Correlativo}`] = item.MontoTotal;
|
|
53
|
+
acc.get(key)[`Fecha_${item.Correlativo}`] = item.Fecha;
|
|
54
|
+
return acc;
|
|
55
|
+
}, new Map());
|
|
56
|
+
result = Array.from(result.values());
|
|
57
|
+
result = result.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
|
|
58
|
+
return result;
|
|
59
|
+
};
|
|
60
|
+
exports.trasponer = trasponer;
|
|
8
61
|
const calcularPorcentaje = (balance) => {
|
|
9
62
|
};
|
|
10
63
|
exports.calcularPorcentaje = calcularPorcentaje;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const anadirNuevoRubro: (muestra: any, balanceMap: any, values: any, descripcion: string) => void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.anadirNuevoRubro = void 0;
|
|
4
|
+
const anadirNuevoRubro = (muestra, balanceMap, values, descripcion) => {
|
|
5
|
+
for (let i = 1; i <= muestra.Rango; i++) {
|
|
6
|
+
let newData = Object.assign(Object.assign({}, muestra), { Descripcion: `${muestra.Descripcion} ${descripcion}`, Fecha: null, Correlativo: i, MontoFamiliar: 0, MontoEmpresa: 0, IndicadorABM: 'N', Editable: false, Clasificador: 'CT' });
|
|
7
|
+
if (i == muestra.Rango) {
|
|
8
|
+
if (values.MontoEmpresa && values.MontoEmpresa > 0)
|
|
9
|
+
newData.MontoEmpresa = values.MontoEmpresa;
|
|
10
|
+
if (values.MontoFamiliar && values.MontoFamiliar > 0)
|
|
11
|
+
newData.MontoFamiliar = values.MontoFamiliar;
|
|
12
|
+
}
|
|
13
|
+
balanceMap.set(`${muestra.RubroId}_${i}`, newData);
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.anadirNuevoRubro = anadirNuevoRubro;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const anadirDeclaracionJurada: (balanceMap: any, balanceArray: any, declaracionJurada: any) => void;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.anadirDeclaracionJurada = void 0;
|
|
4
|
+
const balanceAux_calc_1 = require("./balanceAux.calc");
|
|
5
|
+
const anadirDeclaracionJurada = (balanceMap, balanceArray, declaracionJurada) => {
|
|
6
|
+
const rango = balanceArray[0].Rango;
|
|
7
|
+
if (!declaracionJurada || declaracionJurada.length == 0)
|
|
8
|
+
throw new Error('Debe ingresar un Declaración Jurada válida');
|
|
9
|
+
const declaracionMap = declaracionJurada.reduce((acc, item) => {
|
|
10
|
+
acc.set(item.RubroId, item);
|
|
11
|
+
if (!acc.has('Total')) {
|
|
12
|
+
acc.set('Total', { TotalActivosE: 0, TotalPasivosE: 0, TotalActivosF: 0, TotalPasivosF: 0 });
|
|
13
|
+
}
|
|
14
|
+
if (item.TipoRubroId === 'ACTIVOS') {
|
|
15
|
+
acc.get('Total').TotalActivosE += parseFloat(item.MontoEmpresa);
|
|
16
|
+
acc.get('Total').TotalActivosF += parseFloat(item.MontoFamiliar);
|
|
17
|
+
}
|
|
18
|
+
if (item.TipoRubroId === 'PASIVOS') {
|
|
19
|
+
acc.get('Total').TotalPasivosE += parseFloat(item.MontoEmpresa);
|
|
20
|
+
acc.get('Total').TotalPasivosF += parseFloat(item.MontoFamiliar);
|
|
21
|
+
}
|
|
22
|
+
return acc;
|
|
23
|
+
}, new Map());
|
|
24
|
+
let referencia = [];
|
|
25
|
+
referencia.push(arrayValue(['SOL_ACT_001'], 'ACT_CN_11001'));
|
|
26
|
+
referencia.push(arrayValue(['SOL_ACT_002'], 'ACT_CN_11002'));
|
|
27
|
+
referencia.push(arrayValue(['SOL_ACT_011'], 'ACT_CN_11003'));
|
|
28
|
+
referencia.push(arrayValue(['SOL_ACT_003'], 'ACT_CN_12001'));
|
|
29
|
+
referencia.push(arrayValue(['SOL_ACT_005', 'SOL_ACT_007', 'SOL_ACT_008', 'SOL_ACT_009', 'SOL_ACT_010'], 'ACT_CN_12002'));
|
|
30
|
+
referencia.push(arrayValue(['SOL_ACT_004'], 'ACT_CN_12003'));
|
|
31
|
+
referencia.push(arrayValue(['SOL_ACT_006', 'SOL_ACT_012'], 'ACT_CN_12004'));
|
|
32
|
+
referencia.push(arrayValue(['SOL_PAS_001'], 'ACT_CN_21001'));
|
|
33
|
+
referencia.push(arrayValue(['SOL_PAS_002'], 'ACT_CN_21002'));
|
|
34
|
+
referencia.push(arrayValue(['SOL_PAS_003'], 'ACT_CN_22001'));
|
|
35
|
+
referencia.push(arrayValue(['SOL_PAS_004'], 'ACT_CN_22002'));
|
|
36
|
+
for (const item of referencia) {
|
|
37
|
+
const key = `${item.key}_${rango}`;
|
|
38
|
+
if (balanceMap.has(key)) {
|
|
39
|
+
if (balanceMap.get(key).MontoEmpresa == 0 || balanceMap.get(key).MontoFamiliar == 0) {
|
|
40
|
+
const values = getValuesFromDj(item.array, declaracionMap);
|
|
41
|
+
if (balanceMap.get(key).MontoEmpresa == 0)
|
|
42
|
+
balanceMap.get(key).MontoEmpresa = values.montoEmpresa;
|
|
43
|
+
if (balanceMap.get(key).MontoFamiliar == 0)
|
|
44
|
+
balanceMap.get(key).MontoFamiliar = values.montoFamiliar;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
const some = balanceArray.find((value) => value.RubroId === item.ley);
|
|
49
|
+
const values = getValuesFromDj(item.array, declaracionMap);
|
|
50
|
+
(0, balanceAux_calc_1.anadirNuevoRubro)(some, balanceMap, values, '(Declaración Jurada)');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const keyCapital = `ACT_CN_30001_${rango}`;
|
|
54
|
+
balanceMap.get(keyCapital).MontoEmpresa = declaracionMap.get('Total').TotalActivosE -
|
|
55
|
+
declaracionMap.get('Total').TotalPasivosE;
|
|
56
|
+
balanceMap.get(keyCapital).MontoFamiliar = declaracionMap.get('Total').TotalActivosF -
|
|
57
|
+
declaracionMap.get('Total').TotalPasivosF;
|
|
58
|
+
};
|
|
59
|
+
exports.anadirDeclaracionJurada = anadirDeclaracionJurada;
|
|
60
|
+
const arrayValue = (array, key) => {
|
|
61
|
+
return {
|
|
62
|
+
array: array,
|
|
63
|
+
key: key
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
const getValuesFromDj = (arrayDj, declaracionMap) => {
|
|
67
|
+
let montoFamiliar = 0;
|
|
68
|
+
let montoEmpresa = 0;
|
|
69
|
+
for (const djItem of arrayDj) {
|
|
70
|
+
montoEmpresa += parseFloat(declaracionMap.get(djItem).MontoEmpresa);
|
|
71
|
+
montoFamiliar += parseFloat(declaracionMap.get(djItem).MontoFamiliar);
|
|
72
|
+
}
|
|
73
|
+
return { montoFamiliar, montoEmpresa };
|
|
74
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const setFlujoInEERR: (data: any) => Promise<void>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.setFlujoInEERR = void 0;
|
|
13
|
+
const setFlujoInEERR = (data) => __awaiter(void 0, void 0, void 0, function* () {
|
|
14
|
+
if (data.flujoProyectado && data.flujoProyectado.FlujoProyectadoMensual
|
|
15
|
+
&& data.flujoProyectado.FlujoProyectadoMensual.length > 0) {
|
|
16
|
+
let gastosFinancierosEmp = data.flujoProyectado.FlujoProyectadoMensual.
|
|
17
|
+
filter((value) => value.RubroId == 'ACT_CNFL_61001').reduce((acc, item) => {
|
|
18
|
+
for (let i = 1; i <= 12; i++) {
|
|
19
|
+
acc += parseFloat(item[`Monto${i}`]);
|
|
20
|
+
}
|
|
21
|
+
return acc;
|
|
22
|
+
}, 0);
|
|
23
|
+
const rango = data.eerrMap.get('ACT_CN_43003_1').Rango;
|
|
24
|
+
data.eerrMap.get(`ACT_CN_43003_${rango}`).MontoEmpresa = gastosFinancierosEmp;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
exports.setFlujoInEERR = setFlujoInEERR;
|