Ir al contenido principal

REPORTE DE REQUERIMIENTO PERSONAL

FUENTE: /var/www/html/horario_salida/app/Http/Controllers/Cloud/ReportController.php


/var/www/html/qareportes/app/Http/Controllers/Cloud/ReportController.php



1) Nombre del reporte

  • Nombre: Reporte Requerimiento Personal

  • Código/Alias: report_requerimientos_personal_

  • Responsable: Equipo de Reportes Cloud

  • Propósito:

2) Alcance temporal

  • Campo(s) de fecha utilizados (base): 

    • fecha_creacion

    • fecha_atencion

    • fecha_de_cierre_de_vacante

    • fecha_de_proceso

    • tiempo_de_cobertura

    • fecha_de_cubierto


  • Tipo de rango:  firstDate [YYYY-MM]

  • Horas: No, se toma en cuenta el rango de fecha.

  • Zona horaria: Lima - Perú

3) Origen de datos (tablas/APIs)

  • Tablero: report_requerimientos_personal_YYYY_MM

  • Alias: 

    • "fecha_creacion" => fechaPart[0]

    • "fecha_atencion" => fechaProcesoSolo

  • Campos utilizados (clave → descripción):

    • name → Identificador del requerimiento.

    • creation → Se transforma en fecha_creacion (solo la fecha, sin hora).

    • agencia → Agencia solicitante.

    • data_3 → Número de vacantes (n_vacantes).

    • tipo_de_reclutamiento → Tipo de reclutamiento.

    • estado_rp → Estado del requerimiento.

    • prioridad → Prioridad.

    • cv_aceptados → CV aceptados (vacío si NULL).

    • fecha_historial_atencion → Usado como fallback para fecha_atencion si no existe en $fechaProcesoData.

    • cv_filtrado → CV filtrados (vacío si NULL).

    • posicion_solicitada → Posición solicitada.

    • vacantes_cubiertas → Vacantes cubiertas.

    • fecha_de_cierre_de_vacante → Fecha de cierre.

    • sexo → Sexo solicitado.

    • turno → Turno solicitado.

    • compromiso_cobertura → Compromiso de cobertura.

    • tiempo_de_cobertura → Tiempo de cobertura.

    • fecha_de_cubierto → Fecha en que se cubrió la vacante.

    • _assign → JSON con asignados → convertido a string separado por comas.

    • branch_id → ID de sucursal.

 

4) Filtros globales del reporte

  • Inclusiones: Solo filtra o trae información de los 4 últimos meses. Lo mismo aplica para la api de Recursos humanos

  • Exclusiones: Ningún registro se descarta según estado, valores de campos o validación.

  • Estado: “estatus” → se asigna 1 por defecto a todos los registros

  • Parámetros externos: El único parámetro externo es el rango de fechas (dateCreationIni, dateCreationFin) que el usuario o quien llame la función puede definir.


5) Transformaciones y Reglas de negocio

  • Campos:

    • fecha_creacion: Extrae la fecha [YYYY-MM-DD]

    • fecha_de_proceso Extrae la fecha [YYYY-MM-DD]

    • fecha_atencion: Extrae la fecha [YYYY-MM-DD]

    • asignado_a: De un JSON a String

    • cv_filtrados: Si es Null se pasa a un string vacío

    • cv_aceptados: Si es Null se pasa a un string vacío

  • Estado: status: 1 → Activo por defecto

  • Validación: 

    • cv_aceptados  (El contenido del campo no debe ser igual a null)

    • cv_filtrados  (El contenido del campo no debe ser igual a null)


6) Estructura de salida

  • Destino: report_requerimientos_personal_YYYY_MM

  • Particionado / sufijo: Cada mes (date = Y_m).

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

    • id →primary key → Auto incrementa

    • name → string → Nombre

    • fecha_creacion → date → fecha

    • agencia  → string → Nombre

    • n_vacantes → string → Cantidad

    • tipo_reclutamiento → string → puede ser Null

    • estado → string → Nombre del estado

    • prioridad → string → Null

    • cv_aceptados → string → Null

    • fecha_atencion → date → Null

    • cv_filtrados → string → Null

    • posicion_solicitado →string → Null

    • vacantes_cubiertas →string → Null

    • fecha_de_cierre_de vacantes → string → Null

    • fecha_de_proceso →string → Null

    • sexo →string → Null

    • turno →string → Null

    • compromiso_de_cobertura →string → Null

    • tiempo_de_cobertura →string → Null

    • fecha_de_cubierto →string → Null

    • asignado_a →string → Null

    • id_sucursal →string → Null

    • created_date →dateTime→ Null

    • status → tintin(4) → default 1

  • Observación: hay campos con nombre fecha qué son tipos string 

  • Condiciones: Trae toda la información sin condición

7) Frecuencia y operación

  • Ventada que recalcula(Días/meses): El rango se controla con los parámetros externos que se ingresen.

  • UTF-8: force_utf8mb4 = true.

8) Calidad y controles

  • Validaciones previas/post: 

    • Se validan indirectamente fechas ingresadas en los parámetros.

    • Post: Se valida la respuesta de la API

  • Controles de duplicado: No se encontró.

    • Sobrescribe sobre la última información.

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

    • Existen pequeños controles que detectan los null y los transforman en strings vacíos


9) Dependencias externas


  • API: Descarga datos de la API  de Recursos Humanos “api/report-requerimiento-personal-lima” en un rango del primer y último día.

  • Endpoint: APICAPCITACION method/send-query-database

  • Contrato: Retorna (name, agencia, tipo_reclutamiento, estado_erp, fecha_creacion)

10) Historial de cambios

2025-09-02 19:15 - Elian Franco Arroyo Rodas - Documentación inicial