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 +273 -2
- package/dist/contants/index.d.ts +31 -0
- package/dist/contants/index.js +35 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +33 -1
- package/dist/modules/deducciones.d.ts +87 -0
- package/dist/modules/deducciones.js +120 -0
- package/dist/modules/prestaciones.d.ts +63 -0
- package/dist/modules/prestaciones.js +92 -0
- package/dist/modules/seguridad-social.d.ts +87 -0
- package/dist/modules/seguridad-social.js +122 -0
- package/package.json +1 -1
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
|
package/dist/contants/index.d.ts
CHANGED
|
@@ -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
|
+
};
|
package/dist/contants/index.js
CHANGED
|
@@ -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;
|