Contratos (`contracts/`)
Exportar contenido
Subir Contrato Laboral
Sección titulada «Subir Contrato Laboral»Ruta: /owner/hr/contracts
Repositorio digital de contratos laborales con almacenamiento seguro.
Tipos de Contrato
Sección titulada «Tipos de Contrato»- Indefinido: Sin fecha fin
- Temporal: Con fecha fin específica
- Prácticas: Para recién titulados
- Formación: Combinación trabajo-formación
- Obra o Servicio: Vinculado a proyecto
Subida de Contrato
Sección titulada «Subida de Contrato»1. Acceder a perfil del empleado2. Sección "Contratos"3. Click en "Subir Contrato"4. Seleccionar archivo PDF5. Indicar: - Tipo de contrato - Fecha de inicio - Fecha de fin (si temporal) - Observaciones6. Subir documento7. Sistema almacena en storage seguro8. Empleado recibe notificaciónAlmacenamiento Seguro
Sección titulada «Almacenamiento Seguro»- Cifrado en reposo (AES-256)
- Acceso restringido según permisos
- Logs de acceso (quién y cuándo)
- Backup automático diario
- Retención según LOPD (mínimo durante relación laboral + 4 años)
Gestionar Vencimientos
Sección titulada «Gestionar Vencimientos»Sistema de alertas automáticas para contratos temporales.
Alertas Programadas
Sección titulada «Alertas Programadas»90 días antes:
- Notificación a RRHH
- Revisión de renovación
30 días antes:
- Alerta en dashboard
- Preparar documentación
7 días antes:
- Alerta crítica
- Decisión final: renovar o finalizar
Renovación de Contrato
Sección titulada «Renovación de Contrato»1. Sistema alerta de vencimiento próximo2. RRHH decide: renovar o no3. Si renovar: - Generar nuevo contrato - Subir documento firmado - Actualizar fecha fin en sistema4. Si no renovar: - Preparar liquidación - Marcar empleado como "baja programada"5. Registro de decisión en audit logDetalles Técnicos
Tabla: employment_contracts
CREATE TABLE employment_contracts ( id UUID PRIMARY KEY, employee_id UUID NOT NULL, business_id UUID NOT NULL, contract_type TEXT NOT NULL, start_date DATE NOT NULL, end_date DATE, document_url TEXT NOT NULL, observations TEXT, status TEXT DEFAULT 'active', -- active, expired, cancelled uploaded_by UUID, created_at TIMESTAMP DEFAULT NOW());Tabla: contract_renewals
Historial de renovaciones:
CREATE TABLE contract_renewals ( id UUID PRIMARY KEY, contract_id UUID REFERENCES employment_contracts(id), previous_end_date DATE NOT NULL, new_end_date DATE, renewal_type TEXT, -- extension, new_contract notes TEXT, renewed_by UUID, renewed_at TIMESTAMP DEFAULT NOW());Notificaciones Automáticas: Edge Function ejecutada diariamente para revisar contratos próximos a vencer.