L'objectif de cet article est de permettre la mise en place du modèle PDF proposé sur Github.
Veuillez lire et suivre cet article avec attention, car le respect des noms API est essentiel pour la sauvegarde de la Page Visualforce.
Afin de garder uniquement les informations les plus pertinentes dans ces prérequis, vous ne trouverez pas de procédures qui permettent la mise en place, mais des liens vers des aides Salesforce ou d'autres articles de notre base de connaissances.
Aperçu du modèle
Voici les spécificités de ce modèle PDF de facture.
Ce modèle PDF vous permet d'afficher les options suivantes :
En cochant la case Afficher Echéancier de règlement sur la facture, l'échéancier de règlement s'affichera sur la troisième page du modèle.
En ajoutant vos CGV comme image dans les ressources statiques, vous pouvez facilement les mettre en place dans ce modèle PDF. |
Afin de pouvoir enregistrer la page Visualforce, il faut d'abord mettre en place ces étiquettes personnalisées et les champs créés qui n'existaient pas encore dans le package Frisbii.
Il est possible que ces champs soient disponibles dans une version future de Frisbii.
Étiquettes personnalisées à créer
Veuillez mettre en place ces étiquettes personnalisés et si besoin leur traduction.
Listes des étiquettes
Description courte | Catégories | Valeur | Langue | Texte de traduction |
---|---|---|---|---|
Sofacto_Adresse1 | Adresse de facturation | Anglais | Billing address | |
Sofacto_Adresse2 | A l'attention de : | Anglais | C/O : | |
Sofacto_Adresse3 | Adresse d'expédition | Anglais | Shipping address | |
Sofacto_DateEmission | Emise le | Anglais | Issued on the | |
Sofacto_DateLivraison | Livraison prévu pour le | Anglais | Shipping scheduled for | |
Sofacto_EcheancierReglement | Echéancier de règlement | Anglais | Payment plan | |
Sofacto_HTLigne | HT | Anglais | Before Tax | |
Sofacto_Indices | Prix révisé selon la formule P1 = P0 x (S1 / S0) | Anglais | Price recalculated according to this formula P1 = P0 x (S1/S0) | |
Sofacto_Jalon | Jalon | Anglais | Proportion | |
Sofacto_NumeroCommande | Numéro de commande : | Anglais | Order Number: | |
Sofacto_PrixUnitaire | P.U.H.T. | Anglais | UPPrice | |
Sofacto_ProchainPage | Voir la prochaine page... | Anglais | See next page... | |
Sofacto_Proforma | Proforma | Anglais | Proforma | |
Sofacto_Quantite | QTÉ | Anglais | QTY | |
Sofacto_RaisonRemise | Raison | Anglais | Discount Description | |
Sofacto_Remise | Remise | Anglais | Discount | |
Sofacto_RemiseBasPage | Remise bas de page | Anglais | Discount applied after all other adjustments | |
Sofacto_TauxTVA | TVA | Anglais | VAT Rate | |
Sofacto_TTC | NET A PAYER TTC | Anglais | BALANCE DUE | |
Sofacto_TVA | TVA | Anglais | VAT | |
Sofacto_TVA2 | Répartition TVA | Anglais | VAT Distribution | |
Sofacto_TVA3 | HT | Anglais | Amount before Tax | |
Sofacto_TVA4 | Montant TVA | Anglais | VAT Amount |
Voici des articles qui vous expliquent la procédure de mise en place d'étiquettes :
Attention :
L'écriture de la Description courte est importante car si les noms ne correspondent pas, vous ne pouvez pas enregistrer la page Visualforce.
Toutes les autres valeurs de ce tableau sont des suggestions que vous pouvez personnaliser et adapter à votre besoin.
Champs à créer
Afin de mettre en place les champs suivants, veuillez suivre cette procédure Salesforce : Création de champs personnalisés.
Listes des champs
Objet | Type de champ | Étiquette de champ | Nom du champ | Détails | Critère de filtrage | Décimales |
---|---|---|---|---|---|---|
Facture | Case à cocher | Afficher montant remise | Afficher_montant_remise | ./. | ./. | ./. |
Facture | Case à cocher | Afficher Echéancier de règlement | Afficher_Echeancier_de_reglement__c | ./. |
|
|
Facture | Récapitulatif de cumul | Total TVA 10% | TotalTVA10 | Ligne de Facture : Montant TVA | Taux de TVA ÉGAL À 10 | ./. |
Facture | Récapitulatif de cumul | Total TVA 20% | TotalTVA20 | Ligne de Facture : Montant TVA | Taux de TVA ÉGAL À 20 | ./. |
Facture | Récapitulatif de cumul | Total TVA 5,5% | TotalTVA55 | Ligne de Facture : Montant TVA | TVA (%) CONTIENT 5 | ./. |
Règlement | Formule (Devise) | Montant HT | Montant_HT | sofactoapp__Montant__c /( 1+ TVA__c) | ./. | 2 |
Règlement | Formule (Devise) | Montant TVA | Montant_TVA | sofactoapp__Facture__r.sofactoapp__TVA_pc__c | ./. | 2 |
Il y a également cette unité Trailhead à votre disposition : Création de champs personnalisés.
Attention : Veillez à bien renseigner ces informations attentivement. L'écriture des Noms du champ est très importante, car vous ne pouvez pas enregistrer la page Visualforce si Salesforce ne reconnait pas les noms API des champs.
Remarque : N'oubliez pas d'afficher les cases à cocher Afficher Echéancier de règlement et Afficher montant remise sur la présentation de page de la facture, idéalement dans la section Présentation de la facture.
Comment mettre en place les CGV
Attention : Si vous ne voulez pas mettre en place les CGV, vous avez deux options :
1) Ajouter quand même la ressource statique, mais sans fichier.
2) Supprimer le code de la page Visualforce.
Si vous ne suivez pas une des deux options, vous n'allez pas pouvoir sauvegarder la page Visualforce.
Le code qui permet d'afficher les CGVs se trouve tout en bas de la page Visualforce :
<!--CGV/ Terms and Conditions-->
<div style="page-break-before:always;">
<apex:image value="{!URLFOR($Resource.CGV)}" style="left:0;top:0;width:98%"/>
</div>
<!--Fin code CGV/ End of terms and conditions-->
Si vous ne voulez pas utiliser les CGVs dans la facture, vous pouvez supprimer cette partie du code.
Attention/ Important : Si vous supprimez plus de code que cette partie, vous ne pouvez plus sauvegarder la page.
Mise en place dans les ressources statiques
Si vous voulez mettre en place les CGVs sur la facture, veuillez ajouter une image de vos CGVs dans les ressources statiques. Sauvegardez cette ressource sous le nom :
Sofacto_CGV.
Attention : L'orthographe est à respecter.
Voici la procédure Salesforce : Affichage et modification des ressources statiques.
Conseil pour l'image des CGVs :
Laissez le moins de marge possible.
Veillez à ce que la taille de police soit toujours lisible.
Coupez vos CGVs en plusieurs pages.
Remarque : Une fois mis en place, il faut réaliser des tests pour savoir si la page Visualforce fait des sauts de pages en plus.
Dans ce cas-là, il faut afficher moins d'informations par image.
Si vous voulez ajouter plusieurs pages de CGVs, vous pouvez juste répéter la ligne :
<apex:image value="{!URLFOR($Resource.Sofacto_CGV)}" style="left:0;top:0;width:98%"/>
et modifier les noms des ressources statiques :
<!--CGV/ Terms and Conditions-->
<div style="page-break-before:always;">
<apex:image value="{!URLFOR($Resource.Sofacto_CGV1)}" style="left:0;top:0;width:98%"/>
<apex:image value="{!URLFOR($Resource.Sofacto_CGV2)}" style="left:0;top:0;width:98%"/>
</div>
<!--Fin code CGV/ End of terms and conditions-->
CGV en anglais
Si vous voulez ajouter vos Terms & Conditions (la version anglaise de vos CGVs), vous pouvez les mettre également sur les ressources statiques, comme la version en français.
Attention : Ce code inclus deux pages de CGV par langue, qui sont nommées :
Version FR:
Sofacto_CGV1
Sofacto_CGV2
Version EN:
Sofacto_CGV_EN1
Sofacto_CGV_EN2
Si vous voulez les nommer autrement, ou que vous avez juste une page par langue, veuillez modifier le code en fonction.
Ensuite, il faut ajouter ce code :
<!--CGV/ Terms and Conditions-->
<div style="page-break-before:always;">
<!--Version FR/ French Version-->
<apex:outputPanel rendered="{!IF(sofactoapp__Factures_Client__c.sofactoapp__Langue__c = 'fr_FR', '', 'none')}">
<apex:image value="{!URLFOR($Resource.Sofacto_CGV1)}" style="left:0;top:0;width:98%"/>
<apex:image value="{!URLFOR($Resource.Sofacto_CGV2)}" style="left:0;top:0;width:98%"/>
</apex:outputPanel>
<!--Version EN/ English Version-->
<apex:outputPanel rendered="{!IF(sofactoapp__Factures_Client__c.sofactoapp__Langue__c = 'fr_FR', 'none', '')}">
<apex:image value="{!URLFOR($Resource.Sofacto_CGV_EN1)}" style="left:0;top:0;width:98%"/>
<apex:image value="{!URLFOR($Resource.Sofacto_CGV_EN2)}" style="left:0;top:0;width:98%"/>
</apex:outputPanel>
</div>
<!--Fin code CGV/ End of terms and conditions-->
Attention : Le nom donné dans la page Visualforce doit correspondre impérativement au nom de la ressource statique. Sinon, la sauvegarde de la page n'est pas possible.
Remarque : Vous pouvez ajouter autant de pages que vous voulez. Testez bien le résultat, notamment à l'impression, pour assurer la bonne qualité et la lisibilité du résultat.
Traduction en anglais
Grâce aux étiquettes que vous avez mises en place et la traduction de l'application Frisbii dans Salesforce translation workbench, la facture PDF est disponible en anglais.
Si vous changez la langue sur l'enregistrement de la facture et que vous créez ensuite le PDF, vous allez voir ce résultat :
Si vous voulez modifier les traductions actuelles, veuillez lire l'article : Comment traduire les étiquettes Frisbii et les étiquettes personnalisées.
Mise en place du modèle à partir de Github
Suite à la mise en place des prérequis, vous pouvez récupérer le code Visualforce de notre Github afin de le copier dans une page Visualforce.
Vous trouverez la procédure en détail dans cet article : Modèle de facture - Créer son propre modèle PDF (puis cliquez sur Récupérer le code Visualforce sur GitHub).
Au lieu de prendre le modèle INVOICE_TEMPLATE, choisissez le modèle :
INVOICE_TEMPLATE_ALL.
Je ne peux pas sauvegarder ma page Visualforce !
Ceci est lié à un nom API qui est mal écrit.
Vérifiez bien ces points :
Nom API des étiquettes bien écrits comme indiqué ici.
Nom API des champs bien écrits comme indiqué ici.
Ressource Statique pour les CGV mise en place ou code Visualforce supprimé de cette partie.
Mon saut de page se ne fait pas correctement !
Si votre PDF de facture ressemble à celui-ci :
Cela vous indique qu'il faut modifier les conditions sur les sauts de page.
Veuillez lire l'article suivant qui vous expliquera comment modifier cette condition.