tributos-co 1.0.3 → 1.0.4

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/README.md CHANGED
@@ -1,9 +1,12 @@
1
1
  # Tributos-CO 🇨🇴
2
2
 
3
- Paquete npm para calcular recargos salariales, horas extras y otros tributos aplicables en Colombia (Actualizado a normativa 2026).
3
+ Paquete npm para calcular recargos salariales, horas extras, prestaciones sociales, seguridad social y otros tributos aplicables en Colombia (Actualizado a normativa 2026).
4
4
 
5
5
  ## Características
6
6
  - ✅ **Cálculo de Recargos:** Horas extras diurnas, nocturnas, recargos nocturnos, dominicales y festivos.
7
+ - ✅ **Prestaciones Sociales:** Cesantías, prima, intereses sobre cesantías y vacaciones.
8
+ - ✅ **Seguridad Social:** Salud, pensión, ARL, caja de compensación y parafiscales.
9
+ - ✅ **Validaciones:** Salario mínimo, auxilio de transporte, salario integral y deducciones.
7
10
  - ✅ **Jornada Flexible:** Ajuste automático de horas mensuales según la Ley 2101 de 2021 (Reducción de jornada a partir del 15 de julio 2026).
8
11
  - ✅ **Todas las combinaciones:** Extra diurna, extra nocturna, dominical, extra diurna dominical, extra nocturna dominical.
9
12
  - ✅ **TypeScript:** Tipado fuerte para evitar errores en cálculos financieros.
@@ -99,6 +102,9 @@ import { CONSTANTES, TASAS_RECARGO } from 'tributos-co';
99
102
  console.log(CONSTANTES.SMLMV); // 1750905
100
103
  console.log(CONSTANTES.AUX_TRANSPORTE); // 249095
101
104
  console.log(CONSTANTES.UVT); // 52374
105
+ console.log(CONSTANTES.MINIMO_INTEGRAL); // 22761765 (13 SMLMV)
106
+ console.log(CONSTANTES.DOS_MINIMOS); // 3501810
107
+ console.log(CONSTANTES.CUATRO_MINIMOS); // 7003620
102
108
 
103
109
  console.log(TASAS_RECARGO.EXTRA_DIURNA); // 0.25
104
110
  console.log(TASAS_RECARGO.EXTRA_NOCTURNA); // 0.75
@@ -108,6 +114,124 @@ console.log(TASAS_RECARGO.EXTRA_DIURNA_DOMINICAL); // 2.05
108
114
  console.log(TASAS_RECARGO.EXTRA_NOCTURNA_DOMINICAL); // 2.55
109
115
  ```
110
116
 
117
+ ### Calcular Prestaciones Sociales
118
+
119
+ ```typescript
120
+ import { calcularPrestacionesSociales } from 'tributos-co';
121
+
122
+ const salario = 2000000;
123
+ const prestaciones = calcularPrestacionesSociales(salario);
124
+
125
+ console.log(prestaciones);
126
+ /*
127
+ {
128
+ cesantias: 166666.67, // 8.33% mensual
129
+ prima: 166666.67, // 8.33% mensual
130
+ interesesCesantias: 240000, // 12% anual sobre cesantías
131
+ vacaciones: 83333.33, // 4.17% mensual
132
+ totalMensual: 416666.67,
133
+ totalAnual: 5240000
134
+ }
135
+ */
136
+ ```
137
+
138
+ ### Calcular Seguridad Social
139
+
140
+ ```typescript
141
+ import { calcularSeguridadSocial, calcularParafiscales } from 'tributos-co';
142
+
143
+ const salario = 2000000;
144
+
145
+ // Seguridad Social
146
+ const seguridadSocial = calcularSeguridadSocial(salario, 1); // Riesgo ARL tipo 1
147
+
148
+ console.log(seguridadSocial);
149
+ /*
150
+ {
151
+ ibc: 2000000,
152
+ saludEmpleado: 80000, // 4%
153
+ saludEmpleador: 170000, // 8.5%
154
+ totalSalud: 250000, // 12.5%
155
+ pensionEmpleado: 80000, // 4%
156
+ pensionEmpleador: 240000, // 12%
157
+ totalPension: 320000, // 16%
158
+ arl: 10440, // 0.522% (Riesgo I)
159
+ totalEmpleado: 160000, // Descuento al empleado
160
+ totalEmpleador: 420440, // Costo para empleador
161
+ totalSeguridadSocial: 580440
162
+ }
163
+ */
164
+
165
+ // Parafiscales
166
+ const parafiscales = calcularParafiscales(salario);
167
+
168
+ console.log(parafiscales);
169
+ /*
170
+ {
171
+ cajaCompensacion: 80000, // 4%
172
+ icbf: 60000, // 3% (si salario > 10 SMLMV, sino 0)
173
+ sena: 40000, // 2% (si salario > 10 SMLMV, sino 0)
174
+ totalParafiscales: 180000,
175
+ exentoIcbfSena: false
176
+ }
177
+ */
178
+ ```
179
+
180
+ ### Validaciones y Deducciones
181
+
182
+ ```typescript
183
+ import {
184
+ validarSalarioMinimo,
185
+ tieneDerechoAuxilioTransporte,
186
+ esSalarioIntegral,
187
+ calcularDeducciones,
188
+ puedeRecibirValesExentos
189
+ } from 'tributos-co';
190
+
191
+ const salario = 2000000;
192
+
193
+ // Validaciones
194
+ console.log(validarSalarioMinimo(salario)); // true
195
+ console.log(tieneDerechoAuxilioTransporte(salario)); // true (si <= 2 SMLMV)
196
+ console.log(esSalarioIntegral(salario)); // false (< 13 SMLMV)
197
+ console.log(puedeRecibirValesExentos(salario)); // true (si anual <= 310 UVT)
198
+
199
+ // Deducciones
200
+ const deducciones = calcularDeducciones({
201
+ numeroDependientes: 2,
202
+ gastosSalud: 2000000,
203
+ pagosVivienda: 6000000
204
+ });
205
+
206
+ console.log(deducciones);
207
+ /*
208
+ {
209
+ dependientes: 3352000, // 32 UVT x 2
210
+ salud: 1676000, // máximo 32 UVT
211
+ vivienda: 5237000, // máximo 100 UVT
212
+ totalDeducciones: 10265000
213
+ }
214
+ */
215
+ ```
216
+
217
+ #### ℹ️ ¿Por qué están incluidas las deducciones de salud y vivienda?
218
+
219
+ Estas deducciones están incluidas porque afectan el **costo total de nómina** y ayudan a estimar el **salario neto real** del empleado:
220
+
221
+ **Deducción por Salud (máximo 32 UVT = $1,676,000 anuales):**
222
+ - Gastos médicos, medicamentos, seguros de salud
223
+ - Incluye pagos por medicina prepagada
224
+ - Reduce la base para cálculo de retención en la fuente
225
+ - **Uso en nómina:** Permite estimar cuánto recibirá efectivamente el empleado
226
+
227
+ **Deducción por Vivienda (máximo 100 UVT = $5,237,400 anuales):**
228
+ - Intereses de crédito hipotecario
229
+ - Arrendamiento de vivienda de habitación
230
+ - Impuesto predial
231
+ - **Uso en nómina:** Ayuda a calcular el salario neto disponible para el empleado
232
+
233
+ > **Nota:** Estas deducciones son **informativas** y sirven para estimar el impacto de retención en la fuente en el salario del empleado. Este paquete NO calcula directamente la retención en la fuente, ya que su enfoque principal es el **cálculo de costos laborales para el empleador** (prestaciones, seguridad social y recargos salariales).
234
+
111
235
  ## Reforma Laboral 2026
112
236
 
113
237
  El paquete tiene en cuenta la reforma laboral que entra en vigencia el 15 de julio de 2026, la cual reduce la jornada laboral de 48 a 42 horas semanales:
@@ -138,7 +262,7 @@ const horaDespues = calcularHoraOrdinaria(2000000, fechaDespues); // 9523.81
138
262
 
139
263
  ## API Completa
140
264
 
141
- ### Funciones
265
+ ### Funciones de Horas y Recargos
142
266
 
143
267
  #### `calcularHoraOrdinaria(salario, fecha?)`
144
268
  Calcula el valor de la hora ordinaria.
@@ -181,6 +305,98 @@ Calcula todos los recargos salariales.
181
305
  - `totalRecargos`: Suma de todos los recargos
182
306
  - `totalNomina`: Salario + recargos
183
307
 
308
+ ### Funciones de Prestaciones Sociales
309
+
310
+ #### `calcularCesantias(salario)`
311
+ Calcula las cesantías mensuales (8.33%).
312
+
313
+ #### `calcularPrima(salario)`
314
+ Calcula la prima de servicios mensual (8.33%).
315
+
316
+ #### `calcularInteresesCesantias(salario, meses?)`
317
+ Calcula los intereses sobre cesantías (12% anual).
318
+
319
+ #### `calcularVacaciones(salario)`
320
+ Calcula las vacaciones mensuales (4.17% - 15 días por año).
321
+
322
+ #### `calcularPrestacionesSociales(salario, mesesTrabajados?)`
323
+ Calcula todas las prestaciones sociales.
324
+
325
+ **Retorna:** Objeto `PrestacionesSociales` con cesantías, prima, intereses, vacaciones y totales.
326
+
327
+ #### `calcularSalarioBasePrestaciones(salario)`
328
+ Calcula el salario base para prestaciones (incluye auxilio de transporte si aplica).
329
+
330
+ ### Funciones de Seguridad Social
331
+
332
+ #### `calcularIBC(salario)`
333
+ Calcula el Ingreso Base de Cotización para seguridad social.
334
+
335
+ #### `obtenerTasaARL(riesgo)`
336
+ Obtiene la tasa de ARL según el tipo de riesgo (1-5).
337
+
338
+ #### `calcularSeguridadSocial(salario, riesgoARL?)`
339
+ Calcula todos los aportes a seguridad social.
340
+
341
+ **Parámetros:**
342
+ - `salario`: Salario mensual base
343
+ - `riesgoARL`: Tipo de riesgo (1-5, default: 1)
344
+
345
+ **Retorna:** Objeto `SeguridadSocial` con detalle de salud, pensión, ARL y totales.
346
+
347
+ #### `calcularParafiscales(salario)`
348
+ Calcula los aportes parafiscales (Caja Compensación, ICBF, SENA).
349
+
350
+ **Retorna:** Objeto `Parafiscales` con detalle de cada aporte.
351
+
352
+ #### `calcularCostoTotalSeguridadSocial(salario, riesgoARL?)`
353
+ Calcula el costo total de seguridad social y parafiscales para el empleador.
354
+
355
+ #### `calcularSalarioNeto(salario, riesgoARL?)`
356
+ Calcula el salario neto después de deducciones de seguridad social.
357
+
358
+ ### Funciones de Validaciones y Deducciones
359
+
360
+ #### `validarSalarioMinimo(salario)`
361
+ Valida si un salario cumple con el mínimo legal.
362
+
363
+ #### `tieneDerechoAuxilioTransporte(salario)`
364
+ Verifica si el trabajador tiene derecho a auxilio de transporte (≤ 2 SMLMV).
365
+
366
+ #### `estaExentoIcbfSena(salario)`
367
+ Verifica si está exento de ICBF y SENA (≤ 10 SMLMV).
368
+
369
+ #### `esSalarioIntegral(salario)`
370
+ Verifica si es salario integral (≥ 13 SMLMV).
371
+
372
+ #### `puedeRecibirValesExentos(salario)`
373
+ Verifica si puede recibir vales de alimentación exentos (anual ≤ 310 UVT).
374
+
375
+ #### `requiereDotacion(salario)`
376
+ Verifica si el trabajador requiere dotación (≤ 2 SMLMV).
377
+
378
+ #### `calcularDeducciones(params)`
379
+ Calcula todas las deducciones fiscales permitidas.
380
+
381
+ **Parámetros:**
382
+ - `params.numeroDependientes`: Número de dependientes
383
+ - `params.gastosSalud`: Gastos en salud
384
+ - `params.pagosVivienda`: Pagos por vivienda
385
+
386
+ **Retorna:** Objeto `Deducciones` con detalle de cada deducción.
387
+
388
+ #### `calcularDeduccionDependientes(numeroDependientes)`
389
+ Calcula deducción por dependientes (32 UVT por dependiente).
390
+
391
+ #### `calcularDeduccionSalud(gastosSalud)`
392
+ Calcula deducción por salud (máximo 32 UVT).
393
+
394
+ #### `calcularDeduccionVivienda(pagosVivienda)`
395
+ Calcula deducción por vivienda (máximo 100 UVT).
396
+
397
+ #### `calcularMontoMaximoVales(salario)`
398
+ Calcula el monto máximo mensual de vales exentos (41 UVT anuales).
399
+
184
400
  ### Tipos
185
401
 
186
402
  #### `RecargosInput`
@@ -195,6 +411,61 @@ interface RecargosInput {
195
411
  }
196
412
  ```
197
413
 
414
+ #### `PrestacionesSociales`
415
+ ```typescript
416
+ interface PrestacionesSociales {
417
+ cesantias: number;
418
+ prima: number;
419
+ interesesCesantias: number;
420
+ vacaciones: number;
421
+ totalMensual: number;
422
+ totalAnual: number;
423
+ }
424
+ ```
425
+
426
+ #### `SeguridadSocial`
427
+ ```typescript
428
+ interface SeguridadSocial {
429
+ ibc: number;
430
+ saludEmpleado: number;
431
+ saludEmpleador: number;
432
+ totalSalud: number;
433
+ pensionEmpleado: number;
434
+ pensionEmpleador: number;
435
+ totalPension: number;
436
+ arl: number;
437
+ totalEmpleado: number;
438
+ totalEmpleador: number;
439
+ totalSeguridadSocial: number;
440
+ }
441
+ ```
442
+
443
+ #### `Parafiscales`
444
+ ```typescript
445
+ interface Parafiscales {
446
+ cajaCompensacion: number;
447
+ icbf: number;
448
+ sena: number;
449
+ totalParafiscales: number;
450
+ exentoIcbfSena: boolean;
451
+ }
452
+ ```
453
+
454
+ #### `Deducciones`
455
+ ```typescript
456
+ interface Deducciones {
457
+ dependientes: number;
458
+ salud: number;
459
+ vivienda: number;
460
+ totalDeducciones: number;
461
+ }
462
+ ```
463
+
464
+ #### `TipoRiesgoARL`
465
+ ```typescript
466
+ type TipoRiesgoARL = 1 | 2 | 3 | 4 | 5;
467
+ ```
468
+
198
469
  ## Licencia
199
470
 
200
471
  ISC
@@ -5,6 +5,18 @@ export declare const CONSTANTES: {
5
5
  AUX_TRANSPORTE: number;
6
6
  HORAS_MES_ANTES_JULIO: number;
7
7
  HORAS_MES_DESPUES_JULIO: number;
8
+ MINIMO_INTEGRAL: number;
9
+ DOS_MINIMOS: number;
10
+ CUATRO_MINIMOS: number;
11
+ TOPE_FSP_EMPLEADO: number;
12
+ DEDUCIBLE_DEPENDIENTES: number;
13
+ DEDUCIBLE_SALUD: number;
14
+ MAXIMO_DEDUCIBLE_VIVIENDA: number;
15
+ MAXIMO_EXENTO: number;
16
+ TOPE_SALARIAL_BENEFICIO_VALES: number;
17
+ MONTO_MAXIMO_VALES_NO_GRAVADOS: number;
18
+ TOPE_ANUAL_DEDUCIBLE_AFP_VOL: number;
19
+ TOPE_IBC_SEG_SOCIAL: number;
8
20
  };
9
21
  export declare const TASAS_RECARGO: {
10
22
  EXTRA_DIURNA: number;
@@ -14,3 +26,22 @@ export declare const TASAS_RECARGO: {
14
26
  EXTRA_DIURNA_DOMINICAL: number;
15
27
  EXTRA_NOCTURNA_DOMINICAL: number;
16
28
  };
29
+ export declare const TASAS_SEGURIDAD_SOCIAL: {
30
+ SALUD_EMPLEADO: number;
31
+ SALUD_EMPLEADOR: number;
32
+ PENSION_EMPLEADO: number;
33
+ PENSION_EMPLEADOR: number;
34
+ TOTAL_SALUD: number;
35
+ TOTAL_PENSION: number;
36
+ ARL_MIN: number;
37
+ ARL_MAX: number;
38
+ CAJA_COMPENSACION: number;
39
+ ICBF: number;
40
+ SENA: number;
41
+ };
42
+ export declare const TASAS_PRESTACIONES: {
43
+ CESANTIAS: number;
44
+ PRIMA: number;
45
+ INTERESES_CESANTIAS: number;
46
+ VACACIONES: number;
47
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TASAS_RECARGO = exports.CONSTANTES = void 0;
3
+ exports.TASAS_PRESTACIONES = exports.TASAS_SEGURIDAD_SOCIAL = exports.TASAS_RECARGO = exports.CONSTANTES = void 0;
4
4
  exports.CONSTANTES = {
5
5
  UVT: 52374,
6
6
  IVA_GENERAL: 0.19,
@@ -9,6 +9,19 @@ exports.CONSTANTES = {
9
9
  // Jornada laboral: 15 julio 2026 baja a 42h semanales
10
10
  HORAS_MES_ANTES_JULIO: 220,
11
11
  HORAS_MES_DESPUES_JULIO: 210,
12
+ // Valores de referencia adicionales
13
+ MINIMO_INTEGRAL: 22761765, // 13 SMLMV del 2026
14
+ DOS_MINIMOS: 3501810, // Para derecho a Subsidio de Transporte
15
+ CUATRO_MINIMOS: 7003620, // Para aportes FSP "Seguridad Social"
16
+ TOPE_FSP_EMPLEADO: 875453, // Tope FSP para empleado
17
+ DEDUCIBLE_DEPENDIENTES: 1676000, // 32 UVT - Ley 1607/26-12-2012
18
+ DEDUCIBLE_SALUD: 1676000, // 32 UVT - Ley 1607/26-12-2012
19
+ MAXIMO_DEDUCIBLE_VIVIENDA: 5237000, // 100 UVT - Ley 1111/2006
20
+ MAXIMO_EXENTO: 12570000, // 240 UVT - Ley 1111/2006
21
+ TOPE_SALARIAL_BENEFICIO_VALES: 16236000, // 310 UVT - Ley 1111/2006
22
+ MONTO_MAXIMO_VALES_NO_GRAVADOS: 2147000, // 41 UVT - Ley 1111/2006
23
+ TOPE_ANUAL_DEDUCIBLE_AFP_VOL: 19009000, // 3,800 UVT
24
+ TOPE_IBC_SEG_SOCIAL: 43773000, // Tope para IBC de seguridad social
12
25
  };
13
26
  exports.TASAS_RECARGO = {
14
27
  EXTRA_DIURNA: 0.25,
@@ -18,3 +31,24 @@ exports.TASAS_RECARGO = {
18
31
  EXTRA_DIURNA_DOMINICAL: 2.05,
19
32
  EXTRA_NOCTURNA_DOMINICAL: 2.55,
20
33
  };
34
+ // Tasas de seguridad social
35
+ exports.TASAS_SEGURIDAD_SOCIAL = {
36
+ SALUD_EMPLEADO: 0.04, // 4%
37
+ SALUD_EMPLEADOR: 0.085, // 8.5%
38
+ PENSION_EMPLEADO: 0.04, // 4%
39
+ PENSION_EMPLEADOR: 0.12, // 12%
40
+ TOTAL_SALUD: 0.125, // 12.5%
41
+ TOTAL_PENSION: 0.16, // 16%
42
+ ARL_MIN: 0.00522, // Riesgo I - 0.522%
43
+ ARL_MAX: 0.0696, // Riesgo V - 6.96%
44
+ CAJA_COMPENSACION: 0.04, // 4% (solo empleador)
45
+ ICBF: 0.03, // 3% (solo empleador, salarios > 10 SMLMV)
46
+ SENA: 0.02, // 2% (solo empleador, salarios > 10 SMLMV)
47
+ };
48
+ // Tasas de prestaciones sociales
49
+ exports.TASAS_PRESTACIONES = {
50
+ CESANTIAS: 1 / 12, // 8.33%
51
+ PRIMA: 1 / 12, // 8.33%
52
+ INTERESES_CESANTIAS: 0.12, // 12% anual
53
+ VACACIONES: 1 / 24, // 4.17% (15 días por año)
54
+ };
package/dist/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
- export { CONSTANTES, TASAS_RECARGO } from './contants';
1
+ export { CONSTANTES, TASAS_RECARGO, TASAS_SEGURIDAD_SOCIAL, TASAS_PRESTACIONES } from './contants';
2
2
  export { calcularHoraOrdinaria, calcularHoraExtraDiurna, calcularHoraExtraNocturna, calcularHoraOrdinariaNocturna, calcularHoraDominicalFestiva, calcularHoraExtraDiurnaDominical, calcularHoraExtraNocturnaDominical, calcularRecargosSalariales, type RecargosInput, } from './modules/labor';
3
+ export { calcularSalarioBasePrestaciones, calcularCesantias, calcularPrima, calcularInteresesCesantias, calcularVacaciones, calcularPrestacionesSociales, calcularCostoTotalEmpleadoPrestaciones, type PrestacionesSociales, } from './modules/prestaciones';
4
+ export { calcularIBC, obtenerTasaARL, calcularSeguridadSocial, calcularParafiscales, calcularCostoTotalSeguridadSocial, calcularSalarioNeto, type TipoRiesgoARL, type SeguridadSocial, type Parafiscales, } from './modules/seguridad-social';
5
+ export { validarSalarioMinimo, tieneDerechoAuxilioTransporte, estaExentoIcbfSena, esSalarioIntegral, calcularDeduccionDependientes, calcularDeduccionSalud, calcularDeduccionVivienda, puedeRecibirValesExentos, calcularMontoMaximoVales, calcularDeducciones, requiereDotacion, type Deducciones, } from './modules/deducciones';
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calcularRecargosSalariales = exports.calcularHoraExtraNocturnaDominical = exports.calcularHoraExtraDiurnaDominical = exports.calcularHoraDominicalFestiva = exports.calcularHoraOrdinariaNocturna = exports.calcularHoraExtraNocturna = exports.calcularHoraExtraDiurna = exports.calcularHoraOrdinaria = exports.TASAS_RECARGO = exports.CONSTANTES = void 0;
3
+ exports.requiereDotacion = exports.calcularDeducciones = exports.calcularMontoMaximoVales = exports.puedeRecibirValesExentos = exports.calcularDeduccionVivienda = exports.calcularDeduccionSalud = exports.calcularDeduccionDependientes = exports.esSalarioIntegral = exports.estaExentoIcbfSena = exports.tieneDerechoAuxilioTransporte = exports.validarSalarioMinimo = exports.calcularSalarioNeto = exports.calcularCostoTotalSeguridadSocial = exports.calcularParafiscales = exports.calcularSeguridadSocial = exports.obtenerTasaARL = exports.calcularIBC = exports.calcularCostoTotalEmpleadoPrestaciones = exports.calcularPrestacionesSociales = exports.calcularVacaciones = exports.calcularInteresesCesantias = exports.calcularPrima = exports.calcularCesantias = exports.calcularSalarioBasePrestaciones = exports.calcularRecargosSalariales = exports.calcularHoraExtraNocturnaDominical = exports.calcularHoraExtraDiurnaDominical = exports.calcularHoraDominicalFestiva = exports.calcularHoraOrdinariaNocturna = exports.calcularHoraExtraNocturna = exports.calcularHoraExtraDiurna = exports.calcularHoraOrdinaria = exports.TASAS_PRESTACIONES = exports.TASAS_SEGURIDAD_SOCIAL = exports.TASAS_RECARGO = exports.CONSTANTES = void 0;
4
4
  // Exportar constantes
5
5
  var contants_1 = require("./contants");
6
6
  Object.defineProperty(exports, "CONSTANTES", { enumerable: true, get: function () { return contants_1.CONSTANTES; } });
7
7
  Object.defineProperty(exports, "TASAS_RECARGO", { enumerable: true, get: function () { return contants_1.TASAS_RECARGO; } });
8
+ Object.defineProperty(exports, "TASAS_SEGURIDAD_SOCIAL", { enumerable: true, get: function () { return contants_1.TASAS_SEGURIDAD_SOCIAL; } });
9
+ Object.defineProperty(exports, "TASAS_PRESTACIONES", { enumerable: true, get: function () { return contants_1.TASAS_PRESTACIONES; } });
8
10
  // Exportar funciones de cálculo laboral
9
11
  var labor_1 = require("./modules/labor");
10
12
  Object.defineProperty(exports, "calcularHoraOrdinaria", { enumerable: true, get: function () { return labor_1.calcularHoraOrdinaria; } });
@@ -15,3 +17,33 @@ Object.defineProperty(exports, "calcularHoraDominicalFestiva", { enumerable: tru
15
17
  Object.defineProperty(exports, "calcularHoraExtraDiurnaDominical", { enumerable: true, get: function () { return labor_1.calcularHoraExtraDiurnaDominical; } });
16
18
  Object.defineProperty(exports, "calcularHoraExtraNocturnaDominical", { enumerable: true, get: function () { return labor_1.calcularHoraExtraNocturnaDominical; } });
17
19
  Object.defineProperty(exports, "calcularRecargosSalariales", { enumerable: true, get: function () { return labor_1.calcularRecargosSalariales; } });
20
+ // Exportar funciones de prestaciones sociales
21
+ var prestaciones_1 = require("./modules/prestaciones");
22
+ Object.defineProperty(exports, "calcularSalarioBasePrestaciones", { enumerable: true, get: function () { return prestaciones_1.calcularSalarioBasePrestaciones; } });
23
+ Object.defineProperty(exports, "calcularCesantias", { enumerable: true, get: function () { return prestaciones_1.calcularCesantias; } });
24
+ Object.defineProperty(exports, "calcularPrima", { enumerable: true, get: function () { return prestaciones_1.calcularPrima; } });
25
+ Object.defineProperty(exports, "calcularInteresesCesantias", { enumerable: true, get: function () { return prestaciones_1.calcularInteresesCesantias; } });
26
+ Object.defineProperty(exports, "calcularVacaciones", { enumerable: true, get: function () { return prestaciones_1.calcularVacaciones; } });
27
+ Object.defineProperty(exports, "calcularPrestacionesSociales", { enumerable: true, get: function () { return prestaciones_1.calcularPrestacionesSociales; } });
28
+ Object.defineProperty(exports, "calcularCostoTotalEmpleadoPrestaciones", { enumerable: true, get: function () { return prestaciones_1.calcularCostoTotalEmpleadoPrestaciones; } });
29
+ // Exportar funciones de seguridad social
30
+ var seguridad_social_1 = require("./modules/seguridad-social");
31
+ Object.defineProperty(exports, "calcularIBC", { enumerable: true, get: function () { return seguridad_social_1.calcularIBC; } });
32
+ Object.defineProperty(exports, "obtenerTasaARL", { enumerable: true, get: function () { return seguridad_social_1.obtenerTasaARL; } });
33
+ Object.defineProperty(exports, "calcularSeguridadSocial", { enumerable: true, get: function () { return seguridad_social_1.calcularSeguridadSocial; } });
34
+ Object.defineProperty(exports, "calcularParafiscales", { enumerable: true, get: function () { return seguridad_social_1.calcularParafiscales; } });
35
+ Object.defineProperty(exports, "calcularCostoTotalSeguridadSocial", { enumerable: true, get: function () { return seguridad_social_1.calcularCostoTotalSeguridadSocial; } });
36
+ Object.defineProperty(exports, "calcularSalarioNeto", { enumerable: true, get: function () { return seguridad_social_1.calcularSalarioNeto; } });
37
+ // Exportar funciones de validaciones y deducciones
38
+ var deducciones_1 = require("./modules/deducciones");
39
+ Object.defineProperty(exports, "validarSalarioMinimo", { enumerable: true, get: function () { return deducciones_1.validarSalarioMinimo; } });
40
+ Object.defineProperty(exports, "tieneDerechoAuxilioTransporte", { enumerable: true, get: function () { return deducciones_1.tieneDerechoAuxilioTransporte; } });
41
+ Object.defineProperty(exports, "estaExentoIcbfSena", { enumerable: true, get: function () { return deducciones_1.estaExentoIcbfSena; } });
42
+ Object.defineProperty(exports, "esSalarioIntegral", { enumerable: true, get: function () { return deducciones_1.esSalarioIntegral; } });
43
+ Object.defineProperty(exports, "calcularDeduccionDependientes", { enumerable: true, get: function () { return deducciones_1.calcularDeduccionDependientes; } });
44
+ Object.defineProperty(exports, "calcularDeduccionSalud", { enumerable: true, get: function () { return deducciones_1.calcularDeduccionSalud; } });
45
+ Object.defineProperty(exports, "calcularDeduccionVivienda", { enumerable: true, get: function () { return deducciones_1.calcularDeduccionVivienda; } });
46
+ Object.defineProperty(exports, "puedeRecibirValesExentos", { enumerable: true, get: function () { return deducciones_1.puedeRecibirValesExentos; } });
47
+ Object.defineProperty(exports, "calcularMontoMaximoVales", { enumerable: true, get: function () { return deducciones_1.calcularMontoMaximoVales; } });
48
+ Object.defineProperty(exports, "calcularDeducciones", { enumerable: true, get: function () { return deducciones_1.calcularDeducciones; } });
49
+ Object.defineProperty(exports, "requiereDotacion", { enumerable: true, get: function () { return deducciones_1.requiereDotacion; } });
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Valida si un salario cumple con el salario mínimo legal
3
+ * @param salario - Salario a validar
4
+ * @returns true si el salario es >= SMLMV
5
+ */
6
+ export declare const validarSalarioMinimo: (salario: number) => boolean;
7
+ /**
8
+ * Valida si un trabajador tiene derecho a auxilio de transporte
9
+ * Aplica para salarios <= 2 SMLMV
10
+ * @param salario - Salario mensual
11
+ * @returns true si tiene derecho a auxilio de transporte
12
+ */
13
+ export declare const tieneDerechoAuxilioTransporte: (salario: number) => boolean;
14
+ /**
15
+ * Valida si un salario está exento de ICBF y SENA
16
+ * Aplica para salarios <= 10 SMLMV
17
+ * @param salario - Salario mensual
18
+ * @returns true si está exento
19
+ */
20
+ export declare const estaExentoIcbfSena: (salario: number) => boolean;
21
+ /**
22
+ * Valida si un salario es considerado integral
23
+ * Debe ser >= 13 SMLMV
24
+ * @param salario - Salario mensual
25
+ * @returns true si es salario integral
26
+ */
27
+ export declare const esSalarioIntegral: (salario: number) => boolean;
28
+ /**
29
+ * Calcula la deducción por dependientes permitida
30
+ * @param numeroDependientes - Número de dependientes
31
+ * @returns Valor de la deducción anual
32
+ */
33
+ export declare const calcularDeduccionDependientes: (numeroDependientes: number) => number;
34
+ /**
35
+ * Calcula la deducción por salud permitida
36
+ * @param gastosSalud - Gastos en salud del año
37
+ * @returns Valor deducible (máximo 32 UVT)
38
+ */
39
+ export declare const calcularDeduccionSalud: (gastosSalud: number) => number;
40
+ /**
41
+ * Calcula la deducción por vivienda permitida
42
+ * @param pagosVivienda - Pagos por vivienda del año
43
+ * @returns Valor deducible (máximo 100 UVT)
44
+ */
45
+ export declare const calcularDeduccionVivienda: (pagosVivienda: number) => number;
46
+ /**
47
+ * Valida si el salario puede recibir vales de alimentación exentos
48
+ * @param salario - Salario mensual
49
+ * @returns true si puede recibir vales exentos
50
+ */
51
+ export declare const puedeRecibirValesExentos: (salario: number) => boolean;
52
+ /**
53
+ * Calcula el monto máximo de vales no gravados
54
+ * @param salario - Salario mensual
55
+ * @returns Monto máximo mensual de vales exentos
56
+ */
57
+ export declare const calcularMontoMaximoVales: (salario: number) => number;
58
+ /**
59
+ * Resultado del cálculo de deducciones
60
+ */
61
+ export interface Deducciones {
62
+ /** Deducción por dependientes */
63
+ dependientes: number;
64
+ /** Deducción por salud */
65
+ salud: number;
66
+ /** Deducción por vivienda */
67
+ vivienda: number;
68
+ /** Total deducciones anuales */
69
+ totalDeducciones: number;
70
+ }
71
+ /**
72
+ * Calcula todas las deducciones permitidas
73
+ * @param params - Parámetros para el cálculo
74
+ * @returns Objeto con detalle de deducciones
75
+ */
76
+ export declare const calcularDeducciones: (params: {
77
+ numeroDependientes?: number;
78
+ gastosSalud?: number;
79
+ pagosVivienda?: number;
80
+ }) => Deducciones;
81
+ /**
82
+ * Valida si el trabajador requiere dotación
83
+ * Aplica para salarios <= 2 SMLMV
84
+ * @param salario - Salario mensual
85
+ * @returns true si requiere dotación
86
+ */
87
+ export declare const requiereDotacion: (salario: number) => boolean;
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.requiereDotacion = exports.calcularDeducciones = exports.calcularMontoMaximoVales = exports.puedeRecibirValesExentos = exports.calcularDeduccionVivienda = exports.calcularDeduccionSalud = exports.calcularDeduccionDependientes = exports.esSalarioIntegral = exports.estaExentoIcbfSena = exports.tieneDerechoAuxilioTransporte = exports.validarSalarioMinimo = void 0;
4
+ const contants_1 = require("../contants");
5
+ /**
6
+ * Valida si un salario cumple con el salario mínimo legal
7
+ * @param salario - Salario a validar
8
+ * @returns true si el salario es >= SMLMV
9
+ */
10
+ const validarSalarioMinimo = (salario) => {
11
+ return salario >= contants_1.CONSTANTES.SMLMV;
12
+ };
13
+ exports.validarSalarioMinimo = validarSalarioMinimo;
14
+ /**
15
+ * Valida si un trabajador tiene derecho a auxilio de transporte
16
+ * Aplica para salarios <= 2 SMLMV
17
+ * @param salario - Salario mensual
18
+ * @returns true si tiene derecho a auxilio de transporte
19
+ */
20
+ const tieneDerechoAuxilioTransporte = (salario) => {
21
+ return salario <= contants_1.CONSTANTES.DOS_MINIMOS;
22
+ };
23
+ exports.tieneDerechoAuxilioTransporte = tieneDerechoAuxilioTransporte;
24
+ /**
25
+ * Valida si un salario está exento de ICBF y SENA
26
+ * Aplica para salarios <= 10 SMLMV
27
+ * @param salario - Salario mensual
28
+ * @returns true si está exento
29
+ */
30
+ const estaExentoIcbfSena = (salario) => {
31
+ return salario <= (10 * contants_1.CONSTANTES.SMLMV);
32
+ };
33
+ exports.estaExentoIcbfSena = estaExentoIcbfSena;
34
+ /**
35
+ * Valida si un salario es considerado integral
36
+ * Debe ser >= 13 SMLMV
37
+ * @param salario - Salario mensual
38
+ * @returns true si es salario integral
39
+ */
40
+ const esSalarioIntegral = (salario) => {
41
+ return salario >= contants_1.CONSTANTES.MINIMO_INTEGRAL;
42
+ };
43
+ exports.esSalarioIntegral = esSalarioIntegral;
44
+ /**
45
+ * Calcula la deducción por dependientes permitida
46
+ * @param numeroDependientes - Número de dependientes
47
+ * @returns Valor de la deducción anual
48
+ */
49
+ const calcularDeduccionDependientes = (numeroDependientes) => {
50
+ return contants_1.CONSTANTES.DEDUCIBLE_DEPENDIENTES * numeroDependientes;
51
+ };
52
+ exports.calcularDeduccionDependientes = calcularDeduccionDependientes;
53
+ /**
54
+ * Calcula la deducción por salud permitida
55
+ * @param gastosSalud - Gastos en salud del año
56
+ * @returns Valor deducible (máximo 32 UVT)
57
+ */
58
+ const calcularDeduccionSalud = (gastosSalud) => {
59
+ return Math.min(gastosSalud, contants_1.CONSTANTES.DEDUCIBLE_SALUD);
60
+ };
61
+ exports.calcularDeduccionSalud = calcularDeduccionSalud;
62
+ /**
63
+ * Calcula la deducción por vivienda permitida
64
+ * @param pagosVivienda - Pagos por vivienda del año
65
+ * @returns Valor deducible (máximo 100 UVT)
66
+ */
67
+ const calcularDeduccionVivienda = (pagosVivienda) => {
68
+ return Math.min(pagosVivienda, contants_1.CONSTANTES.MAXIMO_DEDUCIBLE_VIVIENDA);
69
+ };
70
+ exports.calcularDeduccionVivienda = calcularDeduccionVivienda;
71
+ /**
72
+ * Valida si el salario puede recibir vales de alimentación exentos
73
+ * @param salario - Salario mensual
74
+ * @returns true si puede recibir vales exentos
75
+ */
76
+ const puedeRecibirValesExentos = (salario) => {
77
+ const salarioAnual = salario * 12;
78
+ return salarioAnual <= contants_1.CONSTANTES.TOPE_SALARIAL_BENEFICIO_VALES;
79
+ };
80
+ exports.puedeRecibirValesExentos = puedeRecibirValesExentos;
81
+ /**
82
+ * Calcula el monto máximo de vales no gravados
83
+ * @param salario - Salario mensual
84
+ * @returns Monto máximo mensual de vales exentos
85
+ */
86
+ const calcularMontoMaximoVales = (salario) => {
87
+ if (!(0, exports.puedeRecibirValesExentos)(salario)) {
88
+ return 0;
89
+ }
90
+ return contants_1.CONSTANTES.MONTO_MAXIMO_VALES_NO_GRAVADOS / 12; // Mensual
91
+ };
92
+ exports.calcularMontoMaximoVales = calcularMontoMaximoVales;
93
+ /**
94
+ * Calcula todas las deducciones permitidas
95
+ * @param params - Parámetros para el cálculo
96
+ * @returns Objeto con detalle de deducciones
97
+ */
98
+ const calcularDeducciones = (params) => {
99
+ const dependientes = (0, exports.calcularDeduccionDependientes)(params.numeroDependientes || 0);
100
+ const salud = (0, exports.calcularDeduccionSalud)(params.gastosSalud || 0);
101
+ const vivienda = (0, exports.calcularDeduccionVivienda)(params.pagosVivienda || 0);
102
+ const totalDeducciones = dependientes + salud + vivienda;
103
+ return {
104
+ dependientes,
105
+ salud,
106
+ vivienda,
107
+ totalDeducciones,
108
+ };
109
+ };
110
+ exports.calcularDeducciones = calcularDeducciones;
111
+ /**
112
+ * Valida si el trabajador requiere dotación
113
+ * Aplica para salarios <= 2 SMLMV
114
+ * @param salario - Salario mensual
115
+ * @returns true si requiere dotación
116
+ */
117
+ const requiereDotacion = (salario) => {
118
+ return salario <= contants_1.CONSTANTES.DOS_MINIMOS;
119
+ };
120
+ exports.requiereDotacion = requiereDotacion;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Resultado del cálculo de prestaciones sociales
3
+ */
4
+ export interface PrestacionesSociales {
5
+ /** Cesantías mensuales */
6
+ cesantias: number;
7
+ /** Prima de servicios mensual */
8
+ prima: number;
9
+ /** Intereses sobre cesantías anuales */
10
+ interesesCesantias: number;
11
+ /** Vacaciones mensuales */
12
+ vacaciones: number;
13
+ /** Total de prestaciones sociales mensuales */
14
+ totalMensual: number;
15
+ /** Total de prestaciones sociales anuales */
16
+ totalAnual: number;
17
+ }
18
+ /**
19
+ * Calcula el salario base para prestaciones sociales
20
+ * Incluye auxilio de transporte si el salario es <= 2 SMLMV
21
+ * @param salario - Salario mensual base
22
+ * @returns Salario base para prestaciones
23
+ */
24
+ export declare const calcularSalarioBasePrestaciones: (salario: number) => number;
25
+ /**
26
+ * Calcula las cesantías mensuales (8.33%)
27
+ * @param salario - Salario mensual base
28
+ * @returns Valor mensual de cesantías
29
+ */
30
+ export declare const calcularCesantias: (salario: number) => number;
31
+ /**
32
+ * Calcula la prima de servicios mensual (8.33%)
33
+ * @param salario - Salario mensual base
34
+ * @returns Valor mensual de prima
35
+ */
36
+ export declare const calcularPrima: (salario: number) => number;
37
+ /**
38
+ * Calcula los intereses sobre cesantías (12% anual)
39
+ * @param salario - Salario mensual base
40
+ * @param meses - Meses trabajados (default 12)
41
+ * @returns Valor anual de intereses sobre cesantías
42
+ */
43
+ export declare const calcularInteresesCesantias: (salario: number, meses?: number) => number;
44
+ /**
45
+ * Calcula las vacaciones mensuales (4.17%)
46
+ * Equivale a 15 días por año
47
+ * @param salario - Salario mensual base (sin auxilio de transporte)
48
+ * @returns Valor mensual de vacaciones
49
+ */
50
+ export declare const calcularVacaciones: (salario: number) => number;
51
+ /**
52
+ * Calcula todas las prestaciones sociales
53
+ * @param salario - Salario mensual base
54
+ * @param mesesTrabajados - Meses trabajados para el cálculo de intereses (default 12)
55
+ * @returns Objeto con detalle de prestaciones
56
+ */
57
+ export declare const calcularPrestacionesSociales: (salario: number, mesesTrabajados?: number) => PrestacionesSociales;
58
+ /**
59
+ * Calcula el costo total del empleado incluyendo prestaciones
60
+ * @param salario - Salario mensual base
61
+ * @returns Costo mensual total
62
+ */
63
+ export declare const calcularCostoTotalEmpleadoPrestaciones: (salario: number) => number;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcularCostoTotalEmpleadoPrestaciones = exports.calcularPrestacionesSociales = exports.calcularVacaciones = exports.calcularInteresesCesantias = exports.calcularPrima = exports.calcularCesantias = exports.calcularSalarioBasePrestaciones = void 0;
4
+ const contants_1 = require("../contants");
5
+ /**
6
+ * Calcula el salario base para prestaciones sociales
7
+ * Incluye auxilio de transporte si el salario es <= 2 SMLMV
8
+ * @param salario - Salario mensual base
9
+ * @returns Salario base para prestaciones
10
+ */
11
+ const calcularSalarioBasePrestaciones = (salario) => {
12
+ if (salario <= contants_1.CONSTANTES.DOS_MINIMOS) {
13
+ return salario + contants_1.CONSTANTES.AUX_TRANSPORTE;
14
+ }
15
+ return salario;
16
+ };
17
+ exports.calcularSalarioBasePrestaciones = calcularSalarioBasePrestaciones;
18
+ /**
19
+ * Calcula las cesantías mensuales (8.33%)
20
+ * @param salario - Salario mensual base
21
+ * @returns Valor mensual de cesantías
22
+ */
23
+ const calcularCesantias = (salario) => {
24
+ const salarioBase = (0, exports.calcularSalarioBasePrestaciones)(salario);
25
+ return salarioBase * contants_1.TASAS_PRESTACIONES.CESANTIAS;
26
+ };
27
+ exports.calcularCesantias = calcularCesantias;
28
+ /**
29
+ * Calcula la prima de servicios mensual (8.33%)
30
+ * @param salario - Salario mensual base
31
+ * @returns Valor mensual de prima
32
+ */
33
+ const calcularPrima = (salario) => {
34
+ const salarioBase = (0, exports.calcularSalarioBasePrestaciones)(salario);
35
+ return salarioBase * contants_1.TASAS_PRESTACIONES.PRIMA;
36
+ };
37
+ exports.calcularPrima = calcularPrima;
38
+ /**
39
+ * Calcula los intereses sobre cesantías (12% anual)
40
+ * @param salario - Salario mensual base
41
+ * @param meses - Meses trabajados (default 12)
42
+ * @returns Valor anual de intereses sobre cesantías
43
+ */
44
+ const calcularInteresesCesantias = (salario, meses = 12) => {
45
+ const cesantiasAnuales = (0, exports.calcularCesantias)(salario) * meses;
46
+ return cesantiasAnuales * contants_1.TASAS_PRESTACIONES.INTERESES_CESANTIAS;
47
+ };
48
+ exports.calcularInteresesCesantias = calcularInteresesCesantias;
49
+ /**
50
+ * Calcula las vacaciones mensuales (4.17%)
51
+ * Equivale a 15 días por año
52
+ * @param salario - Salario mensual base (sin auxilio de transporte)
53
+ * @returns Valor mensual de vacaciones
54
+ */
55
+ const calcularVacaciones = (salario) => {
56
+ // Las vacaciones NO incluyen auxilio de transporte
57
+ return salario * contants_1.TASAS_PRESTACIONES.VACACIONES;
58
+ };
59
+ exports.calcularVacaciones = calcularVacaciones;
60
+ /**
61
+ * Calcula todas las prestaciones sociales
62
+ * @param salario - Salario mensual base
63
+ * @param mesesTrabajados - Meses trabajados para el cálculo de intereses (default 12)
64
+ * @returns Objeto con detalle de prestaciones
65
+ */
66
+ const calcularPrestacionesSociales = (salario, mesesTrabajados = 12) => {
67
+ const cesantias = (0, exports.calcularCesantias)(salario);
68
+ const prima = (0, exports.calcularPrima)(salario);
69
+ const interesesCesantias = (0, exports.calcularInteresesCesantias)(salario, mesesTrabajados);
70
+ const vacaciones = (0, exports.calcularVacaciones)(salario);
71
+ const totalMensual = cesantias + prima + vacaciones;
72
+ const totalAnual = (cesantias + prima + vacaciones) * 12 + interesesCesantias;
73
+ return {
74
+ cesantias,
75
+ prima,
76
+ interesesCesantias,
77
+ vacaciones,
78
+ totalMensual,
79
+ totalAnual,
80
+ };
81
+ };
82
+ exports.calcularPrestacionesSociales = calcularPrestacionesSociales;
83
+ /**
84
+ * Calcula el costo total del empleado incluyendo prestaciones
85
+ * @param salario - Salario mensual base
86
+ * @returns Costo mensual total
87
+ */
88
+ const calcularCostoTotalEmpleadoPrestaciones = (salario) => {
89
+ const prestaciones = (0, exports.calcularPrestacionesSociales)(salario);
90
+ return salario + prestaciones.totalMensual;
91
+ };
92
+ exports.calcularCostoTotalEmpleadoPrestaciones = calcularCostoTotalEmpleadoPrestaciones;
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Tipo de riesgo de ARL
3
+ */
4
+ export type TipoRiesgoARL = 1 | 2 | 3 | 4 | 5;
5
+ /**
6
+ * Resultado del cálculo de seguridad social
7
+ */
8
+ export interface SeguridadSocial {
9
+ /** Ingreso Base de Cotización */
10
+ ibc: number;
11
+ /** Salud aporte empleado (4%) */
12
+ saludEmpleado: number;
13
+ /** Salud aporte empleador (8.5%) */
14
+ saludEmpleador: number;
15
+ /** Total aporte salud (12.5%) */
16
+ totalSalud: number;
17
+ /** Pensión aporte empleado (4%) */
18
+ pensionEmpleado: number;
19
+ /** Pensión aporte empleador (12%) */
20
+ pensionEmpleador: number;
21
+ /** Total aporte pensión (16%) */
22
+ totalPension: number;
23
+ /** ARL (variable según riesgo, paga empleador) */
24
+ arl: number;
25
+ /** Total aportes empleado (salud + pensión) */
26
+ totalEmpleado: number;
27
+ /** Total aportes empleador (salud + pensión + ARL) */
28
+ totalEmpleador: number;
29
+ /** Total seguridad social */
30
+ totalSeguridadSocial: number;
31
+ }
32
+ /**
33
+ * Resultado del cálculo de parafiscales
34
+ */
35
+ export interface Parafiscales {
36
+ /** Caja de Compensación (4%, siempre se paga) */
37
+ cajaCompensacion: number;
38
+ /** ICBF (3%, solo si salario > 10 SMLMV) */
39
+ icbf: number;
40
+ /** SENA (2%, solo si salario > 10 SMLMV) */
41
+ sena: number;
42
+ /** Total parafiscales */
43
+ totalParafiscales: number;
44
+ /** Indica si está exento de ICBF y SENA */
45
+ exentoIcbfSena: boolean;
46
+ }
47
+ /**
48
+ * Calcula el Ingreso Base de Cotización (IBC)
49
+ * Incluye salario + auxilio de transporte si aplica
50
+ * @param salario - Salario mensual base
51
+ * @returns IBC para seguridad social
52
+ */
53
+ export declare const calcularIBC: (salario: number) => number;
54
+ /**
55
+ * Obtiene la tasa de ARL según el tipo de riesgo
56
+ * @param riesgo - Tipo de riesgo (1 a 5)
57
+ * @returns Tasa de ARL
58
+ */
59
+ export declare const obtenerTasaARL: (riesgo: TipoRiesgoARL) => number;
60
+ /**
61
+ * Calcula los aportes a seguridad social
62
+ * @param salario - Salario mensual base
63
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
64
+ * @returns Objeto con detalle de aportes a seguridad social
65
+ */
66
+ export declare const calcularSeguridadSocial: (salario: number, riesgoARL?: TipoRiesgoARL) => SeguridadSocial;
67
+ /**
68
+ * Calcula los aportes parafiscales
69
+ * ICBF y SENA solo aplican para salarios > 10 SMLMV
70
+ * @param salario - Salario mensual base
71
+ * @returns Objeto con detalle de parafiscales
72
+ */
73
+ export declare const calcularParafiscales: (salario: number) => Parafiscales;
74
+ /**
75
+ * Calcula el costo total de seguridad social y parafiscales para el empleador
76
+ * @param salario - Salario mensual base
77
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
78
+ * @returns Costo total mensual para el empleador
79
+ */
80
+ export declare const calcularCostoTotalSeguridadSocial: (salario: number, riesgoARL?: TipoRiesgoARL) => number;
81
+ /**
82
+ * Calcula el salario neto después de deducciones de seguridad social
83
+ * @param salario - Salario mensual bruto
84
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
85
+ * @returns Salario neto después de deducciones
86
+ */
87
+ export declare const calcularSalarioNeto: (salario: number, riesgoARL?: TipoRiesgoARL) => number;
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calcularSalarioNeto = exports.calcularCostoTotalSeguridadSocial = exports.calcularParafiscales = exports.calcularSeguridadSocial = exports.obtenerTasaARL = exports.calcularIBC = void 0;
4
+ const contants_1 = require("../contants");
5
+ /**
6
+ * Calcula el Ingreso Base de Cotización (IBC)
7
+ * Incluye salario + auxilio de transporte si aplica
8
+ * @param salario - Salario mensual base
9
+ * @returns IBC para seguridad social
10
+ */
11
+ const calcularIBC = (salario) => {
12
+ let ibc = salario;
13
+ // Agregar auxilio de transporte si el salario es <= 2 SMLMV
14
+ if (salario <= contants_1.CONSTANTES.DOS_MINIMOS) {
15
+ ibc += contants_1.CONSTANTES.AUX_TRANSPORTE;
16
+ }
17
+ // El IBC no puede superar el tope establecido
18
+ if (ibc > contants_1.CONSTANTES.TOPE_IBC_SEG_SOCIAL) {
19
+ ibc = contants_1.CONSTANTES.TOPE_IBC_SEG_SOCIAL;
20
+ }
21
+ // El IBC mínimo es 1 SMLMV
22
+ if (ibc < contants_1.CONSTANTES.SMLMV) {
23
+ ibc = contants_1.CONSTANTES.SMLMV;
24
+ }
25
+ return ibc;
26
+ };
27
+ exports.calcularIBC = calcularIBC;
28
+ /**
29
+ * Obtiene la tasa de ARL según el tipo de riesgo
30
+ * @param riesgo - Tipo de riesgo (1 a 5)
31
+ * @returns Tasa de ARL
32
+ */
33
+ const obtenerTasaARL = (riesgo) => {
34
+ const tasas = {
35
+ 1: 0.00522, // 0.522%
36
+ 2: 0.01044, // 1.044%
37
+ 3: 0.02436, // 2.436%
38
+ 4: 0.04350, // 4.350%
39
+ 5: 0.06960, // 6.960%
40
+ };
41
+ return tasas[riesgo];
42
+ };
43
+ exports.obtenerTasaARL = obtenerTasaARL;
44
+ /**
45
+ * Calcula los aportes a seguridad social
46
+ * @param salario - Salario mensual base
47
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
48
+ * @returns Objeto con detalle de aportes a seguridad social
49
+ */
50
+ const calcularSeguridadSocial = (salario, riesgoARL = 1) => {
51
+ const ibc = (0, exports.calcularIBC)(salario);
52
+ const tasaARL = (0, exports.obtenerTasaARL)(riesgoARL);
53
+ const saludEmpleado = ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.SALUD_EMPLEADO;
54
+ const saludEmpleador = ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.SALUD_EMPLEADOR;
55
+ const totalSalud = saludEmpleado + saludEmpleador;
56
+ const pensionEmpleado = ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.PENSION_EMPLEADO;
57
+ const pensionEmpleador = ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.PENSION_EMPLEADOR;
58
+ const totalPension = pensionEmpleado + pensionEmpleador;
59
+ const arl = ibc * tasaARL;
60
+ const totalEmpleado = saludEmpleado + pensionEmpleado;
61
+ const totalEmpleador = saludEmpleador + pensionEmpleador + arl;
62
+ const totalSeguridadSocial = totalSalud + totalPension + arl;
63
+ return {
64
+ ibc,
65
+ saludEmpleado,
66
+ saludEmpleador,
67
+ totalSalud,
68
+ pensionEmpleado,
69
+ pensionEmpleador,
70
+ totalPension,
71
+ arl,
72
+ totalEmpleado,
73
+ totalEmpleador,
74
+ totalSeguridadSocial,
75
+ };
76
+ };
77
+ exports.calcularSeguridadSocial = calcularSeguridadSocial;
78
+ /**
79
+ * Calcula los aportes parafiscales
80
+ * ICBF y SENA solo aplican para salarios > 10 SMLMV
81
+ * @param salario - Salario mensual base
82
+ * @returns Objeto con detalle de parafiscales
83
+ */
84
+ const calcularParafiscales = (salario) => {
85
+ const ibc = (0, exports.calcularIBC)(salario);
86
+ const exentoIcbfSena = salario <= (10 * contants_1.CONSTANTES.SMLMV);
87
+ const cajaCompensacion = ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.CAJA_COMPENSACION;
88
+ const icbf = exentoIcbfSena ? 0 : ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.ICBF;
89
+ const sena = exentoIcbfSena ? 0 : ibc * contants_1.TASAS_SEGURIDAD_SOCIAL.SENA;
90
+ const totalParafiscales = cajaCompensacion + icbf + sena;
91
+ return {
92
+ cajaCompensacion,
93
+ icbf,
94
+ sena,
95
+ totalParafiscales,
96
+ exentoIcbfSena,
97
+ };
98
+ };
99
+ exports.calcularParafiscales = calcularParafiscales;
100
+ /**
101
+ * Calcula el costo total de seguridad social y parafiscales para el empleador
102
+ * @param salario - Salario mensual base
103
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
104
+ * @returns Costo total mensual para el empleador
105
+ */
106
+ const calcularCostoTotalSeguridadSocial = (salario, riesgoARL = 1) => {
107
+ const seguridadSocial = (0, exports.calcularSeguridadSocial)(salario, riesgoARL);
108
+ const parafiscales = (0, exports.calcularParafiscales)(salario);
109
+ return seguridadSocial.totalEmpleador + parafiscales.totalParafiscales;
110
+ };
111
+ exports.calcularCostoTotalSeguridadSocial = calcularCostoTotalSeguridadSocial;
112
+ /**
113
+ * Calcula el salario neto después de deducciones de seguridad social
114
+ * @param salario - Salario mensual bruto
115
+ * @param riesgoARL - Tipo de riesgo para ARL (default 1)
116
+ * @returns Salario neto después de deducciones
117
+ */
118
+ const calcularSalarioNeto = (salario, riesgoARL = 1) => {
119
+ const seguridadSocial = (0, exports.calcularSeguridadSocial)(salario, riesgoARL);
120
+ return salario - seguridadSocial.totalEmpleado;
121
+ };
122
+ exports.calcularSalarioNeto = calcularSalarioNeto;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tributos-co",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Cálculos de salario, recargos de salarios e impuestos (IVA, ICA, renta) en Colombia",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",