bdpformulas 1.0.71 → 1.0.73

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.
@@ -0,0 +1,40 @@
1
+ export declare enum EEFFConsolidadoRubroEnum {
2
+ Padre = "ACT_CN_00000",
3
+ Activo = "ACT_CN_10000",
4
+ ActivoCorriente = "ACT_CN_11000",
5
+ OtrosActivoCorriente = "ACT_CN_11004",
6
+ TotalActivoCorriente = "ACT_CN_11900",
7
+ ActivoNoCorriente = "ACT_CN_12000",
8
+ OtrosActivoNoCorriente = "ACT_CN_12005",
9
+ TotalActivoNoCorriente = "ACT_CN_12900",
10
+ TotalActivo = "ACT_CN_19000",
11
+ Pasivo = "ACT_CN_20000",
12
+ PasivoCorriente = "ACT_CN_21000",
13
+ OtrosPasivoCorriente = "ACT_CN_21003",
14
+ TotalPasivoCorriente = "ACT_CN_21900",
15
+ PasivoNoCorriente = "ACT_CN_22000",
16
+ OtrosPasivoNoCorriente = "ACT_CN_22003",
17
+ TotalPasivoNoCorriente = "ACT_CN_22900",
18
+ TotalPasivo = "ACT_CN_29000",
19
+ Patrimonio = "ACT_CN_30000",
20
+ OtrosPatrimonio = "ACT_CN_30002",
21
+ TotalPatrimonio = "ACT_CN_39000",
22
+ TotalPasivoPatrimonio = "ACT_CN_39900",
23
+ Ingresos = "ACT_CN_40000",
24
+ OtrosIngresos = "ACT_CN_40002",
25
+ TotalIngresos = "ACT_CN_40003",
26
+ Costos = "ACT_CN_41000",
27
+ OtrosCostos = "ACT_CN_41003",
28
+ TotalCostos = "ACT_CN_41004",
29
+ Gastos = "ACT_CN_43000",
30
+ OtrosGastos = "ACT_CN_43004",
31
+ TotalGastosOperativos = "ACT_CN_43900",
32
+ OtrosIngresosEgresos = "ACT_CN_45000",
33
+ OtrosOtrosIngresosEgresos = "ACT_CN_45001D",
34
+ TotalOtrosIngresosEgresos = "ACT_CN_45900",
35
+ UtilidadBruta = "ACT_CN_42000",
36
+ UtilidadOperacional = "ACT_CN_44000",
37
+ UtilidadAntesImpuestos = "ACT_CN_46000",
38
+ ImpuestoUtilidades = "ACT_CN_46001",
39
+ UtilidadNetaEjercicio = "ACT_CN_47000"
40
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EEFFConsolidadoRubroEnum = void 0;
4
+ var EEFFConsolidadoRubroEnum;
5
+ (function (EEFFConsolidadoRubroEnum) {
6
+ EEFFConsolidadoRubroEnum["Padre"] = "ACT_CN_00000";
7
+ EEFFConsolidadoRubroEnum["Activo"] = "ACT_CN_10000";
8
+ EEFFConsolidadoRubroEnum["ActivoCorriente"] = "ACT_CN_11000";
9
+ EEFFConsolidadoRubroEnum["OtrosActivoCorriente"] = "ACT_CN_11004";
10
+ EEFFConsolidadoRubroEnum["TotalActivoCorriente"] = "ACT_CN_11900";
11
+ EEFFConsolidadoRubroEnum["ActivoNoCorriente"] = "ACT_CN_12000";
12
+ EEFFConsolidadoRubroEnum["OtrosActivoNoCorriente"] = "ACT_CN_12005";
13
+ EEFFConsolidadoRubroEnum["TotalActivoNoCorriente"] = "ACT_CN_12900";
14
+ EEFFConsolidadoRubroEnum["TotalActivo"] = "ACT_CN_19000";
15
+ EEFFConsolidadoRubroEnum["Pasivo"] = "ACT_CN_20000";
16
+ EEFFConsolidadoRubroEnum["PasivoCorriente"] = "ACT_CN_21000";
17
+ EEFFConsolidadoRubroEnum["OtrosPasivoCorriente"] = "ACT_CN_21003";
18
+ EEFFConsolidadoRubroEnum["TotalPasivoCorriente"] = "ACT_CN_21900";
19
+ EEFFConsolidadoRubroEnum["PasivoNoCorriente"] = "ACT_CN_22000";
20
+ EEFFConsolidadoRubroEnum["OtrosPasivoNoCorriente"] = "ACT_CN_22003";
21
+ EEFFConsolidadoRubroEnum["TotalPasivoNoCorriente"] = "ACT_CN_22900";
22
+ EEFFConsolidadoRubroEnum["TotalPasivo"] = "ACT_CN_29000";
23
+ EEFFConsolidadoRubroEnum["Patrimonio"] = "ACT_CN_30000";
24
+ EEFFConsolidadoRubroEnum["OtrosPatrimonio"] = "ACT_CN_30002";
25
+ EEFFConsolidadoRubroEnum["TotalPatrimonio"] = "ACT_CN_39000";
26
+ EEFFConsolidadoRubroEnum["TotalPasivoPatrimonio"] = "ACT_CN_39900";
27
+ //eerr
28
+ EEFFConsolidadoRubroEnum["Ingresos"] = "ACT_CN_40000";
29
+ EEFFConsolidadoRubroEnum["OtrosIngresos"] = "ACT_CN_40002";
30
+ EEFFConsolidadoRubroEnum["TotalIngresos"] = "ACT_CN_40003";
31
+ EEFFConsolidadoRubroEnum["Costos"] = "ACT_CN_41000";
32
+ EEFFConsolidadoRubroEnum["OtrosCostos"] = "ACT_CN_41003";
33
+ EEFFConsolidadoRubroEnum["TotalCostos"] = "ACT_CN_41004";
34
+ EEFFConsolidadoRubroEnum["Gastos"] = "ACT_CN_43000";
35
+ EEFFConsolidadoRubroEnum["OtrosGastos"] = "ACT_CN_43004";
36
+ EEFFConsolidadoRubroEnum["TotalGastosOperativos"] = "ACT_CN_43900";
37
+ EEFFConsolidadoRubroEnum["OtrosIngresosEgresos"] = "ACT_CN_45000";
38
+ EEFFConsolidadoRubroEnum["OtrosOtrosIngresosEgresos"] = "ACT_CN_45001D";
39
+ EEFFConsolidadoRubroEnum["TotalOtrosIngresosEgresos"] = "ACT_CN_45900";
40
+ EEFFConsolidadoRubroEnum["UtilidadBruta"] = "ACT_CN_42000";
41
+ EEFFConsolidadoRubroEnum["UtilidadOperacional"] = "ACT_CN_44000";
42
+ EEFFConsolidadoRubroEnum["UtilidadAntesImpuestos"] = "ACT_CN_46000";
43
+ EEFFConsolidadoRubroEnum["ImpuestoUtilidades"] = "ACT_CN_46001";
44
+ EEFFConsolidadoRubroEnum["UtilidadNetaEjercicio"] = "ACT_CN_47000";
45
+ })(EEFFConsolidadoRubroEnum || (exports.EEFFConsolidadoRubroEnum = EEFFConsolidadoRubroEnum = {}));
@@ -29,6 +29,7 @@ const declaracionJurada_calc_1 = require("./common/declaracionJurada.calc");
29
29
  //import { setFlujoInEERR } from './common/balanceCalculos/flujoAux.calc'
30
30
  const utils_1 = require("./eeff/admFinanciera/utils");
31
31
  const utils_2 = require("./utils");
32
+ const analisisHorizontal_1 = require("./eeff/balanceConsolidado/analisisHorizontal");
32
33
  class Balance {
33
34
  camposCalculadosDefinidos;
34
35
  constructor() {
@@ -156,6 +157,10 @@ class Balance {
156
157
  data.eerr = Array.from(eerrMap.values());
157
158
  result.balance = calcularBalance(data.balance, data.cantidadGestiones);
158
159
  result.eerr = calcularEERR(data.eerr, data.cantidadGestiones, data.tipoConsolidado);
160
+ (0, analisisHorizontal_1.calcularPorcentajesYAnalisisHorizontal)({
161
+ data: result,
162
+ cantidadGestiones: data.cantidadGestiones
163
+ });
159
164
  result.DataOriginal = {
160
165
  balance: balanceClone,
161
166
  eerr: eerrClone
@@ -259,13 +259,9 @@ class FlujoConstructor {
259
259
  }
260
260
  };
261
261
  agregarQuitarClones = () => {
262
- const borrados = this.data.FlujoProyectadoMensual.filter((item) => item.IndicadorABM === 'B' &&
263
- (item.Clasificador == 'DETL' || item.Clasificador == 'HABM')).map((item) => { return `CLONE_${item.UUID}`; });
264
- this.data.FlujoProyectadoMensual = this.data.FlujoProyectadoMensual.filter((item) => item.IndicadorABM !== 'B');
265
- this.array = this.array.filter((item) => !borrados.includes(item.UUID));
266
- this.data.FlujoProyectadoAnual = this.data.FlujoProyectadoAnual.filter((item) => !borrados.includes(item.UUID));
267
- const filter = this.data.FlujoProyectadoMensual.filter((item) => (item.Clasificador == 'DETL' || item.Clasificador == 'HABM'));
268
- filter.map((item) => {
262
+ const filter = this.data.FlujoProyectadoMensual.filter((item) => item.IndicadorABM !== 'B' &&
263
+ (item.Clasificador == 'DETL' || item.Clasificador == 'HABM'));
264
+ filter.forEach((item) => {
269
265
  const key = `${item.RubroId}_CLONE_${item.UUID}`;
270
266
  const UUID = `CLONE_${item.UUID}`;
271
267
  const clone = {
@@ -280,9 +276,6 @@ class FlujoConstructor {
280
276
  clone['Monto1'] = total;
281
277
  item.MontoTotal = total;
282
278
  if (!this.mapObject.has(key)) {
283
- for (let i = 1; i <= this.rango; i++) {
284
- clone[`Monto${i}`] = 0;
285
- }
286
279
  this.array.push(clone);
287
280
  }
288
281
  else {
@@ -290,8 +283,14 @@ class FlujoConstructor {
290
283
  if (index >= 0)
291
284
  this.array[index] = clone;
292
285
  }
293
- this.mapObject.set(`${item.RubroId}_CLONE_${item.UUID}`, clone);
286
+ this.mapObject.set(key, clone);
294
287
  });
288
+ const borrados = this.data.FlujoProyectadoMensual.filter((item) => item.IndicadorABM === 'B' &&
289
+ (item.Clasificador == 'DETL' || item.Clasificador == 'HABM')).map((item) => `CLONE_${item.UUID}`);
290
+ this.data.FlujoProyectadoMensual =
291
+ this.data.FlujoProyectadoMensual.filter((item) => item.IndicadorABM !== 'B');
292
+ this.array = this.array.filter((item) => !borrados.includes(item.UUID));
293
+ this.data.FlujoProyectadoAnual = this.data.FlujoProyectadoAnual.filter((item) => !borrados.includes(item.UUID));
295
294
  const anuales = this.array.filter((item) => item.Clasificador == 'DETL' || item.Clasificador == 'HABM');
296
295
  for (const anualItem of anuales) {
297
296
  const key = `${anualItem.RubroId}_${anualItem.UUID}`.replace('_CLONE', '');
@@ -0,0 +1,6 @@
1
+ interface Params {
2
+ data: any;
3
+ cantidadGestiones: number;
4
+ }
5
+ export declare function calcularPorcentajesYAnalisisHorizontal({ data, cantidadGestiones }: Params): void;
6
+ export {};
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcularPorcentajesYAnalisisHorizontal = void 0;
4
+ const balance_1 = require("../../../models/consolidado/balance");
5
+ const utils_1 = require("../admFinanciera/utils");
6
+ function calcularPorcentajesYAnalisisHorizontal({ data, cantidadGestiones }) {
7
+ const allData = [...data.balance, ...data.eerr];
8
+ allData.forEach((row) => {
9
+ for (let i = 1; i <= cantidadGestiones; i++) {
10
+ calcularAnalisisHorizontalGestion(row, i);
11
+ calcularPorcentajeGestion(allData, row, i);
12
+ }
13
+ });
14
+ }
15
+ exports.calcularPorcentajesYAnalisisHorizontal = calcularPorcentajesYAnalisisHorizontal;
16
+ function calcularAnalisisHorizontalGestion(row, gestion) {
17
+ if (gestion > 1) {
18
+ const montoTotalActual = (0, utils_1.ourParseFloat)(row[`MontoTotal_${gestion}`]);
19
+ const montoTotalAnterior = (0, utils_1.ourParseFloat)(row[`MontoTotal_${gestion - 1}`]);
20
+ let valor = 0;
21
+ if (montoTotalAnterior) {
22
+ valor = Math.round((montoTotalActual / montoTotalAnterior - 1) * 100);
23
+ }
24
+ row[`AnalisisHorizontal_${gestion}`] = {
25
+ valor,
26
+ tipo: 'EQUAL'
27
+ };
28
+ }
29
+ }
30
+ function calcularPorcentajeGestion(data, row, gestion) {
31
+ if (['H', 'HABM', 'C'].includes(row.Clasificador)) {
32
+ const rubroIdValorPadre = getRubroIdValorPadre(row.RubroPadreId, row.RubroId);
33
+ const valorPadre = (0, utils_1.ourParseFloat)(data.find((el) => el.RubroId === rubroIdValorPadre)?.[`MontoTotal_${gestion}`]);
34
+ if (valorPadre) {
35
+ row[`Porcentaje_${gestion}`] = Math.round(((0, utils_1.ourParseFloat)(row[`MontoTotal_${gestion}`]) / valorPadre) * 100);
36
+ }
37
+ }
38
+ }
39
+ const RUBROS_VALOR_PADRE = {
40
+ //balance
41
+ [balance_1.EEFFConsolidadoRubroEnum.ActivoCorriente]: balance_1.EEFFConsolidadoRubroEnum.TotalActivo,
42
+ [balance_1.EEFFConsolidadoRubroEnum.ActivoNoCorriente]: balance_1.EEFFConsolidadoRubroEnum.TotalActivo,
43
+ [balance_1.EEFFConsolidadoRubroEnum.PasivoCorriente]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
44
+ [balance_1.EEFFConsolidadoRubroEnum.PasivoNoCorriente]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
45
+ [balance_1.EEFFConsolidadoRubroEnum.Patrimonio]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
46
+ [balance_1.EEFFConsolidadoRubroEnum.TotalActivo]: balance_1.EEFFConsolidadoRubroEnum.TotalActivo,
47
+ [balance_1.EEFFConsolidadoRubroEnum.TotalPasivo]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
48
+ [balance_1.EEFFConsolidadoRubroEnum.TotalPatrimonio]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
49
+ [balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio]: balance_1.EEFFConsolidadoRubroEnum.TotalPasivoPatrimonio,
50
+ //eerr
51
+ [balance_1.EEFFConsolidadoRubroEnum.TotalIngresos]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
52
+ [balance_1.EEFFConsolidadoRubroEnum.TotalCostos]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
53
+ [balance_1.EEFFConsolidadoRubroEnum.UtilidadBruta]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
54
+ [balance_1.EEFFConsolidadoRubroEnum.TotalGastosOperativos]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
55
+ [balance_1.EEFFConsolidadoRubroEnum.UtilidadOperacional]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
56
+ [balance_1.EEFFConsolidadoRubroEnum.TotalOtrosIngresosEgresos]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
57
+ [balance_1.EEFFConsolidadoRubroEnum.UtilidadAntesImpuestos]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos,
58
+ [balance_1.EEFFConsolidadoRubroEnum.UtilidadNetaEjercicio]: balance_1.EEFFConsolidadoRubroEnum.TotalIngresos
59
+ };
60
+ function getRubroIdValorPadre(rubroPadreId, rubroId) {
61
+ return RUBROS_VALOR_PADRE[rubroPadreId] ?? RUBROS_VALOR_PADRE[rubroId];
62
+ }
@@ -41,7 +41,7 @@ class DeudasStrategy {
41
41
  let destino = this.data.Deudas.find((item) => item.RubroId == params.rubro2);
42
42
  this.data.Deudas.filter((item) => item.RubroId == params.rubro1).reduce((sum, item) => {
43
43
  if (!sum)
44
- sum = item;
44
+ sum = { ...item };
45
45
  else {
46
46
  for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
47
47
  sum[`Monto${i}`] = this.cleanNumber(sum[`Monto${i}`]) + this.cleanNumber(item[`Monto${i}`]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bdpformulas",
3
- "version": "1.0.71",
3
+ "version": "1.0.73",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",