Skip to content

Librería hecha en Delphi que implementa la factura electrónica de México (CFDI).

Notifications You must be signed in to change notification settings

jibleg/tfacturaelectronica

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TFACTURACIONELECTRONICA v2.0 - Alpha

Esta es una librería que sirve para generar una factura electrónica (CFDI) de acuerdo a los artículos y leyes establecidas en la ley de Mexico y definidos por el SAT.

El propósito es servir como una libreria gratuita, de código abierto, de fácil uso en la cual con el esfuerzo de la comunidad siempre esté actualizada y funcional.

Algunos aspectos que busca tener esta libreria:

  • Estar vigente (actualizada)
  • No depender de librerias comerciales.
  • Ser de fácil uso.
  • Que pueda ser integrada fácilmente a cualquier proyecto existente.
  • Contar con pruebas de unidad automatizadas para corroborar el funcionamiento adecuado de cada función y clase.
  • Estar implementada en clases (seguir reglas de programación orientada a objetos).
  • Esconder los detalles de implementación/técnicos al usuario final (el programador que use la clase).

Requerimientos técnicos

  • Contar con alguna edición de Delphi (de momento solo se garantiza funcionamiento en Delphi Seattle)
  • Contar con librerias libeay32.dll, ssleay32.dll y el ejecutable openssl.exe (solo para las pruebas automatizadas) las cuales se encuentran en la siguiente liga: http://www.openssl.org/related/binaries.html

Limitaciones

A partir de la versión 2.0 de la librería, que implementa el soporte para CFDI v3.3 (Julio 2017), se estandariza el uso de las clases auto generadas por Delphi para el manejo del XML de los comprobantes permitiendo el uso de todos los nodos, atributos y propiedades de cada version según los haya definido el SAT, sin embargo de omiten las validaciones de los campos y ahora esta responsabilidad será a cargo del programador / usuario de la librería.

Por ejemplo la librería te permitirá llenar el atributo Total de la factura con una cadena, lo cual no es correcto pero a nivel XML es válido.

Proveedores Autorizados de Certificación (PAC) Soportados por v2.0

  • Ecodex - http://www.ecodex.com.mx
  • FinkOk - colaboración de @ptorres
  • ComercioDigital - colaboración de @ptorres
  • Solución Factible - colaboración de @ffaccinetto

Documentación Técnica

A partir de la v2.0 de la librería, se ha documentado de forma extensiva el proyecto, la estructura, su funcionamiento, etc. para ello te invitamos a consultar https://github.com/bambucode/tfacturaelectronica/wiki

¿Qué falta?

A Mayo de 2017 falta de implementar lo siguiente (en orden de importancia):

  • Lectura de CFDI 3.3
  • Generación de CBB con cambios para CFDI 3.3.
  • Soporte para generación/lectura de CFDI 3.2 (para fines de compatibilidad y migración)
  • Lanzar excepciones basado en el catálogo de errores de CFDI 3.3 (Parcial)
  • Poder incluir impuestos locales (3.2 y 3.3).
  • Complemento de pagos con ayuda de @ffaccinetto
  • Otros complementos (comercio electronico, etc.)
  • Pruebas de unidad
  • Validaciones de campos basado en los múltiples catálogos publicados por el SAT.
  • Soporte para ediciones anteriores de Delphi 7, Delphi 2007, 2010, XE1 etc. con ayuda de @fduenas
  • Realizar pruebas en Delphi 2007, Delphi 2009 y Delphi 2010

Notas de compatibilidad con otras versiones de Delphi

  • Se agregó y probó exitósamente el soporte con Delphi 7, Delphi XE1 y Delphi XE 10.2.3 (Tokyo), por lo que no debe haber problemas con Delphi 2009 y 2010 y demás versiones intermedias.

  • Para el soporte con Delphi 7, Delphi 2007, Delphi 2009 y Delphi 2010 se requiere usar la librería TPerlRegExp para el uso de Expresiones Regulares, debido a que el soporte nativo para estas últimas se agregó a partir de Delphi XE1.

  • NOTA especial para versiones que no son Unicode (Delphi 7 - Delphi 2007)

    • Casi todos los archivos de XSLT y XSD usados en esta librería han sido convertidos a un formato Unicode UTF-8 Sin BOM (Bye Order Mark), esto asegura su portabilidad entre versiones antiguas y nuevas de Delphi al momento de ser leídas como Resources o Binary Streams. Por lo que si desean agregar nuevos archivos o nuevas versiones de los ya existentes, deben asegurarse de ello para garantizar que puedan ser usados en diferentes versiones de Delphi.
    • Lo anterior se puede lograr usando editores de texto avanzados, en este caso se usó NotePad++, abriendo el archivo correspondiente, y en la opción 'Codificación' cambiar a 'Codificación UTF-8 Sin BOM', si la interface de NotePad++ está en Inglés, está opción será 'Encoding/Encode in UTF-8', una vez seleccionada esa opción hay que guardar el archivo y, si estos archivos son includios como Recursos (*.res, .dres), es necesario recompilar los archivos fuente de recurso (.rc).

¿Cómo puedo ayudar?

La librería lleva más de 4 años de haber sido liberada al público, sin embargo aun falta mucho trabajo por hacer. Puedes comenzar checando el apartado de "Issues" del proyecto para ver en que puedes colaborar, una vez que lo hagas puedes mandar un pull-request para que implementemos tus cambios.

Si te interesa contribuir en mejorar, extender o corregir esta librería para el beneficio de la comunidad y crédito para tí ponte en contacto a través del foro oficial de la librería en https://groups.google.com/forum/#!forum/tfacturaelectronica

Soporte Técnico

El soporte técnico se hace a través de la comunidad en el foro oficial de la librería al cual se puede acceder en: https://groups.google.com/forum/#!forum/tfacturaelectronica . De manera adicional, si encuentras alguna falla o te gustaría alguna funcionalidad favor de reportarla en esta página en la sección de "Issues" para que otros usuarios puedan colaborar y encontrar una solución como comunidad, te agradecemos intentes corregir cualquier problema primero antes de reportarlo para al menos saber que has intentado solucionarlo por tu cuenta.

Notas adicionales

El ejecutable que use esta libreria deberá contar con los archivos DLL de openssl en el mismo directorio de la aplicación para que pueda funcionar. Considere esto cuando genere un instalador o vaya a distribuir su aplicación final.

Icono proporcionado por: http://pc.de/icons/

Compatibilidad con versiones

La libreria ha sido probada solamente con Delphi 7, Delphi XE1, Delphi XE2, delphi XE10.2.3 (Tokyo), por lo que no debería haber problema con versiones intermedias y aunque se ha tratado de mantener la compatibilidad con versiones desde Delphi 7, si se encuentra algún error, favor de reportarlo a la brevedad. En especial las rutinas de generación de CFDI v3.2 no han sido probadas en versiones anteriores a Delphi XE2. Antes de realizar pruebas con versiones anteriores a Rad Studio XE1, es importante leer la sección .

Colaboradores actuales.

About

Librería hecha en Delphi que implementa la factura electrónica de México (CFDI).

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Pascal 93.5%
  • XSLT 6.1%
  • PHP 0.4%