Crear Tipo de Empleado
Exportar contenido
Crea un nuevo tipo de empleado con permisos personalizados para cada módulo del sistema.
- En Configuración → Empleados, clic en ”+ Nuevo Tipo” — se abre el formulario.
- Completa los campos de información básica.
- Selecciona un icono representativo del tipo.
- Configura permisos para cada módulo (Ninguno, Ver o Editar).
- Clic en “Guardar” — el tipo queda disponible para asignar.
Campos del formulario
Sección titulada «Campos del formulario»| Campo | Obligatorio | Descripción | Ejemplo |
|---|---|---|---|
| Nombre | Sí | Identificador del tipo | Comercial |
| Descripción | No | Responsabilidades del rol | Gestión de clientes y presupuestos |
| Icono | Sí | Representación visual | briefcase, users, calculator |
| Permisos | Sí | Nivel de acceso por módulo | Ver en Clientes, Editar en Presupuestos |
Configuración de permisos por módulo
Sección titulada «Configuración de permisos por módulo»Para cada módulo del sistema, selecciona:
| Nivel | Comportamiento |
|---|---|
| Ninguno | No aparece en el menú del empleado |
| Ver | Puede consultar pero no crear/editar/eliminar |
| Editar | Acceso completo: crear, editar, eliminar |
Módulos disponibles:
- Facturas
- Gastos
- Presupuestos
- Clientes
- Productos
- RRHH
- Fichaje (Time Clock)
- Informes
- Configuración
Cómo sé que lo hice bien
Sección titulada «Cómo sé que lo hice bien»- El tipo aparece en la lista con badge verde “Activo”.
- Toast de confirmación: “Tipo de empleado creado correctamente”.
- Al invitar empleados, el tipo está disponible en el selector.
Errores comunes
Sección titulada «Errores comunes»| Mensaje | Causa | Solución |
|---|---|---|
| ”El nombre es obligatorio” | Campo vacío | Escribe un nombre para el tipo |
| ”Selecciona al menos un permiso” | Todos los módulos en “Ninguno” | Activa al menos un módulo con Ver o Editar |
| ”Ya existe un tipo con ese nombre” | Nombre duplicado | Usa un nombre diferente |
Detalles técnicos — Crear Tipo de Empleado
Sección titulada «Detalles técnicos — Crear Tipo de Empleado»Detalles técnicos
Tabla: employee_types
Campos clave:
interface EmployeeType { id: string; business_id: string; name: string; description?: string; module_permissions: ModulePermissions; // JSONB hr_role?: 'hr_admin' | 'hr_manager' | 'hr_viewer' | 'department_manager'; icon?: string; is_system: boolean; // true para tipos predefinidos is_active: boolean; // true por defecto created_at: timestamp; updated_at: timestamp;}
interface ModulePermissions { invoices?: 'none' | 'read' | 'edit'; expenses?: 'none' | 'read' | 'edit'; quotes?: 'none' | 'read' | 'edit'; customers?: 'none' | 'read' | 'edit'; products?: 'none' | 'read' | 'edit'; hr?: 'none' | 'read' | 'edit'; time_clock?: 'none' | 'read' | 'edit'; reports?: 'none' | 'read' | 'edit'; settings?: 'none' | 'read' | 'edit';}Componente: src/features/settings/components/EmployeeTypeEditor.tsx
Hook: src/features/hr/hooks/useEmployeeTypes.ts
Query de validación:
-- Verificar tipos activos de un negocioSELECT name, description, module_permissions, is_activeFROM employee_typesWHERE business_id = '<business_id>' AND is_active = trueORDER BY name;