bdpformulas 1.0.48 → 1.0.50

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.
Files changed (50) hide show
  1. package/build/context.js +1 -0
  2. package/build/index.d.ts +2 -0
  3. package/build/index.js +3 -1
  4. package/build/models/eeff/admFinanciera/index.d.ts +144 -0
  5. package/build/models/eeff/admFinanciera/index.js +26 -0
  6. package/build/strategies/agriculture/balanceAgr.strategy.js +1 -0
  7. package/build/strategies/agriculture/costos.detail/costosCalc.js +1 -1
  8. package/build/strategies/agriculture/flujoProyAgr.strategy.js +3 -2
  9. package/build/strategies/agriculture/ventas.detail/ventas.calc.js +2 -1
  10. package/build/strategies/analisisFinancieros.strategy.js +20 -22
  11. package/build/strategies/balance.strategy.js +14 -2
  12. package/build/strategies/common/analisisFinCalculos/analisisGrafico.calc.js +47 -45
  13. package/build/strategies/common/analisisFinCalculos/ratios.calc.js +158 -157
  14. package/build/strategies/common/balance.calc.js +3 -1
  15. package/build/strategies/common/balanceCalculos/balanceAux.calc.js +11 -1
  16. package/build/strategies/common/balanceCalculos/flujoAux.calc.js +2 -11
  17. package/build/strategies/common/flujoCalculos/flujoConstructor.js +313 -308
  18. package/build/strategies/eeff/admFinanciera/amortizaciones.d.ts +8 -0
  19. package/build/strategies/eeff/admFinanciera/amortizaciones.js +31 -0
  20. package/build/strategies/eeff/admFinanciera/aplicacionesHandler.d.ts +16 -0
  21. package/build/strategies/eeff/admFinanciera/aplicacionesHandler.js +175 -0
  22. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.d.ts +7 -0
  23. package/build/strategies/eeff/admFinanciera/lineasMixtasHandler.js +40 -0
  24. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.d.ts +13 -0
  25. package/build/strategies/eeff/admFinanciera/prestamoBajoLineaHandler.js +75 -0
  26. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.d.ts +26 -0
  27. package/build/strategies/eeff/admFinanciera/prestamoDirectoHandler.js +267 -0
  28. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.d.ts +20 -0
  29. package/build/strategies/eeff/admFinanciera/prestamoLeasingHandler.js +162 -0
  30. package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.d.ts +27 -0
  31. package/build/strategies/eeff/admFinanciera/proyeccionPrestamosDirectosHandler.js +219 -0
  32. package/build/strategies/eeff/admFinanciera/utils.d.ts +96 -0
  33. package/build/strategies/eeff/admFinanciera/utils.js +209 -0
  34. package/build/strategies/eeff/admFinanciera.strategy.d.ts +14 -0
  35. package/build/strategies/eeff/admFinanciera.strategy.js +139 -0
  36. package/build/strategies/eeff/balanceEEFF.strategy.js +3 -2
  37. package/build/strategies/eeff/flujoProyEEFF.strategy.js +3 -2
  38. package/build/strategies/general/balanceGeneral.strategy.js +2 -1
  39. package/build/strategies/general/flujoProyGeneral.strategy.js +2 -1
  40. package/build/strategies/pecuary/balancePec.strategy.js +7 -6
  41. package/build/strategies/pecuary/desarrollo.detail/desarrolloCalc.js +11 -3
  42. package/build/strategies/pecuary/desarrollo.strategy.js +2 -2
  43. package/build/strategies/pecuary/flujoProyPec.strategy.js +7 -6
  44. package/build/strategies/pecuary/ventas.detail/estacionalidadCalc.js +7 -1
  45. package/build/strategies/pecuary/ventas.detail/ventasIngresosCalc.js +7 -1
  46. package/build/strategies/production/balancePrd.strategy.js +7 -6
  47. package/build/strategies/production/costos.detail/costosCalc.js +1 -1
  48. package/build/strategies/production/flujoProyPrd.strategy.js +7 -6
  49. package/package.json +26 -21
  50. package/tsconfig.json +1 -1
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcularPagoInteresEntre = exports.calcularPagoPrincipalEntre = exports.generatePlazos = exports.sumCorrelativeKeys = exports.getColumnSum = exports.calcularTasaInteres = exports.ourParseFloat = exports.calcularPorcionCorrientePagada = exports.simuladorCuotas = exports.frecuenciaMeses = void 0;
4
+ const luxon_1 = require("luxon");
5
+ exports.frecuenciaMeses = {
6
+ MENSUAL: 1,
7
+ BIMENSUAL: 2,
8
+ TRIMESTRAL: 3,
9
+ CUATRIMESTRAL: 4,
10
+ SEMESTRAL: 6,
11
+ ANUAL: 12,
12
+ };
13
+ function simuladorCuotas({ monto, plazo, frecuencia, tipoCuota, periodoGracia = 0, tasaInteres = 0, polizaSD = 0, plazoMeses = false }) {
14
+ const mesesPorFrecuencia = exports.frecuenciaMeses[frecuencia];
15
+ const plazoEnMeses = !plazoMeses ? plazo * 12 : plazo;
16
+ const cuotasTotales = Math.ceil(plazoEnMeses / mesesPorFrecuencia);
17
+ const tasaPorPeriodo = tasaInteres / (12 / mesesPorFrecuencia) / 100;
18
+ let saldoCapital = monto;
19
+ const cuotas = [];
20
+ const pagosAnuales = [];
21
+ let capitalAnual = 0;
22
+ let interesAnual = 0;
23
+ let cuotaAnual = 0;
24
+ let anioActual = 1;
25
+ // Calcular cuota fija si aplica
26
+ const cuotaFija = tipoCuota === "FIJA"
27
+ ? (monto * tasaPorPeriodo) / (1 - Math.pow(1 + tasaPorPeriodo, -cuotasTotales))
28
+ : 0;
29
+ for (let i = 1; i <= cuotasTotales; i++) {
30
+ let amortizacion = 0;
31
+ let interes = 0;
32
+ let cuotaCredito = 0;
33
+ let tiempoDias = mesesPorFrecuencia * 30; // Aproximado.
34
+ if (i > Math.ceil(periodoGracia / mesesPorFrecuencia)) {
35
+ interes = saldoCapital * tasaPorPeriodo;
36
+ if (tipoCuota === "FIJA") {
37
+ cuotaCredito = cuotaFija;
38
+ amortizacion = cuotaCredito - interes;
39
+ }
40
+ else {
41
+ amortizacion = monto / (cuotasTotales - Math.ceil(periodoGracia / mesesPorFrecuencia));
42
+ cuotaCredito = amortizacion + interes;
43
+ }
44
+ }
45
+ const cuotaTotal = cuotaCredito + polizaSD;
46
+ cuotas.push({
47
+ nroCuota: i,
48
+ amortizacion,
49
+ interes,
50
+ cuotaCredito,
51
+ poliza: polizaSD,
52
+ cuotaTotal,
53
+ saldoCapital,
54
+ tiempoDias,
55
+ });
56
+ saldoCapital -= amortizacion;
57
+ // Acumular valores anuales
58
+ capitalAnual += amortizacion;
59
+ interesAnual += interes;
60
+ cuotaAnual += cuotaTotal;
61
+ const mesActual = i * mesesPorFrecuencia;
62
+ if (mesActual % 12 === 0 || i === cuotasTotales) {
63
+ pagosAnuales.push({
64
+ anio: anioActual,
65
+ capitalAnual,
66
+ interesAnual,
67
+ cuotaAnual,
68
+ });
69
+ anioActual++;
70
+ capitalAnual = 0;
71
+ interesAnual = 0;
72
+ cuotaAnual = 0;
73
+ }
74
+ }
75
+ return { simulador: cuotas, pagosAnuales };
76
+ }
77
+ exports.simuladorCuotas = simuladorCuotas;
78
+ function calcularPorcionCorrientePagada({ fechaDesembolso, fechaInicial, frecuencia, simulador }) {
79
+ const inicial = luxon_1.DateTime.fromISO(fechaInicial);
80
+ const desembolso = luxon_1.DateTime.fromISO(fechaDesembolso);
81
+ const mesesPorFrecuencia = exports.frecuenciaMeses[frecuencia];
82
+ const mesesTranscurridos = inicial.diff(desembolso, 'months').months;
83
+ const cuotasPagadas = Math.floor(mesesTranscurridos / mesesPorFrecuencia);
84
+ const cuotasPagadasArray = simulador.filter((cuota) => cuota.nroCuota <= cuotasPagadas);
85
+ const porcionCorrientePagada = cuotasPagadasArray.reduce((acumulado, cuota) => acumulado + cuota.amortizacion, 0);
86
+ return {
87
+ cuotasPagadas: cuotasPagadasArray.length,
88
+ porcionCorrientePagada,
89
+ };
90
+ }
91
+ exports.calcularPorcionCorrientePagada = calcularPorcionCorrientePagada;
92
+ function ourParseFloat(num, round = true) {
93
+ let parsed = parseFloat(num);
94
+ if (isNaN(parsed))
95
+ parsed = 0;
96
+ if (round)
97
+ parsed = parseFloat(parsed.toFixed(2));
98
+ return parsed;
99
+ }
100
+ exports.ourParseFloat = ourParseFloat;
101
+ /**
102
+ * Calcula la tasa de interés periódica (similar a la función TASA de Excel).
103
+ *
104
+ * @param params - Objeto con los parámetros necesarios.
105
+ * @param params.meses - Número de períodos (meses).
106
+ * @param params.montoCuota - Monto de la cuota por período (negativo, por ser un flujo de salida).
107
+ * @param params.montoOriginal - Monto original del préstamo.
108
+ * @param params.guess - Estimación inicial de la tasa de interés (por defecto: 0.1 o 10%).
109
+ * @param params.maxIteraciones - Número máximo de iteraciones para el cálculo (por defecto: 100).
110
+ * @param params.tolerancia - Precisión deseada para el resultado (por defecto: 1e-6).
111
+ * @returns La tasa de interés periódica como decimal o undefined si no converge.
112
+ */
113
+ function calcularTasaInteres({ meses, montoCuota, montoOriginal, guess = 0.1, maxIteraciones = 100, tolerancia = 1e-10, }) {
114
+ let tasa = guess;
115
+ for (let i = 0; i < maxIteraciones; i++) {
116
+ let f = 0; // Función objetivo f(x)
117
+ let fDerivada = 0; // Derivada f'(x)
118
+ for (let j = 1; j <= meses; j++) {
119
+ const factor = Math.pow(1 + tasa, -j);
120
+ f += montoCuota * factor;
121
+ fDerivada += -j * montoCuota * factor / (1 + tasa);
122
+ }
123
+ // Sumar flujo inicial (monto original)
124
+ f += montoOriginal;
125
+ // Calcular nueva tasa usando Newton-Raphson
126
+ const nuevoTasa = tasa - f / fDerivada;
127
+ if (Math.abs(nuevoTasa - tasa) < tolerancia) {
128
+ return nuevoTasa;
129
+ }
130
+ tasa = nuevoTasa;
131
+ }
132
+ // Si no converge después de todas las iteraciones
133
+ return undefined;
134
+ }
135
+ exports.calcularTasaInteres = calcularTasaInteres;
136
+ function getColumnSum(data, column) {
137
+ return data.reduce((sum, item) => sum + ourParseFloat(item[column]), 0);
138
+ }
139
+ exports.getColumnSum = getColumnSum;
140
+ function sumCorrelativeKeys(params) {
141
+ const { baseKey, endIndex, startIndex = 1, data } = params;
142
+ if (endIndex < startIndex) {
143
+ throw new Error("El índice final no puede ser menor que el índice inicial.");
144
+ }
145
+ let sum = 0;
146
+ for (let i = startIndex; i <= endIndex; i++) {
147
+ const key = `${baseKey}${i}`;
148
+ if (key in data) {
149
+ sum += ourParseFloat(data[key]);
150
+ }
151
+ }
152
+ return sum;
153
+ }
154
+ exports.sumCorrelativeKeys = sumCorrelativeKeys;
155
+ function generatePlazos({ inicio, cantidadProyeccion, valor }) {
156
+ const plazos = {};
157
+ if (inicio && valor) {
158
+ let valorInicial = valor;
159
+ if (valorInicial) {
160
+ for (let i = inicio; i <= cantidadProyeccion; i++) {
161
+ if (valorInicial > 0) {
162
+ plazos[`Gestion${i}`] = valorInicial;
163
+ valorInicial--;
164
+ }
165
+ else {
166
+ break;
167
+ }
168
+ }
169
+ }
170
+ }
171
+ return plazos;
172
+ }
173
+ exports.generatePlazos = generatePlazos;
174
+ function calcularPagoPrincipalEntre({ tasaPeriodica, numeroPagos, montoPrestamo, periodoInicial = 1, periodoFinal, }) {
175
+ // Cálculo de la cuota fija periódica (PMT)
176
+ const cuota = (tasaPeriodica * montoPrestamo) /
177
+ (1 - Math.pow(1 + tasaPeriodica, -numeroPagos));
178
+ let saldo = montoPrestamo; // Saldo inicial
179
+ let totalCapitalAmortizado = 0;
180
+ for (let periodo = 1; periodo <= periodoFinal; periodo++) {
181
+ const interesPeriodo = saldo * tasaPeriodica; // Intereses del período actual
182
+ const capitalAmortizado = cuota - interesPeriodo; // Parte de capital de la cuota
183
+ if (periodo >= periodoInicial) {
184
+ totalCapitalAmortizado += capitalAmortizado;
185
+ }
186
+ // Reducir el saldo restante para el siguiente período
187
+ saldo -= capitalAmortizado;
188
+ }
189
+ return totalCapitalAmortizado;
190
+ }
191
+ exports.calcularPagoPrincipalEntre = calcularPagoPrincipalEntre;
192
+ function calcularPagoInteresEntre({ tasaPeriodica, numeroPagos, montoPrestamo, periodoInicial = 1, periodoFinal, }) {
193
+ // Cálculo de la cuota fija periódica (PMT)
194
+ const cuota = (tasaPeriodica * montoPrestamo) /
195
+ (1 - Math.pow(1 + tasaPeriodica, -numeroPagos));
196
+ let saldo = montoPrestamo; // Saldo inicial
197
+ let totalInteresesPagados = 0;
198
+ for (let periodo = 1; periodo <= periodoFinal; periodo++) {
199
+ const interesPeriodo = saldo * tasaPeriodica; // Intereses del período actual
200
+ if (periodo >= periodoInicial) {
201
+ totalInteresesPagados += interesPeriodo; // Suma intereses solo en el rango especificado
202
+ }
203
+ // Reducir el saldo restante para el siguiente período
204
+ const capitalAmortizado = cuota - interesPeriodo;
205
+ saldo -= capitalAmortizado;
206
+ }
207
+ return totalInteresesPagados; // Devuelve el valor negativo para igualar el comportamiento de Excel
208
+ }
209
+ exports.calcularPagoInteresEntre = calcularPagoInteresEntre;
@@ -0,0 +1,14 @@
1
+ import { AdministracionFinancieraCalcData, AdministracionFinancieraData } from "../../models/eeff/admFinanciera";
2
+ import { Strategy } from "../../strategy.interface";
3
+ export default class AdmFinancieraStrategy implements Strategy {
4
+ data: AdministracionFinancieraCalcData | null;
5
+ constructor();
6
+ execute(data: AdministracionFinancieraData): AdministracionFinancieraCalcData;
7
+ private formatPrestamosDirectos;
8
+ private formatPrestamosBajoLinea;
9
+ private setProyeccionesBajoLinea;
10
+ private formatPrestamosLeasing;
11
+ private formatLineasMixtas;
12
+ private setProyeccionesPrestamosDirectos;
13
+ private setProyeccionesAplicaciones;
14
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("./admFinanciera/utils");
4
+ const lodash_1 = require("lodash");
5
+ const prestamoDirectoHandler_1 = require("./admFinanciera/prestamoDirectoHandler");
6
+ const prestamoBajoLineaHandler_1 = require("./admFinanciera/prestamoBajoLineaHandler");
7
+ const proyeccionPrestamosDirectosHandler_1 = require("./admFinanciera/proyeccionPrestamosDirectosHandler");
8
+ const lineasMixtasHandler_1 = require("./admFinanciera/lineasMixtasHandler");
9
+ const prestamoLeasingHandler_1 = require("./admFinanciera/prestamoLeasingHandler");
10
+ const aplicacionesHandler_1 = require("./admFinanciera/aplicacionesHandler");
11
+ class AdmFinancieraStrategy {
12
+ data;
13
+ constructor() {
14
+ this.data = null;
15
+ }
16
+ execute(data) {
17
+ if (!data || !data?.CantidadProyeccion || !data?.InicioProyeccion) {
18
+ throw new Error('La data o Cantidad Proyeccion o Inicio Proyeccion no estan definidos');
19
+ }
20
+ const cloned = (0, lodash_1.cloneDeep)(data);
21
+ this.data = {
22
+ ...cloned,
23
+ ProyeccionPrestamosDirectos: cloned.ProyeccionPrestamosDirectos ?? [],
24
+ ProyeccionAplicaciones: [],
25
+ ProyeccionPrestamosBajoLineas: [],
26
+ };
27
+ this.formatPrestamosDirectos();
28
+ this.formatPrestamosBajoLinea();
29
+ this.formatPrestamosLeasing();
30
+ this.formatLineasMixtas();
31
+ //proyecciones
32
+ this.setProyeccionesBajoLinea();
33
+ this.setProyeccionesPrestamosDirectos();
34
+ this.setProyeccionesAplicaciones();
35
+ return this.data;
36
+ }
37
+ formatPrestamosDirectos() {
38
+ let totalMontoOriginal = 0;
39
+ let totalPorcionPagada = 0;
40
+ this.data.PrestamoDirecto.forEach(prestamo => {
41
+ const handled = new prestamoDirectoHandler_1.PrestamoDirectoHandler({
42
+ prestamo,
43
+ data: this.data
44
+ }).handle();
45
+ totalMontoOriginal += (0, utils_1.ourParseFloat)(handled.MontoOriginal);
46
+ totalPorcionPagada += (0, utils_1.ourParseFloat)(handled.PorcionPagada);
47
+ });
48
+ this.data?.PrestamoDirecto.push({
49
+ Descripcion: 'TOTAL PRÉSTAMOS AMORTIZABLES BS',
50
+ MontoOriginal: totalMontoOriginal,
51
+ PorcionPagada: totalPorcionPagada,
52
+ Clasificador: 'T'
53
+ });
54
+ }
55
+ formatPrestamosBajoLinea() {
56
+ let totalMonto = this.data.PrestamoBajoLinea.reduce((acc, curr) => acc + (0, utils_1.ourParseFloat)(curr.MontoOriginal), 0);
57
+ let totalMontoUtilizado = 0;
58
+ let totalTasaPonderada = 0;
59
+ let totalSaldoLinea = 0;
60
+ this.data.PrestamoBajoLinea.forEach(prestamo => {
61
+ const handled = new prestamoBajoLineaHandler_1.PrestamoBajoLineaHandler(prestamo, this.data).handle();
62
+ totalMontoUtilizado += (0, utils_1.ourParseFloat)(handled.MontoUtilizado);
63
+ totalTasaPonderada += (0, utils_1.ourParseFloat)(handled.TasaPonderada);
64
+ totalSaldoLinea += (0, utils_1.ourParseFloat)(handled.SaldoLineaAplicar);
65
+ });
66
+ this.data?.PrestamoBajoLinea.push({
67
+ Descripcion: 'TOTAL LÍNEA DE CRÉDITO BS',
68
+ MontoOriginal: totalMonto,
69
+ MontoUtilizado: totalMontoUtilizado,
70
+ TasaPonderada: totalTasaPonderada,
71
+ SaldoLineaAplicar: totalSaldoLinea,
72
+ Clasificador: 'T'
73
+ });
74
+ }
75
+ setProyeccionesBajoLinea() {
76
+ const filaTotales = this.data.PrestamoBajoLinea.find(pr => pr.Clasificador == 'T');
77
+ const totalTasaPonderada = (0, utils_1.ourParseFloat)(filaTotales?.TasaPonderada) / 100;
78
+ const proyecciones = this.data.PrestamoBajoLinea.map(pr => ({
79
+ Descripcion: pr.Descripcion,
80
+ ...pr.Proyecciones
81
+ }));
82
+ const pagoCostosFinancieros = {
83
+ id: -1,
84
+ Descripcion: 'Pago de Costos Financieros Bs.',
85
+ Clasificador: 'T'
86
+ };
87
+ for (let i = 1; i <= this.data.CantidadProyeccion; i++) {
88
+ let value;
89
+ if (i == 1) {
90
+ const primeraFila = this.data.PrestamoBajoLinea.at(0);
91
+ value = (0, utils_1.ourParseFloat)(primeraFila?.MontoUtilizado) * totalTasaPonderada;
92
+ }
93
+ else {
94
+ const sumaColumnaAnterior = (0, utils_1.getColumnSum)(proyecciones, `Gestion${i - 1}`);
95
+ value = sumaColumnaAnterior * totalTasaPonderada;
96
+ }
97
+ pagoCostosFinancieros[`Gestion${i}`] = value;
98
+ }
99
+ proyecciones.push(pagoCostosFinancieros);
100
+ this.data.ProyeccionPrestamosBajoLineas = proyecciones;
101
+ }
102
+ formatPrestamosLeasing() {
103
+ let totalMonto = 0;
104
+ let totalCuotaPeriodo = 0;
105
+ let totalAporteInicial = 0;
106
+ let totalValorResidual = 0;
107
+ let totalValorBien = 0;
108
+ this.data.PrestamoLeasing.forEach(prestamo => {
109
+ const handled = new prestamoLeasingHandler_1.PrestamoLeasingHandler({ data: this.data, prestamo }).handle();
110
+ totalMonto += (0, utils_1.ourParseFloat)(handled.MontoOriginal);
111
+ totalCuotaPeriodo += (0, utils_1.ourParseFloat)(handled.MontoCuotaPeriodo);
112
+ totalAporteInicial += (0, utils_1.ourParseFloat)(handled.MontoAporteInicial);
113
+ totalValorResidual += (0, utils_1.ourParseFloat)(handled.MontoValorResidual);
114
+ totalValorBien += (0, utils_1.ourParseFloat)(handled.MontoValorBien);
115
+ });
116
+ this.data?.PrestamoLeasing.push({
117
+ Descripcion: 'TOTAL LEASING BS',
118
+ MontoOriginal: totalMonto,
119
+ MontoCuotaPeriodo: totalCuotaPeriodo,
120
+ MontoAporteInicial: totalAporteInicial,
121
+ MontoValorResidual: totalValorResidual,
122
+ MontoValorBien: totalValorBien,
123
+ Clasificador: 'T'
124
+ });
125
+ }
126
+ formatLineasMixtas() {
127
+ new lineasMixtasHandler_1.LineasMixtasHandler(this.data).handle();
128
+ }
129
+ setProyeccionesPrestamosDirectos() {
130
+ const handler = new proyeccionPrestamosDirectosHandler_1.ProyeccionPrestamosDirectosHandler({
131
+ data: this.data
132
+ });
133
+ this.data.ProyeccionPrestamosDirectos = handler.handle();
134
+ }
135
+ setProyeccionesAplicaciones() {
136
+ new aplicacionesHandler_1.AplicacionesHandler({ data: this.data }).handle();
137
+ }
138
+ }
139
+ exports.default = AdmFinancieraStrategy;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class BalanceEEFFStrategy {
4
+ actividades;
4
5
  constructor() {
5
6
  this.actividades = [];
6
7
  }
@@ -81,7 +82,7 @@ const anadirGrupoBalance = (actividad, rubros, grupoActividad, rubroDestino, dat
81
82
  }, null);
82
83
  for (let i = 1; i <= rango; i++) {
83
84
  const cuenta = data.find((item) => item.RubroId == rubroDestino);
84
- let copy = Object.assign({}, cuenta);
85
+ let copy = { ...cuenta };
85
86
  copy.RubroId = (esDetalle ? `${rubroDestino}` : `${rubroDestino}.1`);
86
87
  copy.Descripcion = `${cuenta.Descripcion} ${actividad.ActividadEconomicaId} ${actividad.Descripcion}`;
87
88
  copy.UUID = `${rubroDestino}_${actividad.ActividadEconomicaId}_${i}`;
@@ -124,7 +125,7 @@ const getCuentasCopy = (data, rubroId, map) => {
124
125
  let cuentaIngreso = map.get(`${rubroId}_${i}`);
125
126
  cuentaIngreso.MontoEmpresa = Math.round(parseFloat(cuentaIngreso.MontoEmpresa) * 100) / 100;
126
127
  cuentaIngreso.MontoFamiliar = Math.round(parseFloat(cuentaIngreso.MontoFamiliar) * 100) / 100;
127
- originalData.set(`${rubroId}_${i}`, Object.assign({}, cuentaIngreso));
128
+ originalData.set(`${rubroId}_${i}`, { ...cuentaIngreso });
128
129
  }
129
130
  return originalData;
130
131
  };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class FlujoProyectadoEEFFStrategy {
4
+ actividades;
4
5
  constructor() {
5
6
  this.actividades = [];
6
7
  }
@@ -53,7 +54,7 @@ const agregarGrupo = (rubros, actividad, grupoActividad, rubroDestino, data) =>
53
54
  return acc;
54
55
  }, null);
55
56
  const rubro = data.FlujoProyectadoAnual[0];
56
- let row = Object.assign({}, rubro);
57
+ let row = { ...rubro };
57
58
  row.RubroId = rubroDestino;
58
59
  row.Clasificador = 'CT';
59
60
  row.Descripcion = `Actividad: ${actividad.Descripcion}`;
@@ -79,5 +80,5 @@ const sumarizarCuenta = (rubroId, data) => {
79
80
  };
80
81
  const getCuentaCopy = (rubroId, data) => {
81
82
  const cuenta = data.FlujoProyectadoAnualMap.get(`${rubroId}_0`);
82
- return Object.assign({}, cuenta);
83
+ return { ...cuenta };
83
84
  };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class BalanceGeneralStrategy {
4
+ actividades;
4
5
  constructor() {
5
6
  this.actividades = {};
6
7
  }
@@ -25,7 +26,7 @@ const procesarConsolidado = (consolidado, data, tipoConsolidado) => {
25
26
  for (const rubro of rubros) {
26
27
  for (let i = 1; i <= rango; i++) {
27
28
  const cuenta = data.find((item) => item.RubroId == rubro.RubroId);
28
- let copy = Object.assign({}, cuenta);
29
+ let copy = { ...cuenta };
29
30
  copy.RubroId = (rubro.Clasificador == 'HABM' ? `${rubro.RubroId}` : `${rubro.RubroId}.1`);
30
31
  copy.Descripcion = `${cuenta.Descripcion} - Consolidado ${tipoConsolidado} `;
31
32
  copy.UUID = `${rubro.RubroId}_${tipoConsolidado}_${i}`;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class FlujoProyectadoBalanceStrategy {
4
+ actividades;
4
5
  constructor() {
5
6
  this.actividades = {};
6
7
  }
@@ -21,7 +22,7 @@ const procesarAnual = (consolidado, data, tipoConsolidado) => {
21
22
  if (rubros.length == 0) {
22
23
  for (const rubroItem of rubros) {
23
24
  const rubro = data.FlujoProyectadoAnual[0];
24
- let row = Object.assign({}, rubro);
25
+ let row = { ...rubro };
25
26
  row.Clasificador = 'CT';
26
27
  row.Descripcion = `${rubroItem.Descripcion} - ${tipoConsolidado}`;
27
28
  row.Editable = false;
@@ -5,6 +5,7 @@ const gCuentaCosto = 'ACT_CN_41002';
5
5
  const gCuentaGasto = 'ACT_CN_43002';
6
6
  const gCuentaOtrosIngresosDet = 'ACT_CN_45001';
7
7
  class BalancePecStrategy {
8
+ actividades;
8
9
  constructor() {
9
10
  this.actividades = [];
10
11
  }
@@ -37,7 +38,7 @@ const getCuentasCopy = (data, rubroId) => {
37
38
  let cuentaIngreso = data.eerrMap.get(`${rubroId}_${i}`);
38
39
  cuentaIngreso.MontoEmpresa = Math.round(parseFloat(cuentaIngreso.MontoEmpresa) * 100) / 100;
39
40
  cuentaIngreso.MontoFamiliar = Math.round(parseFloat(cuentaIngreso.MontoFamiliar) * 100) / 100;
40
- originalData.set(`${rubroId}_${i}`, Object.assign({}, cuentaIngreso));
41
+ originalData.set(`${rubroId}_${i}`, { ...cuentaIngreso });
41
42
  }
42
43
  return originalData;
43
44
  };
@@ -45,7 +46,7 @@ const anadirIngresosAuxPec = (actividad, data) => {
45
46
  const rango = data.eerr[0].Rango;
46
47
  for (let i = 1; i <= rango - 1; i++) {
47
48
  const cuentaIngreso = data.eerrMap.get(`${gCuentaIngreso}_${i}`);
48
- let copy = Object.assign({}, cuentaIngreso);
49
+ let copy = { ...cuentaIngreso };
49
50
  copy.RubroId = `${gCuentaIngreso}.1`;
50
51
  copy.Descripcion = `Ingresos por Ventas ${actividad.Desarrollo.ActividadGanadera}`;
51
52
  copy.UUID = `${gCuentaIngreso}_${actividad.AuxPec.ActividadEconomicaId}_${i}`;
@@ -64,7 +65,7 @@ const anadirIngresosAuxPec = (actividad, data) => {
64
65
  const anadirIngresoVenta = (actividad, data) => {
65
66
  const rango = data.eerr[0].Rango;
66
67
  const cuentaIngreso = data.eerrMap.get(`${gCuentaIngreso}${rango}`);
67
- let copy = Object.assign({}, cuentaIngreso);
68
+ let copy = { ...cuentaIngreso };
68
69
  copy.RubroId = `${gCuentaIngreso}.1`;
69
70
  copy.Descripcion = `Ingresos por Ventas ${actividad.Desarrollo.ActividadGanadera}`;
70
71
  copy.UUID = `${gCuentaIngreso}_${actividad.AuxPec.ActividadEconomicaId}_${rango}`;
@@ -84,7 +85,7 @@ const anadirCosto = (actividad, data) => {
84
85
  const rango = data.eerr[0].Rango;
85
86
  const cuentaCosto = data.eerrMap.get(`${gCuentaCosto}_${rango}`);
86
87
  for (let i = 1; i <= rango; i++) {
87
- let copy = Object.assign({}, cuentaCosto);
88
+ let copy = { ...cuentaCosto };
88
89
  copy.RubroId = `${gCuentaCosto}.1`;
89
90
  copy.Descripcion = `Costos de Ventas ${actividad.Desarrollo.ActividadGanadera}`;
90
91
  copy.UUID = `${gCuentaCosto}_${actividad.AuxPec.ActividadEconomicaId}_${i}`;
@@ -105,7 +106,7 @@ const anadirGasto = (actividad, data) => {
105
106
  const rango = data.eerr[0].Rango;
106
107
  const cuentaGasto = data.eerrMap.get(`${gCuentaGasto}_${rango}`);
107
108
  for (let i = 1; i <= rango; i++) {
108
- let copy = Object.assign({}, cuentaGasto);
109
+ let copy = { ...cuentaGasto };
109
110
  copy.RubroId = `${gCuentaGasto}.1`;
110
111
  copy.UUID = `${gCuentaGasto}_${actividad.AuxPec.ActividadEconomicaId}_${i}`;
111
112
  copy.Descripcion = `Gastos Administrativos Operativos ${actividad.Desarrollo.ActividadGanadera}`;
@@ -138,7 +139,7 @@ const anadirOtrosIngresos = (actividad, data) => {
138
139
  const rango = data.eerr[0].Rango;
139
140
  const cuentaOtrosIngresos = data.eerr.find((item) => item.RubroId == gCuentaOtrosIngresosDet);
140
141
  for (let i = 1; i <= rango; i++) {
141
- let copy = Object.assign({}, cuentaOtrosIngresos);
142
+ let copy = { ...cuentaOtrosIngresos };
142
143
  copy.UUID = `${gCuentaOtrosIngresosDet}_${actividad.AuxPec.ActividadEconomicaId}_${rango}`;
143
144
  copy.Descripcion = `Otros Ingresos ${actividad.Desarrollo.ActividadGanadera}`;
144
145
  copy.MontoEmpresa = 0;
@@ -17,7 +17,10 @@ const getAvaluo = (avaluo, propiedades) => {
17
17
  return acc;
18
18
  }, new Map()).values());
19
19
  sumatoria = sumatoria.map((item) => {
20
- return Object.assign(Object.assign({}, item), { Cantidad: Math.round(item.Cantidad * 100) / 100, PrecioVenta: Math.round(item.Precio / cantidad * 100) / 100 });
20
+ return { ...item,
21
+ Cantidad: Math.round(item.Cantidad * 100) / 100,
22
+ PrecioVenta: Math.round(item.Precio / cantidad * 100) / 100
23
+ };
21
24
  });
22
25
  avaluo = avaluo.map((item) => {
23
26
  item.HatoInicial = 0;
@@ -63,10 +66,15 @@ const getProyectado = (avaluo, CantidadProy, init = 1) => {
63
66
  for (let i = init; i <= CantidadProy; i++) {
64
67
  data[`C-${i}`] = 0;
65
68
  }
66
- return Object.assign({ RubroId: item.RubroId, Descripcion: item.Descripcion, Orden: (0, Constantes_1.getOrden)(item.RubroId) }, data);
69
+ return {
70
+ RubroId: item.RubroId,
71
+ Descripcion: item.Descripcion,
72
+ Orden: (0, Constantes_1.getOrden)(item.RubroId),
73
+ ...data
74
+ };
67
75
  });
68
76
  result = result.reduce((acc, item) => {
69
- acc.set(item.RubroId, Object.assign({}, item));
77
+ acc.set(item.RubroId, { ...item });
70
78
  return acc;
71
79
  }, new Map());
72
80
  return result;
@@ -41,11 +41,11 @@ const getProyDesarrollo = (avaluos, parametros, CantidadProy, CantidadHectareas)
41
41
  let ventasCantidad = desarrolloCalc.getProyectado(avaluos, CantidadProy);
42
42
  let ventasAnuales = desarrolloCalc.getProyectado(avaluos, CantidadProy);
43
43
  const paramsMap = parametros.reduce((acc, item) => {
44
- acc.set(item.RubroId, Object.assign({}, item));
44
+ acc.set(item.RubroId, { ...item });
45
45
  return acc;
46
46
  }, new Map());
47
47
  const avaluosMap = avaluos.reduce((acc, item) => {
48
- acc.set(item.RubroId, Object.assign({}, item));
48
+ acc.set(item.RubroId, { ...item });
49
49
  return acc;
50
50
  }, new Map());
51
51
  for (let i = 0; i <= CantidadProy; i++) {
@@ -6,6 +6,7 @@ const RUBRO_GASTOS = 'ACT_CNFL_60001';
6
6
  const RUBRO_OTROS_INGRESOS = 'ACT_CNFL_70001';
7
7
  const RUBRO_GASTOS_FAMILIARES = 'ACT_CNFL_70002';
8
8
  class FlujoProyectadoPecStrategy {
9
+ actividades;
9
10
  constructor() {
10
11
  this.actividades = [];
11
12
  }
@@ -41,7 +42,7 @@ class FlujoProyectadoPecStrategy {
41
42
  exports.default = FlujoProyectadoPecStrategy;
42
43
  const getCuentaCopy = (rubroId, data) => {
43
44
  const cuenta = data.FlujoProyectadoMensualMap.get(`${rubroId}_0`);
44
- return Object.assign({}, cuenta);
45
+ return { ...cuenta };
45
46
  };
46
47
  const sumarizarCuenta = (rubroId, data, copia) => {
47
48
  const cuenta = data.FlujoProyectadoMensualMap.get(`${rubroId}_0`);
@@ -79,7 +80,7 @@ const addIngresosM = (actividad, data) => {
79
80
  const ingresos = actividad.Ventas.EstacionalidadCalc.find((item) => item.RubroId == 'TOT01');
80
81
  if (!ingresos)
81
82
  throw new Error('No se encontro la estacionalidad Calc de la actividad');
82
- let row = Object.assign({}, rubro);
83
+ let row = { ...rubro };
83
84
  row.Descripcion = `Ingresos ${actividad.Desarrollo.ActividadGanadera}`;
84
85
  row.Clasificador = 'CT';
85
86
  row.Editable = false;
@@ -95,7 +96,7 @@ const addCostosM = (actividad, data) => {
95
96
  const costos = actividad.Costos.Calculo.find((item) => item.RubroId == 'TOT01');
96
97
  if (!costos)
97
98
  throw new Error('No se encontro el costo cálculo de la actividad');
98
- let row = Object.assign({}, rubro);
99
+ let row = { ...rubro };
99
100
  row.Descripcion = `(-) Costos de Ventas ${actividad.Desarrollo.ActividadGanadera}`;
100
101
  row.Clasificador = 'CT';
101
102
  row.Editable = false;
@@ -111,7 +112,7 @@ const addGastosM = (actividad, data) => {
111
112
  const otrosGastos = calcularOtrosGastos(actividad.OtrosGastos);
112
113
  if (!otrosGastos)
113
114
  throw new Error('No se encontro los gastos de la actividad');
114
- let row = Object.assign({}, rubro);
115
+ let row = { ...rubro };
115
116
  row.Descripcion = `(-) Gastos Operativo ${actividad.Desarrollo.ActividadGanadera}`;
116
117
  row.Clasificador = 'CT';
117
118
  row.Editable = false;
@@ -127,7 +128,7 @@ const otrosIngresoM = (actividad, data) => {
127
128
  const otrosIngresos = actividad.Ventas.OtrosIngresos;
128
129
  if (!otrosIngresos)
129
130
  throw new Error('No se encontro la estacionalidad Calc de la actividad');
130
- let row = Object.assign({}, rubro);
131
+ let row = { ...rubro };
131
132
  row.Descripcion = `Otros Ingresos Familiares ${actividad.Desarrollo.ActividadGanadera}`;
132
133
  row.Clasificador = 'CT';
133
134
  row.Editable = false;
@@ -154,7 +155,7 @@ const gastosFamiliaresM = (actividad, data) => {
154
155
  const otrosGastos = calcularOtrosGastos(actividad.OtrosGastos);
155
156
  if (!otrosGastos)
156
157
  throw new Error('No se encontro los gastos de la actividad');
157
- let row = Object.assign({}, rubro);
158
+ let row = { ...rubro };
158
159
  row.Descripcion = `(-) Gastos Familiares ${actividad.Desarrollo.ActividadGanadera}`;
159
160
  row.Clasificador = 'CT';
160
161
  row.Editable = false;
@@ -5,7 +5,13 @@ const Constantes_1 = require("../Constantes");
5
5
  const estacionalidadCalc = (ventasPrimitivo, ventasIngresos) => {
6
6
  const ingresosMap = (0, Constantes_1.getMap)(ventasIngresos, 'RubroId');
7
7
  const ventasCalc = ventasPrimitivo.Estacionalidad.map((item) => {
8
- return Object.assign(Object.assign({}, item), { Monto: parseFloat(item.Monto), IngresoTotal: ingresosMap.get(item.RubroId).IngresoTotal, CalculoIngreso: ingresosMap.get(item.RubroId).IngresoTotal * parseFloat(item.Monto), Orden: (0, Constantes_1.getOrden)(item.RubroId) });
8
+ return {
9
+ ...item,
10
+ Monto: parseFloat(item.Monto),
11
+ IngresoTotal: ingresosMap.get(item.RubroId).IngresoTotal,
12
+ CalculoIngreso: ingresosMap.get(item.RubroId).IngresoTotal * parseFloat(item.Monto),
13
+ Orden: (0, Constantes_1.getOrden)(item.RubroId)
14
+ };
9
15
  });
10
16
  return ventasCalc;
11
17
  };
@@ -10,7 +10,13 @@ const calcular = (ventasPrimitivo, auxiliarPrimitivo, desarrolloCalculado) => {
10
10
  return ventasPrimitivo.Ingresos.map((item) => {
11
11
  const cantidad = parseFloat(hatoMap.get(item.RubroId).CantidadCabezas);
12
12
  const precio = parseFloat(avaluoMap.get(item.RubroId).PrecioVenta);
13
- return Object.assign(Object.assign({}, item), { Animales: cantidad, Precio: precio, IngresoTotal: cantidad * precio, Orden: (0, Constantes_1.getOrden)(item.RubroId) });
13
+ return {
14
+ ...item,
15
+ Animales: cantidad,
16
+ Precio: precio,
17
+ IngresoTotal: cantidad * precio,
18
+ Orden: (0, Constantes_1.getOrden)(item.RubroId)
19
+ };
14
20
  });
15
21
  };
16
22
  exports.calcular = calcular;