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 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
- export { Context, Agricola, Pecuario, Produccion };
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,7 @@
1
+ import { Strategy } from "../../strategy.interface";
2
+ export default class BalanceAgrStrategy implements Strategy {
3
+ ventas: any;
4
+ costos: any;
5
+ constructor();
6
+ execute(data: any): any;
7
+ }
@@ -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,4 @@
1
+ import { Strategy } from "../strategy.interface";
2
+ export default class Balance implements Strategy {
3
+ execute(data: any): any;
4
+ }
@@ -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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.26",
3
+ "version": "1.0.28",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",