Pour intégrer ABCinvoice.eu avec FileMaker, le plus simple est d’utiliser l’Add-on.
Partie 1 – Configuration de l’Add-on
Notes sur cette documentation :
-
- On suppose que vous avez déjà une table factures (ci-dessous “Factures”), liée à une table lignes de factures (ci-dessous “Lignes”).
-
- Si vous gérez des échéances multiples dans une table à part, cette table sera surnommée ci-dessous “Echeances”
- Assurez-vous que votre version de FileMaker Pro est au minimum 21 (2024). Vous pouvez toujours télécharger la version la plus récente ici : pour macOS, pour Windows
- Téléchargez l’add-on. Pour l’instant, le plus simple est de « passer commande » (c’est gratuit) sur le site de 1-more-thing et de cliquer sur le lien reçu par email pour installer l’add-on.
- Dans votre solution, passez en mode modèle et installez l’add-on (+ dans l’onglet Add-ons du volet de gauche). Sélectionnez l’add-on que vous venez de décompresser.
- Glissez l’add-on sur un modèle.
- Créez une relation entre votre table Factures et la table ABCinvoice_Attachment en utilisant idInvoice comme clef étrangère. (lien de la clef primaire de votre table Factures vers ABCinvoice_Attachment::idInvoice)
- Créez une relation entre votre table Factures et la table ABCinvoice_LegalLiteral en utilisant idInvoice comme clef étrangère. Cochez la case permettant de créer des enregistrements liés depuis Factures. La table ABCinvoice_LegalLiteral vous permet d’ajouter des mentions légales à vos factures.
- Optionnel : copiez la table externe du modèle ABCinvoice_LegalLiteral_Example vers le modèle de votre table Factures afin de faciliter la saisie de mentions obligatoires.
- Optionnel : copiez la table externe du modèle ABCinvoice_Attachments_Example vers le modèle de votre table Factures
- Configuration des champs
-
- Copiez les champs de la table ABCinvoice_invoiceExample dans votre table Factures
-
-
-
- Copiez le champ de la table ABCinvoice_invoiceLineExample dans votre table Lignes
-
-
-
- Échéances (si vous gérez les échéances multiples) : copiez le champ de la table ABCinvoice_InvoiceDueDateExample dans votre table Echeances
-
-
-
- Modifiez les champs de ABCinvoice_JSONrepresentation_{table} des tables Factures, Lignes, et, si vous gérez des échéances multiples, de la table Echeances.
-
- Notes sur la configuration des champs JSONrepresentation:
-
- Les dates sont passées en tant que nombres pour assurer la compatibilité entre tous les systèmes (client/serveur…). Par exemple le paramètre dateAsNumber de ABC_invoice_JSONrepresentation_invoice doit être passé comme : ObtenirNombre ( Facture::dateDeFacture )
-
- Les tableaux de données liées doivent être passés ainsi : ;[ « invoiceLinesAttributes » ; JSONMakeArray ( List ( Lignes:: ΩABCinvoiceJSONrepresentation_invoiceLine ) ; ¶ ; JSONObject ) ; JSONArray ]
-
- Notes sur la configuration des champs JSONrepresentation:
-
- Pour la ou les date(s) d’échéance, vous pouvez :
- Si vous ne gérez pas les dates d’échéance multiples, utiliser le paramètre dueDateAsNumber
- Si vous les gérez dans une table séparée, utilisez le paramètre proposé dans l’exemple.
- Modifiez les champs de ABCinvoice_JSONrepresentation_{table} des tables Factures, Lignes, et, si vous gérez des échéances multiples, de la table Echeances.
-
- Configurez le script ABCinvoice_Config
- Réglages
-
- Créez un compte sur ABCinvoice et obtenez une clef d’API
- Depuis l’interface (l’add-on que vous avez glissé sur le modèle), renseignez la clef d’API ainsi que votre pays (le pays depuis lequel seront émises les factures). Mettez à jour la bibliothèque de mentions légales en cliquant sur Update legal literals.
- Supprimez les éléments non utilisés, qui ne sont là que pour vous aider à configurer
- Les tables comprenant le mot Example ainsi que leurs occurrences de table (ABCinvoice_InvoiceExample, ABCinvoice_InvoiceLineExample, ABCinvoice_DueDateExample)
Partie 2 – Adaptation de vos scripts
Attachements : tous les documents qui figurent dans la table ABCinvoice_Attachment seront uploadés avec votre facture.
ATTENTION : une fois uploadée, une pièce jointe ne peut être supprimée ! Vous pouvez ajouter des pièces jointes tant que la facture n’est pas envoyée.
- Si vous souhaitez joindre un PDF de votre facture à la facture électronique, enregistrez le comme pièce jointe (table ABCinvoice_attachment) avec le script ABCinvoice_sample_AddAttachment avec les paramètres : idInvoice = la clef primaire de votre table Factures et isInvoice = True
- Enregistrez les autres documents tels que CGV, décompte (solde client)… comme pièces jointes (table ABCinvoice_attachment) avec les paramètres : idInvoice = la clef primaire de votre table Factures et isInvoice = False
- Plusieurs scripts d’exemple sont fournis dans le dossier « ABCinvoice – integration example », par exemple le script ABCinvoice_sample_CreateInvoice, qui permet de créer une facture électronique. Ces scripts ne comportent pas de gestion d’affichage des erreurs. Il faudra les dupliquer et les adapter afin qu’ils correspondent à votre flux de gestion des erreurs.
- Il vous suffit d’ajouter, dans la section ———– FIND YOUR INVOICE ———–, la navigation vers la facture à créer, puis de modifier les paramètres optionnels si nécessaire dans la section ———–✏️ DEFINE OPTIONAL VALUES ———–. Vous pouvez dupliquer les scripts d’exemple pour les adapter à vos besoins.
- Ne modifiez pas les scripts présents dans le dossier « ABCinvoice (private) »
- L’addon est livré avec des listes de valeurs pour vous assister. Toutes ces listes sont préfixées par ABCinvoice.eu
Partie 3 – Réception de factures
-
- Si vous avez déjà une table de factures entrantes.
-
- Duplication et adaptation des scripts ABCinvoice_GetReceivedInvoices – Scheduled script, ABCinvoice_GetReceivedInvoicesDetails, ABCinvoice_Create_RINL (invoice), ABCinvoice_Create_RDUEDATES (invoice) et ABCinvoice_Create_RTAX (invoice)
-
- Si vous avez déjà une table de factures entrantes.
-
- Les modèles pour la liste des factures entrantes et l’affichage de leur détail se trouvent dans le dossier ReceivedInvoicesLayouts de l’add-on. Les scripts permettant de récupérer les factures entrantes sont également inclus et ne nécessitent pas de modification de votre part si vous n’avez pas de table factures entrantes.
- Si votre fichier FileMaker est hébergé sur FileMaker Server ou FileMaker Cloud, ouvrez la console d’administration de votre serveur et configurez un programme serveur pour exécuter le script ABCinvoice_GetReceivedInvoices – Scheduled script à intervalle régulier (par exemple une fois par jour)
Partie 4 – Modèles d’exemple
- Deux modèles d’exemple sont fournis avec des tables externes prêtes à l’emploi pour vos propres modèles : ABCinvoice_Legal_Example pour les mentions légales, ABCinvoice_Attachment_Example pour les pièces jointes. Vous pouvez copier et modifier ces tables externes si nécessaire.