Se integraron correctamente los cambios realizados. Sin pendientes identificados.
- Implementar la funcionalidad "Ejecutar Análisis IA", la cual debe ejecutarse como un Job/Proceso en segundo plano, tal como fue definido originalmente.
- Buscador mediante API
- Ordenamiento mediante API
- Paginación mediante API
- Filtros mediante API
Sin observaciones del cliente.
Sin observaciones del cliente.
Sin observaciones del cliente. Ver ítem 24 para requerimientos de fase 2.
Alertas cargando desde API. Dropdowns con label predeterminado y ordenamiento por columna habilitado.
- Alertas se muestran correctamente desde la API. ✓
- Dropdowns "Todos los tipos" / "Todas las severidades" visibles. ✓ — commit
3f171e8 - Ordenamiento columnas Alerta y Tipo. ✓ — commits
a24b683/c55ea21 - Dropdowns alineados a la izquierda (quitado
ml: "auto"). ✓ — commit2b5a9c0
Sin observaciones del cliente.
Sin observaciones del cliente.
- Corregir el flujo completo del módulo.
- Reorganizar y ajustar los endpoints para mantener consistencia con el resto del sistema.
- Buscador por API
- Ordenamiento por API
- Paginación por API
- Filtros por API
Búsqueda, ordenamiento, paginación y filtros via API implementados y estandarizados en todos los módulos.
- Buscador siempre visible y alineado a la izquierda en todos los módulos. ✓ — commit
2b5a9c0 - Búsqueda server-side con debounce — Motor Ético, Scorecard, Seguimiento, Vacantes, Empleados, Usuarios, Predicción, Auditoría. ✓
- Ordenamiento server-side — todos los módulos (ver ítem 18). ✓
- Paginación server-side — todos los módulos. ✓
- Filtros server-side — todos los módulos. ✓
- Implementación anterior revertida (
7db4834) y re-implementada de forma estable por módulo. ✓
- Detalle del empleado —
EmployeeProfile.jsx(1 672 líneas) con tabs y secciones. ✓ - Ligar al candidato —
candidate_iden BD con datos reales; panel de búsqueda en UI. ✓ - Buscador, paginación, filtros, sort — todo server-side ya implementado. Sort por Score fixeado (
sequelize.literal NULLS LAST). ✓ - StatusMap — sincronizado con BD (
active / terminated). Dropdowns condisplayEmpty + renderValue. ✓
- Desarrollar el Reporte Anual completo.
- Incluir toda la información y métricas correspondientes de acuerdo con los requerimientos funcionales.
- Buscador por API
- Ordenamiento por API
- Paginación por API
- Filtros por API
- Incorporar la funcionalidad de Pensión Alimenticia conforme al alcance definido.
- Buscador por API
- Ordenamiento por API
- Paginación por API
- Filtros por API
- Gerente — una sucursal: visualiza y gestiona únicamente la información de esa sucursal y su empresa.
- Gerente — múltiples sucursales: accede a la información de todas las sucursales autorizadas, dentro de las empresas asignadas.
- Reclutador: visualiza y opera únicamente la sucursal o sucursales asignadas. Si tiene varias empresas, el acceso se limita a las sucursales autorizadas por empresa.
- Todo el sistema (vacantes, candidatos, expedientes, solicitudes, reportes y demás módulos) debe respetar estas reglas de acceso, garantizando que cada usuario solo vea y gestione la información de sus permisos.
- Asignar uno o varios roles a cada usuario.
- Configurar permisos específicos por módulo o funcionalidad, independientemente del rol.
- Asignar una o varias empresas.
- Asignar una o varias sucursales por empresa.
- Habilitar o restringir acciones (consulta, creación, edición, eliminación y administración) según el perfil del usuario.
- Reflejar y aplicar la configuración en todo el portal — cada usuario únicamente accede a lo autorizado.
- Mantener trazabilidad de cambios en permisos, roles y asignaciones para fines de auditoría.
API: https://api.tuvanosa.net/WS/TuvanosaReclutamiento/api/interviews/
- Implementar integración mediante Job programado que sincronice periódicamente entrevistas desde el servicio externo.
- Consumir endpoints para obtener la información completa de entrevistas por candidato.
- Almacenar toda la información en la base de datos de Talent IA, relacionada con el candidato correspondiente.
- En el Detalle del Candidato: incorporar apartado de Entrevistas con historial completo (fecha, entrevistador, tipo, estatus, comentarios, resultado y todos los campos disponibles).
- Desde el apartado: permitir editar entrevistas existentes, registrar nuevas manualmente y actualizar entrevistas sincronizadas.
- Todas las altas y modificaciones deben persistirse en la base de datos de Talent IA.
- Si existe sincronización bidireccional, consumir endpoints correspondientes; de lo contrario, la información editada permanece en Talent IA.
- El proceso de sincronización debe registrar errores, reintentos y bitácoras para monitoreo y auditoría.
API: https://api.tuvanosa.net/WS/TuvanosaReclutamiento/api/applications/
- Implementar Job programado que consuma periódicamente el endpoint de Applications.
- Sincronizar y almacenar en Talent IA toda la información obtenida.
- Relacionar correctamente: candidato, vacante, puesto/rol, empresa, sucursal, estado de postulación y demás información disponible.
- Completar y actualizar datos faltantes — principalmente relación candidato ↔ vacante ↔ sucursal ↔ puesto.
- Actualizar registros existentes al detectar cambios en el sistema externo.
- Evitar creación de registros duplicados en cada sincronización.
- Mantener integridad referencial entre candidatos, vacantes, empresas y sucursales.
- Registrar bitácoras de ejecución, errores y reintentos para monitoreo y auditoría.
Sort server-side, paginación y filtros ya implementados en todos los módulos. Fix displayEmpty + renderValue aplicado en cada dropdown con valor inicial vacío.
- Motor Ético — filtros Rol/Sucursal/Empresa/Alertas + sort Rol y Alertas + buscador siempre visible alineado a la izquierda (sin gap). ✓ — commits
c5e93a1/eabb8c6 - Predicción de Cierres — sort server-side + status filter + sort columnas Empresa y Sucursal + toolbar reemplazado por buscador visible siempre + dropdown Estado, consistente con todos los módulos. ✓ — commit
eeab728 - Scorecard Predictivo — sort + pagination server-side. ✓
- Expediente Digital — dropdowns Estatus/Seniority/CV fixeados. ✓
- Alertas Operativas — sort columnas Alerta y Tipo + dropdowns fixeados. ✓
- Gestión de Empleados — sort/filtros/paginación + score sort
NULLS LASTfixeado + sort Puesto y Estado agregados. ✓ - Gestión de Usuarios — bug raíz corregido (
sort/dir→sort_by/sort_diren hook); sort por Nombre, Rol, Sucursal, Estado y Registro funcionando. ✓ - Seguimiento — sort + filtros + displayEmpty + buscador siempre visible a la izquierda. ✓ — commit
2b5a9c0 - Vacantes — sort server-side + displayEmpty. ✓
- Auditoría Nacional — dropdowns Sucursal/Compañía/Departamento fixeados. ✓
- Gestión de Créditos — sort + displayEmpty. ✓
- Botón Exportar Excel (filtrado activo) + Exportar Todo (sin filtros) en los 5 módulos: Motor Ético, Predicción de Cierres, Alertas, Seguimiento WhatsApp, Scorecard.
- API:
GET /candidates/export(Etico + Scorecard),GET /reports/alerts/export,GET /whatsapp/conversations/export(cap 5 000 filas + fila sentinel),GET /vacancies/export?view=predictivo. - Hub: helper compartido
downloadBlob.js; truncación WhatsApp muestra toast de advertencia. - Rutas registradas antes del wildcard
/:id;branchScopey guards de permiso preservados.
- El buscador debe realizar búsquedas considerando todas las opciones disponibles seleccionadas dentro de cada apartado.
- Permitir múltiples filtros simultáneos y una búsqueda dentro de ese filtrado.
Incorporar los placeholders correspondientes en los filtros predeterminados de tipo de severidad y estado del candidato.
Implementado — fix displayEmpty + renderValue.
- Eliminar el indicador de Vacantes abiertas duplicado. ✓ Resuelto — commit
499bd65. - Incorporar la columna Responsable de la Vacante en el listado de predicción por vacante. ✓ Resuelto — commit
834278b.
Incorporar la columna Responsable en el listado de candidatos.
Implementado — commit 834278b.
- Permitir la carga del CV del candidato y realizar la extracción automática de información para completar datos faltantes del perfil.
- En el detalle del candidato, permitir consultar la información almacenada en OneDrive únicamente cuando el candidato tenga estatus Contratable, mostrando su expediente completo.
- En el apartado de documentos: mostrar la fecha de carga de cada documento y permitir su visualización.
- Mostrar todos los documentos cargados por el personal de Recursos Humanos.
- Incorporar el checklist completo de documentación requerida (formato a proporcionar por Nancy).
- Habilitar la captura del checklist únicamente cuando el candidato cambie a estatus Contratable.
- Una vez Contratable, habilitar desde el listado una opción para generar el documento de contratación.
- Incorporar los formatos de contratación por empresa (información a proporcionar por Nancy).
- Una vez generado el documento, permitir que el personal valide la información antes de dar de alta al empleado en Nomipaq y demás sistemas.
- Configurar permisos específicos por apartado del perfil del candidato — el administrador tiene acceso completo.
Incorporar los placeholders correspondientes en los filtros disponibles del módulo.
Implementado — fix displayEmpty + renderValue.
- Revisar y corregir los registros de empleados duplicados.
- Identificar casos donde un mismo empleado esté registrado en diferentes empresas del grupo por cambios de puesto.
- Unificar la información del empleado utilizando CURP o RFC como identificador único.
- Conservar las diferentes empresas y puestos como parte del historial laboral dentro del grupo, evitando registros duplicados.
Permitir asignar a los usuarios a una o más empresas, según corresponda.
Implementado — header de empresa clickeable selecciona/deselecciona todas sus sucursales.
- Incorporar una pantalla de configuración que permita administrar y personalizar las plantillas de los mensajes enviados a los candidatos.
- Incorporar la columna Reclutador en el listado de vacantes.
- Mostrar el estatus actual de la vacante y una línea de tiempo que identifique la etapa actual del proceso.
- En el detalle de la vacante: permitir visualizar el CV de los candidatos.
- Permitir descargar el CV del candidato.
- Permitir reenviar el CV por correo electrónico al personal correspondiente.
- Permitir acceder directamente al perfil completo del candidato desde el detalle de la vacante.
- Generar una alerta para el personal correspondiente cuando un empleado de la organización se postule a una vacante.
- Considerar únicamente a los candidatos activos para los cálculos e indicadores.
- Considerar las fechas de baja al aplicar filtros por periodo.
- Validar que el cálculo del índice de rotación continúe siendo correcto después de las modificaciones.
- En el indicador de permanencia: habilitar la posibilidad de filtrar a las personas con mayor antigüedad dentro de la organización.
- Permitir realizar comparativos entre diferentes años en los indicadores anuales.
- Revisar el reporte anual proporcionado por Nancy para identificar información faltante y validar que todos los datos requeridos estén disponibles.
- Implementar un mecanismo para solicitar la autorización del candidato antes de realizar consultas sobre su información.
- Enviar la solicitud de autorización mediante el chatbot.
- Una vez obtenida la autorización, permitir la consulta de: IMSS, Fonacot, Infonavit y Pensiones registradas.
- Permitir que los usuarios de Tuvanosa generen requisiciones de personal mediante un formulario.
- El formulario debe permitir especificar: Empresa, Sucursal, Departamento y Necesidad de talento.
- Implementar un flujo de aprobación para las requisiciones.
- Una vez autorizada una requisición, generar automáticamente la vacante correspondiente.
- Permitir asignar un responsable para cubrir la vacante generada.
- Al publicar una vacante: permitir seleccionar al responsable del proceso de reclutamiento.
- Permitir configurar un responsable predeterminado para la vacante.
- Permitir agregar responsables adicionales.
- Los responsables configurados deben utilizarse como contactos para las fuentes de publicación de la vacante.
- Crear un apartado para administrar la configuración de salarios.
- Permitir establecer rangos salariales de acuerdo con: Empresa, Sucursal y Departamento.
- Utilizar el tabulador configurado para establecer un rango inicial al publicar una vacante.