Hace algún tiempo que trabajo para un cliente, que es desarrollador de software también, en la modernización de una de sus principales aplicaciones. Al comenzar el año me encargó que fuera estudiando la manera de implementar facturación electrónica en el nuevo proyecto Delphi, pues empezaban a vislumbrarse casos donde su uso sería obligado.
Estimo que familiarizarse y tener cierto dominio con todos los conceptos que integran ese tema, conforme a lo establecido en las leyes mexicanas (porque en este caso México es el mercado destino del software en cuestión), puede llevar desde un par de meses hasta varios años, según el grado de interés que se ponga y la profundidad con que se investigue en las áreas contables, fiscales, legales y técnicas.
Me conozco y estoy seguro que seré de los que tardarán dos o tres años en sentir que manejo bien el tema. No obstante, leer una veintena de artículos, intercambiar varios correos, comentar en algunas bitácoras, participar en los foros y hacer un par de llamadas telefónicas me ayudó a determinar el camino más viable para lograr la generación de CFDs (Comprobantes Fiscales Digitales) desde una aplicación Delphi, y que estos CFDs o facturas electrónicas, pudieran ser firmadas en tiempo real —vía Internet— por parte de un PAC (Proveedor Autorizado de Certificación).
Tenía muchas ganas de hacer esto con una biblioteca libre que crearon unos colegas de mi ciudad natal, pero desafortunadamente no recibieron un buen trato por parte de los PACs que contactaron, así que hasta el momento no han implementado la parte del timbrado. Opté por acercarme a Darío Álvarez (alias E=M*C^2 o darioaa en algunos foros), quien ya me había requerido en 2010 para echar un vistazo a la biblioteca de programación que estaba por liberar, pero en aquel entonces carecía yo del tiempo y conocimiento fiscal suficiente para atreverme a hacerle alguna recomendación sobre su trabajo.
Hoy ya sé a grandes rasgos lo que es un CFD, qué lo origina, qué elementos se necesitan para generarlo y qué datos devuelve un PAC cuando le es enviada una factura electrónica para su timbrado. Y este conocimiento se refuerza conforme utilizo Electronic Document Library, la biblioteca Delphi que Darío creó para facilitar el trabajo de generar y timbrar comprobantes fiscales digitales.
Ahora que he tenido oportunidad de mirar su funcionamiento —por fuera, porque de momento no incluye el código fuente—, me hubiera gustado haber comenzado con todo este proceso un año antes para aconsejar puntualmente a Darío sobre varios aspectos de EDL que pueden y deben ser mejorados. Él afortunadamente sigue abierto a mis aportaciones de revisión, por lo que seguramente le estaré haciendo llegar algunos correos con propuestas para las siguientes versiones de la biblioteca.
Sin embargo, hay que ver los actuales puntos a favor:
1. La biblioteca EDL es funcional, genera, valida y permite timbrar CFDs. Incluye lo necesario para realizar el timbrado con el PAC Freight Ideas, mejor conocido como Facturaxion. No obstante, escribiendo un poco más de código, el timbrado podría ser hecho con cualquier otro PAC que tenga la amabilidad de proporcionar acceso a su servicio Web de pruebas sin trabas comerciales de por medio. Según comenta Darío, pocos fueron los PACs que se mostraron abiertos a esta iniciativa.
2. El autor trabajó por nueve años para una compañía que desarrolla en Delphi un software de gestión empresarial. En ese tipo de aplicaciones resulta ineludible contemplar todos los detalles posibles de un comprobante fiscal digital, así que pocas cosas se le escapan cuando llega a sus manos una factura rebelde.
3. Darío, si bien no es el programador más hábil que haya visto, es uno de los desarrolladores Delphi que más conoce sobre la historia y los aspectos técnicos, legales y fiscales de la facturación electrónica mexicana. Comenzó a estudiar el tema en el año 2005, justo cuando el gobierno dispuso el camino para la adopción de la factura electrónica a nivel nacional.
Hasta ahora no he utilizado EDL en producción, pero al menos en las pruebas y con el PAC Facturaxion el objetivo se está cumpliendo. El timbrado es automático (demora un segundo a lo mucho con una conexión a Internet típica de hogar), y el XML enviado al PAC es regresado con el complemento TimbreFiscalDigital que tanto se desea.
Recomiendo pues Electronic Document Library (EDL), una iniciativa Delphi que cuando menos un PAC ha sabido reconocer (esperemos que se sumen todos los demás).
Por cierto, que alguien le diga al SAT que adenda, en castellano, no lleva doble de y que se escribe "da validez" no "da valides" (esta última es imperdonable).
Un abrazo electrónico.
Al González. :)
Al,
ResponderSuprimirAntes que nada quiero agradecerte públicamente que hayas decidido hablar sobre la biblioteca que he desarrollado, además ha sido todo haber podido compartir contigo esto de la factura electrónica.
Como bien sabes, ésta es producto de mucho esfuerzo, dedicación y amor al bello arte de la programación y es una forma de apoyar la comunidad, sobre todo en este tema de la factura electrónica.
Un amigo decía que todo es mejorable y soy un convencido de eso, es por eso que siempre estoy atento a escuchar comentarios que ayuden a mejorar la biblioteca y con esto poderle ofrecer lo mejor a la comunidad.
Gracias.
y hablando de que delphi no ha muerto y que hay nicho de oportunidad aca un foro
ResponderSuprimirhttp://www.validacfd.com/phpbb3/
creo que del compa Andres Moreno si bien no es free lo que el ofrece, tiene un costo tanto la libreria para hacer el xml como las de timbrado que los tiene para casi todos los PACs, yo igual por falta de tiempo opte por ellas y todo muy bien estoy por implementar el timbrado con EDICOM en mis oft de gestion comercial... saludos, que opinan de los nuevas librerias como raudus unigui y extpascal....?
Bien Jorge por usar Libreria=Biblioteca.
ResponderSuprimirCuando hablamos de una library, utilizamos esa palabra como metáfora del conjunto de clases, funciones, ficheros y demás que la conforman, igual que cuando le decimos a un ávido lector “¡qué biblioteca tan variada tienes!” nos estamos refiriendo al conjunto de libros, no a las estanterías. En definitiva, nos estamos acogiendo a la cuarta acepción de biblioteca en el dRAE. http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=biblioteca
Si nos vamos al artículo de librería en el mismo dRAE, vemos que su segunda acepción (http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=librer%C3%ADa) indica que es un sinónimo de la definición previamente mencionada de biblioteca. Por lógica, se concluye que a una colección más o menos numerosa de libros se le puede llamar tanto biblioteca como librería. Quedando clara la equivalencia de ambos términos para ese significado, que es el que se utiliza al traducir library del inglés, queda igualmente validada la posibilidad de usar ambos términos al traducir aquél.
Saludos
ANÓNIMO dijo:
ResponderSuprimirBien Jorge por usar Libreria=Biblioteca. [...]
Lo cierto es que por más justificaciones que algunos se esfuerzan en encontrar (cual codiciosos abogados en busca de "huecos legales" sobre los cuales sostener la defensa de un delincuente) para validar el equivocado uso de la palabra librería al hacer referencia a las bibliotecas, observo que cada vez son menos los autores de éstas, de bitácoras, de libros y programadores que caen en ese ya tan famoso error lingüístico.
Lo mejor es convenir en el principio de llamarle a las cosas por su nombre, y no inventar sinónimos con la intención de exculparse por un vicio en el habla.
Jorge: Es bueno saber que existen otras opciones, además de la de Darío y la de BambúCode, para conducir en Delphi el intrincado asunto de la facturación electrónica. :)
Al González.
utilerias, cajas negras, biblitecas, librerias
ResponderSuprimirok ok me late utilerias y biblitecas
saludos
"[...] Darío, si bien no es el programador más hábil que haya visto [...]"
ResponderSuprimirEse comentario se me hace un poco arrogante...
Si se mide la calidad de un programador desde la óptica de los paradigmas, podrías decir que Darío no es un hábil programador porque no usa tal o cual técnica, o la usa mal...
Sin embargo si lo ves desde el punto de vista de cubrir la necesidad y dar la solución, entonces deberías decir que Darío es de los programadores más hábiles que has conocido, ya que su librería EDL cumple con las necesidades para las cuales fue creada...
(sí, utilizo la palabra librería y sigo durmiendo tranquilo...)
EL LIBRERO dijo:
ResponderSuprimir[...] (sí, utilizo la palabra librería y sigo durmiendo tranquilo...)
Es que estar equivocado no suele causar insomnio (por desgracia). :)
Un abrazo a escondidas.
Al.
Estoy utilizando la libreria de Dario y creame que es lo mejor que he encontrado hasta ahora
ResponderSuprimires una super libreria
felicitaciones Dario
un excelente trabajo
Que no es "librería", hombre. Es una biblioteca (del inglés "library"). Y sí, un buen trabajo el que ha hecho nuestro amigo.
ResponderSuprimirSaludos. :)
Gracias Dario por el aporte. Uso la biblioteca desde sus primeras liberaciones, a la fecha la usamos en una solución que desarrollamos para emitir CFDI´s y todo marcha perfecto. Gracias Al González por dar a conocer este tipo trabajos tan valiosos para lo cominidad Delphi que sigue viva.
ResponderSuprimirSi es una biblioteca que sirve para generar CFDI y
ResponderSuprimirCFD, gracias por publicar este tipo de ayuda para nosotros los desarrolladores
saludos
Agradezco a todos por el apoyo que han mostrado hacia el proyecto, es grato saber que son muchas las empresas beneficiadas con la biblioteca.
ResponderSuprimirQuiero invitarlos a todos a que visiten el nuevo sitio www.facturando.com.mx de la biblioteca y le den una revisada a las nueva liberaciones, ya que constantemente estoy agregando mas y mas funcionalidad, de igual forma si tienen alguna duda con mucho gusto los estaré apoyando.
Saludos