Ir al contenido principal

REPORTE REQUERIMIENTO PERSONAL LIMA

Fuente:  /var/www/html/qareportes/app/Http/Controllers/Cloud/RequerimientoPersonalController.php

1) Nombre del reporte

  • Nombre: Reporte Requerimiento Personal Lima

  • Código / Alias:   report_requerimiento_personal_lima_

  • Responsable:  Equipo de Reportes Cloud

  • Propósito (1 línea):


2) Alcance temporal

  • Campo(s) de fecha utilizados:

    • fecha_de_requerimiento (Requerimiento de Personal Lima)

    • creation (CV Filtrado)

    • fecha_entrevista (Entrevista)

    • fecha_inicio (Contrato de Trabajo)


  • Tipo de rango (diario / mensual / personalizado): Mensual (se recalculan por mes con range_days)

  • Inclusión de horas (sí/no). Si sí: [00:00:00 – 23:59:59]

  • Zona horaria: La del servidor 


3) Origen de datos (tablas/APIs)

3.1 Conexión / Base: CAPACITACION

  • Tabla / Recurso:
    method/erpnext.education.doctype.requerimiento_de_personal_lima.api.report


  • Alias (si aplica): No aplica

  • Campos utilizados (clave → descripción):

    • name → Identificador de la solicitud

    • fecha_de_requerimiento → Fecha de requerimiento

    • _assign → Usuario asignado (reclutador)

    • compromiso_cobertura → Fecha compromiso de cobertura

    • documento_convocatoria → Documento de convocatoria

    • puesto → Puesto solicitado

    • estado_rp → Estado del requerimiento


  • Condiciones (WHERE) aplicadas: fecha_de_requerimiento BETWEEN date_start AND date_end

  • Tipo de unión con otras fuentes (JOIN y llave): Relación indirecta con CV Filtrado por campo documento_convocatoria

  • Observaciones (ej. particiones, índices): Uso de alias en campo (posicion_solicitada AS puesto).

3.2 Conexión / Base: CAPACITACION

  • Tabla / Recurso: CV Filtrado

  • Alias (si aplica): No aplica

  • Campos utilizados (clave → descripción):

    • name → Identificador de CV

    • numero_documento → Documento del postulante

    • nombre_solicitante → Nombre completo del postulante

    • puesto_oportunidad → puesto (alias)

    • oportunidad_empleo → Convocatoria vinculada

    • creation → Fecha de registro del CV



  • Condiciones (WHERE) aplicadas:oportunidad_empleo IN (documentos_convocatorias)

  • Tipo de unión con otras fuentes (JOIN y llave): 

    • Relación con Requerimiento de Personal Lima por documento_convocatoria.

    • Relación con Entrevista por name (CV) → enlace_cv.


  • Observaciones (ej. particiones, índices): Uso de alias en campo (puesto_oportunidad AS puesto).



3.3 Conexión / Base: CAPACITACION


  • Tabla / Recurso: Entrevista

  • Alias (si aplica): No aplica

  • Campos utilizados (clave → descripción):

    • name → Identificador de entrevista

    • fecha_entrevista → Fecha de la entrevista

    • contratado → Estado de contratación (Sí/No)

    • numero_de_documento → Documento del postulante

    • puesto → Puesto ofertado

    • enlace_cv → Relación con CV filtrado





  • Condiciones (WHERE) aplicadas: enlace_cv IN (cv_filtrado_name)


  • Tipo de unión con otras fuentes (JOIN y llave): 

    • Relación con CV Filtrado por enlace_cv.

    • Relación con Contrato de Trabajo por numero_de_documento.


  • Observaciones (ej. particiones, índices): Se usa para validar si el postulante fue contratado.




3.4 Conexión / Base: CAPACITACION


Tabla / Recurso: Contrato de Trabajo

Alias (si aplica): No aplica

  • Campos utilizados (clave → descripción):

    • name → Identificador de contrato

    • fecha_inicio → Fecha de inicio del contrato

    • labor → puesto (alias)

    • dni → Documento del trabajador

    • Condiciones (WHERE) aplicadas:

    • dni IN (entrevista_documento)



  • Tipo de unión con otras fuentes (JOIN y llave): Relación con Entrevista por dni.

  • Observaciones (ej. particiones, índices): Uso de alias en campo (labor AS puesto).


4) Filtros globales del reporte

  • Inclusiones (must-have):

    • Rango de fecha (date_start, date_end).

    • Consulta a tablas ERPNext: Requerimiento de Personal Lima, CV Filtrado, Entrevista, Contrato de Trabajo.

    • Respuesta del API CAPACITACION.


  • Exclusiones (reglas de descarte):

    • Se descartan CVs con fecha de creación (creation) anterior a fecha_de_requerimiento.


  • Reglas por estado / habilitado:

    • Solo entrevistas con contratado = "Contratado" son consideradas para contratos.


  • Parámetros externos (si el usuario puede filtrarlo):

    • date_start

    • date_end



5) Transformaciones y Reglas de negocio

  • Derivaciones de campos (cómo se calculan):

    • reclutador → se deriva de _assign parseado en JSON.

    • f_reclutamiento → puede ser compromiso_cobertura o creation del CV.


  • Mapeos de estado:

    • estado_rp se mapea desde la tabla Requerimiento de Personal Lima.

    • contratado se mapea desde la tabla Entrevista.


  • Reglas de validación (p.ej., sólo registros validados):

    • Si no existe la tabla destino se inserta un error en error_reports.

    • Validación de creación de tabla report_requerimiento_personal_lima_YYYY_MM.


  • Reglas condicionales (si X entonces Y):

    • Si no existe la tabla del mes actual → se crean hasta 12 meses atrás.

    • Si no existen CVs → se guarda registro con documento, nombre_completo, entrevista y contrato en None.

    • Si ocurre error → se inserta en emp_reportes_validation con status 0.

6) Estructura de salida

  • Tabla/archivo destino: report_requerimiento_personal_lima_YYYY_MM

  • Particionado / sufijo: report_requerimiento_personal_lima_YYYY_MM

  • Clave(s) primaria(s) o únicas: No aplica

  • Columnas del reporte (nombre → tipo → descripción):

    • rq_personal → VARCHAR(50) → ID del requerimiento de personal

    • f_solicitud → DATE → Fecha de solicitud

    • reclutador → VARCHAR(100) → Usuario asignado al requerimiento

    • puesto → VARCHAR(100) → Puesto solicitado

    • f_reclutamiento → DATETIME → Fecha compromiso de cobertura o creación del CV

    • estado_rp → VARCHAR(50) → Estado del requerimiento

    • documento → VARCHAR(50) → DNI del postulante

    • nombre_completo → VARCHAR(255) → Nombre del postulante

    • f_entrevista → DATE → Fecha de entrevista

    • f_contrato → DATE → Fecha de inicio del contrato

  • Ordenamiento por defecto: No se especifica ORDER BY

7) Frecuencia y operación

  • Frecuencia de actualización: PENDIENTE (Esperando info de Eduardo)

  • Ventana que recalcula (días/meses): Se recalcula desde el primer día al último día de cada mes.

  • Tamaño de lote / paginado (chunking): Los datos se procesan en lotes de 900 registros.

  • Tolerancia a fallos / reintentos: Los datos se procesan en lotes de 900 registros.

  • Tiempos de ejecución esperados: PENDIENTE (Esperando info de Eduardo)


8) Calidad y controles

  • Validaciones previas/post:

    • Previas: Verificar existencia de tabla destino (exist_table_bd).


  • Post: Registro en emp_reportes_validation con status=1 si es exitoso o status=0 si falla.


  • Controles de duplicados: No aplica control de duplicados.

  • Métricas de completitud (qué se monitorea): 

    • Validación de estados de inserción en emp_reportes_validation (1 éxito, 0 fallo).

    • Validación de existencia de tabla destino.


9) Dependencias externas

  • APIs / servicios y endpoints:

    • API: APICAPACITACION

    • Servicio: Reporte Requerimiento de Personal Lima

    • Endpoint: method/erpnext.education.doctype.requerimiento_de_personal_lima.api.report

  • Autenticación / headers:  No se encontró.

  • Mapeos y contratos de datos:

    • Mapeo: Datos del API se insertan en tabla report_requerimiento_personal_lima_YYYY_MM.

    • Contrato de datos: El API debe devolver los campos: name, fecha_de_requerimiento, _assign, compromiso_cobertura, documento_convocatoria, puesto, estado_rp.


10) Historial de cambios

2025-09-29 15:45 - Elian Franco Arroyo Rodas - Documentación inicial