# REPORTE LICENCIA CERTIFICADOS

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

## 1) Nombre del reporte

- Nombre: Report licencias certificados
- Código/Alias: report\_licencias\_certificados
- Responsable: Equipo de Reportes Cloud
- Propósito: Ejecutar la actualización del reporte de licencias y certificados, registrando en la tabla emp\_reportes\_validation el estado (éxito o error) de la ejecución.

## 2) Alcance temporal

- Campo(s) de fecha utilizados (base):
- "first\_date" → date("Y-m-d")
- "second\_date" → date("Y-m-d")
- "created\_date" → date("Y-m-d H:i:s")

- Tipo de rango: Diarioo ( firstDate y secondDate se generan con la fecha actual ("Y-m-d"))
- Inclusión de horas (sí/no):
- "created\_date" sí incluye horas → formato Y-m-d H:i:s. (00:00:00 – 23:59:59)


Zona horaria: Servidor (igual a sistema)

##  

## 3) Origen de datos (tablas/APIs)

### 3.1 Cargueros programados

- Conexión/Base: empresarial
- Tabla: emp\_reportes\_validation
- Campos utilizados (clave → descripción):
- "report" → nombre o alias del reporte ejecutado.
- "first\_date" → fecha de inicio (en este caso, fecha actual).
- "second\_date" → fecha de fin (misma fecha actual).
- "created\_date" → fecha y hora exacta de la ejecución.
- "status" → estado de la ejecución (1 = éxito, 0 = error)

- Condiciones (WHERE) aplicadas:
- Ninguna, solo se realiza un insert directo en la tabla.

- Tipo de unión con otras fuentes (JOIN y llave):
- No hay uniones (JOIN) en este bloque.


## 4) Filtros globales del reporte

- Inclusiones (must-have):
- No hay filtros de inclusión aplicados en este bloque.
- El único “must-have” implícito es que siempre se inserta un registro en emp\_reportes\_validation al ejecutar el método.

- Exclusiones (reglas de descarte): No existen reglas de exclusión en el código (ningún WHERE ni condición de descarte sobre datos externos).
- Reglas habilitado/estado:
- Se maneja el campo "status":
- 1 → ejecución correcta del reporte.
- 0 → ejecución fallida (capturada en el catch).

- No hay validación de “habilitado” en la tabla ni en el código.

- Parámetros externos (si el usuario puede filtrar):
- No hay parámetros externos.
- Fechas (first\_date y second\_date) se fijan automáticamente al día actual, sin posibilidad de modificar por entrada externa.


## 5) Transformaciones y Reglas de negocio

- Derivaciones de campos (cómo se calculan):
- "first\_date" y "second\_date" → se derivan de la fecha actual con date("Y-m-d").
- "created\_date" → se deriva del momento exacto de ejecución con date("Y-m-d H:i:s").
- "status" → se asigna en función del resultado de la ejecución:
- 1 si no hay excepción.
- 0 si se captura una excepción.


- Mapeos de estado:
- status = 1 → reporte generado / ejecución exitosa.
- status = 0 → error durante la ejecución (capturado en el catch)

- Reglas de validación (p.ej., sólo registros validados):
- No existen validaciones explícitas sobre los datos antes de insertarlos en la tabla.
- Se asume que los valores generados son siempre válidos porque provienen del sistema (date() y constantes).


- Reglas condicionales (si X entonces Y):
- Si el bloque try se ejecuta sin errores, entonces se inserta un registro con status = 1.
- Si ocurre una excepción (catch), entonces se inserta un registro con status = 0.
- Si $response\_service contiene al menos un elemento, el método retorna "status" =&gt; true, de lo contrario "status" =&gt; false.


  
6\) Estructura de salida

- Tabla/archivo destino: emp\_reportes\_validation (tabla de reportes)
- Particionado / sufijo: No hay, todo se inserta directamente en emp\_reportes\_validation
- Clave(s) primaria(s) o únicas: No se especifica, pero se asume que la tabla tiene un campo autoincremental (ej. id) como clave primaria.
- Columnas del reporte (nombre → tipo → descripción):
- report → string → alias/nombre del reporte (report\_licencias\_certificados).
- first\_date → date → fecha de inicio (en este caso, fecha actual).
- second\_date → date → fecha de fin (igual a la fecha actual).
- created\_date → datetime → momento exacto de la ejecución.
- status → int → estado de la ejecución (1 = éxito, 0 = error).


- Ordenamiento por defecto: no aplica para este reporte.

## 7) Frecuencia y operación

- Frecuencia de actualización: No está definida en el código. Se puede ejecutar en un cron.
- Ventana que recalcula (días/meses): Se ejecuta diariamente.
- Tamaño de lote / paginado (chunking):
- No hay procesamiento en lotes ni paginado.
- Sólo registra un único resultado en emp\_reportes\_validation por ejecución.

- Tolerancia a fallos / reintentos: Si ocurre una excepción, se captura en el catch y se inserta igualmente un registro con status = 0  
    No hay Reintentos
- Tiempos de ejecución esperados: No se especifica en el código.

UTF-8: force\_utf8mb4 = true.

## 8) Calidad y controles

- Validaciones previas/post:
- Previas: No existen validaciones antes de ejecutar reportLicenciasCertificados() ni antes de insertar en la tabla.
- Post: El único control es verificar si $response\_service tiene elementos (count($response\_service) &gt; 0) para retornar status = true/false.

- Controles de duplicados: No hay controles para evitar duplicados en la tabla

- Métricas de completitud (qué se monitorea):
- Solo se monitorea un campo: status (1 = ejecución exitosa, 0 = fallida).


  
  
9\) Dependencias externas

- ERPNext – Licencias y Certificados
- Endpoint: method/send-query-database
- Request:
- filters → JSON vacío (\[\]).
- where → "where definido\_para\_la\_sucursal = 'SI'".
- sql\_query → listado de campos (ej. name, sucursal, id\_sucursal, etc.).
- tables → `tabLicencias y Certificados`.

- Contrato: retorna estado\_documento, n\_serie, number\_factura.

- Autenticación / headers: No se maneja ningún esquema de autenticación ni headers en este código.
- Mapeos y contratos de datos:
- El “contrato de datos” que este método garantiza es la inserción en emp\_reportes\_validation con los campos:
- report → string (nombre del reporte).
- first\_date → date.
- second\_date → date.
- created\_date → datetime.
- status → int (0/1).

- Este contrato sirve como registro estándar para saber si el reporte se ejecutó y con qué resultado.


## 10) Historial de cambios

2025-09-10 17:00 - Elian Franco Arroyo Rodas - Documentación inicia