1. 🧩 Descripción General
El módulo de Recursos Humanos (RRHH) permite la gestión de personal de la empresa, incluyendo empleados, contratos, nómina, asistencias, evaluaciones y estructura organizacional. Este módulo se conecta con Finanzas (para pagos y contabilidad) y Producción (para asignación de personal).
2. 🧱 Modelos del Módulo
a. Employee
id: integer (PK)
name: string
rfc: string
email: string
phone: string
position: string
department: string
hire_date: date
salary: decimal
is_active: boolean
b. Contract
id: integer (PK)
employee_id: FK → Employee
type: enum (temporal, indefinido, outsourcing)
start_date: date
end_date: date (nullable)
salary: decimal
status: enum (activo, terminado, suspendido)
c. Attendance
id: integer (PK)
employee_id: FK → Employee
date: date
type: enum (entrada, salida)
timestamp: datetime
d. Payroll
id: integer (PK)
employee_id: FK → Employee
period_start: date
period_end: date
gross_salary: decimal
deductions: decimal
net_salary: decimal
status: enum (generada, pagada)
3. 🔁 Funciones del Controlador
indexEmployees(): Listar empleados.
storeEmployee(): Alta de nuevo empleado.
showEmployee($id): Ver perfil completo.
updateEmployee($id): Editar datos.
terminateContract($id): Finalizar relación laboral.
registerAttendance(): Registrar entrada/salida.
generatePayroll(): Crear cálculo de nómina.
payPayroll(): Marcar como pagada.
4. 🌐 Endpoints detallados y justificados
| Método | Ruta | Descripción | Justificación |
|---|
| GET | /api/employees | Lista de empleados | Gestión de personal |
| POST | /api/employees | Crear empleado | Contratación |
| GET | /api/employees/{id} | Perfil del empleado | Consultas internas |
| PUT | /api/employees/{id} | Editar datos | Actualizaciones |
| DELETE | /api/employees/{id} | Baja lógica | Terminación |
| POST | /api/attendance | Registrar asistencia | Control de jornada |
| POST | /api/payroll/generate | Generar nómina | Cálculo por periodo |
| POST | /api/payroll/{id}/pay | Registrar pago | Integración con finanzas |
5. 🖥️ Diseño UX sugerido (flujo de usuario)
Página: "Empleados"
- Tabla con nombre, puesto, salario, estado
- Filtros: por departamento, activo/inactivo
- Acciones: Ver, Editar, Terminar
Página: "Perfil del Empleado"
- Datos generales
- Contratos
- Asistencias recientes
- Historial de pagos
Página: "Nómina"
- Periodo seleccionado
- Tabla de empleados, neto a pagar, estado
- Acciones: Generar, Pagar
6. 📄 Vistas sugeridas (tipo wireframe)
| Vista | Campos sugeridos | Acciones |
|---|
| Empleados | Nombre, RFC, puesto, email, activo | Ver, Editar, Terminar |
| Formulario | Nombre, RFC, correo, puesto, salario | Guardar |
| Nómina | Empleado, bruto, deducciones, neto, estado | Pagar |
| Asistencia | Fecha, tipo, hora, empleado | Registrar |
7. 🔗 Conexión Frontend ↔ API JSON:API
| Acción en Frontend | Método/API | Resultado esperado |
|---|
| Ver empleados | GET /api/employees | Tabla con filtros |
| Crear empleado | POST /api/employees | Alta exitosa |
| Registrar asistencia | POST /api/attendance | Registro por jornada |
| Generar nómina | POST /api/payroll/generate | Cálculo automático |
| Pagar nómina | POST /api/payroll/{id}/pay | Marcar pagada |
🧑💼 Este módulo garantiza el control y trazabilidad de los recursos humanos, integrando procesos de nómina, asistencia y relación laboral con otros módulos clave del ERP.