Usando Drupal para crear aplicaciones financieras

June 18, 2021
En los últimos meses hemos estados trabajando en un proyecto el cual estamos muy contentos con el producto que hemos logrado desarrollar. Usamos Drupal 7 para crear un sistema de importación de reportes financieros, ver los reportes y descargarlos después en excel en múltiples formatos con macros. Realizamos una planeación extensa del proyecto para crear una estructura de contenido adecuada y el proyecto pueda crecer fácilmente a través del tiempo. Importación de data - Para importar la data hicimos un formulario que tomaba xml's con múltiples registros para poder crear n nodos en cada importación por cada registro que se encuentra en el xml (DATA), para la data en cada registro nos basamos en la declaración de campos que usamos en la estructura xsd que previamente realizamos para cada reporte financiero. - Antes que los reportes puedan ser importados y quedar como nodos pasan por tres etapas de validación: la primera es comparando la declaración de los xsd's de cada reporte, la segunda es comparando los números de códigos que se pusieron en los xml's contra campos de código de términos de distintas taxonomías (Ejemplo Panamá tiene un código y si la data del reporte tiene el bracket de País definido va a comparar contra la taxonomía de países y si está entre los códigos entonces pasará la validación) y la tercera es creando una lógica de sumatoría-restas de montos en conjunto con una taxonomía que manejamos con jerarquía entre padre e hijos. - Todos estos reportes guardamos los mensajes de error y de éxito en watchdog, de este modo creamos una bitacora de validaciones. - También incluimos en el módulo de importación que los reportes se versionaran, de este modo creamos un histórico de reportes que se pueden revertir. - Se hizo mucho trabajo con field collections para poder crear las versiones, ya que teníamos que detectar si habían registros nuevos o algunos que se hayan quitado para poder comparar y llegar a crear las versiones. Ver reportes - Para ver los reportes creamos formatos para cada tipo de contenido modificando los tpl's y procesando data antes de imprimir la información en los tp'ls, al ser cada reporte distinto y también por el hecho había que interactuar con la data al usar formulas o tener que rearreglar información. Descargar los reportes - Desarrollamos un formulario que dependiendo de las opciones escogidas se llama a distintos views que están en código, decidimos usar views por su fácil administración futura ya que es muy probable que estas consultas con el tiempo crezcan, usamos views php con variables estáticas, esto nos permite usar código php para poder interactuar con la data de estas consultas. - Para descargar los reportes en formato excel, usamos la una librería llamada PHPExcel, la cual permite interactuar con data y poder inyectarla en hojas de excel, de este modo usamos macros para interactuar con la data de ciertas hojas e imprimirla en formatos. Tuvimos ciertos problemas con la librería usando macros pero realizamos ciertos arreglos y listo. Aquí les dejo una breve sinopsis de un tipo de desarrollo muy especial con Drupal, en el proyecto se usaron más funcionalidades como delegación de roles por jerarquía de roles entre usuarios, eliminación de data masiva, una consola de administración, etc, pero lo más importante del proyecto fue lo que mencione arriba. Saludos