bdpformulas 1.0.45 → 1.0.47

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
@@ -12,9 +12,13 @@ import BalancePecStrategy from "./strategies/pecuary/balancePec.strategy";
12
12
  import FlujoProyectadoPecStrategy from "./strategies/pecuary/flujoProyPec.strategy";
13
13
  import BalancePrdStrategy from "./strategies/production/balancePrd.strategy";
14
14
  import FlujoProyectadoPrdStrategy from "./strategies/production/flujoProyPrd.strategy";
15
+ import BalanceEEFFStrategy from "./strategies/eeff/balanceEEFF.strategy";
16
+ import FlujoProyectadoEEFFStrategy from "./strategies/eeff/flujoProyEEFF.strategy";
15
17
  import Balance from "./strategies/balance.strategy";
16
18
  import FlujoProyectado from "./strategies/flujoProyectado.strategy";
17
19
  import AnalisisFinancieros from "./strategies/analisisFinancieros.strategy";
20
+ import BalanceGeneralStrategy from "./strategies/general/balanceGeneral.strategy";
21
+ import FlujoProyectadoGeneralStrategy from "./strategies/general/flujoProyGeneral.strategy";
18
22
  declare const Pecuario: {
19
23
  Auxiliar: typeof Auxiliar;
20
24
  Desarrollo: typeof Desarrollo;
@@ -34,9 +38,17 @@ declare const Agricola: {
34
38
  BalanceAgrStrategy: typeof BalanceAgrStrategy;
35
39
  FlujoProyectadoAgrStrategy: typeof FlujoProyectadoAgrStrategy;
36
40
  };
41
+ declare const EEFF: {
42
+ BalanceEEFFStrategy: typeof BalanceEEFFStrategy;
43
+ FlujoProyectadoEEFFStrategy: typeof FlujoProyectadoEEFFStrategy;
44
+ };
45
+ declare const General: {
46
+ BalanceGeneralStrategy: typeof BalanceGeneralStrategy;
47
+ FlujoProyectadoGeneralStrategy: typeof FlujoProyectadoGeneralStrategy;
48
+ };
37
49
  declare const Actividades: {
38
50
  Balance: typeof Balance;
39
51
  FlujoProyectado: typeof FlujoProyectado;
40
52
  AnalisisFinancieros: typeof AnalisisFinancieros;
41
53
  };
42
- export { Context, Agricola, Pecuario, Produccion, Actividades };
54
+ export { Context, Agricola, Pecuario, Produccion, EEFF, Actividades, General };
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.Actividades = exports.Produccion = exports.Pecuario = exports.Agricola = exports.Context = void 0;
6
+ exports.General = exports.Actividades = exports.EEFF = 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"));
@@ -19,9 +19,13 @@ const balancePec_strategy_1 = __importDefault(require("./strategies/pecuary/bala
19
19
  const flujoProyPec_strategy_1 = __importDefault(require("./strategies/pecuary/flujoProyPec.strategy"));
20
20
  const balancePrd_strategy_1 = __importDefault(require("./strategies/production/balancePrd.strategy"));
21
21
  const flujoProyPrd_strategy_1 = __importDefault(require("./strategies/production/flujoProyPrd.strategy"));
22
+ const balanceEEFF_strategy_1 = __importDefault(require("./strategies/eeff/balanceEEFF.strategy"));
23
+ const flujoProyEEFF_strategy_1 = __importDefault(require("./strategies/eeff/flujoProyEEFF.strategy"));
22
24
  const balance_strategy_1 = __importDefault(require("./strategies/balance.strategy"));
23
25
  const flujoProyectado_strategy_1 = __importDefault(require("./strategies/flujoProyectado.strategy"));
24
26
  const analisisFinancieros_strategy_1 = __importDefault(require("./strategies/analisisFinancieros.strategy"));
27
+ const balanceGeneral_strategy_1 = __importDefault(require("./strategies/general/balanceGeneral.strategy"));
28
+ const flujoProyGeneral_strategy_1 = __importDefault(require("./strategies/general/flujoProyGeneral.strategy"));
25
29
  const Pecuario = {
26
30
  Auxiliar: anexo_strategy_1.default,
27
31
  Desarrollo: desarrollo_strategy_1.default,
@@ -44,6 +48,16 @@ const Agricola = {
44
48
  FlujoProyectadoAgrStrategy: flujoProyAgr_strategy_1.default
45
49
  };
46
50
  exports.Agricola = Agricola;
51
+ const EEFF = {
52
+ BalanceEEFFStrategy: balanceEEFF_strategy_1.default,
53
+ FlujoProyectadoEEFFStrategy: flujoProyEEFF_strategy_1.default
54
+ };
55
+ exports.EEFF = EEFF;
56
+ const General = {
57
+ BalanceGeneralStrategy: balanceGeneral_strategy_1.default,
58
+ FlujoProyectadoGeneralStrategy: flujoProyGeneral_strategy_1.default
59
+ };
60
+ exports.General = General;
47
61
  const Actividades = {
48
62
  Balance: balance_strategy_1.default,
49
63
  FlujoProyectado: flujoProyectado_strategy_1.default,
@@ -66,14 +66,15 @@ const setValueInOtros = (rubroKey, eerrMap, eerr, values, descripcion) => {
66
66
  const muestra = eerr.find((item) => item.RubroId === rubroKey);
67
67
  if (!muestra)
68
68
  throw new Error(`No existe el rubro ${rubroKey}`);
69
- if (!eerrMap.has(rubroKey)) {
69
+ if (!eerrMap.has(`${rubroKey}_${muestra.Rango}`)) {
70
70
  (0, balanceAux_calc_1.anadirNuevoRubro)(muestra, eerrMap, values, descripcion);
71
71
  }
72
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;
73
+ let column = eerrMap.get(`${rubroKey}_${muestra.Rango}`);
74
+ if (values.MontoEmpresa && values.MontoEmpresa > 0 && column.MontoEmpresa == 0)
75
+ column.MontoEmpresa = values.MontoEmpresa;
76
+ if (values.MontoFamiliar && values.MontoFamiliar > 0 && column.MontoFamiliar == 0)
77
+ column.MontoFamiliar = values.MontoFamiliar;
77
78
  }
78
79
  };
79
80
  //@ts-ignore
@@ -35,6 +35,7 @@ class Balance {
35
35
  let balanceMap = balanceCalc.getBalanceHashMap(data.balance);
36
36
  let eerrMap = balanceCalc.getBalanceHashMap(data.eerr);
37
37
  (0, declaracionJurada_calc_1.anadirDeclaracionJurada)(balanceMap, data.balance, data.declaracionJurada.Balance);
38
+ data.balanceMap = balanceMap;
38
39
  data.eerrMap = eerrMap;
39
40
  (0, flujoAux_calc_1.setFlujoInEERR)(data);
40
41
  if (data.strategy != null)
@@ -9,7 +9,7 @@ class FlujoConstructor {
9
9
  this.proyectarCosto();
10
10
  this.proyectarGasto();
11
11
  this.agregarQuitarClones();
12
- //this.moverDetalledesdeMensual()
12
+ // this.moverDetalledesdeMensual()
13
13
  this.calcularTotalDetalle(['ACT_CNFL_73000'], 'ACT_CNFL_73900');
14
14
  this.calcularTotalDetalle(['ACT_CNFL_61001'], 'ACT_CNFL_61900');
15
15
  this.calcularOtrosIngresosAnuales();
@@ -165,7 +165,7 @@ class FlujoConstructor {
165
165
  RubroId: item.RubroId,
166
166
  RubroPadreId: item.RubroPadreId,
167
167
  Descripcion: item.Descripcion,
168
- UUID: item.UUID,
168
+ UUID: `CLONE_${item.UUID}`,
169
169
  Clasificador: item.Clasificador,
170
170
  Entidad: item.Entidad,
171
171
  Operacion: item.Operacion,
@@ -0,0 +1,6 @@
1
+ import { Strategy } from "../../strategy.interface";
2
+ export default class BalanceEEFFStrategy implements Strategy {
3
+ actividades: any[];
4
+ constructor();
5
+ execute(data: any): any;
6
+ }
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class BalanceEEFFStrategy {
4
+ constructor() {
5
+ this.actividades = [];
6
+ }
7
+ execute(data) {
8
+ if (!this.actividades || this.actividades.length == 0)
9
+ return data;
10
+ //Quitamos estos rubros
11
+ data.errr = data.eerr.filter((item) => item.RubroId != 'ACT_CN_41001');
12
+ data.errr = data.eerr.filter((item) => item.RubroId != 'ACT_CN_43001');
13
+ for (let actividad of this.actividades) {
14
+ anadirGrupoBalance(actividad, ['ACT_EF_11001'], actividad.Balance, 'ACT_CN_11001', data.balance, data.balanceMap);
15
+ anadirGrupoBalance(actividad, ['ACT_EF_11002', 'ACT_EF_11003'], actividad.Balance, 'ACT_CN_11002', data.balance, data.balanceMap);
16
+ anadirGrupoBalance(actividad, ['ACT_EF_11004'], actividad.Balance, 'ACT_CN_11003', data.balance, data.balanceMap);
17
+ anadirGrupoBalance(actividad, ['ACT_EF_11005', 'ACT_EF_11006',
18
+ 'ACT_EF_11008', 'ACT_EF_11009',
19
+ 'ACT_EF_11010', 'ACT_EF_11011'], actividad.Balance, 'ACT_CN_11004', data.balance, data.balanceMap, true);
20
+ anadirGrupoBalance(actividad, ['ACT_EF_12005', 'ACT_EF_12006'], actividad.Balance, 'ACT_CN_12001', data.balance, data.balanceMap);
21
+ anadirGrupoBalance(actividad, ['ACT_EF_12001', 'ACT_EF_12002', 'ACT_EF_12007'], actividad.Balance, 'ACT_CN_12002', data.balance, data.balanceMap);
22
+ anadirGrupoBalance(actividad, ['ACT_EF_12003', 'ACT_EF_12009'], actividad.Balance, 'ACT_CN_12004', data.balance, data.balanceMap);
23
+ anadirGrupoBalance(actividad, ['ACT_EF_12004', 'ACT_EF_12008',
24
+ 'ACT_EF_12010', 'ACT_EF_12011', 'ACT_EF_12012'], actividad.Balance, 'ACT_CN_12005', data.balance, data.balanceMap, true);
25
+ anadirGrupoBalance(actividad, ['ACT_EF_21001', 'ACT_EF_21002',
26
+ 'ACT_EF_21003', 'ACT_EF_21004', 'ACT_EF_21008'], actividad.Balance, 'ACT_CN_21001', data.balance, data.balanceMap);
27
+ anadirGrupoBalance(actividad, ['ACT_EF_21005', 'ACT_EF_21006', 'ACT_EF_21007', 'ACT_EF_21009'], actividad.Balance, 'ACT_CN_21002', data.balance, data.balanceMap);
28
+ anadirGrupoBalance(actividad, ['ACT_EF_21010', 'ACT_EF_21011', 'ACT_EF_21012'], actividad.Balance, 'ACT_CN_21003', data.balance, data.balanceMap, true);
29
+ anadirGrupoBalance(actividad, ['ACT_EF_22001',
30
+ 'ACT_EF_22002',
31
+ 'ACT_EF_22003'], actividad.Balance, 'ACT_CN_22001', data.balance, data.balanceMap);
32
+ anadirGrupoBalance(actividad, ['ACT_EF_22004', 'ACT_EF_22005',
33
+ 'ACT_EF_22006', 'ACT_EF_22007'], actividad.Balance, 'ACT_CN_22002', data.balance, data.balanceMap);
34
+ anadirGrupoBalance(actividad, ['ACT_EF_22008', 'ACT_EF_22009', 'ACT_EF_22010'], actividad.Balance, 'ACT_CN_22003', data.balance, data.balanceMap, true);
35
+ anadirGrupoBalance(actividad, ['ACT_EF_31001', 'ACT_EF_31002'], actividad.Balance, 'ACT_CN_30001', data.balance, data.balanceMap);
36
+ anadirGrupoBalance(actividad, ['ACT_EF_31003', 'ACT_EF_31004',
37
+ 'ACT_EF_31005', 'ACT_EF_31006', 'ACT_EF_31007'], actividad.Balance, 'ACT_CN_30002', data.balance, data.balanceMap, true);
38
+ anadirGrupoBalance(actividad, ['ACT_EF_41000'], actividad.EERR, 'ACT_CN_40001', data.eerr, data.eerrMap);
39
+ anadirGrupoBalance(actividad, ['ACT_EF_42001'], actividad.EERR, 'ACT_CN_41002', data.eerr, data.eerrMap);
40
+ anadirGrupoBalance(actividad, ['ACT_EF_43001', 'ACT_EF_43002'], actividad.EERR, 'ACT_CN_43002', data.eerr, data.eerrMap);
41
+ anadirGrupoBalance(actividad, ['ACT_EF_44001', 'ACT_EF_44002'], actividad.EERR, 'ACT_CN_43003', data.eerr, data.eerrMap);
42
+ anadirGrupoBalance(actividad, ['ACT_EF_44004', 'ACT_EF_44007'], actividad.EERR, 'ACT_CN_43004', data.eerr, data.eerrMap, true);
43
+ anadirGrupoBalance(actividad, ['ACT_EF_44003', 'ACT_EF_44005', 'ACT_EF_44006'], actividad.EERR, 'ACT_CN_45001', data.eerr, data.eerrMap, true);
44
+ anadirGrupoBalance(actividad, ['ACT_EF_45001'], actividad.EERR, 'ACT_CN_46001', data.eerr, data.eerrMap);
45
+ }
46
+ sumarizarCuentas('ACT_CN_11001', data, data.balanceMap);
47
+ sumarizarCuentas('ACT_CN_11002', data, data.balanceMap);
48
+ sumarizarCuentas('ACT_CN_11003', data, data.balanceMap);
49
+ sumarizarCuentas('ACT_CN_12001', data, data.balanceMap);
50
+ sumarizarCuentas('ACT_CN_12002', data, data.balanceMap);
51
+ sumarizarCuentas('ACT_CN_12004', data, data.balanceMap);
52
+ sumarizarCuentas('ACT_CN_21001', data, data.balanceMap);
53
+ sumarizarCuentas('ACT_CN_21002', data, data.balanceMap);
54
+ sumarizarCuentas('ACT_CN_22001', data, data.balanceMap);
55
+ sumarizarCuentas('ACT_CN_22002', data, data.balanceMap);
56
+ sumarizarCuentas('ACT_CN_30001', data, data.balanceMap);
57
+ sumarizarCuentas('ACT_CN_40001', data, data.eerrMap);
58
+ sumarizarCuentas('ACT_CN_41002', data, data.eerrMap);
59
+ sumarizarCuentas('ACT_CN_43002', data, data.eerrMap);
60
+ sumarizarCuentas('ACT_CN_43003', data, data.eerrMap);
61
+ sumarizarCuentas('ACT_CN_46001', data, data.eerrMap);
62
+ return data;
63
+ }
64
+ }
65
+ exports.default = BalanceEEFFStrategy;
66
+ const anadirGrupoBalance = (actividad, rubros, grupoActividad, rubroDestino, data, map, esDetalle = false) => {
67
+ const rango = data[0].Rango;
68
+ if (!rubroDestino)
69
+ throw new Error(`No existe el rubro Calculado ${rubroDestino} en el objeto`);
70
+ const sumado = grupoActividad.filter((item) => rubros.includes(item.RubroId))
71
+ .reduce((acc, item) => {
72
+ if (!acc)
73
+ acc = item;
74
+ else {
75
+ for (let i = 1; i <= rango; i++) {
76
+ acc[`Gestion${i}`] += parseFloat(acc[`Gestion${i}`]) + parseFloat(item[`Gestion${i}`]);
77
+ acc[`Gestion${i}`] = Math.round(acc[`Gestion${i}`] * 100) / 100;
78
+ }
79
+ }
80
+ return acc;
81
+ }, null);
82
+ for (let i = 1; i <= rango; i++) {
83
+ const cuenta = data.find((item) => item.RubroId == rubroDestino);
84
+ let copy = Object.assign({}, cuenta);
85
+ copy.RubroId = (esDetalle ? `${rubroDestino}` : `${rubroDestino}.1`);
86
+ copy.Descripcion = `${cuenta.Descripcion} ${actividad.ActividadEconomicaId} ${actividad.Descripcion}`;
87
+ copy.UUID = `${rubroDestino}_${actividad.ActividadEconomicaId}_${i}`;
88
+ copy.MontoEmpresa = 0;
89
+ copy.MontoFamiliar = 0;
90
+ copy.Correlativo = i;
91
+ copy.Clasificador = 'CT';
92
+ copy.MontoEmpresa = Math.round(parseFloat(sumado[`Gestion${i}`]) * 100) / 100;
93
+ data.push(copy);
94
+ }
95
+ };
96
+ const sumarizarCuentas = (rubro, data, map) => {
97
+ const dataOriginal = getCuentasCopy(data, rubro, map);
98
+ const rango = data.eerr[0].Rango;
99
+ for (let i = 1; i <= rango; i++) {
100
+ let cuentaOrigen = data.eerr.find((item) => item.RubroId == rubro && item.Correlativo == i);
101
+ if (!cuentaOrigen) {
102
+ cuentaOrigen = data.balance.find((item) => item.RubroId == rubro && item.Correlativo == i);
103
+ if (!cuentaOrigen)
104
+ throw new Error(`No existe el rubro Calculado ${rubro}_${i} en el EERR`);
105
+ }
106
+ const original = dataOriginal.get(`${rubro}_${i}`);
107
+ if (original.MontoEmpresa == 0 || original.MontoFamiliar == 0) {
108
+ const cuentaDestino = map.get(`${rubro}_${i}`);
109
+ if (original.MontoEmpresa == 0)
110
+ cuentaDestino.MontoEmpresa += cuentaOrigen.MontoEmpresa;
111
+ if (original.MontoFamiliar == 0)
112
+ cuentaDestino.MontoFamiliar += cuentaOrigen.MontoFamiliar;
113
+ cuentaDestino.MontoEmpresa = Math.round(cuentaDestino.MontoEmpresa * 100) / 100;
114
+ cuentaDestino.MontoFamiliar = Math.round(cuentaDestino.MontoFamiliar * 100) / 100;
115
+ }
116
+ }
117
+ };
118
+ const getCuentasCopy = (data, rubroId, map) => {
119
+ if (!data.eerr || data.eerr.length == 0)
120
+ throw new Error('Debe ingresar cuentas EERR');
121
+ let originalData = new Map();
122
+ const rango = data.eerr[0].Rango;
123
+ for (let i = 1; i <= rango; i++) {
124
+ let cuentaIngreso = map.get(`${rubroId}_${i}`);
125
+ cuentaIngreso.MontoEmpresa = Math.round(parseFloat(cuentaIngreso.MontoEmpresa) * 100) / 100;
126
+ cuentaIngreso.MontoFamiliar = Math.round(parseFloat(cuentaIngreso.MontoFamiliar) * 100) / 100;
127
+ originalData.set(`${rubroId}_${i}`, Object.assign({}, cuentaIngreso));
128
+ }
129
+ return originalData;
130
+ };
@@ -0,0 +1,6 @@
1
+ import { Strategy } from "../../strategy.interface";
2
+ export default class FlujoProyectadoEEFFStrategy implements Strategy {
3
+ actividades: any[];
4
+ constructor();
5
+ execute(data: any): any;
6
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class FlujoProyectadoEEFFStrategy {
4
+ constructor() {
5
+ this.actividades = [];
6
+ }
7
+ execute(data) {
8
+ if (!this.actividades || this.actividades.length == 0)
9
+ return data;
10
+ for (let actividad of this.actividades) {
11
+ agregarGrupo(['BP_ACT_EF_41000'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_40001', data);
12
+ agregarGrupo(['BP_ACT_EF_42001'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_50001', data);
13
+ agregarGrupo(['BP_ACT_EF_43001'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_60001', data);
14
+ agregarGrupo(['BP_ACT_EF_43002'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_60002', data);
15
+ agregarGrupo(['BP_ACT_EF_44001', 'BP_ACT_EF_44002'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_61001', data);
16
+ agregarGrupo(['BP_ACT_EF_44002.1', 'BP_ACT_EF_44003', 'BP_ACT_EF_44005', 'BP_ACT_EF_44006'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_70001', data);
17
+ agregarGrupo(['BP_ACT_EF_44005.1', 'BP_ACT_EF_44004', 'BP_ACT_EF_44007'], actividad, actividad.BalanceProyectado.EERR, 'ACT_CNFL_70002', data);
18
+ agregarGrupo(['BP_ACT_FJ_10501', 'BP_ACT_FJ_10502', 'BP_ACT_FJ_10505'], actividad, actividad.BalanceProyectado.FlujoCaja, 'ACT_CNFL_80001', data);
19
+ agregarGrupo(['BP_ACT_FJ_10504', 'BP_ACT_FJ_10506', 'BP_ACT_FJ_10507'], actividad, actividad.BalanceProyectado.FlujoCaja, 'ACT_CNFL_80002', data);
20
+ }
21
+ sumarizarCuenta('ACT_CNFL_40001', data);
22
+ sumarizarCuenta('ACT_CNFL_50001', data);
23
+ sumarizarCuenta('ACT_CNFL_60001', data);
24
+ sumarizarCuenta('ACT_CNFL_70001', data);
25
+ sumarizarCuenta('ACT_CNFL_70002', data);
26
+ sumarizarCuenta('ACT_CNFL_80001', data);
27
+ sumarizarCuenta('ACT_CNFL_80002', data);
28
+ return data;
29
+ }
30
+ }
31
+ exports.default = FlujoProyectadoEEFFStrategy;
32
+ const agregarGrupo = (rubros, actividad, grupoActividad, rubroDestino, data) => {
33
+ const rango = data.DatosEvaluacion.CantidadProyeccion;
34
+ if (!rango)
35
+ throw new Error('No existe el rango en la evaluacion');
36
+ const sumado = grupoActividad.filter((item) => rubros.includes(item.RubroId))
37
+ .reduce((acc, item) => {
38
+ if (!acc) {
39
+ acc = item;
40
+ for (let i = 1; i <= rango; i++) {
41
+ if (!acc[`Gestion${i}`])
42
+ acc[`Gestion${i}`] = 0;
43
+ }
44
+ }
45
+ else {
46
+ for (let i = 1; i <= rango; i++) {
47
+ if (!item[`Gestion${i}`])
48
+ item[`Gestion${i}`] = 0;
49
+ acc[`Gestion${i}`] += parseFloat(acc[`Gestion${i}`]) + parseFloat(item[`Gestion${i}`]);
50
+ acc[`Gestion${i}`] = Math.round(acc[`Gestion${i}`] * 100) / 100;
51
+ }
52
+ }
53
+ return acc;
54
+ }, null);
55
+ const rubro = data.FlujoProyectadoAnual[0];
56
+ let row = Object.assign({}, rubro);
57
+ row.RubroId = rubroDestino;
58
+ row.Clasificador = 'CT';
59
+ row.Descripcion = `Actividad: ${actividad.Descripcion}`;
60
+ row.Editable = false;
61
+ row.UUID = `${rubroDestino}_${actividad.ActividadEconomicaId}`;
62
+ row.RubroId = `${rubroDestino}.1`;
63
+ for (let i = 1; i <= rango; i++) {
64
+ row[`Monto${i}`] = Math.round(parseFloat(sumado[`Gestion${i}`]) * 100) / 100;
65
+ }
66
+ data.FlujoProyectadoAnual.push(row);
67
+ };
68
+ const sumarizarCuenta = (rubroId, data) => {
69
+ const rango = data.DatosEvaluacion.CantidadProyeccion;
70
+ const copia = getCuentaCopy(rubroId, data);
71
+ const cuenta = data.FlujoProyectadoAnualMap.get(`${rubroId}_0`);
72
+ const detalles = data.FlujoProyectadoAnual.filter((item) => item.RubroId == `${rubroId}.1`);
73
+ for (let detalle of detalles) {
74
+ for (let i = 1; i <= rango; i++) {
75
+ if (!copia || copia[`Monto${i}`] == 0)
76
+ cuenta[`Monto${i}`] += parseFloat(detalle[`Monto${i}`]);
77
+ }
78
+ }
79
+ };
80
+ const getCuentaCopy = (rubroId, data) => {
81
+ const cuenta = data.FlujoProyectadoAnualMap.get(`${rubroId}_0`);
82
+ return Object.assign({}, cuenta);
83
+ };
@@ -38,8 +38,8 @@ class FlujoProyectado {
38
38
  result = data;
39
39
  const cloneFlujoProyectadoMensual = commmon.clone(data.FlujoProyectadoMensual);
40
40
  const cloneFlujoProyectadoAnual = commmon.clone(data.FlujoProyectadoAnual);
41
- data.FlujoProyectadoMensual = data.FlujoProyectadoMensual.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
42
- data.FlujoProyectadoAnual = data.FlujoProyectadoAnual.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
41
+ // data.FlujoProyectadoMensual = data.FlujoProyectadoMensual.sort((a: any, b: any) => a.RubroId.localeCompare(b.RubroId));
42
+ // data.FlujoProyectadoAnual = data.FlujoProyectadoAnual.sort((a: any, b: any) => a.RubroId.localeCompare(b.RubroId));
43
43
  data.FlujoProyectadoMensualMap = (0, flujoProyectado_calc_1.getFlujoMap)(data.FlujoProyectadoMensual, 12);
44
44
  data.FlujoProyectadoAnualMap = (0, flujoProyectado_calc_1.getFlujoMap)(data.FlujoProyectadoAnual, data.DatosEvaluacion.CantidadProyeccion);
45
45
  if (data.strategy != null)
@@ -51,10 +51,14 @@ class FlujoProyectado {
51
51
  result.HistoricoGrafico = (0, flujoProyectado_calc_1.getHistoricoFlujoCaja)(data);
52
52
  delete result.FlujoProyectadoMensualMap;
53
53
  delete result.FlujoProyectadoAnualMap;
54
+ data.FlujoProyectadoMensual = data.FlujoProyectadoMensual.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
55
+ data.FlujoProyectadoAnual = data.FlujoProyectadoAnual.sort((a, b) => a.RubroId.localeCompare(b.RubroId));
54
56
  result.DataOriginal = {
55
57
  FlujoProyectadoMensual: cloneFlujoProyectadoMensual,
56
58
  FlujoProyectadoAnual: cloneFlujoProyectadoAnual
57
59
  };
60
+ if (result.TipoConsolidado == 'EEFF' || result.TipoConsolidado == 'GENERAL')
61
+ delete result.FlujoProyectadoMensual;
58
62
  delete result.strategy;
59
63
  return result;
60
64
  }
@@ -0,0 +1,6 @@
1
+ import { Strategy } from "../../strategy.interface";
2
+ export default class BalanceGeneralStrategy implements Strategy {
3
+ actividades: any;
4
+ constructor();
5
+ execute(data: any): any;
6
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class BalanceGeneralStrategy {
4
+ constructor() {
5
+ this.actividades = {};
6
+ }
7
+ execute(data) {
8
+ if (!this.actividades || !this.actividades.Consolidados ||
9
+ this.actividades.Consolidados.length == 0)
10
+ return data;
11
+ for (let consolidado of this.actividades.Consolidados) {
12
+ procesarConsolidado(consolidado.BalanceCalc.balance, data.balance, consolidado.Tipo);
13
+ procesarConsolidado(consolidado.BalanceCalc.eerr, data.eerr, consolidado.Tipo);
14
+ }
15
+ sumarizarCuenta(this.actividades.Consolidados[0].BalanceCalc.balance, data.balance, data.balanceMap);
16
+ sumarizarCuenta(this.actividades.Consolidados[0].BalanceCalc.eerr, data.eerr, data.eerrMap);
17
+ return data;
18
+ }
19
+ }
20
+ exports.default = BalanceGeneralStrategy;
21
+ const procesarConsolidado = (consolidado, data, tipoConsolidado) => {
22
+ const rubros = consolidado.filter((item) => item.Clasificador == 'H' || item.Clasificador == 'HABM');
23
+ if (rubros.length > 0) {
24
+ const rango = rubros[0].Rango;
25
+ for (const rubro of rubros) {
26
+ for (let i = 1; i <= rango; i++) {
27
+ const cuenta = data.find((item) => item.RubroId == rubro.RubroId);
28
+ let copy = Object.assign({}, cuenta);
29
+ copy.RubroId = (rubro.Clasificador == 'HABM' ? `${rubro.RubroId}` : `${rubro.RubroId}.1`);
30
+ copy.Descripcion = `${cuenta.Descripcion} - Consolidado ${tipoConsolidado} `;
31
+ copy.UUID = `${rubro.RubroId}_${tipoConsolidado}_${i}`;
32
+ copy.MontoEmpresa = 0;
33
+ copy.MontoFamiliar = 0;
34
+ copy.Correlativo = i;
35
+ copy.Clasificador = 'CT';
36
+ copy.MontoEmpresa = Math.round(parseFloat(rubro[`MontoEmpresa_${i}`]) * 100) / 100;
37
+ copy.MontoFamiliar = Math.round(parseFloat(rubro[`MontoFamiliar_${i}`]) * 100) / 100;
38
+ data.push(copy);
39
+ }
40
+ }
41
+ }
42
+ };
43
+ const sumarizarCuenta = (consolidado, data, map) => {
44
+ const rubros = consolidado.filter((item) => item.Clasificador == 'H');
45
+ for (const rubro of rubros) {
46
+ sumarizarCuentas(rubro.RubroId, data, map);
47
+ }
48
+ };
49
+ const sumarizarCuentas = (rubro, data, map) => {
50
+ const rango = data[0].Rango;
51
+ for (let i = 1; i <= rango; i++) {
52
+ let cuentaOrigen = data.find((item) => item.RubroId == rubro && item.Correlativo == i);
53
+ const cuentaDestino = map.get(`${rubro}_${i}`);
54
+ cuentaDestino.MontoEmpresa += cuentaOrigen.MontoEmpresa;
55
+ cuentaDestino.MontoFamiliar += cuentaOrigen.MontoFamiliar;
56
+ cuentaDestino.MontoEmpresa = Math.round(cuentaDestino.MontoEmpresa * 100) / 100;
57
+ cuentaDestino.MontoFamiliar = Math.round(cuentaDestino.MontoFamiliar * 100) / 100;
58
+ }
59
+ };
@@ -0,0 +1,6 @@
1
+ import { Strategy } from "../../strategy.interface";
2
+ export default class FlujoProyectadoBalanceStrategy implements Strategy {
3
+ actividades: any;
4
+ constructor();
5
+ execute(data: any): any;
6
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class FlujoProyectadoBalanceStrategy {
4
+ constructor() {
5
+ this.actividades = {};
6
+ }
7
+ execute(data) {
8
+ if (!this.actividades || !this.actividades.Consolidados || this.actividades.Consolidados.length == 0)
9
+ return data;
10
+ for (let consolidado of this.actividades.Consolidados) {
11
+ procesarAnual(consolidado.FlujoCalc.FlujoProyectadoAnual, data, consolidado.Tipo);
12
+ }
13
+ sumarizarCuenta(this.actividades.Consolidados[0].FlujoCalc.FlujoProyectadoAnual, data);
14
+ return data;
15
+ }
16
+ }
17
+ exports.default = FlujoProyectadoBalanceStrategy;
18
+ const procesarAnual = (consolidado, data, tipoConsolidado) => {
19
+ const rubros = consolidado.filter((item) => ['HM', 'HABM', 'DETL'].includes(item.Clasificador));
20
+ const rango = data.DatosEvaluacion.CantidadProyeccion;
21
+ if (rubros.length == 0) {
22
+ for (const rubroItem of rubros) {
23
+ const rubro = data.FlujoProyectadoAnual[0];
24
+ let row = Object.assign({}, rubro);
25
+ row.Clasificador = 'CT';
26
+ row.Descripcion = `${rubroItem.Descripcion} - ${tipoConsolidado}`;
27
+ row.Editable = false;
28
+ row.UUID = `${rubro.RubroId}_${tipoConsolidado}`;
29
+ row.RubroId = (rubro.Clasificador == 'HABM' || rubro.Clasificador == 'DETL' ? `${rubro.RubroId}` : `${rubro.RubroId}.1`);
30
+ for (let i = 1; i <= rango; i++) {
31
+ row[`Monto${i}`] = Math.round(parseFloat(rubro[`Monto${i}`]) * 100) / 100;
32
+ }
33
+ data.FlujoProyectadoAnual.push(row);
34
+ }
35
+ }
36
+ };
37
+ const sumarizarCuenta = (consolidado, data) => {
38
+ const rubros = consolidado.filter((item) => ['HM'].includes(item.Clasificador));
39
+ for (const rubroItem of rubros) {
40
+ sumarizarCuentas(rubroItem.RubroId, data);
41
+ }
42
+ };
43
+ const sumarizarCuentas = (rubroId, data) => {
44
+ const rango = data.DatosEvaluacion.CantidadProyeccion;
45
+ const cuenta = data.FlujoProyectadoAnualMap.get(`${rubroId}_0`);
46
+ const detalles = data.FlujoProyectadoAnual.filter((item) => item.RubroId == `${rubroId}.1`);
47
+ for (let detalle of detalles) {
48
+ for (let i = 1; i <= rango; i++) {
49
+ cuenta[`Monto${i}`] += parseFloat(detalle[`Monto${i}`]);
50
+ }
51
+ }
52
+ };
@@ -39,7 +39,6 @@ const getCuentasCopy = (data, rubroId) => {
39
39
  cuentaIngreso.MontoFamiliar = Math.round(parseFloat(cuentaIngreso.MontoFamiliar) * 100) / 100;
40
40
  originalData.set(`${rubroId}_${i}`, Object.assign({}, cuentaIngreso));
41
41
  }
42
- //console.log('originalData '+rubroId,Array.from(originalData.keys()) )
43
42
  return originalData;
44
43
  };
45
44
  const anadirIngresosAuxPec = (actividad, data) => {
@@ -45,7 +45,6 @@ const getCuentasCopy = (data, rubroId) => {
45
45
  cuentaIngreso.MontoFamiliar = Math.round(parseFloat(cuentaIngreso.MontoFamiliar) * 100) / 100;
46
46
  originalData.set(`${rubroId}_${i}`, Object.assign({}, cuentaIngreso));
47
47
  }
48
- //console.log('originalData '+rubroId,Array.from(originalData.keys()) )
49
48
  return originalData;
50
49
  };
51
50
  const anadirIngreso = (actividad, data) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.45",
3
+ "version": "1.0.47",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",