Tfacturacionecotronica v4.0
Il s'agit d'une librairie qui sert à générer une facture électronique (CFDI) selon les articles et lois établies dans la loi du Mexique et définis par le SAT.
Le but est de servir de bibliothèque gratuite, open source, facile à utiliser dans laquelle l'effort de la communauté est toujours mis à jour et fonctionnel.
Quelques aspects que cette bibliothèque cherche à avoir:
- Être en vigueur (mis à jour)
- Ne dépendez pas des bibliothèques commerciales.
- Être facile à utiliser.
- Qui peut être facilement intégré dans tout projet existant.
- Ont des tests unitaires automatisés pour corroborer le bon fonctionnement de chaque fonction et classe.
- Être implémenté dans les classes (suivez les règles de programmation orientées objet).
- Masquer les détails / techniciens de l'implémentation à l'utilisateur final (le programmeur qui utilise la classe).
Exigences techniques
- Avoir une édition de Delphi (pour le moment, seule l'opération est garantie à Delphi Seattle)
- Ayez des bibliothèques libaay32.dll, ssleay32.dll et l'exécutable openssssl.exe (uniquement pour les tests automatisés) qui sont dans la ligue suivante: http://www.opessl.org/related/binin.html
Limites
À partir de la version 2.0 de la librairie, qui met en œuvre la prise en charge de CFDI V3.3 (juillet 2017), l'utilisation des classes automobiles générées par Delphi est standardisée pour la gestion de la XML des bons permettant l'utilisation de tous les nœuds, attributs et propriétés de chaque version telle que définie par le SAT, mais les validations des champs sont omises et maintenant cette responsabilité sera en charge. Librairie
Par exemple, la librairie vous permettra de remplir l'attribut Total de la facture avec une chaîne, ce qui n'est pas correct mais au niveau XML est valide.
Les fournisseurs de certification autorisés (PAC) soutenus par la v2.0
- Ecodex - http://www.ecocex.com.mx
- Finkok - Collaboration de @ptorres
- Mersiodigital - Collaboration de @ptorres
- Solution réalisable - Collaboration de @ffaccinetto
- Multifacturas - http://www.multifacturas.com - Collaboration de @fduas
Accessoires de facture pris en charge
Pour CFDI 4.0
- Vía OOP, en utilisant des classes auto-générées par le biais de la données XML de Delphi (ixmldocument, ixmlnode, etc.)
- Timbre fiscal numérique 1.1
- Paiement Complément 2.0
- Taxes locales 1.0
- Trade extérieur 1.1 - Collaboration de @FDueas
- Payroll 1.2 - Collaboration de @FDueas
- Public Notaries 1.0 - Collaboration de @FDueas
Pour CFDI 3.3
- Vía OOP, en utilisant des classes auto-générées par le biais de la données XML de Delphi (ixmldocument, ixmlNode, etc.):
- Timbre fiscal numérique 1.1
- Taxes locales 1.0
- Paiement complément 1.0
- Trade extérieur 1.1 - Collaboration de @FDueas
- Payroll 1.2 - Collaboration de @FDueas
- Public Notaries 1.0 - Collaboration de @FDueas
- Manuel:
- Tous: la chaîne chaîne_3_3.xslt a été modifiée de sorte que l'un des compléments mis en œuvre par le SAT à ce jour (2018-09-28) soit pris en compte lorsque la chaîne d'origine est générée, avec cela, bien qu'il n'y ait pas de classe spécifique pour un complément (par exemple: complément TCOMERCIOEXTERIORV1
- ICOMPROBANTEFISCALV33.COMPlement.addnode (<complément>) -> Nouvelle instance ixmlnode
- Ixmlnode.addnode (<name_nodohijo>)
- Ixmlnode.findNode (<name_nodohix>)
- Ixmlnode.attributeNodes [<name_name>]. Texte
- Pour plus d'informations sur la façon de travailler avec les nœuds XML à Delphi, consultez: http://docwiki.embarcadero.com/radstudio/tokyo/en/working_with_xml_nodes
- Le complément qui est ajouté manuellement doit se conformer aux spécifications établies par le SAT pour ledit complément. Pour plus d'informations, consultez la documentation technique du complément à ajouter.
Documentation technique
De la v2.0 de la librairie, le projet, la structure, son fonctionnement, etc. a été largement documenté. Pour ce faire, nous vous invitons à consulter https://github.com/bambucode/tfacturaelectronica/wiki
Manquant?
En janvier 2022, il y a un manque de mise en œuvre des éléments suivants (par ordre d'importance):
Génération CFDI 4.0 Intégrer le complément de paiement 2.0 CFDI Reading 3.3 Génération CBB avec des modifications pour CFDI 3.3 . Génération pour la génération / lecture de CFDI 3.2 (à des fins de compatibilité et de migration) Lancement des exceptions basées sur le catalogue des erreurs CFDI 3.3 (Partiel) Pour pouvoir inclure les taxes locales (3.2 et 3.3) . Complément de paiement Avec l'aide de @ffaccinetto- Autres accessoires (beigoires, hydrocarbures, etc.)
- Tests d'unité
- Validations des champs basés sur les multiples catalogues publiés par le SAT.
Prise en charge des éditions précédentes de Delphi 7, Delphi 2007, 2010, XE1 etc. Avec l'aide de @fduas- Effectuer des tests dans Delphi 2007, Delphi 2009 et Delphi 2010
Notes de compatibilité avec d'autres versions de Delphi
Le support avec Delphi 10.3 a été ajouté et testé avec succès, il ne devrait donc y avoir aucun problème avec Delphi 2009 et 2010 et d'autres versions intermédiaires.
Pour le support avec Delphi 7, Delphi 2007, Delphi 2009 et Delphi 2010, il est nécessaire d'utiliser la librairie Tperlregexp pour l'utilisation d'expressions régulières, car la prise en charge native pour ce dernier a été ajoutée à Delphi XE1.
- Ceci se trouve dans le dossier: lib / externe / héritage / tperlregex (ajouté 2018-09-25)
- Il peut également être téléchargé à partir de la page: https://www.regular-expressions.info/delphi.html ou directement à partir de: https://www.regular-expressions.info/download/tperlregex.zip
- En outre, une copie de ladite librairie est conservée du référentiel: https://github.com/fdueas/tperlregex
- Une fois le fichier téléchargé, extraire dans le dossier de sa commodité
- Ajoutez le dossier qui contient les fichiers au chemin de la bibliothèque de projet (projet / options / compilateur Delphi / chemin de recherche) ou Delphi IDE (outils / options d'environnement / chemin de bibliothèque / bibliothèque)
- Pour plus d'informations sur l'utilisation de cette librairie, consultez: https://www.regular-expressions.info/delphi.html
- Pour que le commerce numérique PAC fonctionne, la bibliothèque synacode est nécessaire, elle est située au conseil d'administration de Lib Synapse
Comment puis-je aider?
La librairie est publiée au public depuis plus de 8 ans, mais il y a encore beaucoup de travail à faire. Vous pouvez commencer à consulter la section "Issues" du projet pour voir que vous pouvez collaborer, une fois que vous pouvez envoyer une requête Pull-Request pour implémenter vos modifications.
Si vous êtes intéressé à améliorer, à étendre ou à corriger cette librairie au profit de la communauté et à vous le créditer, contactez le Forum officiel de la librairie à https://github.com/bambucode/tfacturaelectronica/discussions
Support technique
Le support technique se fait par le biais de la communauté du forum officiel de la librairie qui peut être accessible à: https://github.com/bambucode/tfacturaelectronica/discussions. De plus, si vous trouvez des défauts ou souhaitez certaines fonctionnalités, veuillez le signaler sur cette page dans la section "Issues" afin que les autres utilisateurs puissent collaborer et trouver une solution en tant que communauté, nous vous remercions d'abord de corriger tout problème avant de le signaler pour au moins de savoir que vous avez essayé de le résoudre sur votre compte.
Notes supplémentaires
L'exécutable que cette bibliothèque utilise doit avoir les fichiers DLL OpenSSL dans la même application de l'application afin qu'il puisse fonctionner. Considérez ceci lors de la génération d'un installateur ou distribuera son application finale.
Icône fournie par: http://pc.de/icons/
Compatibilité avec les versions
La bibliothèque n'a été testée qu'avec Delphi 10.3, il ne devrait donc pas y avoir de problème avec les versions intermédiaires et bien qu'elle ait essayé de maintenir la compatibilité avec les versions depuis Delphi 7, si une erreur est trouvée, la faveur de la signaler dès que possible. En particulier, les routines de génération CFDI V3.2 n'ont pas été testées dans les versions avant Delphi XE2. Avant d'effectuer des tests avec les versions précédentes de RAD Studio XE1, il est important de lire la section "Notes de compatibilité avec d'autres versions de Delphi".
Collaborateurs actuels.
- Ing. Luis Carrasco - Bambú Code sa de CV - http://github.com/lcarrasco
- Ing. Eduardo Padilla - Bambú Code sa de CV - https://github.com/epadillac
- Ing. Pablo Torres - http://www.tecsis.mx
- Felipe Faccinetto - https://github.com/ffaccinetto
- M. Francisco Armando Dueñas Rodriguez - https://github.com/fduas