🔧 Resolución de Problemas

🔧 Resolución de Problemas

Problemas Comunes de Empleados

❌ App no detecta ubicación

Soluciones:

  1. Verificar permisos de ubicación en configuración del teléfono
  2. Activar GPS y servicios de ubicación
  3. Salir al exterior para mejor señal
  4. Reiniciar la aplicación
  5. Reiniciar el teléfono

❌ "Ubicación no válida"

Soluciones:

  1. Verificar que estés en tu lugar de trabajo correcto
  2. Esperar a que el GPS mejore la precisión (< 20 metros)
  3. Moverse al exterior del edificio si estás dentro
  4. Contactar supervisor si la ubicación es correcta

❌ "Dispositivo no autorizado"

Soluciones:

  1. Verificar con RRHH que tu dispositivo esté activado
  2. Esperar email de confirmación de activación
  3. Verificar que tu licencia de empleado esté activa
  4. Cerrar sesión y volver a iniciar

❌ "Ya tienes una sesión activa"

Soluciones:

  1. Verificar en "Historial" si ya hiciste check-in
  2. Si es un error, hacer check-out y volver a intentar
  3. Contactar RRHH para corrección manual

❌ App lenta o no responde

Soluciones:

  1. Liberar memoria del teléfono
  2. Actualizar la aplicación a la última versión
  3. Borrar caché de la aplicación
  4. Verificar espacio disponible en el teléfono
  5. Verificar conexión a internet

Problemas Comunes de RRHH

❌ No puedo activar un dispositivo

Síntoma: Error "Ya existe un dispositivo activo para esta licencia"

Solución:

  1. Ir a Dispositivos Móviles
  2. Filtrar por empleado
  3. Buscar dispositivos con estado Activo
  4. Decidir: ¿Revocar permanentemente o suspender?
    • Revocar si es reemplazo permanente (requiere IT Admin)
    • Suspender si es temporal
  5. Intentar activar nuevo dispositivo nuevamente

❌ Auto-activación no funciona

Síntomas: Primer dispositivo queda en estado Pendiente

Verificar:

  1. ¿La licencia del empleado está Activa?
    • Ir a Licencias de Empleados
    • Verificar estado
    • Si está en Borrador → Activar licencia primero
  2. ¿Es realmente el primer dispositivo?
    • Verificar que no haya otros dispositivos activos
    • Buscar dispositivos archivados
  3. ¿El empleado tiene licencia asignada?
    • Verificar campo employee_license_id en dispositivo

❌ No puedo revocar licencia/dispositivo

Síntoma: Error "Solo los administradores pueden revocar"

Solución:

  1. Verificar permisos del usuario:
    • Ir a Configuración → Usuarios
    • Abrir usuario actual
    • Verificar grupos: Debe tener Hub Attendance Admin
  2. Si no tiene permisos:
    • Contactar System Administrator
    • Solicitar elevación de permisos
  3. Alternativa temporal:
    • Suspender en lugar de revocar (HR Manager puede hacerlo)

❌ Empleado no recibe emails

Verificar:

  1. ¿Empleado tiene email registrado?
    • RRHH → Empleados → Abrir empleado
    • Verificar campo work_email
  2. ¿Servidor de correo configurado?
    • Configuración → Técnico → Email → Servidores de correo saliente
    • Verificar estado: Activo
    • Probar envío con botón "Test Connection"
  3. ¿Plantillas de email activas?
    • Configuración → Técnico → Email → Plantillas
    • Buscar: email_template_license_
    • Verificar que existan y estén activas

Problemas Técnicos (Administradores)

❌ Error al actualizar módulo

Síntoma: ParseError: Error al parsear XML

Solución:

  1. Verificar sintaxis XML:
    xmllint --noout /path/to/file.xml
    
  2. Revisar logs de Odoo:
    tail -f /path/to/odoo/logs/odoo-server.log
    
  3. Verificar referencias a modelos:
    • ref="model_hr_employee_license" → Debe existir
    • ref="model_hr_device_license" → Debe existir
  4. Actualizar con modo debug:
    ./odoo-bin -c config.conf -u itc_hr_hub_attendance -d database --log-level=debug
    

❌ Error de constraint SQL

Síntoma: duplicate key value violates unique constraint "hr_employee_license_unique_employee_license"

Solución:

  1. Verificar si hay licencia archivada para ese empleado:
    SELECT id, employee_id, active, state 
    FROM hr_employee_license 
    WHERE employee_id = [employee_id];
    
  2. Si es necesario, aplicar migración SQL:
    -- Ejecutar en PostgreSQL
    ALTER TABLE hr_employee_license 
    DROP CONSTRAINT IF EXISTS hr_employee_license_unique_employee_license;
    
    ALTER TABLE hr_employee_license 
    ADD CONSTRAINT hr_employee_license_unique_employee_license 
    UNIQUE(employee_id, company_id) WHERE active = true;
    
  3. Actualizar módulo

❌ API devuelve error 500

Verificar:

  1. Logs del servidor Odoo:
    tail -f /var/log/odoo/odoo-server.log
    
  2. Verificar que el empleado existe
  3. Verificar que el dispositivo existe y está activo
  4. Verificar permisos de la licencia
  5. Verificar conexión a la base de datos