Aller au contenu
  • 0
AtelierDJ

nouveau bvr suisse avec qr code

Question

Bonjour,

Est-ce que quelqu'un aurait une solution pour réaliser le Qr code suisse fin d'éditer avec Filemaker la facturation selon cette nouvel norme (fichier en annexe) ? 

Avec mes remerciements et mes plus cordiales salutations.

DJ

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

ig-qr-bill-fr.pdf

Partager ce message


Lien à poster
Partager sur d’autres sites

20 réponses à cette question

Messages recommandés

  • 0

Bonjour,

Pour générer le QR Code je vous conseille l'utilisation d'un plug-in. Il en existe deux, payants, qui permettent de réaliser rapidement des QR Code dans FileMaker :

Je n'ai pas vu dans le premier la possibilité d'ajouter une image au centre du QR Code (pour l'ajout de la Croix Suisse), par contre le second oui, il a même un exemple pour générer le Swiss QR Code de paiement : 

http://x2max.com/docs/refs/functions/barcode_qr/

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Voir sussi cette discussion sur un forum gérmanophone, qui solève pas mal de points pértinents :

https://filemaker-magazin.de/forum/alle-beitraege/175877

Avec, entre autre, ce fichier d’exemple :

https://filemaker-magazin.de/attachements/176450/original/Fill_Form_Fields.fmp12.zip?1514360448

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

c'est aussi maintenant possible avec MBS avec la croix suisse, il y a un exemple de génération spécifique

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

c'est aussi possible avec le plugin (gratuit) Scriptmaster et l'API Google "zxing" (juste les modules core et javase).

zxing_QRCodeWriteWithImageOverlay( QRC_Data ; QRC_Height ; QRC_Width ; IMGOverlay_Path ; QRC_OutputPath )

les paramètres de la fonction étant:

  • QRC_Data: les données à représenter sous forme de QRCode.
  • QRC_Height : la hauteur en pixels du QRCode.
  • QRC_Width: la largeur en pixels du QRCode .
  • IMGOverlay_Path: le chemin (au format Système) de l'image à ajouter en superposition. (the swiss cross)
  • QRC_OutputPath: le chemin de sortie (au format système) de l'image représentant le QRCode.
RegisterGroovy( "zxing_QRCodeWriteWithImageOverlay( QRC_Data ; QRC_Height ; QRC_Width ; IMGOverlay_Path ; QRC_OutputPath )" ; "import com.google.zxing.BarcodeFormat¶import com.google.zxing.EncodeHintType¶import com.google.zxing.WriterException¶import com.google.zxing.client.j2se.MatrixToImageWriter¶import com.google.zxing.qrcode.QRCodeWriter¶import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel¶¶import javax.imageio.ImageIO¶import java.awt.*¶import java.awt.image.BufferedImage¶¶import static java.awt.AlphaComposite.getInstance¶¶try{¶    def writer = new QRCodeWriter()¶    def hints = new HashMap<>()[EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H]¶    def matrix = writer.encode( QRC_Data, BarcodeFormat.QR_CODE, QRC_Height as int, QRC_Width as int, hints )¶¶    def qrImg = MatrixToImageWriter.toBufferedImage(matrix)¶    def overlay = ImageIO.read(new File( IMGOverlay_Path ))¶¶    // Deltas Hauteur/Largeur¶    deltaHeight = qrImg.height - overlay.height¶    deltaWidth  = qrImg.width  - overlay.width¶¶    // Dessine nouvelle image PNG avec superposition img additionnelle centrée¶    def combined = new BufferedImage(QRC_Height as int, QRC_Width as int, BufferedImage.TYPE_INT_ARGB)¶    def g = combined.graphics as Graphics2D¶    g.drawImage qrImg, 0, 0, null¶    g.composite = getInstance(AlphaComposite.SRC_OVER, 1f)¶    g.drawImage overlay, Math.round(deltaWidth / 2) as int, Math.round( deltaHeight / 2) as int, null¶¶    ImageIO.write(combined, \"PNG\", new File( QRC_OutputPath ) )¶    true¶} catch (WriterException w){¶    \"ERROR: $w.message\"¶} catch (Exception e){¶    \"ERROR: $e.message\"¶}"; "isGui=false" )

 

Par flemme, je n'ai pas intégré dans le code ci-dessus une 'croix suisse' se recalculant/redimensionnant automatiquement selon la quantité de données à afficher dans le QRCode (…mais cette opération est facilement intégrable dans le script groovy…).

--------------------------------------------------------------------------------------------

Pour l'exemple et pour l'image de superposition, j'ai  produit 3 images de taille différentes(à 24/32/48 px)  et pour les données , le texte de l'url de ton message…

Pour info,ma version de FM ne permettant des scripts  'modernes' , ces images ont produites avec une vielle version des APIs (2010 env.)

QRCode_FMTopic_24.png.67e85026dbd7c6924af6fb5ef3b22503.pngQRCode_FMTopic_32.png.ad14280892990d4f5d24af6ee6c0dfca.pngQRCode_FMTopic_48.png.fa7f156ebf01a66c8723cb308072ebba.png

------------------------------------------------------------------------------------------------------

CH-Kreuz_24px.pngCH-Kreuz_32px.pngCH-Kreuz_48px.png

QRCode_FMTopic.png

QRCode_FMTopic.png.45a52af5d690e16cdad0f67531c79a52.png

CH-Kreuz_24px.png.6d8b71aec48edfe72944aca96eb9b0e9.png

CH-Kreuz_48px.png.f410d286f8fdbec75bc80c8bcfc855cd.png

CH-Kreuz_32px.png.78f7c2d87322a9eb7846bd254a42482b.png

QRCode_FMTopic_32.png.ad14280892990d4f5d24af6ee6c0dfca.png

QRCode_FMTopic_48.png.fa7f156ebf01a66c8723cb308072ebba.png

QRCode_FMTopic_24.png.67e85026dbd7c6924af6fb5ef3b22503.png

QRCode_FMTopic.png.45a52af5d690e16cdad0f67531c79a52.png

CH-Kreuz_24px.png.6d8b71aec48edfe72944aca96eb9b0e9.png

CH-Kreuz_48px.png.f410d286f8fdbec75bc80c8bcfc855cd.png

CH-Kreuz_32px.png.78f7c2d87322a9eb7846bd254a42482b.png

QRCode_FMTopic_32.png.ad14280892990d4f5d24af6ee6c0dfca.png

QRCode_FMTopic_48.png.fa7f156ebf01a66c8723cb308072ebba.png

QRCode_FMTopic_24.png.67e85026dbd7c6924af6fb5ef3b22503.png

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir à chacun et grand merci de vos aides.

Comme je suis débutant avec FileMaker et n'ayant pas de formation en informatique, j'aurais besoin d'un B-A BA pour m'en sortir ou lors si l'un ou l'autre pouvait me forunir un fichier exemple ce serait magnifique. J'ai bien installé le plugin (gratuit) Scriptmaster et l'API Google "zxing" (juste les modules core et javase) mais après, je galère ;-(((

Merci d'avance à vous.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

pas de pb pour un exemple; mais juste un peu de temps pour relire plus en détails les spécifications techniques et fonctionnelles du payement Swiss QRCode, intégrer l'automatisation de la mise à l'échelle de la croix suisse et … produire le document.

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Hello

c'est assez basic pour créer le qr code de payement suisse. Il n'est pas codé d'une quelconque façon (JSON), juste des mises à la ligne (l'exemple complet est à la page 30 de ce document : https://www.paymentstandards.ch/dam/downloads/ig-qr-bill-fr.pdf ), par exemple en ligne 17 c'est le montant et en ligne 27 le numéro de référence 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir à chacun et merci de vos commentaires, remarques bien aidantes. Comme je ne suis pas un spécialiste, je vais attendre l'exemple de  Clem qui j'espère me sortira l'épine du pied;-

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

Merci pour ta patience (suisse)  et sincèrement désolé d'avoir été aussi (français) long…


Après lecture des spécifications (de la foule de contraintes cachées), épluché la FAQ de SIX-Interbank, trituré leur exemple Java (qui ne répond absolument pas aux pb et aux contraintes), je me suis plongé au départ dans un des sites de DENSO WAVE Inc pour essayer de déterminer au mieux la version de QRCode à employer en fonction de la quantité de données, la taille du module etc,  croisé les infos de SIX-Interbank, MoneyToday.ch et plein plein d'autres encore.

Au fil des navigations et recherches, j'ai débusqué  'qrinvoice-core-0.7.jar' (sous licence AGPL) une superbe API développée par Codeblock GmbH qui garanti à 100% la conformité du Swiss QR. Cette API, utilise également en dépendances l'API Google zxing (core & java se),  contrôle absolument l'ensemble des paramètres requis, leur conformité (ex: Caractères ISO-8859-1 uniquement, checksum de l'IBAN modulo 97 (CH/LI uniquement), contrôle du numéro de référence par Swiss modulo-10,  l'emploi de la bonne version de QR en fct de la quantité de données (ce qui entraîne des dimensions du QR variables), une croix suisse de 5mm à ~14% du QR , un QR code sans Quiet Zone (celle-ci, de 5mm, est déterminée par le placement du QR sur le format A6.) etc… etc….  L'API permet également d'imprimer les factures A4, A5 et A6 au format PDF. et utilise pour cela qrinvoice-openpdf-0.7.jar [iText4]  ou qrinvoice-itext5-0.7.jar [iText5])… mais ça c'est pour plus tard, lorsque j'aurais mieux saisi l'api… faut dire que Java 8 et ses Lambdas c'est du tout neuf pour moi!


… De ce que j'ai à peu près saisi pour le moment … (juste la partie QR Code dans son environnement A6). 

 

NOTE: Au premier démarrage, le fichier nécessite une connexion Internet pour télécharger les API.

Capture.thumb.PNG.fdcea4ef910ce8bd4cf5941e0375ac5a.PNG

La bordure verte ci-dessus n'est là que pour l'exemple et ne sert qu'à matérialiser l'emplacement ~obligatoire~ des différentes sections. Elle se supprime d'un clic en mode modèle…

 

Swiss QR Invoice.zip

 

Capture.thumb.PNG.fdcea4ef910ce8bd4cf5941e0375ac5a.PNG

Swiss QR Invoice.zip

Capture.thumb.PNG.fdcea4ef910ce8bd4cf5941e0375ac5a.PNG

Swiss QR Invoice.zip

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Hello Clem, 

Un grand merci pour ton aide qui, j'espère, pourra me faire passablement avancer. En regardant ton script SWISS QR INVOICE - Generate, je constate qu'à la ligne 19 j'ai <Fonction manquante> qui apparaît. Pourrais-tu stp me dire de quelle fonction il s'agit ? 

 

Script QRCode.jpg

1298446902_ScriptQRCode.jpg.765a2b472e274decab448c3f7173d457.jpg

1298446902_ScriptQRCode.jpg.765a2b472e274decab448c3f7173d457.jpg

1298446902_ScriptQRCode.jpg.765a2b472e274decab448c3f7173d457.jpg

1298446902_ScriptQRCode.jpg.765a2b472e274decab448c3f7173d457.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir,

les deux fonctions ScriptMaster qui s'enregistrent 'normalement' au démarrage de la solution sont:

  • codeblock_QrBill( SPC ; printUltimateCreditor ; desiredQrSize ; pathToQrCode )
  • zxing_QrDecodeFile( filePath ; charset ; correctionLevel )

C'est le script "Register Functions" qui initialise ses deux fonctions et ce script fait partie intégrante de la procédure d'initialisation  "Startup" . 

  1. Vérification (sommaire) de ScriptMaster,
  2. Vérification version Java,
  3. Vérification & Téléchargement des fichiers jars,
  4. Chargement des librairies jars
  5. Enregistrement des fonctions

Je n'arrive pas à comprendre comment tu es arrivé à une <Fonction manquante> à part un Script Debugger au lancement du fichier et  et le script de démarrage subitement interrompu…(Ctrl+F8)

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Merci pour ta réponse. 

A l'ouverture du fichier, il m'indique effectivement 

image.png.4771ea4f2f31bb434fbf98cabb32621d.png

mais j'ai mis à jour Java et ça persiste. 

image.png.4771ea4f2f31bb434fbf98cabb32621d.png

image.png.4771ea4f2f31bb434fbf98cabb32621d.png

image.png.4771ea4f2f31bb434fbf98cabb32621d.png

image.png.4771ea4f2f31bb434fbf98cabb32621d.png

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

La numérotation de version de Java ayant changée depuis la 1.8…  et moi de bondir (de joie aussi) de la v.12 à la v.17

Il va falloir revenir au code que j'avais initialement écrit (mais bon dieu pourquoi changer??)

Dans le script Check ScriptMaster and Java……", désactive ou supprime les lignes 12 et 13 et remplace les par les 12 & 13 çi dessous

1549220190_Capturedcran2018-05-1712_26_24.thumb.png.3bc00361c5976c8e7049c7f7e28a842b.png 

 

… et bien sûr relancer ensuite le script "Startup"

Il reste à corriger le script "Swiss QR Invoice -Read" au cas où la solution et les PNG sont sur un support externe Mac. J'apporterais ces motifs en ecrasant le fichier zip plus haut…

 

 

1549220190_Capturedcran2018-05-1712_26_24.thumb.png.3bc00361c5976c8e7049c7f7e28a842b.png

1549220190_Capturedcran2018-05-1712_26_24.thumb.png.3bc00361c5976c8e7049c7f7e28a842b.png

1549220190_Capturedcran2018-05-1712_26_24.thumb.png.3bc00361c5976c8e7049c7f7e28a842b.png

1549220190_Capturedcran2018-05-1712_26_24.thumb.png.3bc00361c5976c8e7049c7f7e28a842b.png

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonsoir Clem,

Merci beaucoup de ton aide précieuse. 

De mon côté, je crois avoir tout installé selon le descriptif ci-dessous. En testant la base modèle, lorsque j'utilise le script pour générer le QR code, je reçois le message "ERRORnull"

Aurais-tu une solution pour ce problème probablement de béotien? 😉

 

image.thumb.png.882c2b786d58e297a7469cbf98899c9d.png

image.thumb.png.882c2b786d58e297a7469cbf98899c9d.png

image.thumb.png.882c2b786d58e297a7469cbf98899c9d.png

image.thumb.png.882c2b786d58e297a7469cbf98899c9d.png

image.thumb.png.882c2b786d58e297a7469cbf98899c9d.png

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Bonjour,

j'ai beau tourner la fonction dans tous les sens, je n'arrive pas à reproduire le problème.

Peut être est-ce dû à des paramètres Système différents (dates/nombres) ? Pourtant dans les options de fichier j'ai bien coché "Toujours utiliser les paramètres système en cours" …

Que donne un clone sans fiche ? --> Menu Fichier/ Enregistrer une copie… (En créant un clone, FileMaker utilise à ce moment les paramètres du sytème en cours d'utilisation.  Paramètres inscrits en dur dans le fichier.( format date et numérique)).

As-tu essayé en créant une nouvelle fiche ?

Peux-tu poster en message personnel le contenu de la rubrique "SwissPaymentCode_ct" de l'enregistrement que tu montres et celui d'un enregistrement fraîchement créé. Ajoutes également la valeur du chemin au dossier "Qr-Invoices".

 

Partager ce message


Lien à poster
Partager sur d’autres sites
  • 0

Ticket 287437 résolu. L'extraction manuelle de l'archive était partielle. (Le fichier FM n'était pas accompagné du dossier "Qr-Invoices")… la version 2 inclura donc la vérification/création de dossier.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

  • En ligne récemment   0 membre est en ligne

    Aucun utilisateur enregistré regarde cette page.

×