Ir al contenido principal

REPORTE BALANCE DE BANCOS

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

1) Nombre del reporte

  • Nombre: Reporte de Balance de Bancos

  • Código/Alias: report_bank_balance

  • Responsable: Equipo de Reportes Cloud

  • Propósito: 


2) Alcance temporal

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

    • created_date  (Fecha y hora de la creación del reporte)

  • Tipo de rango: Mensual

    • Si es Enero y Febrero abarca esos dos meses

    • Si es el mes actual es otro abarca 2 meses posteriores y el actual (3 meses)

  • Horas: Sí, se abarca un rango completo por día [00:00:00 – 23:59:59]

  • Zona horaria: Servidor (igual a sistema)


3) Origen de datos (tablas/APIs)

  • Alias: No hay

  • Campos utilizados (clave → descripción):

    • report ( nombre del reporte report_bank_balance)

    • created_date (Fecha y hora en que se inserta el registro)

    • status (Estado de ejecución: [1 = éxitoso, 0 = error ])

  • Condiciones (WHERE) aplicadas: No aplica, solo utiliza un realiza un insert con los campos report, create d_date y status en la tabla emp_reportes_validation

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


4) Filtros globales del reporte

  • Inclusiones: Solo inserta datos en la tabla emp_reportes_validation

    • report (“report_bank_balance”)

    • created_date (Fecha y hora de la ejecución)

    • status (1 = si el proceso fue éxitoso y 0 = error/falló )

  • Exclusiones: No hay regla que excluya registros para este reporte

  • Reglas habilitado/estado:

    • status = 1 → Ejecución correcta del bankBalance()

    • status = 0 → Ejecución capturada en el catch

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


5) Transformaciones y Reglas de negocio

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

    • created_date: Fecha y hora de ejecución [YYYY-MM-DD H: i: s]

    • first_month: Toma de $last_month y la regla que resta 2 meses para establecer el rango del reporte

    • last_month: Mes [date(“m”)]

    • year: año [date(“Y”)]

  • Mapeos de estado:

    • status 1 =  éxitoso

    • status 0 =  fallo

  • Reglas de validación (p.ej., sólo registros validados): Solo existe la validacion al llamar la funcion bankBalance() regresando como respuesta el status = 1 ó 0

  • Reglas condicionales (si X entonces Y): La única condicional se la del status

 


6) Estructura de salida


  • Tabla/archivo destino: emp_reportes_validatio ()


  • Particionado / sufijo: No tiene

  • Clave(s) primaria(s) o únicas: No cuentan con PK o FK

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

    • report → Nombre fijo del reporte (report_bank_balance)

    • created_date → Fecha y hora de ejecucion

    • status → Estado de ejecución

  • Ordenamiento por defecto: No aplica


7) Frecuencia y operación

  • Ejecución normal: Método update() recorre 2 meses posteriores más el mes actual (3 meses)

  • Ventana que recalcula (días/meses): Si el mes es Enero o Febrero solo calcula la información para esos meses. Si es otro mes calcula 3 meses tomando el mes actual (3 meses)

  • Chunking: En bloques de 9000 registros antes de insertar (array_chunk).

  • Tolerancia a fallos / reintentos: 

    • Maneja try–catch con rollback

    • Si falla la creación o inserción se guarda en error_reports

  • Tiempos de ejecución esperados: No hay

  • UTF-8: force_utf8mb4 = true.

8) Calidad y controles

  • Validaciones previas/post: 

    • Verificación de existencia de la tabla antes de insertar(Si no existe la crea): $verify = $this->verifyExistTable($db_name, $sql);


  • Controles de duplicados: 

    • No hay controles duplicados

    • Observación: Si se ejecuta por segunda vez el reporte con el mismo rango de fecha, no sobre escribe, elimina la data anterior o actualiza. Crea un duplicado de los registros que se apila a los registros de la primera ejecución.


  • Métricas de completitud (qué se monitorea): Se monitorea solo el estado del reporte

    • status = 1 → reporte creado correctamente.

    • status = 0 → error en ejecución.


9) Dependencias externas

  • ERPNext – Bancos

    • Endpoint: method/send-query-database

    • Contrato: retorna valor(status), response.

10) Historial de cambios

2025-09-03 12:00 - Elian Franco Arroyo Rodas - Documentación inicial