Tabelles

Une tabelle contient un tableau de données datées permettant de déterminer une valeur (montant, taux, etc) selon un ou deux paramètres d’entrée. Généralement ces paramètres sont basés sur des champs du dossier de l’employé.

Il y a 3 façons dont les tabelles sont stockées:

  • UNI19: tabelles stockées en mémoire interne (legacy, ne plus utiliser)
  • UNI18: tabelles stockées sous forme de fichier
  • UNI85: tabelles intégrées directement dans l’application

Le fonctionnement des tabelles UNI18 et UNI19 fonctionne de la même manière, seul le stockage diffère. Il est préférable d’utiliser la tâche UNI18 pour stocker les tabelles, la tâche UNI19 étant gardée pour des raisons historiques.



Tabelles simples (1 code - UNI18/UNI19)

Une tabelle simple se présente de la manière suivante:

UNI18

  • Valeur: Date de début de validité.
  • Classe: Code correspondant à une combo dans les données de l’employé.
  • Description: Description du code (peut être laissé vide, uniquement présente pour facilier la compréhension).
  • taux_employe: Colonne de données 1
  • taux_employeur: Colonne de données 2
Note:

Il est important que toutes les colonnes aient un nom unique sur la 1ère ligne. Sans cela, le moteur de calcul générera une erreur.

Format du fichier (CSV)

La tabelle doit être enregistrée au format CSV. Il se peut que Excel prenne des de libertés quand aux données enregistrées (surtout les dates). Voici ce qui doit être affiché lorsque la tabelle est ouverte avec un éditeur de texte (notepad):

UNI18

Enregistrement dans UNI18

Une fois le fichier CSV créé avec Excel (ou directement en format texte), voici comment la tabelle est enregistrée dans SAINet:

UNI18

Le nom de la tabelle est préfixée par la langue: <langue><tabelle>.CSV (ici, FRLPP.CSV). La langue correspond à la langue de l’utilisateur. Le préfixe de langue est facultatif, le moteur va de toute façon faire un fallback sur le nom de la table sans la langue.

Configuration dans le moteur

Dans l’exemple ci-dessous, la ligne L50 est de type 5 Base * taux. La tabelle contient les taux à appliquer selon le status de l’employé.

SAL02

Le champ de l’employé FORMBASE.POSITIONPROF est chargé dans T Table, indiquant au moteur de l’utiliser pour trouver la ligne correspondante dans la tabelle.

La tabelle LPP.CSV va automatiquement pointer vers <langue>LPP.CSV, la langue étant celle de l’utilisateur exécutant le SAL24.

La dérivation TBR/RATE est un code spécial: TBR/ indique au moteur que la tabelle se trouve dans UNI18 ou UNI19 et RATE est une variable indiquant ou la valeur de la tabelle doit être stockée. Par défaut, si RATE n’est pas indiqué, la valeur sera stockée dans le montant (AMOUNT).

Finalement, le paramètre taux_employe indique quelle doit être la colonne lue pour retourner le résultat. En l’occurrence, ce paramètre est facultatif ici car s’il n’est pas précisé, c’est la 1ère colonne de données qui sera utilisée.

Résultat du calcul

SAL02


Tabelles croisées (2 codes - UNI18/UNI19)

Ces tabelles se présentent comme les tablles simples, mais utilisent 2 codes pour faire leur recherche. Cela implique que la tabelle est définie différemment:

Format du fichier

UNI18

  • Valeur: Date de début de validité.
  • Classe: Code correspondant à une combo dans les données de l’employé.
  • Description: Description du code (peut être laissé vide, uniquement présente pour facilier la compréhension).
  • 10 CDI mensuel: Colonne de données pour le code 10
  • 11 CDI Temps travail: Colonne de données pour le code 11
  • 12 CDI horaire: Colonne de données pour le code 12

Comme dans une tabelle simple, chaque en-tête de colonne doit être unique. De plus, dans les colonnes de données, le code doit toujours se trouver avant le premier espace. Ce qui vient après le code est un libellé libre qui sera ignoré par le moteur de salaire.

Note:

Les mêmes remarques s’appliquent quant aux modifications faites par Excel.

Configuration dans le moteur

La ligne L51 est configurées avec le type 4 Montant directement.

SAL02

Les champs FORMBASE.POSITIONPROF puis FORMBASE.TYPECONTRAT sont tous les deux chargés dans le T Table. L’ordre de chargement est déterminant ! En effet, le moteur de salaire va utiliser le premier code chargé pour chercher la ligne, puis le deuxième pour chercher la colonne.

Dans ce cas-ci, seule la dérivation TBR/ est précisée puisque les valeurs de la tabelles sont directement des montants.

Note:

Si le 2ème code est fixe (ne dépend pas de l’employé), il est possible de le préciser directement dans le champ Paramètre.

Résultat du calcul

SAL02


Tabelles intégrées simples (UNI85)

Ces tabelles sont directement stockées dans la tâche UNI85 et leur identifiant est statique.

Elles servent à faire une recherche pour obtenir une valeur en fonction d’une tranche et d’un code. Cette valeur est ensuite mise:

  • dans le montant si la ligne est de type “4 Montant directement”.
  • dans le taux de base (de la ligne) si le type est “3 Nbre heures supp. * taux horaire * %”.
  • dans le taux pour tout autre type.

Saisie

UNI85

  1. Champs d’en-tête de la tabelle. La combo sélectionnée est libre et peut être statique (provenant du paramétrage) ou dynamique (UNI17).
  2. Créer les différentes tranches/palier selon le critère qui sera utilisé.
  3. Définir la valeur pour chaque code.

Configuration dans le moteur

SAL02

  1. La dérivation TBS/ indique que la tabelle se trouve dans UNI85. Il faut indiquer ensuite le code de la tabelle.
  2. Le montant donné dans la BASE est utilisé pour effectuer la recherche dans les tranches.
  3. La valeur indiquée dans la codification est utilisée pour retourner le montant/taux du champ correspondant. La codification dépend de la combo utilisée en UNI85.

Résultat du calcul

SAL02


Tabelles intégrées en palier (UNI85)

Ces tabelles sont directement stockées dans la tâche UNI85 et leur identifiant dépend de la construction qui est faite au niveau du moteur de salaire.

Elles sont spécialement faites pour les taux IJM/LAAC car elles appliquent des taux différents pour chaque tranche/palier. Typiquement, s’il y a une tranche de 0-2000 à 5% et de 7% au-delà de 2000, alors pour un montant de 5000.- le système calculera 2000*5% + 3000*7% = 310. A noter que dans ce cas-là, il y aura plusieurs lignes de calcul générées, soit une par palier.

Info:

Les montant de ces tabelles sont des montants annuels. Le moteur de calcul les ramène ensuite à des montants mensuels, au prorata de la présence de l’employé -basé sur le nombre de jours- dans l’année.

Saisie

UNI85

  1. Champs d’en-tête de la tabelle. L’identifiant doit correspondre à la construction faite dans SAL02. La combo doit être S Statique avec SAL_TAUX_DATES afin d’obtenir les bonnes valeurs dans le sous-panel.
  2. Les tranches/paliers sont à laisser vides.
  3. Données des plancher/plafond et taux correspondants.

Configuration dans le moteur

SAL02

La dérivation TBL/ indique que la tabelle se trouve dans UNI85. Il faut indiquer ensuite le préfixe de la tabelle qui va constituer son identifiant (ici LAAC).

Le suffix de l’identifiant de la tabelle est ensuite constitué de deux code provenant de CODEMSAI.CODLAAC1 puis de COSEXE.

Il est possible d’ajouter un paramètre correspondant au code combo à utiliser dans la combo SAL_TAUX_DATES. Par défaut, cette valeur est à T (taux employé), et sinon pourrais être à E (taux employeur).

Info:

Pour les lignes concernant les assurances (notamment L30,L32,L40,L42,L50), le moteur de salaire va en premier faire un lookup avec le suffixe de l’identifiant de l’assurance en SAL05, par exemple LAAC-11F-LAAC01. Cela permet de configurer des tabelles spécifiques pour chaque assurance.

Résultat du calcul

SAL02

Recherche stricte

Lorsque l’option sal24.legacy_table_lookup_strict est activée en SYS22, une erreur sera affichée lorsque le système ne trouve pas une tabelle intégrée en UNI85 (uniquement pour la dérivation TBL/).

Il y a toutefois une exception pour le code 10 qui généralement correspond à Non soumis. Dans ce cas, même lorsque le mode strict est activé, il n’y aura pas d’erreur si la tabelle n’existe pas.