Cegid XRP Ultimate  |  
I3   Actualisé le 06/10/2022
Ventes
CACFP / CDCFP - Actions réalisées par le traitement de calcul des ristournes périodiques

Besoins pour l'application des remises
   Pour appliquer des remises de fin de période, il est nécessaire de définir plusieurs entités et notamment les algorithmes, les catégories de conditions commerciales et les conditions commerciales avec leurs différents paliers :

   - Les algorithmes utilisables sont ceux dont le moment d'exécution correspond aux remises de fin de période (FP). Consultables depuis CALG, il s'agit des algorithmes entre 5000 et 5999.
La grandeur de ces algorithmes est une occurrence du paramètre GRDSTALG dont la valeur testée 1 vaut "FP" (Fin de Période). Il existe une occurrence définie par défaut, qui est STT.

   - Les catégories sont définies dans GCCC. Eventuellement définir les autorisations entre classes de commandes et catégories de conditions commerciales (GCCDV) et les autorisations entre dépôts et catégories de conditions commerciales (GDCCV).
Pour les catégories réservées aux remises de fin de période, il ne faut pas saisir de type. De plus, les deux modes de remises autorisés sont "CAA" et "CAP". Dans la zone "Algorithme", on doit retrouver un des algorithmes saisis dans GALGFP.

   - De la même manière que pour des conditions commerciales s'appliquant sur des commandes, on définit les remises de fin de période dans la transaction GCDC.   
La condition est à définir pour une famille clients, une famille articles, un mode de vente, une devise, une période de validité. La catégorie de la condition sera une des catégories ayant un algorithme de fin de période. Pour une condition, on peut également préciser des informations sur le calcul de l'assiette de la remise.

   - Les paliers des conditions sont définis dans GNCP. Dans la zone "taux ou montant", renseignez la remise à appliquer. Suivant le mode de remise de la catégorie, ce chiffre sera un prix (mode de remise "CAA") ou un pourcentage (mode de remise "CAP").

   Rappel : Le transfert en statistiques des commandes est obligatoire car les ristournes de fin de période sont calculées à partir des données en statistiques.

Déroulement du traitement



1 - Contrôle des périodes et du paramétrage
   Le traitement contrôle que la période d'exécution soumise est une occurrence du paramètre PERSTALG.
Les valeurs 1 et 2 de cette occurrence donnent respectivement le nombre de jours minimum et maximum de la période. Vérification que ces deux valeurs sont supérieures à 1 et que la valeur 1 est inférieure à la valeur 2.
La chaîne 1 de cette occurrence fournit le type de période composant la période d'exécution.
La chaîne 2 de cette occurrence fournit le type de période pris en compte pour le calcul.
Ces deux types de période sont des occurrences du paramètre TYPOECAP, leur valeur testée 1 est égale à "S" ("S" signifiant utilisable en statistiques).
La valeur testée 2 de cette occurrence donne le type de statistiques utilisé pour le calcul. Contrôle que cette valeur est une occurrence du paramètre TYPSVSTT.

   Lecture des dates de début et de fin, du nombre de jours de la période composant la période d'exécution, afin de contrôler que le nombre de jours de cette période n'est pas inférieur au nombre de jours minimum de la période d'exécution et n'est pas supérieur au nombre de jours maximum de la période d'exécution.

   Vérification que tous les intervalles (GCAP) dont le type est celui de la période de calcul des ristournes sont cohérents :
   - Consécutifs ;
   - Sans chevauchement ;
   - De durée cohérente par rapport à la période de calcul.

   De plus, on peut utiliser deux types de période associés à la période de calcul.
Le premier type définissant la période de calcul. Le second type définissant la période de prise en compte des éléments à sommer dans la table des statistiques.
Exemple :
1er type : Trimestre.
2nd type : Mois si les chiffres d'affaires stockés dans la table des statistiques le sont au mois.

   Afin de limiter les risques d'incohérence entre ces deux sortes de périodes de planification, le traitement vérifie que par rapport à la première période, les intervalles composant la deuxième respectent les règles suivantes :
   - Au moins 1 commence au premier jour de la première ;
   - Au moins 1 se termine au dernier jour de la première ;
   - Aucun jour n'est oublié ;
   - Aucun jour n'est en double.

2 - Recherche des algorithmes à appliquer
   Recherche des algorithmes dont la période est égale à la période soumise et dont le moment est égal à "FP" (fin de période).
Pour tous ces algorithmes, le traitement vérifie que :
   - La fonction de l'algorithme est SOMME ;
   - L'unité de calcul est UNF ;
   - La valeur testée 1 du paramètre GRDSTALG pour l'occurrence égale à la grandeur de l'algorithme est FP ;
   - La chaîne 1 du paramètre GRDSTALG pour l'occurrence égale à la grandeur de l'algorithme est égale à C ou Q ;
   - La chaîne 2 du paramètre GRDSTALG pour l'occurrence égale à la grandeur de l'algorithme ne comporte pas 2 fois la même valeur.

3 - Recherche des catégories des conditions à appliquer
   Recherche de toutes les catégories de conditions ayant les algorithmes précédemment recherchés.
Sur ces différentes catégories, le traitement contrôle que :
   - Le type de la catégorie n'est pas renseigné ;
   - Le mode de remise est "CAA" ou "CAP".

4 - Recherche et contrôle des conditions à appliquer
   Dès que la liste des catégories applicables est dressée, le traitement sélectionne toutes les conditions pour la famille clients, la famille articles, l'établissement, le mode de vente, la devise de la statistique et la catégorie de condition traitée.
Les conditions commerciales doivent être définies sur un intervalle de temps cohérent par rapport à la définition de la catégorie.
Il faut donc vérifier que :
   - La durée de la condition est au moins supérieure ou égale à la période de calcul définie dans l'algorithme associé à la catégorie de cette condition ;
   - La date de début de cette condition correspond au début d'une période de la transaction GCAP dont le type est celui de la période de calcul ;
   - La date de fin de cette condition correspond à la fin d'une période de la transaction GCAP dont le type est celui de la période de calcul.

5 - Calcul de l'assiette en fonction du paramétrage
   Lors du calcul de l'assiette, il est nécessaire de savoir quelles sont les données (quantité ou chiffre d'affaires) à cumuler dans les statistiques pour les familles assiettes (ou familles de la catégorie si celles de l'assiette ne sont pas renseignées).
L'information à cumuler est fournie par la chaîne 1 du paramètre GRDSTALG, dont l'occurrence est la grandeur de l'algorithme utilisé par la catégorie de conditions commerciales à appliquer.
La chaîne 2 de cette occurrence indique les valeurs à soustraire à la valeur cumulée pour le calcul de l'assiette. Les valeurs pour cette chaîne 2 peuvent être S, 1, 2, 3, 4, 5, 6, 7, 8, 9 ou 0. Ainsi, pour du chiffre d'affaires, on soustrait les zones "cscsvstt" ou "caXsvstt" ou X varie de 0 à 9. Pour de la quantité, on soustrait les zones "qscsvstt" ou "qtXsvstt" ou X varie de 0 à 9.

6 - Stockage dans les remises périodiques
   Création ou mise à jour dans la table SVSTR si la remise existe ou non pour le client, le client bénéficiaire, l'article, le mode de vente, la classe, la devise, la période de planification, le type de période, la catégorie de conditions commerciales et le taux de remise.

   - CLISVSTR : client de la statistique traitée.

   - CLBSVSTR : client bénéficiaire de la catégorie de conditions commerciales appliquée.

   - ARTSVSTR : article de la statistique traitée.

   - MDVSVSTR : mode de vente de la statistique traitée.

   - CLASVSTR : classe de la statistique traitée.

   - DEVSVSTR : devise de la statistique traitée.

   - CAPSVSTR : période de planification (GCAP) trouvée pour le type de période égal à la chaîne 1 de l'occurrence "période soumise" pour le paramètre PERSTALG commençant à la date de début de période soumise.

   - TCASVSTR : le type de période est égal à la chaîne 1 de l'occurrence "période soumise" pour le paramètre PERSTALG.

   - MNTSVSTR : calculé en fonction du montant du palier trouvé et de l'assiette calculée. Le montant de l'assiette appliqué peut être différent du montant utilisé pour la recherche des paliers suivant l'occurrence FAMASS du paramètre AUTSTRIS.
Si le mode de remise de la catégorie de la condition commerciale à appliquer est "CAP", le montant de la remise est égal à taux du palier * montant assiette / 100.
Si le mode de remise vaut "CAA", le type de données cumulées entre en considération dans le calcul du montant : si cumul par CA, alors la remise est égale au montant du palier, sinon la remise vaut montant du palier * montant assiette.

   - BASSVSTR : base du calcul (montant de l'assiette).

   - TAUSVSTR : taux ou montant trouvé dans les paliers.

   - PROSVSTR : provision calculée = "N".

   - CDESVSTR : commande avoir générée = "N".

   - CCCSVSTR : catégorie de condition commerciale : affectation suivant la valeur testée 1 de l'occurrence CATEGO du paramètre AUTSTRIS.

Cas particulier des provisions
   Le calcul des provisions se différencie du calcul classique par le biais de la valeur testée 2 du type de période : elle doit valoir "P".
Pour ces types de période identifiés, certains contrôles pour la cohérence des périodes traitées sont plus tolérants : notamment le chevauchement des périodes soumises qui devient possible. En effet, il faut permettre au calcul de s'appuyer sur des périodes antérieures, et ainsi de déduire le taux à appliquer, et en même temps de calculer les remises sur la "véritable" période impactée.

   Exemple : lancement d'un calcul annuel pour la période du 01/08/2014 au 31/07/2015 : les statistiques du 01/08 au 31/12/2014 servent de "référence" pour la recherche du taux à appliquer et ainsi avoir une période complète sur "2015", mais le calcul des remises de fin de période a lieu pour les statistiques de la période allant du 01/01/2015 au 31/07/2015.
Prérequis pour que ce calcul des provisions fonctionne : l'occurrence FAMASS du paramètre AUTSTRIS doit autoriser que le montant de l'assiette appliqué soit différent du montant utilisé pour la recherche des paliers (valeur testée 1 à "O").