Usando Drupal para crear aplicaciones financieras

June 18, 2021

Tags: IT Staff ES 2024
Share

Table of contents

Quick Access

drupal

 

En los últimos meses, hemos trabajado intensamente en un proyecto que nos llena de orgullo por el producto desarrollado. Utilizando Drupal 7, creamos un sistema robusto para importar reportes financieros, visualizarlos y descargarlos en Excel con múltiples formatos y macros. A continuación, compartimos un resumen de las funcionalidades principales.

 

Planeación y Escalabilidad

Realizamos una extensa planificación para diseñar una estructura de contenido que permitiera el crecimiento sostenido del proyecto. Esto aseguró que el sistema sea adaptable a nuevas necesidades a lo largo del tiempo.

 

Importación de Datos

Implementamos un formulario personalizado para importar datos financieros a partir de archivos XML que contienen múltiples registros. Las principales características de esta funcionalidad son:

  1. Creación de nodos:
    Por cada registro en el XML, el sistema genera un nodo basado en la estructura previamente definida mediante un esquema XSD.
  2. Validación en tres etapas:
    Antes de que los reportes sean importados como nodos, pasan por un riguroso proceso de validación:
    • Primera etapa: Verificación de la conformidad con el esquema XSD del reporte.
    • Segunda etapa: Validación de códigos. Por ejemplo, los códigos de países en el reporte se comparan con términos en taxonomías predefinidas, como la taxonomía de países.
    • Tercera etapa: Validación lógica, en la que se suman y restan montos según una jerarquía de términos padre-hijo definida en una taxonomía.
  3. Registro de eventos:
    Los mensajes de error y éxito generados durante el proceso se almacenan en watchdog, creando una bitácora de validaciones para consultas futuras.
  4. Versionado de reportes:
    Los reportes importados se versionan automáticamente, lo que permite mantener un historial y revertir cambios si es necesario. Para implementar esta funcionalidad, utilizamos field collections, lo que facilitó detectar registros nuevos o eliminados al comparar versiones.

 

Visualización de Reportes

Cada reporte financiero tiene un formato de presentación único, diseñado mediante la personalización de templates (tpl’s) y el procesamiento previo de datos. Esto nos permitió interactuar con la información mediante fórmulas y reorganizarla según las necesidades específicas de cada reporte.

 

Descarga de Reportes

  1. Generación de reportes en Excel:
    Desarrollamos un formulario dinámico que, basado en las opciones seleccionadas, llama a distintas views definidas en código. Decidimos utilizar views debido a su fácil administración y escalabilidad a futuro.
  2. Uso de PHPExcel:
    Para descargar los reportes en formato Excel, empleamos la librería PHPExcel, que facilita la interacción con los datos y su inyección en hojas de cálculo. También configuramos macros para procesar información en ciertas hojas y generar formatos específicos. Aunque encontramos algunos problemas iniciales con las macros, los resolvimos exitosamente.

 

Funcionalidades Adicionales

Además de las funcionalidades descritas, el proyecto incluye:

  • Delegación de roles: Implementamos jerarquías entre usuarios para gestionar permisos.
  • Eliminación masiva de datos: Agregamos herramientas para limpiar grandes volúmenes de datos cuando sea necesario.
  • Consola de administración: Desarrollamos una interfaz centralizada para facilitar la gestión del sistema.

 

Este desarrollo ejemplifica cómo Drupal 7 puede adaptarse para proyectos complejos, combinando flexibilidad y potencia. Aunque hubo desafíos técnicos, logramos superarlos, consolidando una solución funcional y escalable para la gestión de reportes financieros.

 

¡Saludos!

 

Te recomendamos este video