Barèmes
Introduction
Les barèmes dans l’application Axelor sont des structures de données essentielles qui définissent les règles de calculs pour différents éléments tels que les prix, les remises etc. C’est-à-dire, les barèmes permettent de créer des règles de calculs pour évaluer un champ (un entier, un décimal, une date etc) d’un objet (une ligne de devis / commande) en fonction de paramètres (appelé règle de classification).
Les barèmes permettent une flexibilité considérable dans la tarification des produits, articles ou services en prenant en compte des facteurs tels que les quantités commandées, les spécificités de chaque produit ou de chaque client etc. Ce fait permet de répondre aux besoins spécifiques de chacun.
- Suite de barèmes : il est possible de créer une série de plusieurs barèmes afin de calculer plusieurs valeurs.
- Gestion des versions : vous pouvez historiser la version actuelle d’un barème et modifier la nouvelle via le bouton “Historiser” dans la barre d’outils du formulaire d’un barème.
Nouveauté Barèmes v7.2 : possibilité de choisir le sens de calcul des barèmes.
Une nouvelle configuration au niveau de l’app vente permet de définir les barèmes suivants ou précédents dans les barèmes.
Activez cette option depuis l’application vente. Accès : Config applicative → Gestion des applications → Ventes, configurer → Activer le calcul complet des devis à partir des barèmes.
Activer les barèmes
Accès : Config applicative → Gestion des applications → Ventes, configurer → Activer les barèmes
Afin de pouvoir utiliser les barèmes dans AOS, il faut tout d’abord activer la configuration générale des barèmes dans :
Le fait d’activer les barèmes résulte en l'apparition de deux autres options :
Sens de calcul des barèmes : précédent / suivant. Il s’agit de l’ordre de calcul du barème.
Activer le calcul complet des devis à partir des barèmes : vous allez trouver ce bouton sur les devis qui permet de relancer les calculs des différentes lignes (sur un élément qui concerne la globalité de la commande). Par exemple, vous avez une règle de résultat qui fait un calcul sur la quantité totale d’un produit commandé.
Il est également possible de relancer le calcul des barèmes depuis le devis/commande. Activez cette option depuis l’application vente (accès : Config applicative → Gestion des applications → Ventes, configurer → Activer le calcul complet des devis à partir des barèmes).
Configurer un barème
Accès : Ventes → Barème → Nouveau
Nom : le nom que vous souhaitez donner à votre barème afin de pouvoir l'utiliser.
La Société : Société pour laquelle s'applique le barème. Ce barème va concerner tous les devis et les commandes de la société.
Objet concerné : sélectionnez l'objet concerné (ici, SaleOrderLine).
Règles de classification : vous pouvez créer et appliquer plusieurs règles de classification (jusqu’aux 4). Vous pouvez créer vos propres règles de classification. Accès : Ventes → Configuration → Règles de barème. Par exemple, vous pouvez créer une règle de classification “Transporteur” ou “Catégorie de tiers”. Pour plus d’informations, consultez la partie sur les règles de classification.
Règles de résultat : vous pouvez créer et appliquer plusieurs règles de résultat (jusqu’aux 4). Accès : Ventes → Configuration → Règles de barème. Vous pouvez créer vos propres règles de résultat. Par exemple, vous pouvez créer une règle de résultat “Taux de majoration du prix”.
Créez des règles de classification et des règles de résultat en amont afin de pouvoir les appliquer sur la page de création d'un barème.
La Date de début / La Date de fin : date à partir de laquelle le barème sera pris en compte.
Produit/Modèle de produit : produit ou modèle de produit sur lequel vous souhaitez appliquer le barème. Le système vérifie si le produit et le parent de ce produit (i.e.le modèle) est attaché à un barème.
La Catégorie produit : catégorie de produit sur laquelle vous souhaitez appliquer le barème. Ça veut dire que tous les articles et prestations de cette catégorie seront associés à ce barème et identifiés tels quels.
Le Barème précédent / suivant : le barème précédent ou suivant permet de lancer un autre barème avant ou après le barème que vous créez. C’est un lien qui est utilisé pour construire une suite de barèmes.
Les lignes de barème : les valeurs auxquelles vous pouvez comparer les règles de classification et renseigner les valeurs qui peuvent être utilisées dans les règles de résultat. Les lignes dans le tableau “Lignes de barème” vont être créées automatiquement à la sélection des règles de classification en tenant en compte le fait que ces lignes peuvent être complétées directement sur le tableau.
Les règles de barème
Il existe deux types de règles de barème : les règles de classification et les règles de résultat. Créez vos propres règles de classification.
Accès : Ventes → Configuration → Règles de barème
Les règles de résultat et les règles de classification peuvent être utilisées dans plusieurs barèmes. C’est pourquoi il faut d’abord créer des règles de résultat et des règles de classification et par la suite les affecter aux différents barèmes.
Il est important de noter qu'il est souvent nécessaire de combiner plusieurs règles de classification et de résultats pour créer des scénarios complexes. Par exemple, vous pourriez avoir une règle de classification basée sur le produit et une autre basée sur le client, avec des règles de résultats correspondantes.
Les règles de classification
Les règles de classification "filtrent les entrées" du barème et permettent de définir les critères ou conditions spécifiques qui déterminent si une règle doit s'appliquer ou non. Elles servent à classifier les transactions en fonction de certains attributs. Les règles de classification sont appliquées dans l'ordre; c'est à dire qu'AOS s’assure d'abord que l'objet vérifie la règle de classification 1, puis la règle de classification 2 et ainsi de suite jusqu'à la quatrième. Il est possible de créer jusqu'aux 4 règles de classification.
Voici quelques exemples de règles de classification :
a. Classification par produit : Définir une règle spécifique pour un groupe de produits ou un produit particulier.
b. Classification par client : Appliquer une règle en fonction du type de client ou d'un client spécifique.
c. Classification par quantité : Définir une règle basée sur la quantité de produits commandés.
Les paramètres d’une règle de classification :
- Nom.
- Société.
- Objet concerné
- Type : classification
- Type de champ : texte, entier, décimal
- Opérateur : l’opérateur permet de faire la comparaison entre la valeur calculée par la règle de classification et la valeur entrée dans les lignes de barèmes.
- Formule : la formule groovy dont le résultat sera comparé à la valeur du champ donné dans le barème. Elle permet de calculer la valeur de la règle de classification.
Explication de la formule :
- Dans l’exemple, le nom est “Transporteur”. L’objet concerné est “SaleOrderLine”. Le type de champ a été défini comme “Texte”.
- Si le transporteur (carrierPartner) de la commande (saleOrder) de l’objet concerné (SaleOrderLine) n'est pas défini, la valeur donnée dans le barème sera comparée à "None" sinon, la valeur donnée dans le barème sera comparée au nom (fullName) du transporteur de la commande de la ligne de commande : if (!saleOrder.carrierPartner) {“None”} else saleOrder.carrierPartner.fullname
C’est-à-dire, le système va chercher le nom du transporteur rattaché à la commande via la formule (saleOrder + transporteur + son nom complét). Sur l’image, dans la liste des lignes de barèmes, la première colonne avec les lignes de transporteur sera comparée à la valeur calculée par la formule depuis la commande.
- Si le nom complet du transporteur de la commande est « Mondial Relay », le barème va sélectionner et garder que les 4 premières lignes et passera à la règle de classification suivante.
- Une deuxième règle de classification pourrait venir et filtrer la colonne “Mode d'expédition” et sélectionner seulement la livraison de type “livraison à domicile”.
- La troisième règle de classification pourrait servir à filtrer la colonne “Poids total de la commande” et par exemple sélectionner le poids de la commande qui ne dépasse pas la valeur de 10.
Les règles de résultat
Les règles de résultat permettent de "calculer les sorties" du barème. Cette règle peut être une valeur constante (exemple : un coefficient, un pourcentage, ...) ou une formule à appliquer. Il est également possible d’utiliser la règle de résultat précédente ou les éléments des règles de barème précédents ou suivants.
Les règles de résultats définissent les actions spécifiques à entreprendre une fois qu'une règle de classification est satisfaite. Elles déterminent comment ajuster les prix, appliquer des remises ou calculer les taxes. Voici quelques exemples de règles de résultats :
a. Réduction de prix : Appliquer une réduction de prix spécifique en pourcentage ou en montant fixe.
b. Ajout de taxe : Appliquer une taxe spécifique en fonction de la règle de classification.
c. Remise spéciale : Appliquer une remise spéciale pour certains clients ou produits.
Il est possible de créer jusqu’à 4 règles de résultat par barème.
Les paramètres d’une règle de classification :
- Nom.
- Société.
- Objet concerné.
- Type : résultat.
- Type de champ : texte, entier, décimal.
- Formule : la formule groovy permet de calculer le résultat. Ce résultat sera affecté à un champ donné de la ligne du devis / soit ce résultat sera simplement récupéré dans les lignes de barème / soit le résultat sera utilisé dans un autre calcul d’une nouvelle valeur en s’appuyant sur les règles de résultat précédent du même barème / ou du barème précédent ou suivant.
- Champ à remplir (par exemple, une remise). Précision : le nombre décimal a été utilisé dans le calcul de la formule
- Nom de la variable temporaire : dans le cas d’utilisation de plusieurs barèmes, vous pouvez avoir des barèmes intermédiaires qui calculent des valeurs et qui ne seront pas obligatoirement affectés à un champ donné de la ligne du devis. Cependant, ces barèmes peuvent être enregistrés en tant que variables temporaires qui seront réutilisés dans les barèmes suivants ou précédents.
Exemple des règles de résultat
- Nom : prix de transport.
- Objet concerné : SaleOrderLine.
- Type : résultat.
- Formule : pricingline.resultParam1 + product.salePrice
Explication de la formule :la formule ajoute le prix de transport au prix de vente du produit
- Si : le transporteur est « Mondial relay » ; mode d’expédition est «Livraison à domicile» ; poids total de la commande est 33kg ; prix de vente du produit est de 180 euros.
- Résultat : le prix de vente de la ligne de commande (price) sera de 190 (180 +10).
Les logs des barèmes
Afin de faciliter le suivi des barèmes lorsqu’ils sont utilisés dans une ligne de commande, il est possible depuis la version 6.3 d’AOS, de retrouver les logs du barème dans l’onglet “Configuration” de la ligne de commande.
Dans ces logs, vous trouverez “Détail du calcul du prix”. Le “Détail du calcul du prix” contient des barèmes identifiés, le champ valorisé, ainsi que des règles de classification et de résultat avec leur résultats de l'évaluation.
Consulter et analyser les résultats d’un ou plusieurs barèmes
Par exemple, sur l’image :
- Le barème identifié est le “prix de transport” .
- La règle de classification utilisée est “transporteur”.
- La valeur trouvée (résultat de l’évaluation de la règle de classification) : Mondial Relay
- La deuxième règle de classification utilisée est “mode d'expédition”.
- Une autre valeur récupérée (résultat de l’évaluation de la règle de classification) est la livraison à domicile.
- La troisième valeur : le poids total de la commande, ici égal à 33.
Le système à partir de ces trois valeurs va venir d’abord classifier et filtrer les lignes de barèmes et par la suite il va réaliser l'évaluation de la règle de résultat (ici, le prix de transport). Le prix de transport par la suite va venir valoriser le champ “Prix” avec la valeur du prix transport renseignée dans les lignes des barèmes et par la suite le système va ajouter le prix de vente de ce produit. Le prix total est obtenu (ici, 190) et il est valorisé dans le champ “Prix”.
Exemple fonctionnel d’un barème
Règle de classification # 1
Afin d’appliquer les barèmes, créez d’abord des règles de classification et de résultat. Les règles de classification et de résultat utilisent des formules groovy. Par exemple : saleOrder.carrierPartner.simpleFullName.
Explication de la formule : en spécifiant l’objet concerné (SaleOrder), et ensuite en passant par le champ (carrierPartner c’est-à-dire le transporteur), cette formule permet d’aller chercher le nom complet du transporteur (simpleFullName).
Les informations utilisées dans la formule (SaleOrder ou encore carrierPartner) se trouvent sur la page de Devis. Par exemple, si vous pointez le curseur sur l’onglet Devis client, vous allez remarquer qu’il s’agit du Modèle “SaleOrder”. Lorsque vous pointez le curseur sur le Transporteur dans l’onglet Livraison du devis, vous allez remarquer que le nom du champ est carrierPartner.
Accès : Ventes → Configuration → Règles de barème → Nouveau
Créez une nouvelle règle de classification, par exemple “Transporteur”.
Renseignez la société.
Sélectionnez un objet concerné, ici c’est “SaleOrderLine”.
Sélectionnez le type de la règle, ici c’est “Classification”.
Sélectionnez le type de champ, ici c’est “Texte”.
Renseignez la formule groovy, ici c’est : if (!saleOrder.carrierPartner) {"None"} else saleOrder.carrierPartner.simpleFullName
Règle de classification # 2
Créez une nouvelle règle de classification, par exemple “Mode d’expedition”.
Renseignez la société.
Sélectionnez un objet concerné, ici c’est “SaleOrderLine”.
Sélectionnez le type de la règle, ici c’est “Classification”.
Sélectionnez le type de champ, ici c’est “Texte”. Pour le type de champ Texte il n’y a pas d’Opérateur. Le système va comparer directement la valeur trouvée avec la valeur de barème.
Renseignez la formule groovy, ici c’est : if (!saleOrder.shipmentMode) {“None”} else saleOrder.shipmentMode.name
Règle de classification # 3 avec un Opérateur
Créez une nouvelle règle de classification, par exemple “Poids total de la commande”.
Renseignez la société.
Sélectionnez un objet concerné, ici c’est “SaleOrderLine”.
Sélectionnez le type de la règle, ici c’est “Classification”.
Sélectionnez le type de champ, ici c’est “Décimal”.
Précision : 2.
Opérateur : < < veut dire que l’opérateur “est inférieur à”. La valeur de la ligne de barème (sur la fiche du barème) doit être inférieure à la valeur trouvée. L’opérateur va comparer avec l’opérateur sélectionné la valeur calculée via la formule et la valeur qui se trouve dans les lignes de barème.
Renseignez la formule groovy, ici c’est : saleOrder.saleOrderLineList.collect(){ (it ?.qty * it?. product.netMass) }?. sum() Cette formule permet de calculer l’ensemble des quantités (le poids total) dans les lignes de commande? Pour chaque ligne le système récupère la quantité (la masse nette).
Règle de résultat
Créez une nouvelle règle de résultat, par exemple “Prix de transport”.
Renseignez la société.
Sélectionnez un objet concerné, ici c’est “SaleOrderLine”.
Sélectionnez le type de la règle, ici c’est “Résultat”.
Champ à remplir : price (il s’agit du champ “prix de vente” sur la ligne de commande).
Précision : 2.
Renseignez la formule groovy, ici c’est : pricingLine.resultParam1 + product.salePrice
La valeur de la règle de résultat renseignée par l’utilisateur dans les lignes de barème est ajoutée au prix de vente du produit. La valeur calculée sera affectée au champ “Price”.
Configuration du barème
Accès : Ventes → Barème → Nouveau
Créez un nouveau barème, par exemple “Prix de transport”.
Renseignez la société et les dates de début et de fin.
Indiquez les dates de début et de fin, si besoin.
Sélectionnez un objet concerné, ici c’est “SaleOrderLine”.
Appliquez les règles de classification (transporteur / mode d'expédition / poids total de la commande).
Appliquez la règle de résultat (prix de transport).
Sélectionnez le produit.
Dans l’exemple de barème vous allez trouver :
4 lignes de transporteur Mondial Relay avec deux types d'expédition, livraison à domicile et livraison en point de relais.
4 lignes de transporteur UPS, avec deux types d'expédition, livraison à domicile et livraison en point de relais.
Pour le poids total de la commande, la valeur renseignée dans la ligne va être comparée avec la valeur calculée par le système.
La valeur de la ligne (poids total de la commande, 10) va être comparée afin de vérifier si elle est inférieure à la valeur calculée grâce à la règle de classification.
Le prix de transport : est la règle de résultat qui va être attribuée au prix. Par exemple, si le poids total est égal à 33, le système finira par récupérer la valeur inférieure la plus proche et il calculera le prix via la formule de transport. Ce prix de transport sera ajouté au prix de vente du produit.
Historiser : cliquez sur ce bouton afin d’historiser le barème actuel. Il sera affiché dans le tableau “Barèmes historisés” (v7.2) / Historique (v8.0).
Utiliser les barèmes sur un devis
Accès : Ventes → Devis client → Nouveau
Créez un nouveau devis.
Sélectionnez le client et renseignez les informations essentielles.
Dans l’onglet livraison, sélectionnez le mode d’expédition - livraison à domicile.
Dans l’onglet livraison, sélectionnez le transporteur. Sélectionnez Mondial Relay.
Dans l’onglet “Contenu”, sélectionnez le produit.
Cliquez sur le bouton “Calculer les lignes avec un barème”. Sauvegardez.
Ouvrez la page de configuration “Ligne Commande Vente” du produit. Dans l’onglet “Configuration”, vous allez trouver les logs du barème appliqué sur le produit.
Le prix HT est donc estimé à 190 euro : le prix du produit est égal à 180 euro + 10 euro de livraison calculée grâce aux barèmes qui ont pris en compte la livraison et le type de livraison.