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”
- Téléchargez l’add-on et décompressez l’archive. [***Téléchargement***]
- 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 ] - 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.
- Notes sur la configuration des champs JSONrepresentation:
- 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
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) »
- Les modèles pour la liste des factures entrantes et l’affichage de leur détail se trouvent dans le dossier « ReceivedInvoicesLayouts » de l’addon. 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.
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.