Contribución: Script para convertir catálogos y repositorio con catálogos en JSON

60 views
Skip to first unread message

Ing. Luis Carrasco

unread,
Nov 7, 2017, 4:59:19 PM11/7/17
to TFacturaElectronica
¡Hola! en las semanas pasadas hemos estado trabajando en implementar los cambios del SAT respecto a CFDI 3.3. Como sabemos, parte de estos cambios involucra el manejar los catálogos de CFDI que el SAT muy "considerablemente" provee en un archivo de Excel, dado que sabemos que el implementar la sincronización y/o actualización de estos catálogos desde Excel puede ser problemático para cualquier software, decidimos realizar dos proyectos de código abierto:

1. Gem de ruby para convertir el XLS a JSON
El primero es un gem de Ruby el cual permite descargar el catálogo XLS del SAT (http://www.sat.gob.mx/informacion_fiscal/factura_electronica/Documents/Complementoscfdi/catCFDI_.xls)  y convertir cada una de sus hojas (sheets) a su equivalente en JSON de forma adecuada. Consideramos que el formato JSON es mucho más fácil procesarlo programáticamente prácticamente desde cualquier lenguaje. Este código lo pueden descargar y/o contribuir desde:

2. Repositorio de los catálogos en formato JSON actualizado
Usando el script/gem anterior, contamos con un servidor que se encarga de verificar si el XLS del SAT cambió y si así fue, se encarga de convertir el archivo de Excel a archivos JSON y de subir los últimos cambios de forma automática al siguiente repositorio:

De esta manera esperamos contar con un espejo de los catálogos en formato JSON de forma automática cada vez que el SAT realice cambios a su archivo de Excel, y al ser en Git nos facilita la revisión de cambios, ver que agregaron, eliminaron, etc.

Es importante notar que debido a que acabamos de publicar el proyecto aun no se han detectado cambios al catálogo por lo que los archivos actuales son los generados del archivo XLS más reciente del SAT.

Esperamos estos proyectos les sean tan útiles como lo han sido para nosotros, y sobre todo que comunidad nos facilitemos el trabajo.

Agradecemos sus comentarios, sugerencias, correcciones, etc.
Reply all
Reply to author
Forward
0 new messages