04 — Cumplimiento
legal México (LFT, NOM-037, INAI)
1. Ley Federal del Trabajo —
jornadas
| Jornada |
Horas |
Franja |
| Diurna |
8 h |
06:00 – 20:00 |
| Nocturna |
7 h |
20:00 – 06:00 |
| Mixta |
7.5 h |
comprende parte diurna y parte nocturna (nocturna < 3.5 h) |
Implementación: backend/app/services/payroll_rules.py
(classify_jornada).
- Límite: 3 h/día y no más de 3 veces por
semana.
- Primeras 9 horas extra/semana → pago
doble (100 % sobre salario ordinario).
- Excedente de 9/semana → pago triple (200 %).
- Las horas extra se calculan por semana laboral;
legal_config permite ajustar el umbral.
3. Retardos
retardo = hora_real_de_entrada − shifts.start_time
(cuando > 0). Reportado por empleado y período; opcionalmente con
tolerancia (grace period) configurable por empresa.
4. NOM-037 (Teletrabajo) —
perfiles remotos
- Registro de horas trabajadas,
pausas
(
pause_start/pause_end) y desconexión
digital.
- La jornada remota se registra igual que la presencial, pero sin
restricción de geocerca (
geofence_status = not_required),
guardando coordenadas para evidencia.
- Reporte de pausas y franjas de desconexión por día, exportable para
la STPS.
5. Trazabilidad y
auditoría (inmutabilidad)
attendance_events es append-only
(trigger SQL + REVOKE); cumple con la exigencia de
trazabilidad ante inspecciones de la Secretaría del Trabajo.
- Cadena de hash
(
hash/prev_hash) → evidencia de no alteración
(tamper-evidence).
- Correcciones legales vía
attendance_audit_log (nunca
editando el evento original).
6. Privacidad (INAI)
- Consentimiento explícito: tabla
consents por tipo (gps,
biometric, face, data) y versión;
el usuario debe aceptar antes de usar la función correspondiente.
- Aviso de privacidad en la app y panel; derechos
ARCO documentados.
- Cifrado en tránsito (TLS 1.3) y en
reposo (PII con AES-256-GCM,
app/core/crypto.py).
- Minimización: solo se recopilan coordenadas al
registrar, no tracking continuo.
7. Reporte de nómina (resumen)
GET /api/v1/reports/timesheet devuelve por empleado y
rango de fechas:
- horas ordinarias, horas extra dobles, horas extra triples, retardos,
pausas totales, franjas de desconexión (NOM-037), y estado de
consentimientos.