Cegid XRP Ultimate  |  
I3   Actualisé le 06/10/2022
Structures générales
Calcul de la date d'échéance

Mode de calcul
Recherche de la date de règlement
Exemples

   Mode de calcul

   Le calcul d'une date d'échéance se fait à partir de :
      - la date initiale ;
      - un nombre de jours (délai) ;
      - une "date" de règlement, qui permet de définir le ou les jours fixés où se font les règlements ;
      - la variable globale CALECH qui indique si le délai est exprimé en jours ou en mois.

   Hypothèse :
La date initiale est le 02.01.2008 / Nombre de jours de l'échéance est 10 / Les règlements s'effectuent le premier et le quinze du mois.

   Principe :
On commence par ajouter les 10 jours à la date initiale et on obtient le 12.01.2008.
Ensuite, on prend en compte les jours fixes de règlement (le premier ou le quinze), en choisissant la date égale ou immédiatement postérieure à la date initiale + le nombre de jours.
Dans notre cas, la date trouvée en ajoutant les 10 jours à la date initiale ne correspond pas à un jour d'échéance défini, la date d'échéance calculée sera donc le 15.01.2008.

   Cas particulier pour aller en fin de mois avant d'ajouter le délai :
Pour pouvoir se positionner à la fin du mois de la date initiale avant d'ajouter le délai, il faut utiliser une occurrence (pas forcément numérique) du paramètre RGJOUR avec une valeur testée 1 égale à "FM" et préciser le délai dans la valeur 1.

   Cas particulier pour aller en fin de décade avant d'ajouter le délai :
Pour pouvoir se positionner à la fin de décade de la date initiale (fin de mois pour la dernière décade) avant d'ajouter le délai, il faut utiliser une occurrence (pas forcément numérique) du paramètre RGJOUR avec une valeur testée 1 égale à "FD" et préciser le délai dans la valeur 1.

   Cas particulier pour un règlement ayant un délai (RGJOUR) de "45" et une date (RGDATE) "FA" (date de facture) :
Si la valeur testée 1 du paramètre RGJOUR occurrence "45" est égale à "E", le calcul de la date d'échéance sera particulier si la date initiale est le 15 du mois ou le dernier jour du mois :
   - si la date de facture est le 15 du mois M, alors la date d'échéance sera le dernier jour du mois suivant (M+1) ;
   - si la date de facture est le dernier jour du mois M, alors la date d'échéance sera le 15 du mois M+2 ;
   - si la date de facture est en cours de mois, alors la date d'échéance sera égale à la date de facture + 45 jours.

   Recherche de la date de règlement

   La date de règlement est définie par les occurrences du paramètre RGDATE et éventuellement par des informations supplémentaires contenues dans la transaction des jours d'échéances (GECJ).

   Certaines valeurs du paramètre RGDATE sont "réservées" et ne peuvent pas être redéfinies dans cette transaction :
   - FA : qui signifie que l'on conserve la date trouvée après addition des jours de délai à la date initiale.
   - FM : qui signifie que l'on prend toujours le dernier jour du mois correspondant à la date calculée en additionnant le délai à la date initiale.
   - FB : qui signifie que l'on prend toujours le dernier jour du bimestre correspondant à la date calculée en additionnant le délai à la date initiale.
   - FT : qui signifie que l'on prend toujours le dernier jour du trimestre correspondant à la date calculée en additionnant le délai à la date initiale.
   - FQ : qui signifie que l'on prend toujours le dernier jour du quadrimestre correspondant à la date calculée en additionnant le délai à la date initiale.
   - FS : qui signifie que l'on prend toujours le dernier jour du semestre correspondant à la date calculée en additionnant le délai à la date initiale.
   - FY : qui signifie que l'on prend toujours le dernier jour de l'année correspondant à la date calculée en additionnant le délai à la date initiale.

   Les autres occurrences peuvent être numériques, dans ce cas, si elles ne sont pas définies plus précisément dans la gestion des jours d'échéances, elles représentent le jour du mois que l'on choisira (entre 1 et 31).

   Une occurrence "caractère" de RGDATE, différente de FA, FM, FB, FT, FQ, FS ou FY, doit toujours être définie dans la transaction des jours d'échéances pour que la date soit calculée. Dans la gestion des jours d'échéances, on peut définir autant de jours d'échéances que l'on veut pour une date de règlement (c'est-à-dire une occurrence de RGDATE), ils doivent être compris entre 1 et 28 ou égaux à "FM" (pour la fin du mois) ou "JS" (pour jour suivant).

   Si une occurrence numérique de RGDATE est redéfinie dans la gestion des jours d'échéances, ce sont ces nombres de jours qui serviront au calcul de la date d'échéance.

   Le calcul de la date d'échéance dépend également de la valeur de la variable globale CALECH (gestion des variables globales GGLO).
Si elle prend comme valeur "O", le délai est exprimé en mois et en jour : (35 jours = 1 mois + 5 jours / Exemple : Délai = 35, date initiale = 10/10/2007 donne 15/11/2007).
Si elle prend comme valeur "N", le délai est exprimé en jour (35 jours = 35 jours / Exemple : Délai = 35, date initiale = 10/10/2007 donne 14/11/2007).

   Récapitulatif
1) Calcul sans utilisation des jours d'échéances (Sans GECJ) et avec ajout de jours (CALECH = "N")

Si FA         => date d'échéance = date initiale + délai en jours
Si FM        => date d'échéance = FA que l'on ramène en fin de mois
Si FB         => date d'échéance = FA que l'on ramène en fin de bimestre
Si FT         => date d'échéance = FA que l'on ramène en fin de trimestre
Si FQ        => date d'échéance = FA que l'on ramène en fin de quadrimestre
Si FS        => date d'échéance = FA que l'on ramène en fin de semestre
Si FY         => date d'échéance = FA que l'on ramène en fin d'année
Si autres   => date d'échéance = FA que l'on ramène au jour de règlement

2) Calcul avec utilisation des jours d'échéances (Avec GECJ) et avec ajout de jours (CALECH = "N")

Date d'échéance = date initiale + délai en jours que l'on ramène au premier jour des jours d'échéances directement supérieur

3) Calcul sans utilisation des jours d'échéances (Sans GECJ) et avec ajout de mois (CALECH = "O")

Si FA         => date d'échéance = date initiale + le quotient de la division euclidienne (a) du délai par 30 représentant le nombre de mois du délai + le reste de la division euclidienne (a) du délai par 30 représentant le nombre de jours du délai (si délai = 35 jours on ajoute 5)
Si FM        => date d'échéance = FA que l'on ramène en fin de mois
Si FB         => date d'échéance = FA que l'on ramène en fin de bimestre
Si FT         => date d'échéance = FA que l'on ramène en fin de trimestre
Si FQ        => date d'échéance = FA que l'on ramène en fin de quadrimestre
Si FS        => date d'échéance = FA que l'on ramène en fin de semestre
Si FY         => date d'échéance = FA que l'on ramène en fin d'année
Si autres   => date d'échéance = FA que l'on ramène en fin de mois, puis au jour de règlement

4) Calcul avec utilisation des jours d'échéances (Avec GECJ) et avec ajout de mois (CALECH = "O")

Date d'échéance = date initiale + le quotient de la division euclidienne (a) du délai par 30 représentant le nombre de mois du délai + le reste de la division euclidienne (a) du délai par 30 représentant le nombre de jours du délai que l'on ramène au premier jour des jours d'échéances directement supérieur

(a) Division euclidienne ou division entière :
À deux entiers "d" et "i" (Dans notre cas : "d" représente le délai et "i" = 30), avec ''i'' non nul, la division euclidienne associe un unique quotient ''q'' et un unique reste ''r'', tout deux entiers, vérifiant :
- d = i * q + r
- r < i
L'affirmation de l'existence et de l'unicité du reste et du quotient est appelée ''Théorème de la division euclidienne pour les entiers positifs''.

   Exemples

   Exemple 1
Globale CALECH = "N", ajout de jours.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FA, la date initiale 01.01.2008, le délai de 20 jours.
La date d'échéance calculée sera le 21.01.2008.

   Exemple 2
Globale CALECH = "N", ajout de jours.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FM, la date initiale 01.01.2008, le délai de 20 jours.
La date d'échéance calculée sera le 31.01.2008 (Le premier calcul donne le 21.01.2008, puis on prend le dernier jour du mois).

   Exemple 3
Globale CALECH = "N", ajout de jours.
La date de règlement est 01, la date initiale 01.01.2008, le délai de 20 jours.
Il n'existe pas d'enregistrement pour une date de règlement égale à "01" dans la gestion des jours d'échéances.
La date d'échéance calculée sera le 01.02.2008 (Le premier calcul donne le 21.01.2008, puis on prend le premier jour du mois suivant).

   Exemple 4
Globale CALECH = "N", ajout de jours.
La date de règlement est "DECADE", la date initiale 01.01.2008, le délai de 20 jours.
Il existe trois enregistrements pour cette date de règlement dans la gestion des jours d'échéances, un avec un jour à "10", un à "20" et le dernier à "FM".
La date d'échéance calculée sera le 31.01.2008 (Le premier calcul donne le 21.01.2008, puis on prend le dernier jour du mois car la date est supérieure au "10" et au "20" du mois.

   Exemple 5
Globale CALECH = "N", ajout de jours.
La date de règlement est "DECADE", la date initiale 28.01.2008, le délai de 20 jours.
Il existe trois enregistrements pour cette date de règlement dans la gestion des jours d'échéances, un avec un jour à "10", un à "20" et le dernier à "FM".
la date d'échéance sera donc le 20.02.2008 (Le premier calcul donne le 17.02.2008).
Cet exemple correspond au cas des entreprises avec des jours fixes de paiement.

   Exemple 6
Globale CALECH = "O", ajout de mois.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FA, la date initiale 03.01.2008, le délai de 30 jours.
La date d'échéance calculée sera le 03.02.2008 (Date initiale + 1 mois).

   Exemple 7
Globale CALECH = "O", ajout de mois.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FM, la date initiale 01.01.2008, le délai de 30 jours.
La date d'échéance calculée sera le 29.02.2008 (Date initiale + 1 mois --> 01.02.2008; Fin de mois de cette date --> 29.02.2008).

   Exemple 8
Globale CALECH = "O", ajout de mois.
La date de règlement est "DECADE", la date initiale 06.01.2008, le délai de 35 jours.
Il existe trois enregistrements pour cette date de règlement dans la gestion des jours d'échéances, un avec un jour à "10", un à "20" et le dernier à "FM".
La date d'échéance calculée sera le 20.02.2008 (Date initiale + 1 mois et 5 jours --> 11.02.2008; Le jour suivant défini dans la gestion est le "20" --> 20.02.2008).

   Exemple 9
Globale CALECH = "N", ajout de jours.
La date de règlement est "LU", la date initiale 01.01.2008, le délai de 35 jours.
Il existe un seul enregistrement pour cette date de règlement dans la gestion des jours d'échéances avec un jour à "JS" (Jour suivant) et le type à "LU".
La date d'échéance calculée sera le 11.02.2008 (Date initiale + 35 jours --> 05.02.2008; Premier Lundi suivant à partir du 05.02.2008 --> 11.02.2008).

   Exemple 10
Globale CALECH = "O", ajout de mois.
La date de règlement est "LU", la date initiale 01.01.2008, le délai de 35 jours.
Il existe un seul enregistrement pour cette date de règlement dans la gestion des jours d'échéances avec un jour à "JS" (Jour suivant) et le type à "LU".
La date d'échéance calculée sera le 11.02.2008 (Date initiale + 1 mois et 5 jours --> 06.02.2008; premier Lundi à partir du 06.02.2008 --> 11.02.2008).

   Exemple 11
Globale CALECH = "O", ajout de mois.
La date de règlement est "DECMA", la date initiale 04.02.2008, le délai de 10 jours.
Il existe trois enregistrements pour cette date de règlement dans la gestion des jours d'échéances, un avec un jour à "10", un à "20" et le dernier à "FM" et les types à "MA" (Mardi).
La date d'échéance calculée sera le 26.02.2008 (date initiale + 10 jours --> 14.02.2008, le jour immédiatement supérieur --> 20.02.2008, et le premier mardi à partir de cette date --> 26.02.2008).

   Exemple 12
Globale CALECH = "N", ajout de jours.
Positionnement en fin de mois avant ajout du délai : l'occurrence du délai dans RGJOUR est FM30 qui a une valeur testée 1 à "FM" et une valeur 1 à 30.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FA, la date initiale 01.01.2008, le délai correspond à du fin de mois, 30 jours.
La date d'échéance calculée sera le 01.03.2008 (fin de mois de la date initiale --> 31.01.2008, ajout de 30 jours --> 01.03.2008, la date de règlement est FA donc on garde cette date).

   Exemple 13 : acquisition de denrées périssables
Globale CALECH = "N", ajout de jours.
Positionnement en fin de décade avant ajout du délai : l'occurrence du délai dans RGJOUR est FD30 qui a une valeur testée 1 à "FD", une valeur testée 2 à "V" et une valeur 1 à 30.
Pas d'utilisation de la gestion des jours d'échéances.
La date de règlement est FA, la date initiale (date de valeur) 01.01.2008, le délai correspond à du fin de décade, 30 jours.
La date d'échéance calculée sera le 09.02.2008 (fin de décade de la date initiale --> 10.01.2008, ajout de 30 jours --> 09.02.2008, la date de règlement est FA donc on garde cette date).

   Autres exemples