Guía Técnica: Incorporación de la Columna de Observaciones INVFACENC.IFE_REFERENCIA al Reporte de Diario de Facturas de Concreto 2



Guía Técnica: Incorporación de la Columna de Observaciones INVFACENC.IFE_REFERENCIA al Reporte de Diario de Facturas de Concreto 2

Introducción

El Diario de Facturas de Concreto 2 (gus005201q.p) es un programa crítico para la gestión y reporte de facturas en el sistema de concreto. En su versión actualizada, se ha incorporado la columna INVFACENC.IFE_REFERENCIA para incluir información adicional de observaciones en el reporte, mejorando la trazabilidad y la capacidad de análisis de las facturas. Esta guía técnica detalla los cambios realizados, su impacto en el sistema, y cómo se implementaron, manteniendo un enfoque profesional y visualmente atractivo para facilitar su comprensión.

Objetivo de la Modificación

La adición de la columna INVFACENC.IFE_REFERENCIA permite incluir observaciones asociadas a cada factura en los formatos detallado por partida y totalizado por factura. Esto proporciona a los usuarios información contextual adicional, como notas específicas sobre la factura, mejorando la claridad y la utilidad del reporte.

Cambios Realizados

1. Modificación en el Bloque de Generación del Reporte

a) Reporte Detallado por Partida

En el bloque IF mDETALLE = 1 THEN, se actualizó la generación de datos en wREPORTE.TMP_DATOS para incluir el campo INVFACENC.IFE_REFERENCIA. Este campo se agrega al final de la cadena de datos, separado por el carácter CHR(9) (tabulador), asegurando compatibilidad con el formato existente.

Código Original:


wREPORTE.TMP_DATOS = copiastr(ALMACEN.ALM_CLAVE) + CHR(9)
    + copiaint(bFACALMEnc.MAE_FOLIO) + CHR(9)
    ...
    + copiastr(STRING(EMPLEADO.EMP_CLAVE)) + CHR(9)
    + copiastr(EMPLEADO.EMP_NOM_ABREV).
    

Código Modificado:


wREPORTE.TMP_DATOS = copiastr(ALMACEN.ALM_CLAVE) + CHR(9)
    + copiaint(bFACALMEnc.MAE_FOLIO) + CHR(9)
    ...
    + copiastr(STRING(EMPLEADO.EMP_CLAVE)) + CHR(9)
    + copiastr(EMPLEADO.EMP_NOM_ABREV) + CHR(9)
    + copiastr(INVFACENC.IFE_REFERENCIA).
    

b) Reporte Totalizado por Factura

De manera similar, en el bloque ELSE DO para el reporte totalizado, se añadió INVFACENC.IFE_REFERENCIA al final de la cadena de datos en wREPORTE.TMP_DATOS.

Código Original:


wREPORTE.TMP_DATOS = copiastr(ALMACEN.ALM_CLAVE) + CHR(9)
    + copiaint(bFACALMEnc.MAE_FOLIO) + CHR(9)
    ...
    + copiastr(STRING(EMPLEADO.EMP_CLAVE)) + CHR(9)
    + copiastr(EMPLEADO.EMP_NOM_ABREV).
    

Código Modificado:


wREPORTE.TMP_DATOS = copiastr(ALMACEN.ALM_CLAVE) + CHR(9)
    + copiaint(bFACALMEnc.MAE_FOLIO) + CHR(9)
    ...
    + copiastr(STRING(EMPLEADO.EMP_CLAVE)) + CHR(9)
    + copiastr(EMPLEADO.EMP_NOM_ABREV) + CHR(9)
    + copiastr(INVFACENC.IFE_REFERENCIA).
    

2. Actualización de Etiquetas y Columnas

Para reflejar la nueva columna en la interfaz del reporte, se modificaron las variables mETIQUETAS, mCOLUMNAS, y mFORMATOS en ambos modos del reporte.

a) Reporte Detallado por Partida

  • mETIQUETAS: Se añadió "Observaciones" al final de la lista de etiquetas.
  • mCOLUMNAS: Se incluyó "Observaciones" como nombre de la nueva columna.
  • mFORMATOS: Se agregó "<25 code=""> para definir el formato de la columna de observaciones, permitiendo un ancho de hasta 25 caracteres.

Código Original:


mETIQUETAS = "Alm|Folio|Fecha|Estatus|#Factura|Nombre Almacén|Clave|Nombre Cliente|tipoCliente|Csg|Nombre Consignatario|"
    + "Dst|Nombre Destino|RFC|Ren|Paq|Artículo|Nombre Artículo|Acelerante|Cantidad|Uni|Precio S/Dscto|%Dscto|"
    + "Precio C/Dscto|Importe|Rem. Cant.|Rem. Imp.|Surtido Manual|Cant. No Rem.|Imp. No Rem|Ven|Vendedor".
mCOLUMNAS = "Alm|Folio|Fecha|Estatus|Factura|AlmacenNombre|ClienteClave|ClienteNombre|Tipo Cliente|ConsigClave|ConsigNombre|"
    + "DestinoClave|DestinoNombre|ClienteRFC|Ren|Paq|Art|NombreArt|Acel|Cantidad|Uni|PrecioSDscto|Dscto|"
    + "PrecioCDscto|Importe|RemCant|RemImp|SrtMan|CantNoRem|ImpNoRem|Ven|Vendedor".
mFORMATOS = "<5>8|>&10|<12>8|<40>4|<35>7|<35>4|>4|<16>12#3|<5>17#5|>10#5|"
    + ">17#5|>$12|>12#3|>$12|<15>12#3|>$12|<7 code="">

Código Modificado:


mETIQUETAS = "Alm|Folio|Fecha|Estatus|#Factura|Nombre Almacén|Clave|Nombre Cliente|tipoCliente|Csg|Nombre Consignatario|"
    + "Dst|Nombre Destino|RFC|Ren|Paq|Artículo|Nombre Artículo|Acelerante|Cantidad|Uni|Precio S/Dscto|%Dscto|"
    + "Precio C/Dscto|Importe|Rem. Cant.|Rem. Imp.|Surtido Manual|Cant. No Rem.|Imp. No Rem|Ven|Vendedor|Observaciones".
mCOLUMNAS = "Alm|Folio|Fecha|Estatus|Factura|AlmacenNombre|ClienteClave|ClienteNombre|Tipo Cliente|ConsigClave|ConsigNombre|"
    + "DestinoClave|DestinoNombre|ClienteRFC|Ren|Paq|Art|NombreArt|Acel|Cantidad|Uni|PrecioSDscto|Dscto|"
    + "PrecioCDscto|Importe|RemCant|RemImp|SrtMan|CantNoRem|ImpNoRem|Ven|Vendedor|Observaciones".
mFORMATOS = "<5>8|>&10|<12>8|<40>4|<35>7|<35>4|>4|<16>12#3|<5>17#5|>10#5|"
    + ">17#5|>$12|>12#3|>$12|<15>12#3|>$12|<7 class="string" span=""><25 span="">".
    

b) Reporte Totalizado por Factura

  • mETIQUETAS: Se añadió "Observaciones" al final.
  • mCOLUMNAS: Se incluyó "Observaciones" como nombre de la columna.
  • mFORMATOS: Se agregó "<20 code=""> para el formato de la columna de observaciones.

Código Original:


mETIQUETAS = "Alm|Folio|Fecha|Estatus|Tipo|#Factura|Nombre Almacén|Clave|Nombre Cliente|tipoCliente|Csg|"
    + "Nombre Consignatario|Dst|Nombre Destino|RFC|Importe|IVA|Total|Mon|Surtido|Pagado|"
    + "Capturó|Fecha Captura|Canceló|Fecha Cancela|Razones Cancela|Importe Remisionado|Surtido Manua|ImpNoRem.".
mCOLUMNAS = "Alm|Folio|Fecha|Estatus|Tipo|Factura|AlmacenNombre|ClienteClave|ClienteNombre|Tipo Cliente|ConsigClave|"
    + "ConsigNombre|DestinoClave|DestinoNombre|ClienteRFC|Importe|IVA|Total|Mon|Surtido|Pagado|"
    + "Capturo|FechaCap|Cancelo|FechaCan|RazCan|RemImp|SrtMan|ImpNoRem".
mFORMATOS = "<5>8|>&10|<12>8|<40>4|"
    + "<35>7|<35>$12|>$12|>$12|<5>$12|>$12|"
    + "<35>@15|<35>@15|<35>$12".
    

Código Modificado:


mETIQUETAS = "Alm|Folio|Fecha|Estatus|Tipo|#Factura|Nombre Almacén|Clave|Nombre Cliente|tipoCliente|Csg|"
    + "Nombre Consignatario|Dst|Nombre Destino|RFC|Importe|IVA|Total|Mon|Surtido|Pagado|"
    + "Capturó|Fecha Captura|Canceló|Fecha Cancela|Razones Cancela|Importe Remisionado|Surtido Manua|ImpNoRem.|Ven|Vendedor|Observaciones.".
mCOLUMNAS = "Alm|Folio|Fecha|Estatus|Tipo|Factura|AlmacenNombre|ClienteClave|ClienteNombre|Tipo Cliente|ConsigClave|"
    + "ConsigNombre|DestinoClave|DestinoNombre|ClienteRFC|Importe|IVA|Total|Mon|Surtido|Pagado|"
    + "Capturo|FechaCap|Cancelo|FechaCan|RazCan|RemImp|SrtMan|ImpNoRem|Ven|Vendedor|Observaciones".
mFORMATOS = "<5>8|>&10|<12>8|<40>4|"
    + "<35>7|<35>$12|>$12|>$12|<5>$12|>$12|"
    + "<35>@15|<35>@15|<35>$12|<25 class="string" span=""><20 span="">".
    

Impacto de los Cambios

  1. Funcionalidad Mejorada:
    • La columna Observaciones permite a los usuarios visualizar notas específicas asociadas a cada factura, como comentarios sobre el cliente, condiciones especiales de entrega, o referencias internas.
    • Esto es particularmente útil para auditorías y seguimiento de facturas con requerimientos específicos.
  2. Compatibilidad:
    • Los cambios mantienen la estructura existente del reporte, asegurando que no se altere la funcionalidad previa.
    • La adición de la columna se realizó al final de las cadenas de datos, evitando conflictos con columnas existentes.
  3. Interfaz de Usuario:
    • La nueva columna se muestra en la interfaz del reporte, con un formato claro y consistente (<25 code=""> para detallado y <20 code=""> para totalizado).
    • La alternancia de colores en el reporte detallado se mantiene, adaptándose al modo claro u oscuro.
  4. Rendimiento:
    • La adición de INVFACENC.IFE_REFERENCIA no introduce consultas adicionales ni afecta el rendimiento, ya que el campo ya está disponible en la tabla INVFACENC.

Beneficios de la Modificación

  • Mayor Contexto: Las observaciones proporcionan información adicional que puede ser crucial para la toma de decisiones.
  • Trazabilidad Mejorada: Facilita el seguimiento de facturas con notas específicas.
  • Flexibilidad: Aplicable tanto en el reporte detallado como en el totalizado, cubriendo todos los casos de uso.
  • Usabilidad: La integración en la interfaz es intuitiva, con etiquetas claras y formatos consistentes.

Consideraciones Técnicas

  1. Validación de Datos:
    • El campo INVFACENC.IFE_REFERENCIA debe contener datos válidos y relevantes. Se recomienda implementar validaciones en el sistema de entrada para evitar valores nulos o inconsistentes.
    • Si el campo está vacío, el reporte mostrará una cadena vacía, lo cual es manejado correctamente por la función copiastr.
  2. Compatibilidad con Versiones Anteriores:
    • Los sistemas que consuman el reporte deben actualizarse para reconocer la nueva columna. Esto incluye interfaces de usuario y herramientas de exportación (e.g., CSV, Excel).
    • La adición al final de la cadena asegura que los sistemas legacy puedan ignorar la columna sin errores.
  3. Pruebas Recomendadas:
    • Pruebas Unitarias: Verificar que el campo IFE_REFERENCIA se muestre correctamente en ambos formatos (detallado y totalizado).
    • Pruebas de Integración: Asegurar que los datos de observaciones se integren correctamente con el resto del reporte.
    • Pruebas de Rendimiento: Confirmar que la adición no impacta el tiempo de generación del reporte.
    • Pruebas de Visualización: Validar que la columna se muestre correctamente en la interfaz, con el formato y ancho especificados.
  4. Documentación:
    • Actualizar la documentación del sistema para reflejar la nueva columna.
    • Comunicar a los usuarios finales sobre la funcionalidad añadida y su propósito.

Ejemplo Visual del Reporte

Reporte Detallado por Partida (Antes)

AlmFolioFechaEstatus#FacturaNombre Almacén...Vendedor
A01123452025-06-01ActivaF-12345Almacén Central...Juan Pérez

Reporte Detallado por Partida (Después)

AlmFolioFechaEstatus#FacturaNombre Almacén...VendedorObservaciones
A01123452025-06-01ActivaF-12345Almacén Central...Juan PérezEntrega urgente requerida

Reporte Totalizado por Factura (Antes)

AlmFolioFechaEstatusTipo#FacturaNombre Almacén...ImpNoRem
A01123452025-06-01ActivaIF-12345Almacén Central...5000.00

Reporte Totalizado por Factura (Después)

AlmFolioFechaEstatusTipo#FacturaNombre Almacén...ImpNoRemObservaciones
A01123452025-06-01ActivaIF-12345Almacén Central...5000.00Entrega urgente requerida

Conclusión

La incorporación de la columna INVFACENC.IFE_REFERENCIA en el Diario de Facturas de Concreto 2 representa una mejora significativa en la funcionalidad del reporte, proporcionando información adicional que enriquece el análisis de las facturas. Los cambios se implementaron de manera eficiente, manteniendo la compatibilidad con el sistema existente y asegurando una experiencia de usuario mejorada. Esta actualización es un paso hacia un sistema más robusto y adaptable a las necesidades de los usuarios.

Anexos

Código Fuente

  • Archivo Original: gus005201q.p (versión sin IFE_REFERENCIA).
  • Archivo Modificado: gus005201q.p (versión con IFE_REFERENCIA).

Notas Adicionales

  • Versión del Sistema: Asegúrese de que el sistema esté actualizado para soportar la nueva columna.
  • Soporte: Contacte al equipo de desarrollo para cualquier duda o problema relacionado con esta actualización.

Fecha de Publicación: 11 de junio de 2025
Autor: Equipo de Desarrollo
Versión del Documento: 1.0

Comentarios

Entradas populares