bdpformulas 1.0.26 → 1.0.28
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 +7 -1
- package/build/index.js +9 -2
- package/build/strategies/agriculture/balanceAgr.strategy.d.ts +7 -0
- package/build/strategies/agriculture/balanceAgr.strategy.js +35 -0
- package/build/strategies/balance.strategy.d.ts +4 -0
- package/build/strategies/balance.strategy.js +145 -0
- package/build/strategies/production/costos.strategy.js +1 -0
- package/package.json +1 -1
package/build/index.d.ts
CHANGED
|
@@ -6,6 +6,8 @@ import CostosPec from "./strategies/pecuary/costos.strategy";
|
|
|
6
6
|
import VentasPrd from "./strategies/production/ventas.strategy";
|
|
7
7
|
import CostosPrd from "./strategies/production/costos.strategy";
|
|
8
8
|
import CostosAgr from "./strategies/agriculture/costos.strategy";
|
|
9
|
+
import BalanceAgrStrategy from "./strategies/agriculture/balanceAgr.strategy";
|
|
10
|
+
import Balance from "./strategies/balance.strategy";
|
|
9
11
|
declare const Pecuario: {
|
|
10
12
|
Auxiliar: typeof Auxiliar;
|
|
11
13
|
Desarrollo: typeof Desarrollo;
|
|
@@ -18,5 +20,9 @@ declare const Produccion: {
|
|
|
18
20
|
};
|
|
19
21
|
declare const Agricola: {
|
|
20
22
|
CostosAgr: typeof CostosAgr;
|
|
23
|
+
BalanceAgrStrategy: typeof BalanceAgrStrategy;
|
|
21
24
|
};
|
|
22
|
-
|
|
25
|
+
declare const Actividades: {
|
|
26
|
+
Balance: typeof Balance;
|
|
27
|
+
};
|
|
28
|
+
export { Context, Agricola, Pecuario, Produccion, Actividades };
|
package/build/index.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Produccion = exports.Pecuario = exports.Agricola = exports.Context = void 0;
|
|
6
|
+
exports.Actividades = exports.Produccion = exports.Pecuario = exports.Agricola = exports.Context = void 0;
|
|
7
7
|
const anexo_strategy_1 = __importDefault(require("./strategies/pecuary/anexo.strategy"));
|
|
8
8
|
const desarrollo_strategy_1 = __importDefault(require("./strategies/pecuary/desarrollo.strategy"));
|
|
9
9
|
const ventas_strategy_1 = __importDefault(require("./strategies/pecuary/ventas.strategy"));
|
|
@@ -13,6 +13,8 @@ const costos_strategy_1 = __importDefault(require("./strategies/pecuary/costos.s
|
|
|
13
13
|
const ventas_strategy_2 = __importDefault(require("./strategies/production/ventas.strategy"));
|
|
14
14
|
const costos_strategy_2 = __importDefault(require("./strategies/production/costos.strategy"));
|
|
15
15
|
const costos_strategy_3 = __importDefault(require("./strategies/agriculture/costos.strategy"));
|
|
16
|
+
const balanceAgr_strategy_1 = __importDefault(require("./strategies/agriculture/balanceAgr.strategy"));
|
|
17
|
+
const balance_strategy_1 = __importDefault(require("./strategies/balance.strategy"));
|
|
16
18
|
const Pecuario = {
|
|
17
19
|
Auxiliar: anexo_strategy_1.default,
|
|
18
20
|
Desarrollo: desarrollo_strategy_1.default,
|
|
@@ -26,6 +28,11 @@ const Produccion = {
|
|
|
26
28
|
};
|
|
27
29
|
exports.Produccion = Produccion;
|
|
28
30
|
const Agricola = {
|
|
29
|
-
CostosAgr: costos_strategy_3.default
|
|
31
|
+
CostosAgr: costos_strategy_3.default,
|
|
32
|
+
BalanceAgrStrategy: balanceAgr_strategy_1.default
|
|
30
33
|
};
|
|
31
34
|
exports.Agricola = Agricola;
|
|
35
|
+
const Actividades = {
|
|
36
|
+
Balance: balance_strategy_1.default
|
|
37
|
+
};
|
|
38
|
+
exports.Actividades = Actividades;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class BalanceAgrStrategy {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.ventas = {};
|
|
6
|
+
this.costos = {};
|
|
7
|
+
}
|
|
8
|
+
execute(data) {
|
|
9
|
+
data.eerr = calcularEERR(data.eerr, this.ventas, this.costos);
|
|
10
|
+
return data;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = BalanceAgrStrategy;
|
|
14
|
+
const calcularEERR = (eerr, ventas, costos) => {
|
|
15
|
+
return eerr;
|
|
16
|
+
};
|
|
17
|
+
//
|
|
18
|
+
// const getVentasXGestion = (ventas: any) => {
|
|
19
|
+
//
|
|
20
|
+
// const ingresosTotales = ventas.Productos.map((item:any)=>item.Ingresos).flat().
|
|
21
|
+
// filter((item:any)=>item.RubroId==='ACT_AGR_ING_TO')
|
|
22
|
+
//
|
|
23
|
+
// let result = ingresosTotales.reduce((acc:any, item:any) => {
|
|
24
|
+
// const rango = item.Rango
|
|
25
|
+
// for(let i=1; i<=rango;i++){
|
|
26
|
+
// if(!acc.has(i)){
|
|
27
|
+
// acc.set(i,{value:0})
|
|
28
|
+
// }
|
|
29
|
+
// acc.get(i).value += item[`Gestion${i}`]
|
|
30
|
+
// }
|
|
31
|
+
// return acc
|
|
32
|
+
// },new Map())
|
|
33
|
+
//
|
|
34
|
+
// return Array.from(result.values())
|
|
35
|
+
// }
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
class Balance {
|
|
4
|
+
execute(data) {
|
|
5
|
+
let result = {};
|
|
6
|
+
if (data.strategy != null)
|
|
7
|
+
data = data.strategy.execute(data);
|
|
8
|
+
result.balance = calcularBalance(data.balance);
|
|
9
|
+
result.eerr = calcularEERR(data.eerr);
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.default = Balance;
|
|
14
|
+
const calcularBalance = (balance) => {
|
|
15
|
+
let i = 0;
|
|
16
|
+
let result = balance.map((item) => {
|
|
17
|
+
i++;
|
|
18
|
+
return Object.assign(Object.assign({}, item), { MontoEmpresa: parseFloat(item.MontoEmpresa), MontoFamiliar: parseFloat(item.MontoFamiliar), MontoTotal: parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar), IdVirtual: i });
|
|
19
|
+
});
|
|
20
|
+
result = sumarizarCuenta(['ACT_CN_11000', 'ACT_CN_12000',
|
|
21
|
+
'ACT_CN_21000', 'ACT_CN_22000', 'ACT_CN_30000'], result);
|
|
22
|
+
result = sumarizarCuenta(['ACT_CN_10000', 'ACT_CN_20000'], result);
|
|
23
|
+
result = adicionarCuenta('ACT_CN_11000', 'ACT_CN_11900', result);
|
|
24
|
+
result = adicionarCuenta('ACT_CN_12000', 'ACT_CN_12900', result);
|
|
25
|
+
result = adicionarCuenta('ACT_CN_10000', 'ACT_CN_19000', result);
|
|
26
|
+
result = adicionarCuenta('ACT_CN_21000', 'ACT_CN_21900', result);
|
|
27
|
+
result = adicionarCuenta('ACT_CN_22000', 'ACT_CN_22900', result);
|
|
28
|
+
result = adicionarCuenta('ACT_CN_20000', 'ACT_CN_29000', result);
|
|
29
|
+
result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39000', result);
|
|
30
|
+
result = adicionarCuenta('ACT_CN_20000', 'ACT_CN_39900', result);
|
|
31
|
+
result = adicionarCuenta('ACT_CN_30000', 'ACT_CN_39900', result);
|
|
32
|
+
result = trasponer(result);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
const calcularEERR = (eerr) => {
|
|
36
|
+
let i = 0;
|
|
37
|
+
let result = eerr.map((item) => {
|
|
38
|
+
i++;
|
|
39
|
+
return Object.assign(Object.assign({}, item), { MontoEmpresa: parseFloat(item.MontoEmpresa), MontoFamiliar: parseFloat(item.MontoFamiliar), MontoTotal: parseFloat(item.MontoEmpresa) + parseFloat(item.MontoFamiliar), IdVirtual: i });
|
|
40
|
+
});
|
|
41
|
+
//Ingresos
|
|
42
|
+
result = sumarizarCuenta(['ACT_CN_40000'], result);
|
|
43
|
+
result = adicionarCuenta('ACT_CN_40000', 'ACT_CN_40003', result);
|
|
44
|
+
//Costos
|
|
45
|
+
result = adicionarCuenta('ACT_CN_41002', 'ACT_CN_41000', result);
|
|
46
|
+
result = adicionarCuenta('ACT_CN_41003', 'ACT_CN_41000', result);
|
|
47
|
+
//Total costos
|
|
48
|
+
result = adicionarCuenta('ACT_CN_41000', 'ACT_CN_41004', result);
|
|
49
|
+
//Utilidad bruta
|
|
50
|
+
result = adicionarCuenta('ACT_CN_40000', 'ACT_CN_42000', result);
|
|
51
|
+
result = adicionarCuenta('ACT_CN_41000', 'ACT_CN_42000', result, true);
|
|
52
|
+
//Gastos
|
|
53
|
+
result = adicionarCuenta('ACT_CN_43003', 'ACT_CN_43000', result);
|
|
54
|
+
result = adicionarCuenta('ACT_CN_43002', 'ACT_CN_43000', result);
|
|
55
|
+
result = adicionarCuenta('ACT_CN_43004', 'ACT_CN_43000', result);
|
|
56
|
+
//Total gastos
|
|
57
|
+
result = adicionarCuenta('ACT_CN_43000', 'ACT_CN_43900', result);
|
|
58
|
+
//Utilidad operativa
|
|
59
|
+
result = adicionarCuenta('ACT_CN_42000', 'ACT_CN_44000', result);
|
|
60
|
+
result = adicionarCuenta('ACT_CN_43000', 'ACT_CN_44000', result, true);
|
|
61
|
+
//Otros Ingresos Egresos
|
|
62
|
+
result = adicionarCuenta('ACT_CN_45001', 'ACT_CN_45000', result);
|
|
63
|
+
result = adicionarCuenta('ACT_CN_45002', 'ACT_CN_45000', result, true);
|
|
64
|
+
result = adicionarCuenta('ACT_CN_45003', 'ACT_CN_45000', result, true);
|
|
65
|
+
result = adicionarCuenta('ACT_CN_45000', 'ACT_CN_45900', result);
|
|
66
|
+
//Utilidad antes de impuestos
|
|
67
|
+
result = adicionarCuenta('ACT_CN_44000', 'ACT_CN_46000', result);
|
|
68
|
+
result = adicionarCuenta('ACT_CN_45000', 'ACT_CN_46000', result);
|
|
69
|
+
//Utilidad neta
|
|
70
|
+
result = adicionarCuenta('ACT_CN_46000', 'ACT_CN_47000', result);
|
|
71
|
+
result = adicionarCuenta('ACT_CN_46001', 'ACT_CN_47000', result, true);
|
|
72
|
+
result = trasponer(result);
|
|
73
|
+
return result;
|
|
74
|
+
};
|
|
75
|
+
const adicionarCuenta = (origen, destino, datos, isNegative = false) => {
|
|
76
|
+
const origenVector = datos.filter((item) => item.RubroId == origen).reduce((acc, valor) => {
|
|
77
|
+
if (!acc.has(valor.Correlativo))
|
|
78
|
+
acc.set(valor.Correlativo, valor);
|
|
79
|
+
return acc;
|
|
80
|
+
}, new Map());
|
|
81
|
+
let destinoVector = datos.filter((item) => item.RubroId == destino);
|
|
82
|
+
destinoVector.forEach((item) => {
|
|
83
|
+
if (isNegative) {
|
|
84
|
+
item.MontoEmpresa -= origenVector.get(item.Correlativo).MontoEmpresa;
|
|
85
|
+
item.MontoFamiliar -= origenVector.get(item.Correlativo).MontoFamiliar;
|
|
86
|
+
item.MontoTotal -= origenVector.get(item.Correlativo).MontoEmpresa;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
item.MontoEmpresa += origenVector.get(item.Correlativo).MontoEmpresa;
|
|
90
|
+
item.MontoFamiliar += origenVector.get(item.Correlativo).MontoFamiliar;
|
|
91
|
+
item.MontoTotal += origenVector.get(item.Correlativo).MontoEmpresa;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
return datos;
|
|
95
|
+
};
|
|
96
|
+
const sumarizarCuenta = (rubros, datos) => {
|
|
97
|
+
let filtrados = datos.filter((item) => rubros.includes(item.RubroPadreId));
|
|
98
|
+
let grupos = datos.filter((item) => rubros.includes(item.RubroId));
|
|
99
|
+
const suma = filtrados.reduce((acc, item) => {
|
|
100
|
+
const key = `${item.RubroPadreId}_${item.Correlativo}`;
|
|
101
|
+
if (!acc.has(key)) {
|
|
102
|
+
acc.set(key, {
|
|
103
|
+
MontoEmpresa: 0,
|
|
104
|
+
MontoFamiliar: 0,
|
|
105
|
+
MontoTotal: 0
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
acc.get(key).MontoEmpresa += item.MontoEmpresa;
|
|
109
|
+
acc.get(key).MontoFamiliar += item.MontoFamiliar;
|
|
110
|
+
acc.get(key).MontoTotal += item.MontoTotal;
|
|
111
|
+
return acc;
|
|
112
|
+
}, new Map());
|
|
113
|
+
grupos.forEach((item) => {
|
|
114
|
+
const key = `${item.RubroId}_${item.Correlativo}`;
|
|
115
|
+
const value = suma.get(key);
|
|
116
|
+
if (value) {
|
|
117
|
+
item.MontoEmpresa = value.MontoEmpresa;
|
|
118
|
+
item.MontoFamiliar = value.MontoFamiliar;
|
|
119
|
+
item.MontoTotal = value.MontoTotal;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return datos;
|
|
123
|
+
};
|
|
124
|
+
//@ts-ignore
|
|
125
|
+
const trasponer = (data) => {
|
|
126
|
+
let result = data.reduce((acc, item) => {
|
|
127
|
+
const uuid = item.UUID != null ? item.UUID : '0';
|
|
128
|
+
const key = `${item.RubroId}_${uuid}`;
|
|
129
|
+
if (!acc.has(key))
|
|
130
|
+
acc.set(key, {
|
|
131
|
+
RubroId: item.RubroId,
|
|
132
|
+
RubroPadreId: item.RubroPadreId,
|
|
133
|
+
Descripcion: item.Descripcion,
|
|
134
|
+
IndicadorABM: item.IndicadorABM,
|
|
135
|
+
Editable: item.Editable,
|
|
136
|
+
});
|
|
137
|
+
acc.get(key)[`UUID_${item.Correlativo}`] = item.UUID;
|
|
138
|
+
acc.get(key)[`MontoEmpresa_${item.Correlativo}`] = item.MontoEmpresa;
|
|
139
|
+
acc.get(key)[`MontoFamiliar_${item.Correlativo}`] = item.MontoFamiliar;
|
|
140
|
+
acc.get(key)[`MontoTotal_${item.Correlativo}`] = item.MontoTotal;
|
|
141
|
+
acc.get(key)[`Fecha_${item.Correlativo}`] = item.Fecha;
|
|
142
|
+
return acc;
|
|
143
|
+
}, new Map());
|
|
144
|
+
return Array.from(result.values());
|
|
145
|
+
};
|
|
@@ -30,6 +30,7 @@ class CostosPrd {
|
|
|
30
30
|
execute(data) {
|
|
31
31
|
let result = {};
|
|
32
32
|
result.CantidadesProducidas = costosCalc.getValuePivote(data.Ventas);
|
|
33
|
+
console.log('0.1');
|
|
33
34
|
result.Costos = costosCalc.calcular(data.Costos.Costos);
|
|
34
35
|
result.Meses = mesesCalc.calcularMeses(result.Costos, data.Costos.Productos);
|
|
35
36
|
return result;
|