2.0 KiB
US-MGN-010-002-001: CRUD Contratos Laborales
RF Asociado: RF-MGN-010-003 Módulo: MGN-010 - RRHH Básico Epic: Contratos Prioridad: P0 Story Points: 5 Sprint: Sprint 22 Estado: Ready for Development Fecha: 2025-11-24
User Story
Como gerente de RRHH, Quiero gestionar contratos laborales de empleados, Para controlar vigencia y términos contractuales.
Criterios de Aceptación
Escenario 1: Crear contrato
Dado que empleado existe, Cuando creo contrato: employee_id=1, type="indefinido", start_date="2024-01-01", salary=50000, Entonces sistema crea contrato con state=active.
Escenario 2: Un solo contrato activo por empleado
Dado que empleado ya tiene contrato active, Cuando intento crear otro active, Entonces error 400 "Empleado ya tiene contrato activo. Debe finalizar el anterior primero".
Escenario 3: Finalizar contrato
Dado que contrato está active, Cuando lo finalizo con end_date="2024-12-31", Entonces state=terminated, permite crear nuevo contrato.
Reglas de Negocio
- RN-1: Un solo contrato activo por empleado.
- RN-2: Tipo: indefinido, temporal, practicante.
- RN-3: Salario obligatorio > 0.
Tareas Técnicas
Backend
- Endpoint: POST/GET/PUT/DELETE
/api/v1/hr/contracts - Validar un solo contrato activo
- Unit tests
Frontend
- Página:
ContractsPage.tsx - Formulario contrato
- Lista de contratos del empleado
Database
- Tabla:
hr.contracts(employee_id, type, start_date, end_date, salary, state) - Enum: contract_type, contract_state
Estimación Detallada
| Tarea | Horas | Backend | 2 | Frontend | 2.5 | Testing | 1.5 | TOTAL | 6 horas = 5 SP |
Definition of Done
- CRUD completo
- Validación un solo activo
- Tests >80%
- QA/PO aprobado