Ir al contenido

Contratos (`contracts/`)

Ruta: /owner/hr/contracts

Repositorio digital de contratos laborales con almacenamiento seguro.

  • 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
1. Acceder a perfil del empleado
2. Sección "Contratos"
3. Click en "Subir Contrato"
4. Seleccionar archivo PDF
5. Indicar:
- Tipo de contrato
- Fecha de inicio
- Fecha de fin (si temporal)
- Observaciones
6. Subir documento
7. Sistema almacena en storage seguro
8. Empleado recibe notificación
  • 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)

Sistema de alertas automáticas para contratos temporales.

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
1. Sistema alerta de vencimiento próximo
2. RRHH decide: renovar o no
3. Si renovar:
- Generar nuevo contrato
- Subir documento firmado
- Actualizar fecha fin en sistema
4. Si no renovar:
- Preparar liquidación
- Marcar empleado como "baja programada"
5. Registro de decisión en audit log
Detalles 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.