Sistema NEXUS v3.4 migrado con: Estructura principal: - core/orchestration: Sistema SIMCO + CAPVED (27 directivas, 28 perfiles) - core/catalog: Catalogo de funcionalidades reutilizables - shared/knowledge-base: Base de conocimiento compartida - devtools/scripts: Herramientas de desarrollo - control-plane/registries: Control de servicios y CI/CD - orchestration/: Configuracion de orquestacion de agentes Proyectos incluidos (11): - gamilit (submodule -> GitHub) - trading-platform (OrbiquanTIA) - erp-suite con 5 verticales: - erp-core, construccion, vidrio-templado - mecanicas-diesel, retail, clinicas - betting-analytics - inmobiliaria-analytics - platform_marketing_content - pos-micro, erp-basico Configuracion: - .gitignore completo para Node.js/Python/Docker - gamilit como submodule (git@github.com:rckrdmrd/gamilit-workspace.git) - Sistema de puertos estandarizado (3005-3199) Generated with NEXUS v3.4 Migration System EPIC-010: Configuracion Git y Repositorios
834 lines
33 KiB
YAML
834 lines
33 KiB
YAML
# TRACEABILITY - MAE-011: Nómina
|
|
metadata:
|
|
modulo: MAE-011
|
|
nombre: Nómina
|
|
version: 1.0.0
|
|
fecha: 2025-12-06
|
|
reutilizacion_core: 65%
|
|
descripcion: Gestión integral de nómina para personal de obra, incluyendo cálculo de nómina, timbrado CFDI, deducciones y percepciones, finiquitos e integración con checador biométrico
|
|
dependencias:
|
|
- MGN-001 # Usuarios y Autenticación
|
|
- MGN-002 # RBAC
|
|
- MGN-003 # Multi-tenancy
|
|
- MGN-005 # Catálogos
|
|
- MAI-001 # Proyectos de Construcción
|
|
apps_moviles:
|
|
- MOB-001 # Checador Biométrico
|
|
|
|
requerimientos:
|
|
- id: RF-NOM-001
|
|
titulo: Cálculo de Nómina
|
|
descripcion: Procesamiento automático de nómina semanal, quincenal o mensual con cálculo de percepciones, deducciones e impuestos
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-NOM-001-01
|
|
descripcion: Configurar períodos de nómina (semanal, quincenal, mensual)
|
|
- id: ESP-NOM-001-02
|
|
descripcion: Calcular salarios base según contrato y días trabajados
|
|
- id: ESP-NOM-001-03
|
|
descripcion: Calcular tiempo extra (simple y doble) desde checador biométrico
|
|
- id: ESP-NOM-001-04
|
|
descripcion: Calcular prestaciones (prima dominical, vacaciones, aguinaldo)
|
|
- id: ESP-NOM-001-05
|
|
descripcion: Aplicar deducciones automáticas (IMSS, ISR, infonavit, pensiones)
|
|
- id: ESP-NOM-001-06
|
|
descripcion: Calcular cuotas patronales para provisiones
|
|
- id: ESP-NOM-001-07
|
|
descripcion: Generar dispersión bancaria por CLABE
|
|
- id: ESP-NOM-001-08
|
|
descripcion: Validar nómina antes de procesamiento final
|
|
historias_usuario:
|
|
- id: US-NOM-001-01
|
|
titulo: Como jefe de RH necesito procesar la nómina del período
|
|
criterios_aceptacion:
|
|
- Seleccionar período de nómina (semanal/quincenal/mensual)
|
|
- Importar asistencias desde checador biométrico (MOB-001)
|
|
- Revisar y ajustar incidencias (faltas, retardos, permisos)
|
|
- Calcular automáticamente percepciones y deducciones
|
|
- Validar totales antes de autorizar
|
|
- id: US-NOM-001-02
|
|
titulo: Como jefe de RH necesito calcular tiempo extra automáticamente
|
|
criterios_aceptacion:
|
|
- Obtener horas trabajadas desde MOB-001
|
|
- Identificar horas extra simples (después de 8 hrs diarias)
|
|
- Identificar horas extra dobles (después de 9 hrs o en descanso)
|
|
- Aplicar factor de pago según tipo de tiempo extra
|
|
- Generar reporte de tiempo extra por empleado
|
|
- id: US-NOM-001-03
|
|
titulo: Como contador necesito generar dispersión bancaria
|
|
criterios_aceptacion:
|
|
- Generar archivo de dispersión en formato bancario
|
|
- Incluir CLABE, nombre completo y monto neto
|
|
- Validar que suma de dispersión coincida con nómina
|
|
- Exportar en formato del banco (BBVA, Santander, etc)
|
|
- Marcar nómina como dispersada
|
|
- id: US-NOM-001-04
|
|
titulo: Como empleado necesito consultar mi recibo de nómina
|
|
criterios_aceptacion:
|
|
- Ver listado de períodos de nómina
|
|
- Descargar recibo en PDF
|
|
- Ver desglose de percepciones y deducciones
|
|
- Consultar histórico de pagos
|
|
tablas:
|
|
- payroll_management.periodos_nomina
|
|
- payroll_management.nominas
|
|
- payroll_management.nominas_detalle
|
|
- payroll_management.nominas_percepciones
|
|
- payroll_management.nominas_deducciones
|
|
- payroll_management.nominas_provision_patronal
|
|
- payroll_management.dispersiones_bancarias
|
|
endpoints:
|
|
- POST /api/v1/nomina/periodos
|
|
- GET /api/v1/nomina/periodos
|
|
- POST /api/v1/nomina/calcular
|
|
- GET /api/v1/nomina/:periodo_id
|
|
- PUT /api/v1/nomina/:periodo_id
|
|
- POST /api/v1/nomina/:periodo_id/validar
|
|
- POST /api/v1/nomina/:periodo_id/autorizar
|
|
- GET /api/v1/nomina/:periodo_id/dispersion
|
|
- POST /api/v1/nomina/:periodo_id/dispersar
|
|
- GET /api/v1/nomina/empleado/:empleado_id/recibos
|
|
- GET /api/v1/nomina/empleado/:empleado_id/recibo/:periodo_id/pdf
|
|
componentes_ui:
|
|
- NominasListView
|
|
- NominaCalculoWizard
|
|
- NominaDetalleTable
|
|
- NominaValidacionPanel
|
|
- NominaDispersionGenerator
|
|
- ReciboNominaPDFViewer
|
|
- EmpleadoRecibosHistory
|
|
- TiempoExtraCalculator
|
|
integraciones:
|
|
- modulo: MOB-001
|
|
descripcion: Importación de asistencias y horas trabajadas desde checador biométrico
|
|
- modulo: MAI-001
|
|
descripcion: Vinculación de empleados con obras de construcción
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de empleados, departamentos y puestos
|
|
estado: pendiente
|
|
|
|
- id: RF-NOM-002
|
|
titulo: Timbrado CFDI Nómina
|
|
descripcion: Generación y timbrado de comprobantes fiscales digitales (CFDI) de nómina cumpliendo normativa SAT
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-NOM-002-01
|
|
descripcion: Generar XML de nómina según estándar SAT vigente
|
|
- id: ESP-NOM-002-02
|
|
descripcion: Integración con PAC (Proveedor Autorizado de Certificación)
|
|
- id: ESP-NOM-002-03
|
|
descripcion: Timbrado automático al autorizar nómina
|
|
- id: ESP-NOM-002-04
|
|
descripcion: Almacenar XML y PDF timbrados
|
|
- id: ESP-NOM-002-05
|
|
descripcion: Envío automático de CFDI por email a empleados
|
|
- id: ESP-NOM-002-06
|
|
descripcion: Consulta de estatus de timbrado en PAC
|
|
- id: ESP-NOM-002-07
|
|
descripcion: Cancelación de CFDI de nómina
|
|
- id: ESP-NOM-002-08
|
|
descripcion: Registro de nóminas extraordinarias (aguinaldo, PTU, bonos)
|
|
historias_usuario:
|
|
- id: US-NOM-002-01
|
|
titulo: Como jefe de RH necesito timbrar recibos de nómina
|
|
criterios_aceptacion:
|
|
- Autorizar nómina calculada
|
|
- Generar XML de cada recibo según estándar SAT
|
|
- Enviar lote a PAC para timbrado
|
|
- Recibir UUID de timbrado
|
|
- Almacenar XML y PDF timbrados
|
|
- Enviar CFDI por email a empleados
|
|
- id: US-NOM-002-02
|
|
titulo: Como contador necesito cancelar CFDIs de nómina
|
|
criterios_aceptacion:
|
|
- Seleccionar CFDI a cancelar
|
|
- Especificar motivo de cancelación
|
|
- Solicitar cancelación al PAC
|
|
- Recibir acuse de cancelación
|
|
- Marcar recibo como cancelado
|
|
- Registrar en bitácora de auditoría
|
|
- id: US-NOM-002-03
|
|
titulo: Como empleado necesito descargar mi CFDI de nómina
|
|
criterios_aceptacion:
|
|
- Ver listado de CFDIs recibidos
|
|
- Descargar XML timbrado
|
|
- Descargar PDF con código QR
|
|
- Verificar autenticidad en portal SAT
|
|
- id: US-NOM-002-04
|
|
titulo: Como jefe de RH necesito procesar nóminas extraordinarias
|
|
criterios_aceptacion:
|
|
- Crear período extraordinario (aguinaldo, PTU, bono)
|
|
- Calcular montos por empleado
|
|
- Generar CFDI con tipo de nómina extraordinaria
|
|
- Timbrar y dispersar
|
|
tablas:
|
|
- payroll_management.cfdi_nomina
|
|
- payroll_management.cfdi_timbrado_log
|
|
- payroll_management.cfdi_cancelaciones
|
|
- payroll_management.nominas_extraordinarias
|
|
- payroll_management.pac_configuration
|
|
endpoints:
|
|
- POST /api/v1/nomina/:periodo_id/timbrar
|
|
- GET /api/v1/nomina/cfdi/:uuid
|
|
- GET /api/v1/nomina/cfdi/:uuid/xml
|
|
- GET /api/v1/nomina/cfdi/:uuid/pdf
|
|
- POST /api/v1/nomina/cfdi/:uuid/cancelar
|
|
- POST /api/v1/nomina/cfdi/:uuid/reenviar-email
|
|
- GET /api/v1/nomina/cfdi/estatus/:uuid
|
|
- POST /api/v1/nomina/extraordinaria
|
|
- GET /api/v1/nomina/pac/saldo-timbres
|
|
componentes_ui:
|
|
- CFDITimbradoPanel
|
|
- CFDIStatusMonitor
|
|
- CFDICancelacionModal
|
|
- CFDIDownloadViewer
|
|
- NominaExtraordinariaForm
|
|
- PACConfigurationPanel
|
|
- TimbradoLogTable
|
|
- CFDIValidationTool
|
|
integraciones:
|
|
- servicio_externo: PAC (Finkok, SW Sapien, etc)
|
|
descripcion: Timbrado y cancelación de CFDIs
|
|
- servicio_externo: SMTP
|
|
descripcion: Envío de CFDIs por email
|
|
- modulo: MGN-007
|
|
descripcion: Auditoría de timbrado y cancelaciones
|
|
estado: pendiente
|
|
|
|
- id: RF-NOM-003
|
|
titulo: Deducciones y Percepciones
|
|
descripcion: Gestión completa de conceptos de deducciones y percepciones con cálculos automáticos y manuales
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-NOM-003-01
|
|
descripcion: Catálogo de percepciones (salario, tiempo extra, prima dominical, vacaciones, etc)
|
|
- id: ESP-NOM-003-02
|
|
descripcion: Catálogo de deducciones (IMSS, ISR, infonavit, préstamos, pensión alimenticia)
|
|
- id: ESP-NOM-003-03
|
|
descripcion: Configurar fórmulas de cálculo por concepto
|
|
- id: ESP-NOM-003-04
|
|
descripcion: Aplicar deducciones fijas y variables por empleado
|
|
- id: ESP-NOM-003-05
|
|
descripcion: Gestionar préstamos de nómina con amortización automática
|
|
- id: ESP-NOM-003-06
|
|
descripcion: Calcular ISR con tablas y subsidios vigentes
|
|
- id: ESP-NOM-003-07
|
|
descripcion: Calcular IMSS, infonavit y otras cuotas obrero-patronales
|
|
- id: ESP-NOM-003-08
|
|
descripcion: Deducciones judiciales (pensión alimenticia)
|
|
historias_usuario:
|
|
- id: US-NOM-003-01
|
|
titulo: Como jefe de RH necesito gestionar préstamos de empleados
|
|
criterios_aceptacion:
|
|
- Registrar préstamo con monto y plazo
|
|
- Calcular amortización quincenal o mensual
|
|
- Aplicar descuento automático en cada nómina
|
|
- Ver saldo pendiente de cada préstamo
|
|
- Liquidar anticipadamente préstamos
|
|
- Generar reporte de préstamos activos
|
|
- id: US-NOM-003-02
|
|
titulo: Como contador necesito configurar tablas ISR actualizadas
|
|
criterios_aceptacion:
|
|
- Cargar tablas de ISR vigentes por período fiscal
|
|
- Configurar límites inferiores y superiores
|
|
- Definir porcentajes y cuotas fijas
|
|
- Aplicar subsidio al empleo automáticamente
|
|
- Validar cálculo de ISR por empleado
|
|
- id: US-NOM-003-03
|
|
titulo: Como jefe de RH necesito aplicar deducciones especiales
|
|
criterios_aceptacion:
|
|
- Crear deducción manual para un empleado
|
|
- Especificar si es única o recurrente
|
|
- Definir monto fijo o porcentaje
|
|
- Aplicar en período específico
|
|
- Ver histórico de deducciones por empleado
|
|
- id: US-NOM-003-04
|
|
titulo: Como jefe de RH necesito gestionar pensiones alimenticias
|
|
criterios_aceptacion:
|
|
- Registrar orden judicial de pensión
|
|
- Configurar porcentaje o monto fijo a descontar
|
|
- Aplicar automáticamente en cada nómina
|
|
- Generar reporte mensual para autoridad
|
|
- Exportar dispersión a cuenta del acreedor
|
|
tablas:
|
|
- payroll_management.conceptos_percepciones
|
|
- payroll_management.conceptos_deducciones
|
|
- payroll_management.formulas_calculo
|
|
- payroll_management.empleado_percepciones_fijas
|
|
- payroll_management.empleado_deducciones_fijas
|
|
- payroll_management.prestamos_empleados
|
|
- payroll_management.amortizaciones_prestamos
|
|
- payroll_management.tablas_isr
|
|
- payroll_management.pensiones_alimenticias
|
|
endpoints:
|
|
- GET /api/v1/nomina/conceptos/percepciones
|
|
- POST /api/v1/nomina/conceptos/percepciones
|
|
- GET /api/v1/nomina/conceptos/deducciones
|
|
- POST /api/v1/nomina/conceptos/deducciones
|
|
- POST /api/v1/nomina/empleado/:id/prestamo
|
|
- GET /api/v1/nomina/empleado/:id/prestamos
|
|
- PUT /api/v1/nomina/prestamo/:id/liquidar
|
|
- POST /api/v1/nomina/empleado/:id/deduccion-especial
|
|
- GET /api/v1/nomina/empleado/:id/deducciones
|
|
- POST /api/v1/nomina/tablas-isr
|
|
- GET /api/v1/nomina/tablas-isr/vigente
|
|
- POST /api/v1/nomina/empleado/:id/pension-alimenticia
|
|
- GET /api/v1/nomina/pensiones-alimenticias/reporte
|
|
componentes_ui:
|
|
- ConceptosNominaManager
|
|
- FormulaCalculoEditor
|
|
- PrestamosEmpleadoPanel
|
|
- PrestamoFormModal
|
|
- AmortizacionesTable
|
|
- DeduccionEspecialModal
|
|
- TablasISRManager
|
|
- PensionAlimenticiaForm
|
|
- PercepcionesDeduccionesReport
|
|
- CalculadoraISR
|
|
integraciones:
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de empleados
|
|
- modulo: MAI-001
|
|
descripcion: Vinculación de costos con obras
|
|
- modulo: MGN-010
|
|
descripcion: Provisiones contables de nómina
|
|
estado: pendiente
|
|
|
|
- id: RF-NOM-004
|
|
titulo: Finiquitos
|
|
descripcion: Cálculo y generación de finiquitos y liquidaciones por terminación de relación laboral
|
|
prioridad: media
|
|
especificaciones:
|
|
- id: ESP-NOM-004-01
|
|
descripcion: Calcular finiquitos por renuncia voluntaria
|
|
- id: ESP-NOM-004-02
|
|
descripcion: Calcular liquidaciones por despido sin causa
|
|
- id: ESP-NOM-004-03
|
|
descripcion: Calcular indemnizaciones por despido justificado
|
|
- id: ESP-NOM-004-04
|
|
descripcion: Incluir vacaciones no disfrutadas y prima vacacional
|
|
- id: ESP-NOM-004-05
|
|
descripcion: Calcular aguinaldo proporcional
|
|
- id: ESP-NOM-004-06
|
|
descripcion: Aplicar antigüedad para prima de antigüedad
|
|
- id: ESP-NOM-004-07
|
|
descripcion: Generar CFDI de nómina tipo egreso
|
|
- id: ESP-NOM-004-08
|
|
descripcion: Generar documento de finiquito para firma
|
|
historias_usuario:
|
|
- id: US-NOM-004-01
|
|
titulo: Como jefe de RH necesito calcular finiquito por renuncia
|
|
criterios_aceptacion:
|
|
- Seleccionar empleado y fecha de baja
|
|
- Calcular días trabajados del último período
|
|
- Calcular vacaciones pendientes y prima vacacional
|
|
- Calcular aguinaldo proporcional
|
|
- Calcular prima de antigüedad si aplica
|
|
- Ver desglose completo antes de autorizar
|
|
- id: US-NOM-004-02
|
|
titulo: Como jefe de RH necesito procesar liquidación por despido
|
|
criterios_aceptacion:
|
|
- Especificar tipo de terminación (con/sin causa)
|
|
- Calcular indemnización de 3 meses si aplica
|
|
- Calcular 20 días por año de antigüedad
|
|
- Incluir prestaciones proporcionales
|
|
- Generar formato de finiquito
|
|
- Timbrar CFDI de egreso
|
|
- id: US-NOM-004-03
|
|
titulo: Como empleado necesito consultar mi finiquito
|
|
criterios_aceptacion:
|
|
- Ver desglose de conceptos de finiquito
|
|
- Descargar PDF de finiquito
|
|
- Descargar CFDI timbrado
|
|
- Consultar fecha estimada de pago
|
|
- id: US-NOM-004-04
|
|
titulo: Como contador necesito generar reportes de finiquitos
|
|
criterios_aceptacion:
|
|
- Ver finiquitos procesados por período
|
|
- Exportar para póliza contable
|
|
- Generar dispersión de finiquitos
|
|
- Consultar provisiones de finiquitos
|
|
tablas:
|
|
- payroll_management.finiquitos
|
|
- payroll_management.finiquitos_detalle
|
|
- payroll_management.finiquitos_conceptos
|
|
- payroll_management.tipos_terminacion
|
|
- payroll_management.cfdi_finiquitos
|
|
endpoints:
|
|
- POST /api/v1/nomina/finiquito
|
|
- GET /api/v1/nomina/finiquito/:id
|
|
- PUT /api/v1/nomina/finiquito/:id
|
|
- POST /api/v1/nomina/finiquito/:id/calcular
|
|
- POST /api/v1/nomina/finiquito/:id/autorizar
|
|
- POST /api/v1/nomina/finiquito/:id/timbrar
|
|
- GET /api/v1/nomina/finiquito/:id/pdf
|
|
- GET /api/v1/nomina/finiquitos
|
|
- GET /api/v1/nomina/finiquitos/reporte
|
|
- POST /api/v1/nomina/finiquito/:id/dispersar
|
|
componentes_ui:
|
|
- FiniquitoCalculator
|
|
- FiniquitoFormWizard
|
|
- FiniquitoDetailView
|
|
- FiniquitoConceptosTable
|
|
- FiniquitoPDFGenerator
|
|
- FiniquitosListView
|
|
- TipoTerminacionSelector
|
|
- FiniquitoAutorizacionPanel
|
|
integraciones:
|
|
- modulo: RF-NOM-002
|
|
descripcion: Timbrado de CFDI de finiquito
|
|
- modulo: MGN-005
|
|
descripcion: Catálogo de empleados
|
|
- modulo: MGN-010
|
|
descripcion: Registro contable de finiquitos
|
|
- modulo: MGN-007
|
|
descripcion: Auditoría de bajas y finiquitos
|
|
estado: pendiente
|
|
|
|
- id: RF-NOM-005
|
|
titulo: Integración Checador Biométrico
|
|
descripcion: Integración con app móvil de checador biométrico para control de asistencias y cálculo de nómina
|
|
prioridad: alta
|
|
especificaciones:
|
|
- id: ESP-NOM-005-01
|
|
descripcion: Importar asistencias desde checador biométrico (MOB-001)
|
|
- id: ESP-NOM-005-02
|
|
descripcion: Procesar entradas y salidas diarias
|
|
- id: ESP-NOM-005-03
|
|
descripcion: Calcular horas trabajadas por día y semana
|
|
- id: ESP-NOM-005-04
|
|
descripcion: Identificar retardos según tolerancia configurada
|
|
- id: ESP-NOM-005-05
|
|
descripcion: Detectar faltas injustificadas
|
|
- id: ESP-NOM-005-06
|
|
descripcion: Calcular tiempo extra automáticamente
|
|
- id: ESP-NOM-005-07
|
|
descripcion: Gestionar incidencias (permisos, vacaciones, incapacidades)
|
|
- id: ESP-NOM-005-08
|
|
descripcion: Sincronización bidireccional con app móvil
|
|
- id: ESP-NOM-005-09
|
|
descripcion: Reportes de asistencia por empleado y obra
|
|
historias_usuario:
|
|
- id: US-NOM-005-01
|
|
titulo: Como jefe de RH necesito importar asistencias del checador
|
|
criterios_aceptacion:
|
|
- Conectar con MOB-001 vía API
|
|
- Importar registros de entrada/salida por período
|
|
- Validar integridad de datos importados
|
|
- Detectar registros duplicados o inconsistentes
|
|
- Ver resumen de asistencias importadas
|
|
- id: US-NOM-005-02
|
|
titulo: Como jefe de RH necesito revisar incidencias detectadas
|
|
criterios_aceptacion:
|
|
- Ver listado de retardos del período
|
|
- Ver listado de faltas injustificadas
|
|
- Ver tiempo extra acumulado por empleado
|
|
- Ajustar o justificar incidencias manualmente
|
|
- Aprobar incidencias para cálculo de nómina
|
|
- id: US-NOM-005-03
|
|
titulo: Como residente de obra necesito gestionar incidencias en checador móvil
|
|
criterios_aceptacion:
|
|
- Registrar permisos desde MOB-001
|
|
- Justificar retardos o faltas
|
|
- Aprobar salidas anticipadas
|
|
- Sincronizar con sistema de nómina
|
|
- id: US-NOM-005-04
|
|
titulo: Como jefe de RH necesito generar reportes de asistencia
|
|
criterios_aceptacion:
|
|
- Reporte de asistencias por empleado
|
|
- Reporte de puntualidad por obra
|
|
- Reporte de tiempo extra por departamento
|
|
- Exportar a Excel para análisis
|
|
- Filtrar por fechas, obra, empleado
|
|
- id: US-NOM-005-05
|
|
titulo: Como empleado necesito consultar mis asistencias desde app móvil
|
|
criterios_aceptacion:
|
|
- Ver mis entradas/salidas del mes (MOB-001)
|
|
- Consultar saldo de vacaciones
|
|
- Ver incidencias reportadas
|
|
- Solicitar corrección de registro erróneo
|
|
tablas:
|
|
- payroll_management.asistencias
|
|
- payroll_management.registros_checador
|
|
- payroll_management.incidencias
|
|
- payroll_management.tipo_incidencia
|
|
- payroll_management.horarios_trabajo
|
|
- payroll_management.tolerancia_retardos
|
|
- payroll_management.horas_extra_calculadas
|
|
endpoints:
|
|
- POST /api/v1/nomina/asistencias/importar
|
|
- GET /api/v1/nomina/asistencias
|
|
- GET /api/v1/nomina/asistencias/empleado/:id
|
|
- GET /api/v1/nomina/asistencias/periodo/:periodo_id
|
|
- POST /api/v1/nomina/incidencias
|
|
- GET /api/v1/nomina/incidencias
|
|
- PUT /api/v1/nomina/incidencias/:id
|
|
- DELETE /api/v1/nomina/incidencias/:id
|
|
- POST /api/v1/nomina/incidencias/:id/aprobar
|
|
- GET /api/v1/nomina/tiempo-extra/calculado
|
|
- GET /api/v1/nomina/reportes/asistencia
|
|
- GET /api/v1/nomina/reportes/puntualidad
|
|
- POST /api/v1/nomina/horarios
|
|
- GET /api/v1/nomina/horarios
|
|
componentes_ui:
|
|
- AsistenciasImportPanel
|
|
- AsistenciasListView
|
|
- IncidenciasManager
|
|
- IncidenciaFormModal
|
|
- TiempoExtraReport
|
|
- AsistenciasPorEmpleadoView
|
|
- PuntualidadChart
|
|
- HorariosTrabajoCRUD
|
|
- ToleranciaConfigPanel
|
|
- RegistrosChecadorTable
|
|
app_movil: MOB-001
|
|
funcionalidades_movil:
|
|
- Registro biométrico de entrada/salida
|
|
- Registro de ubicación GPS
|
|
- Foto de evidencia en check-in
|
|
- Solicitud de permisos e incidencias
|
|
- Consulta de asistencias personales
|
|
- Notificaciones de incidencias
|
|
- Modo offline con sincronización
|
|
integraciones:
|
|
- modulo: MOB-001
|
|
descripcion: Importación de registros de checador biométrico
|
|
tipo: bidireccional
|
|
endpoints:
|
|
- GET /api/v1/checador/registros
|
|
- POST /api/v1/checador/incidencias
|
|
- GET /api/v1/checador/empleado/:id/asistencias
|
|
- modulo: RF-NOM-001
|
|
descripcion: Provisión de horas trabajadas para cálculo de nómina
|
|
- modulo: MAI-001
|
|
descripcion: Vinculación de asistencias con obras de construcción
|
|
- modulo: MGN-008
|
|
descripcion: Notificaciones de incidencias y aprobaciones
|
|
estado: pendiente
|
|
|
|
# Aplicación Móvil
|
|
app_movil:
|
|
id: MOB-001
|
|
nombre: Checador Biométrico
|
|
descripcion: Aplicación móvil para registro de asistencias con verificación biométrica
|
|
plataformas:
|
|
- Android
|
|
- iOS
|
|
tecnologias:
|
|
- React Native
|
|
- Expo
|
|
- SQLite (offline)
|
|
- Axios (sync)
|
|
- React Native Biometrics
|
|
- React Native Geolocation
|
|
funcionalidades:
|
|
- autenticacion_biometrica: Verificación por huella digital o reconocimiento facial
|
|
- registro_entrada_salida: Check-in/check-out con timestamp
|
|
- captura_ubicacion: GPS y geofencing por obra
|
|
- foto_evidencia: Captura de foto en cada registro
|
|
- consulta_asistencias: Historial personal de asistencias
|
|
- gestion_incidencias: Solicitud de permisos y justificaciones
|
|
- notificaciones_push: Alertas de aprobaciones y rechazos
|
|
- sincronizacion: Sync automática y manual con backend
|
|
- modo_offline: Operación sin conexión con queue de sincronización
|
|
requerimientos_vinculados:
|
|
- RF-NOM-005 # Integración Checador Biométrico
|
|
- RF-NOM-001 # Provisión de datos para cálculo de nómina
|
|
estado: pendiente
|
|
|
|
# Esquemas de Base de Datos
|
|
esquemas:
|
|
- nombre: payroll_management
|
|
descripcion: Esquema para gestión integral de nómina
|
|
tablas:
|
|
# RF-NOM-001: Cálculo de Nómina
|
|
- periodos_nomina
|
|
- nominas
|
|
- nominas_detalle
|
|
- nominas_percepciones
|
|
- nominas_deducciones
|
|
- nominas_provision_patronal
|
|
- dispersiones_bancarias
|
|
# RF-NOM-002: Timbrado CFDI
|
|
- cfdi_nomina
|
|
- cfdi_timbrado_log
|
|
- cfdi_cancelaciones
|
|
- nominas_extraordinarias
|
|
- pac_configuration
|
|
# RF-NOM-003: Deducciones y Percepciones
|
|
- conceptos_percepciones
|
|
- conceptos_deducciones
|
|
- formulas_calculo
|
|
- empleado_percepciones_fijas
|
|
- empleado_deducciones_fijas
|
|
- prestamos_empleados
|
|
- amortizaciones_prestamos
|
|
- tablas_isr
|
|
- pensiones_alimenticias
|
|
# RF-NOM-004: Finiquitos
|
|
- finiquitos
|
|
- finiquitos_detalle
|
|
- finiquitos_conceptos
|
|
- tipos_terminacion
|
|
- cfdi_finiquitos
|
|
# RF-NOM-005: Integración Checador
|
|
- asistencias
|
|
- registros_checador
|
|
- incidencias
|
|
- tipo_incidencia
|
|
- horarios_trabajo
|
|
- tolerancia_retardos
|
|
- horas_extra_calculadas
|
|
|
|
# Políticas RLS
|
|
rls_policies:
|
|
archivo: ET-NOM-rls-policies.sql
|
|
descripcion: Políticas de seguridad a nivel de fila para multi-tenancy en nómina
|
|
tablas_protegidas:
|
|
- payroll_management.nominas
|
|
- payroll_management.cfdi_nomina
|
|
- payroll_management.asistencias
|
|
- payroll_management.finiquitos
|
|
- payroll_management.prestamos_empleados
|
|
reglas:
|
|
- Los empleados solo pueden ver sus propios recibos
|
|
- RH puede ver nómina de su constructora/tenant
|
|
- Contador puede acceder a información fiscal
|
|
- Aislamiento total entre diferentes constructoras
|
|
|
|
# Reportes
|
|
reportes:
|
|
- id: REP-NOM-001
|
|
nombre: Recibo de Nómina Individual
|
|
descripcion: Recibo detallado de nómina por empleado
|
|
parametros: [empleado_id, periodo_id]
|
|
- id: REP-NOM-002
|
|
nombre: Resumen de Nómina por Período
|
|
descripcion: Consolidado de nómina con totales por concepto
|
|
parametros: [periodo_id, obra_id]
|
|
- id: REP-NOM-003
|
|
nombre: Dispersión Bancaria
|
|
descripcion: Archivo de dispersión en formato bancario
|
|
parametros: [periodo_id, formato_banco]
|
|
- id: REP-NOM-004
|
|
nombre: Provisión de Cuotas Patronales
|
|
descripcion: Cálculo de IMSS, infonavit, SAR para provisiones
|
|
parametros: [periodo_id]
|
|
- id: REP-NOM-005
|
|
nombre: Reporte de Tiempo Extra
|
|
descripcion: Detalle de horas extra por empleado y obra
|
|
parametros: [fecha_inicio, fecha_fin, obra_id]
|
|
- id: REP-NOM-006
|
|
nombre: Histórico de Préstamos
|
|
descripcion: Préstamos activos y liquidados con saldos
|
|
parametros: [empleado_id, estado]
|
|
- id: REP-NOM-007
|
|
nombre: Reporte de Finiquitos
|
|
descripcion: Finiquitos procesados en período
|
|
parametros: [fecha_inicio, fecha_fin, tipo_terminacion]
|
|
- id: REP-NOM-008
|
|
nombre: Reporte de Asistencias
|
|
descripcion: Asistencias, retardos y faltas por empleado
|
|
parametros: [fecha_inicio, fecha_fin, empleado_id, obra_id]
|
|
- id: REP-NOM-009
|
|
nombre: Análisis de Puntualidad
|
|
descripcion: Indicadores de puntualidad por obra y departamento
|
|
parametros: [fecha_inicio, fecha_fin, obra_id]
|
|
- id: REP-NOM-010
|
|
nombre: Costo de Nómina por Obra
|
|
descripcion: Distribución de costo de nómina por proyecto
|
|
parametros: [periodo_id, obra_id]
|
|
|
|
# Notificaciones
|
|
notificaciones:
|
|
- evento: nomina_calculada
|
|
destinatarios: [jefe_rh, contador]
|
|
canal: [email, app]
|
|
- evento: nomina_autorizada
|
|
destinatarios: [contador, empleados]
|
|
canal: [email, app]
|
|
- evento: cfdi_timbrado
|
|
destinatarios: [empleado]
|
|
canal: [email]
|
|
- evento: dispersion_generada
|
|
destinatarios: [contador, jefe_rh]
|
|
canal: [email]
|
|
- evento: prestamo_otorgado
|
|
destinatarios: [empleado, jefe_rh]
|
|
canal: [email, app]
|
|
- evento: finiquito_calculado
|
|
destinatarios: [empleado, jefe_rh, contador]
|
|
canal: [email]
|
|
- evento: incidencia_pendiente
|
|
destinatarios: [jefe_rh, residente_obra]
|
|
canal: [app, push_movil]
|
|
- evento: retardo_detectado
|
|
destinatarios: [empleado, supervisor]
|
|
canal: [app]
|
|
- evento: falta_registrada
|
|
destinatarios: [empleado, jefe_rh]
|
|
canal: [email, app]
|
|
- evento: tiempo_extra_aprobacion
|
|
destinatarios: [jefe_rh]
|
|
canal: [app]
|
|
|
|
# Métricas y KPIs
|
|
metricas:
|
|
- nombre: tiempo_procesamiento_nomina
|
|
descripcion: Tiempo promedio para calcular y autorizar nómina
|
|
unidad: horas
|
|
objetivo: "< 4 horas"
|
|
- nombre: tasa_timbrado_exitoso
|
|
descripcion: Porcentaje de CFDIs timbrados sin error
|
|
unidad: porcentaje
|
|
objetivo: "> 99%"
|
|
- nombre: morosidad_prestamos
|
|
descripcion: Porcentaje de préstamos con atrasos
|
|
unidad: porcentaje
|
|
objetivo: "< 5%"
|
|
- nombre: tasa_puntualidad
|
|
descripcion: Porcentaje de empleados sin retardos
|
|
unidad: porcentaje
|
|
objetivo: "> 85%"
|
|
- nombre: ausentismo
|
|
descripcion: Porcentaje de faltas injustificadas
|
|
unidad: porcentaje
|
|
objetivo: "< 3%"
|
|
- nombre: tiempo_extra_acumulado
|
|
descripcion: Promedio de horas extra por empleado
|
|
unidad: horas/mes
|
|
objetivo: "< 20 horas"
|
|
- nombre: costo_nomina_vs_presupuesto
|
|
descripcion: Desviación del costo de nómina vs presupuestado
|
|
unidad: porcentaje
|
|
objetivo: "< 5%"
|
|
|
|
# Validaciones y Reglas de Negocio
|
|
reglas_negocio:
|
|
- codigo: RN-NOM-001
|
|
descripcion: No se puede autorizar nómina sin validar totales
|
|
- codigo: RN-NOM-002
|
|
descripcion: Los CFDIs deben timbrarse antes de dispersión bancaria
|
|
- codigo: RN-NOM-003
|
|
descripcion: El ISR se calcula según tablas vigentes del SAT
|
|
- codigo: RN-NOM-004
|
|
descripcion: Los préstamos no pueden exceder 4 meses de salario
|
|
- codigo: RN-NOM-005
|
|
descripcion: La amortización de préstamo no puede exceder 30% del salario neto
|
|
- codigo: RN-NOM-006
|
|
descripcion: Los finiquitos deben incluir vacaciones y aguinaldo proporcional
|
|
- codigo: RN-NOM-007
|
|
descripcion: Las asistencias deben importarse desde MOB-001 para evitar manipulación
|
|
- codigo: RN-NOM-008
|
|
descripcion: El tiempo extra doble aplica después de 9 horas o en día de descanso
|
|
- codigo: RN-NOM-009
|
|
descripcion: Las incidencias deben ser aprobadas por supervisor antes de cálculo
|
|
- codigo: RN-NOM-010
|
|
descripcion: Los registros de checador con ubicación fuera de geofence requieren justificación
|
|
|
|
# Seguridad
|
|
seguridad:
|
|
permisos:
|
|
- nomina.periodos.crear
|
|
- nomina.periodos.leer
|
|
- nomina.nomina.calcular
|
|
- nomina.nomina.validar
|
|
- nomina.nomina.autorizar
|
|
- nomina.nomina.dispersar
|
|
- nomina.cfdi.timbrar
|
|
- nomina.cfdi.cancelar
|
|
- nomina.cfdi.consultar
|
|
- nomina.conceptos.gestionar
|
|
- nomina.prestamos.crear
|
|
- nomina.prestamos.aprobar
|
|
- nomina.prestamos.consultar
|
|
- nomina.finiquitos.calcular
|
|
- nomina.finiquitos.autorizar
|
|
- nomina.asistencias.importar
|
|
- nomina.asistencias.consultar
|
|
- nomina.incidencias.gestionar
|
|
- nomina.incidencias.aprobar
|
|
- nomina.reportes.generar
|
|
- nomina.empleado.ver_propios_recibos
|
|
roles_sugeridos:
|
|
- nombre: jefe_rh
|
|
permisos: [nomina.*, asistencias.*, incidencias.*, prestamos.*, finiquitos.*]
|
|
- nombre: contador
|
|
permisos: [nomina.autorizar, nomina.dispersar, nomina.cfdi.*, nomina.reportes.*]
|
|
- nombre: empleado
|
|
permisos: [nomina.empleado.ver_propios_recibos, asistencias.consultar_propias]
|
|
- nombre: residente_obra
|
|
permisos: [incidencias.gestionar, asistencias.consultar]
|
|
- nombre: auditor
|
|
permisos: [nomina.reportes.generar, cfdi.consultar, finiquitos.consultar]
|
|
|
|
# Pruebas
|
|
pruebas:
|
|
unitarias:
|
|
- calcular_isr_con_tablas_sat
|
|
- calcular_tiempo_extra_simple_doble
|
|
- calcular_aguinaldo_proporcional
|
|
- calcular_prima_antiguedad
|
|
- amortizar_prestamo_empleado
|
|
- validar_existencia_suficiente_para_prestamo
|
|
- aplicar_pension_alimenticia
|
|
- calcular_cuotas_imss_infonavit
|
|
integracion:
|
|
- flujo_completo_calculo_nomina
|
|
- importacion_asistencias_desde_mob001
|
|
- timbrado_cfdi_con_pac
|
|
- generacion_dispersion_bancaria
|
|
- calculo_finiquito_completo
|
|
- sincronizacion_bidireccional_checador
|
|
e2e:
|
|
- proceso_nomina_completo_calculo_a_pago
|
|
- ciclo_vida_prestamo_empleado
|
|
- proceso_finiquito_con_timbrado
|
|
- registro_asistencia_app_a_nomina
|
|
|
|
# Cronograma Estimado
|
|
cronograma:
|
|
- fase: Análisis y Diseño
|
|
duracion: 2 semanas
|
|
entregables: [modelos_datos, diagramas_flujo, especificaciones_api, integracion_pac]
|
|
- fase: Desarrollo Backend - RF-NOM-001 y RF-NOM-003
|
|
duracion: 4 semanas
|
|
entregables: [api_calculo_nomina, api_conceptos, calculos_isr_imss, rls_policies]
|
|
- fase: Desarrollo Backend - RF-NOM-002
|
|
duracion: 2 semanas
|
|
entregables: [integracion_pac, generacion_xml_cfdi, timbrado_automatico]
|
|
- fase: Desarrollo Backend - RF-NOM-004 y RF-NOM-005
|
|
duracion: 3 semanas
|
|
entregables: [api_finiquitos, api_asistencias, integracion_mob001]
|
|
- fase: Desarrollo Frontend
|
|
duracion: 4 semanas
|
|
entregables: [ui_nomina, ui_cfdi, ui_prestamos, ui_finiquitos, ui_asistencias]
|
|
- fase: Desarrollo App Móvil MOB-001
|
|
duracion: 4 semanas
|
|
entregables: [app_checador, biometria, geofencing, sincronizacion]
|
|
- fase: Integración PAC y Pruebas
|
|
duracion: 2 semanas
|
|
entregables: [pruebas_timbrado, pruebas_integracion, validacion_sat]
|
|
- fase: Pruebas de Usuario y Ajustes
|
|
duracion: 2 semanas
|
|
entregables: [pruebas_usuario, ajustes_feedback, optimizaciones]
|
|
- fase: Documentación y Capacitación
|
|
duracion: 1 semana
|
|
entregables: [manual_usuario, manual_tecnico, videos_capacitacion]
|
|
|
|
# Notas de Implementación
|
|
notas:
|
|
- Priorizar RF-NOM-001 (Cálculo) y RF-NOM-005 (Checador) como base del módulo
|
|
- Integración con PAC debe ser configurable para múltiples proveedores
|
|
- Desarrollar MOB-001 (Checador Biométrico) en paralelo con backend de asistencias
|
|
- Implementar caché de tablas ISR para optimizar cálculos
|
|
- Considerar migración de datos históricos de sistema legacy
|
|
- Planificar sincronización offline-online robusta para MOB-001
|
|
- Validar cumplimiento normativo SAT antes de producción
|
|
- Implementar auditoría completa de todas las operaciones de nómina
|
|
- Considerar integración futura con bancos para confirmación de dispersión
|
|
- Evaluar uso de firma electrónica para autorización de nómina
|
|
- El módulo MOB-001 es crítico para la integridad de datos de asistencias
|
|
- Implementar geofencing estricto para evitar registros fraudulentos
|
|
- Considerar funcionalidad de nómina retroactiva para ajustes
|