# 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