Concepts fondamentaux

Ce chapitre décrit les différents concepts utilisés par le moteur de salaire.



Généralités

Le moteur de salaire (SAL24) effectue une boucle sur les lignes de salaires (SAL02) pour chaque employé (SAL04). Les lignes de salaire sont traitées séquentiellement par ordre alphanumérique.

SAL02

Par convention, une ligne de salaire est sur 3 caractères, le premier étant une lettre, les deux derniers étant des chiffres. Cela afin de facilement savoir dans quel ordre les lignes vont êtres exécutées.

Une ligne de salaire peut être configurée pour aller chercher des informations dans les données de l’employé (en-tête ou pages), dans les constantes (SAL03), des tabelles datées ou non (UNI18/UNI19/UNI85) ou encore parmi des résultats des lignes calculées précédemment.

Il est essentiel qu’une ligne de salaire qui utilise les résultats d’une ligne précédente soit calculée après cette dernière. Logiquement, la ligne B30 pourra utiliser les résultats de la ligne A15 ou B10, mais pas ceux de la ligne B35 ou C10.

SAL02

Par convention, les lignes qui sont préfixées par A (A00, A08, …) contiennent les données élémentaires nécessaires au calcul de salaire. Les nouvelles lignes devraient être ajoutées au minimum avec le préfix B ou plus.

Note:

Si le premier caractère est un entier, la ligne sera clasée avant les lignes dont le premier caractère est une lettre. Par conséquent, il est recommandé de toujours commencer par une lettre. Cela permet également une meilleure lecture du plan de salaire.


Input/Output

Chaque ligne de salaire va utiliser et générer les variables ci-dessous. La colonne Persistant indique si les valeurs en sorties sont enregistrées dans le résultat du calcul du salaire.

Variable Type Persistant Description
BASE BigDecimal X Montant utilisé pour le calcul sans transformation (plancher ou plafond).
SUBJECT BigDecimal X Montant soumis après transformation (plancher ou plafond).
RATE BigDecimal X Taux de la ligne.
AMOUNT BigDecimal X Montant final calculé (ou défini).
NUMBER BigDecimal X Nombre de jours ou d’heures. Peut également représenter un autre type de valeur (âge de l’employé, …).
CODE String X Code spécial attaché au résultat du calcul (indice de tabelle, mois/année pour correction rétroactive, …).
LABEL String X Libellé spécifique de la ligne.
NO_CONTRAT Integer X Numéro du contrat (chiffre de 1 à 5) dans le contexte d’une ligne multi-contrats.
ASSURANCE String X Identifiant de l’assurance (issu du SAL05) liée à la ligne de salaire.
PLAFOND BigDecimal Plafond maximal sur le montant de la ligne.
TAUX_BASE BigDecimal Taux de base de la ligne (pour le type de calcul 3).
TYPE String Type de la variable de salaire (SAL21).
START_DATE Date Date de début de validité d’une variable de salaire (SAL21).
END_DATE Date Date de début de validité d’une variable de salaire (SAL21).
CUSTOM1 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.
CUSTOM2 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.
CUSTOM3 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.
CUSTOM4 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.
CUSTOM5 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.
CUSTOM6 BigDecimal X Montant spécifique au calcul d’une ligne de salaire.

Ces noms sont également ceux utilisés dans les scripts (notamment pour l’input et l’output (voir les scripts).

A noter que le moteur de calcul est totalement générique et peut très bien utiliser ou stocker n’importe quelle autre variable au cours du processus.

SALSE


Variable (SAL21)

Selon la configuration d’une ligne de salaire, il est possible pour l’utilisateur de forcer:

  • le type de calcul de la ligne
  • une valeur d’entrée (input)
  • le libellé de la ligne
  • le département

Les variables de salaire sont saisies par employé dans la tâche SAL21. Elles sont généralement datées sur un jour (ou un mois), mais peuvent être valides pour une durée quelconque.

SAL21

Période extra-annuelle (mois 13)

Dans certains cas, le calcul du SAL24 peut être lancé sur le mois 13 (attention cela n’a rien à voir avec le 13ème salaire). Cette période est généralement utilisée pour les heures supplémentaires effectuées en décembre, mais dont les variables sont saisies en janvier (avec une date en décembre), après le bouclement du salaire de décembre.

Lors du calcul du mois 13, le moteur tiens compte de la configuration des lignes dans le SAL02 (2ème onglet) pour savoir dans quelles conditions une ligne peut/doit être calculée.

Pour déterminer si le mois 13 peut être calculé, le moteur lit simplement les valeurs possibles dans la liste des mois du SAL24.


Cumuls

Un cumul est simplement un espace de stockage (Map<String, Object>) commun aux différentes lignes de salaire. Toutes les lignes soumises à un cumul vont alimenter ce dernier avec leur résultat final.

SAL02

Généralement, un cumul va contenir les variables standards. Si plusieurs lignes alimentent le même cumul, les valeurs numériques seront sommées. Pour les valeurs non numériques (CODE ou LABEL), seul le résultat de la 1ère ligne est enregistré.

SAL02

Dans l’exemple ci-dessus, la ligne F16 est (entre autres) soumise au cumul 147 qui est le cumul qui sera utilisé pour calculer les retenues AVS (L10), AC (L15) et AC complémentaire (L16). De plus, cette ligne n’est pas soumise au cumul 110 (Caisse d’allocation familiales).

Un cumul est simplement un identifiant alphanumérique, tel que P_PR_VHC ci-dessus. Cet identifiant sera ensuite utilisé par d’autres lignes afin d’aller y rechercher les valeurs voulues. Le nom du cumul est libre, mais il faut être attentif au risque de collision (réutiliser un nom de cumul déjà existant pour autre chose).

Note:

Il n’y a pas de contrainte quant à l’alimentation d’un cumul par une ligne. Typiquement, une ligne peut très bien alimenter un cumul, même si celui-ci a été utilisé par une autre ligne. Toutefois, ce n’est guère pratique car il devient alors compliqué d’expliquer les montants ensuite affichés dans le résultat du calcul (SALSE).

Cumuls prédéfinis

Il existe plusieurs cumuls prédéfinis qui sont identifiés uniquement par des chiffres (147, 140, 100). Ces derniers sont indiqués entre parenthèses dans le SAL02.

SAL02

Cas spéciaux:

Dans le cas ou la valeur de la combo est 1 (Oui), le nom du cumul est celui indiqué entre parenthèse (100, 140, …). Par contre, si le code est différent de 0 ou 1, alors le nom du cumul est celui entre parenthèse, suffixé par le code de la combo (ci-dessous: 158_12 ou 122_F)

SAL02


Constantes (SAL03)

Les constantes représentent généralement des valeurs communes à tous les employés (bien que personnalisables). Elles peuvent être considérées comme des montant ou des taux et sont exploitées par les lignes de salaires.

Leur identifiants dépend souvent de la ligne de salaire, sauf pour certaines constantes spéciales.