Paie dans ULIS
Guide de référence sur le module de paie d'ULIS CS — lignes de paie (récaps), pile, régularisations, liquidation, paiement, et modèle de données.
Concepts fondamentaux
Qu'est-ce qu'une ligne de paie (« récap ») ?
Une ligne de paie — appelée « récap » dans ULIS — est le résultat d'un calcul de paie pour un agent, un dossier pécuniaire et une période donnés. C'est l'équivalent d'une fiche de paie numérique.
Elle contient :
- Les montants bruts (traitements, primes, indemnités)
- Les charges patronales et salariales
- Le net à payer
- Les détails pour les déclarations sociales (DMFA)
- Les écritures comptables
- Les paiements à effectuer
Le dossier pécuniaire
Chaque agent dispose d'un ou plusieurs dossiers pécuniaires qui décrivent sa situation pécuniaire. À chaque dossier administratif correspond un ou plusieurs dossiers pécuniaires. Un dossier pécuniaire comprend :
- Les informations de base « Carr. Pécuniaires » (nature, période, synonyme)
- Un bloc de détails (spécifique à la nature de carrière)
- Un bloc « Carr. Administratives » (reprend les carrières administratives)
- Un bloc « Rémunérations » (traitements, primes, indemnités)
Les natures principales de carrières pécuniaires sont : Définitif, Temporaire, ACS, Jobiste « À la prestation ».
Un dossier pécuniaire ne peut pas « déborder » du dossier administratif auquel il est rattaché. Le Regen (moteur de gestion automatique des statuts) vérifie la cohérence à chaque enregistrement.
Glossaire rapide
| Terme | Définition |
|---|---|
| Récap | Ligne de paie — résultat d'un calcul de paie |
| Générique | Code de 6 caractères maximum servant d'appellation pour regrouper un ensemble de lignes de paie (ex. : ANT02 = anticipatifs février). Zone protégée par un dictionnaire pour garantir l'unicité. |
| Type de paie | Regroupe des rémunérations (ex: MENNOR = traitements, INDEMN = indemnités). Non imposé par ULIS — traduit l'organisation interne de chaque client. |
| Mois d'imputation | Mois de prestation (ex. : traitement de janvier). Indique le mois auquel les rémunérations traitées sont liées. |
| Mois de paie | Mois comptable du paiement. Peut différer du mois d'imputation (ex. : en février, on calcule le traitement de janvier pour un agent engagé après clôture). |
| Liquidation | Action de figer une récap et de la rendre définitive. Crée une liste spéciale identifiant l'exploitation. |
| Régularisation | Recalcul d'une récap après modification rétroactive. Générique REGUL. |
| Pile | Empilement chronologique de récaps pour un même dossier pécuniaire, mois d'imputation, type de paie et type de récap (réelle ou de test). |
| Complément (valeur complémentaire) | Différence entre la valeur globale recalculée et ce qui a déjà été payé. Peut être négatif (indu). |
| Valeur globale | Total d'une rémunération toutes imputations confondues (vs valeur complémentaire qui ne tient pas compte des autres imputations). |
| Chapeau Paie | Processus automatisé de calcul de paie en 4 phases. Action disponible dans le sélecteur [49]. |
| Apurement | Récupération d'un indu ou d'une créance due par l'agent. Peut aussi concerner saisies, cessions, créances alimentaires, cotisations syndicales. |
| Regen | Moteur de gestion automatique des statuts — répercute les impacts des modifications sur les dossiers. Exécuté en phase 1 du Chapeau Paie. |
Le Regen (moteur de gestion automatique des statuts)
Le Regen est le moteur central d'ULIS CS. Il répercute automatiquement les impacts des modifications sur les dossiers d'un agent. Chaque événement enregistré (emploi, maladie, congé, modification pécuniaire) déclenche le Regen, qui met à jour les carrières administratives et pécuniaires correspondantes.
Le processus suit 3 phases :
- Validation — contrôle de la cohérence des modifications. En cas de problème (ex. : certificat ne couvrant pas le début de la période), l'enregistrement est refusé avec un message explicite.
- Recherche des carrières impliquées — identification des dossiers signalétiques ou événements affectés. La date pivot (jour à partir duquel les impacts sont calculés) est déterminée à cette étape. Si plusieurs dossiers de même type sont actifs, le gestionnaire choisit.
- Application des règles — mise à jour effective des dossiers.
Le Regen peut s'exécuter immédiatement ou être différé. La phase 1 du Chapeau Paie vide la file d'attente des Regens différés, garantissant que tous les encodages sont pris en compte avant le calcul de paie.
Apurements — aperçu complet
Un apurement couvre tout paiement à tiers ou récupération liée à un agent. Les types courants sont :
- Récupération — trop-perçu à récupérer (indu)
- Saisie — montant saisi par un créancier
- Cession — cession de traitement
- Créance alimentaire — pension alimentaire
- Cotisation syndicale — versement au syndicat
Création automatique par ULIS CS : lors de la liquidation, si une régularisation génère un net négatif, ULIS CS met à jour le dossier d'apurement existant ou en crée un nouveau. Cette fonctionnalité est configurable — elle n'est activée que si le client la demande. La compensation effective est égale au montant à récupérer, le bénéficiaire est l'employeur, et la nature de paiement est « RECUP ». La date de début de l'apurement correspond à la date de liquidation.
Activation configurable : - Automatique immédiate — l'apurement est pris en compte dès la prochaine paie avec un net positif - Automatique sous seuil — ex. : activation automatique si le montant est inférieur à 50 €, manuel au-delà - Manuelle — le gestionnaire active après accord de l'agent
Plan d'apurement : définit les règles de récupération (montant maximum par paie, type de paie concerné uniquement). Ex. : récupérer 25 €/mois uniquement sur les paies INDEMN.
Confidentialité : certains types d'apurements (saisies, créances alimentaires) peuvent être restreints à certains utilisateurs via des profils d'autorisation.
Gestion : sélecteur [10] → « Maintenance des Apurements ». La suspension d'un plan d'apurement est possible (ex. : accord amiable avec l'agent).
Cycle de vie d'une ligne de paie
États d'une récap (RECETA)
| Code | Nom | Description | Liquidable ? |
|---|---|---|---|
I |
In cours | Calcul direct en cours d'exécution | Non |
D |
Différée | Calcul différé en attente d'exécution | Non |
C |
Calculée | Calcul terminé avec succès, prête à être liquidée | Oui (si réelle) |
E |
Erreur | Calcul échoué — à corriger, puis à relancer | Non |
L |
Liquidée | Figer, définitif — base pour les régularisations futures | Non (déjà figée) |
A |
Annulée | Récap annulée manuellement | Non |
H |
Archivée | Récap archivée après exploitation complète | Non |
Règle : seules les récaps réelles (RECTYP = 'R') et calculées (RECETA = 'C') peuvent faire l'objet d'une liquidation.
Calcul différé
L'option « Calcul Différé » permet de reporter le calcul dans le temps. ULIS CS enregistre la demande (état D) sans lancer le calcul. Le déclenchement se fait via l'action « Calcul des Paies différées pour un Générique » dans le sélecteur [49]. Cette option est utile pour programmer des calculs en dehors des heures de pointe.
Calcul de test
Les lignes de paie de test (RECTYP = 'T') ne peuvent faire l'objet d'aucune liquidation ni d'aucun paiement. Elles servent à simuler des scénarios sans influencer l'exploitation réelle. Leur visualisation reste possible via le sélecteur [40].
L'expression « Détails ! »
À côté de l'état d'une récap, l'expression « Détails ! » peut apparaître. Elle signale l'existence d'informations complémentaires :
- Pour une récap en erreur (E) : l'explication détaillée (rémunération manquante, paramètre invalide, incohérence de période)
- Pour toute récap : les données utilisées pour le calcul (index applicable, échelle de traitement, taux de charges)
- Pour les états particuliers : les causes sous-jacentes
Cet indicateur est le premier point d'investigation diagnostique quand une récap ne se calcule pas correctement.
La pile de récaps
Le problème
Un agent peut avoir plusieurs lignes de paie pour le même mois d'imputation, le même type de paie et le même dossier pécuniaire :
- Paie initiale de janvier → calculée et liquidée (2 500 € net)
- Régularisation en mars (augmentation rétroactive) → nouvelle récap de janvier (2 850 € net)
- Régularisation en juin (correction ONSS) → encore une nouvelle récap de janvier
Sans la pile, il est impossible de savoir quelle récap est la bonne (la plus récente, celle à utiliser).
Le mécanisme
Chaque fois qu'une nouvelle récap est calculée pour un même dossier pécuniaire, mois d'imputation, type de paie et type de récap (réelle ou de test), ULIS CS la place au-dessus de la pile :
La position 1 (sommet) est la dernière récap calculée. Ce sont les « sommets de pile » (position 1) qui sont retenus pour la liquidation.
Relation avec le complément
Le complément se calcule par rapport au cumul de tout ce qui a déjà été liquidé en dessous dans la pile :
| Position | Quand | Valeur globale | Déjà payé | Complément |
|---|---|---|---|---|
| 3 (initiale) | Janvier | 2 500 € | 0 € | 2 500 € |
| 2 (régul. mars) | Mars | 2 850 € | 2 500 € | 350 € |
| 1 (régul. juin) | Juin | 2 850 € | 2 850 € | 0 € |
- Position 3 liquidée → l'agent reçoit 2 500 €
- Position 2 arrive → complément = 2 850 – 2 500 = 350 € à reverser
- Position 1 arrive → complément = 2 850 – 2 850 = 0 € (rien à faire)
Le complément peut être négatif (indu) si l'agent a été trop payé. Dans ce cas, ULIS CS met à jour le dossier d'apurement existant ou en crée un nouveau.
En base de données
La position dans la pile n'est pas stockée dans une colonne explicite : il s'agit d'un calcul dynamique. La pile est organisée pour un même dossier pécuniaire, mois d'imputation, type de paie et type de récap (réelle ou de test). La récap la plus récente (le plus grand RECNUM) correspond au sommet de pile. RECNUM est la clé primaire auto-incrémentée — un RECNUM plus élevé signifie un calcul plus récent.
-- Trouver les têtes de pile pour un agent
-- RECNUM (PK auto-incrémentée) détermine l'ordre : plus grand = plus récent
SELECT r1.*
FROM U2REC r1
LEFT JOIN U2REC r2
ON r2.PERMAT = r1.PERMAT
AND r2.DOSNUM = r1.DOSNUM
AND r2.RECPER = r1.RECPER
AND r2.RECLPC = r1.RECLPC
AND r2.RECTYP = r1.RECTYP
AND r2.RECNUM > r1.RECNUM
WHERE r2.RECNUM IS NULL
AND r1.PERMAT = 12345
Sélectionneurs utiles
Dans les sélecteurs [40] et [45], le sélectionneur « Date d'Imputation » propose les filtres suivants :
- « Tête de pile » (case à cocher) : ne sélectionne que les récaps en position 1
- « Réelle calculée, non liquidée » : récaps réelles, calculées (
C), non liquidées — utilisé pour la liquidation - « Réelle/Manuelle liquidée » : récaps déjà liquidées, réelles ou manuelles
- « Régularisation » : cible les lignes de paie générées automatiquement par ULIS CS (générique
REGUL) - « Avec valeur complémentaire » : cible les récaps avec une valeur complémentaire égale à 0 (encoder
0) ou différente de 0 (encoder1)
Le sélectionneur « Dernières Lignes de Paie » permet de cibler les X dernières lignes de paie calculées. Attention : si plusieurs utilisateurs travaillent simultanément dans ULIS CS, il se peut qu'en recherchant la dernière ligne de paie calculée, ULIS CS affiche la ligne de paie que vient de calculer un collègue.
Le sélectionneur « Valorisations » permet de rechercher des lignes de paie pour lesquelles un élément particulier a été valorisé. L'option « Valeur globale » effectue la recherche sur la fourchette de valeurs, toutes imputations confondues. Le champ « Val. Complément. » contrôle la cible de la recherche : 0 = valeur globale, 1 = valeur complémentaire (par défaut). Cette distinction est cruciale pour les régularisations où les deux valeurs diffèrent.
Le sélectionneur « Date de paiement » fonctionne comme le sélectionneur « Date d'Imputation » mais sans les options « Tête de pile » et « Avec Val. Cplt ».
Le sélectionneur « N° Ligne de Paie » permet de rechercher des récaps par leur numéro. Ce numéro apparaît, entre autres, sur l'État des Traitements, document édité à destination du service pécuniaire lors des clôtures de paies.
Processus de calcul de paie
Points d'entrée
| Sélecteur | Nom | Contexte |
|---|---|---|
| [10] | Personnes Physiques — Sélection Unique | Menu contextuel du bloc « Carrières Pécuniaires » → « Calcul Paie » ; menu contextuel du bloc « Rémunération » → « Lignes de paie » (visualisation) |
| [15] | Personnes Physiques — Sélection Multiple | « Demande de calcul de paie » sur un ensemble d'agents |
| [16] | Dossiers — Sélection Multiple | Ciblage précis de dossiers pécuniaires |
| [45] | Récaps — Sélection Multiple | Recalcul de lignes de paie existantes |
| [49] | Sans Sélection préalable | « Chapeau Paie » (calcul classique en 4 phases) |
Paramètres obligatoires
| Paramètre | Colonne | Description |
|---|---|---|
| Générique | RECGEN |
Code de 6 caractères maximum (ex. : ANT02, REGUL, AUTO). Zone protégée par dictionnaire. On peut créer de nouveaux génériques via F5 (ex. : différencier paies anticipatives/échues par statut). |
| Type de paie | RECLPC |
Regroupe des rémunérations (MENNOR, INDEMN, PECVAC, PRGSOC). Liste extensible. Attention : une multiplication excessive des types de paie entraîne des difficultés de gestion. |
| Mois d'imputation | RECDEB / RECFIN |
Mois de prestation. Par défaut, ULIS CS propose le mois et l'année en cours. |
| Mois de paie | RECDPA |
Mois comptable du paiement. Par défaut, identique au mois d'imputation. |
| Calcul de test | RECTYP |
T = test (non liquidable), R = réelle |
| Calcul différé | RECETA |
D = différé, sinon calcul immédiat |
Le Chapeau Paie (calcul classique)
Action disponible dans le sélecteur [49]. Automatise les exploitations de paie périodiques en 4 phases :
| Phase | Nom | Rôle |
|---|---|---|
| 1 | Exécution des Regens Différés en Attente | Vide la file d'attente REGEN pour que tous les impacts soient pris en compte. En général sélectionnée pour s'assurer qu'au moment du calcul de paie, tous les Regens en attente soient exécutés. |
| 2 | Demande de Calcul Paie | Génère les demandes de paie mensuelles classiques (type MENNOR) pour tous les agents actifs. ULIS CS fait la part des choses entre agents anticipatifs et échus pour la détermination des dates d'imputation et de paie. |
| 3 | Réguls de Paie Automatique | Recalcule les lignes de paie concernées par des modifications rétroactives (générique REGUL). Va généralement de pair avec la phase 4. |
| 4 | Paie à Activer | Génère automatiquement les demandes de paie pour les types de paie conditionnels (générique AUTO). |
Les 4 phases sont cochées par défaut. On peut désactiver les phases 3 et 4 si on ne souhaite pas inclure les régularisations dans le cycle courant.
La population cible est sélectionnable à partir d'un détail de dossier pécuniaire (classement pécuniaire, caractère anticipatif/échu, etc.), paramétré avec l'aide des consultants selon les besoins du client.
Régularisations
Quand une régularisation est-elle déclenchée ?
Une modification n'impacte que les récaps correspondant au même dossier pécuniaire, type de paie et mois d'imputation. La modification doit présenter la triple identité suivante avec la ligne de paie déjà calculée :
- Même dossier pécuniaire
- Même type de paie
- Même mois d'imputation
Exemple concret : une allocation pour diplôme rétroactive en mars 2000 sur le dossier définitif impacte la récap MENNOR de mars 2000 du dossier définitif, mais pas la récap du dossier temporaire ni celles des autres mois.
Remarque : il ne sera jamais question de régularisation pour une ligne de paie de test (RECTYP = 'T').
Trois situations
| Situation | Comportement | Générique |
|---|---|---|
| Récap non encore calculée (cas classique) | La correction est prise en compte au prochain calcul de paie mensuel | — |
| Récap non encore calculée + type « à activer » | ULIS CS génère une demande automatique | AUTO |
| Récap déjà calculée | ULIS CS génère une demande de régularisation | REGUL |
Le cas classique
Si la récap n'est pas encore calculée, encodez la correction dans la signalétique pécuniaire de l'agent. Au moment du déclenchement du calcul de paie mensuel, ULIS CS génère une demande de calcul en tenant compte des modifications.
Exemple : un agent a presté 10 heures supplémentaires en mai, mais elles n'ont pas été encodées. Encodez-les dans la signalétique pécuniaire. Au calcul de paie de mai, ULIS CS tient compte des heures.
Le cas particulier : les « Paies à activer »
Certains types de paie ne sont déclenchés qu'à condition que l'agent profite des rémunérations correspondantes (remboursements de frais, prestations). ULIS CS repère les encodages et génère automatiquement les demandes de paie correspondantes avec le générique AUTO.
Exemple : des heures de garderie sont encodées. ULIS CS génère une demande de calcul avec le générique AUTO. Dès qu'une « Régularisation de Paie Automatique » est lancée (phase 4 du Chapeau Paie), ULIS CS exécute le calcul.
Le cas de la récap déjà calculée
Si la récap est déjà calculée, ULIS CS génère une demande de régularisation avec le générique REGUL. Un processus automatique reprend l'ensemble des lignes de paie à recalculer lors des clôtures de paie ou à la demande, en cours de mois.
Lors de la liquidation, c'est le dernier calcul de paie qui est pris en compte. Si un nouvel élément impacte la paie entre-temps, une nouvelle régularisation est générée et empilée.
Paramétrage des paies à activer/régulariser
Le paramétrage se fait dans le sélecteur [30] → « Maintenance des Rémunérations ». Pour chaque code rémunération, les détails indiquent :
- Le libellé
- L'unité (heures, jours, montant, quantité)
- L'unité de temps (annuel, mensuel, ponctuel, variable)
- L'imputation forcée
- Paie à activer (type de paie déclenché automatiquement)
- Paie à régulariser (type de paie recalculé en cas de modification)
- Cause pour paie à activer
Liquidation et paiement (Edition : Paie)
Processus en onglets
L'action « Edition : Paie » se base soit sur une sélection de lignes de paie dans le sélecteur [45], soit sur une liste spéciale du sélecteur [49].
| Onglet | Rôle |
|---|---|
| Liquidation | Fige les récaps (C → L). Crée une liste spéciale (identifiant stocké dans chaque récap liquidée). Si le net global est négatif, ULIS CS met à jour le dossier d'apurement existant ou en crée un nouveau. L'onglet s'affiche sous le titre « Ligne(s) de paie(s) » ou « Liquidation en attente », puis « Liquidation (Effectué) » après exécution. |
| Message | Attache des messages codés (dictionnaire) ou libres (≤ 60/200 caractères) aux fiches de paie. La portée du message indique le(s) document(s) sur lequel(s) il apparaît. |
| Paiement | Calcule et exécute les versements. Trois états possibles. |
| Requêtes d'édition | Génère les documents post-paie (état des traitements, détail des rémunérations, interface bancaire, etc.). Profils configurés par le SEGI. |
Menu contextuel de la visualisation
Dans l'onglet « Visualisation » des récaps, le menu contextuel (clic-droit) propose :
- « Sélection Débit » : sélectionne les lignes de débit
- « Sélection Brut Total » : sélectionne le brut total
- « Sélection Montant versé à l'agent » : sélectionne le montant net versé
- « Filtre Paiement(s) » (onglet Paiement) : filtre par nature de paiement
- « Visu Lignes de Paie (Vue Globalisée) » (sélecteurs [40] et [45]) : regroupe les valeurs par code sans tenir compte des imputations
Onglet Paiement — trois états
| État | Condition |
|---|---|
| Simulation ! | Liste non liquidable ou liquidation pas encore effectuée. Aucune mise à jour en base (valable pour les deux cas de simulation). En mode « paie à blanc », les lignes sont liquidables mais non liquidées — la simulation ne tient pas compte des récupérations d'apurement car la liquidation n'a pas eu lieu. |
| En Attente | Liste liquidée mais paiements pas encore exécutés. On peut encore modifier les dossiers d'apurement (sauf « Compensation Effective ») avant exécution. |
| Effectué | Paiements exécutés — irréversible. Détails sauvegardés dans U2LIM. |
Ce qui se passe pendant le paiement
- Paiement des rémunérations (comptes de transit, précompte, retenues sociales, versements à des tiers)
- Paiement des apurements (plans de récupération, réduction du net si créance)
- Paiement du net restant selon les moyens de paiement de l'agent (
U2MOP)
Pendant l'exécution, l'accès aux dossiers d'apurement est bloqué pour garantir la cohérence. On ne peut pas changer directement le montant des apurements depuis l'onglet Paiement — il faut quitter l'action, modifier les dossiers (« Maintenance des Apurements » dans le sélecteur [10]), puis revenir via le sélecteur [49] sur base de la liste spéciale.
Gestion des messages
Les messages attachés aux fiches de paie sont préservés si une liste spéciale a été créée. Sans liste spéciale, ils sont perdus après l'édition.
Pour une liste « normale » comprenant des lignes de paie d'une liste spéciale, il est possible de récupérer les messages associés préservés dans la liste spéciale via l'option « Importer les messages de la liste spéciale » du menu contextuel du bloc « Messages ».
Si plusieurs messages sont attachés à un document, une ligne blanche est générée par ULIS CS pour les distinguer visuellement.
Il est possible de paramétrer le système pour générer automatiquement un message pour chaque paiement, indiquant la nature, le bénéficiaire et le montant.
Astuce : messages longs : un message dépasse 200 caractères ? Encodez un second message préfixé par ++. À l'édition, les messages reliés par ++ ne forment qu'un seul message global (pas de saut de ligne ni de ligne blanche).
Liste spéciale
Créée automatiquement lors de la liquidation. ULIS CS impose son encodage (nom unique recommandé). Préserve l'ensemble des récaps ayant fait l'objet d'une exploitation donnée. Permet de :
- Relancer l'édition à partir d'une phase intermédiaire (sélecteur [49])
- Générer des documents supplémentaires sur le même échantillon
- Visualiser a posteriori les paiements effectués
- Accéder aux étapes non exécutées si le processus n'a pas été complété en une fois
Requêtes d'édition
Pour chaque document, des options par défaut sont définies (nombre de copies, imprimante, mode de distribution). Ces profils évoluent selon l'organisation.
Évolution de l'état d'une requête : entre l'encodage et la fin, l'état passe de « 01 » (Encodé) à « 07 » (Accepté), en passant par « 03 » (À transmettre). Une requête peut s'arrêter à « 05 » (Rejeté) en cas d'erreur — elle est relançable après correction via « Exécuter » du menu contextuel. L'édition reprend à l'endroit précis de l'arrêt.
Il est aussi possible d'ajouter un document dans une requête existante en sélectionnant la requête, en choisissant le document dans le bloc des paramètres, puis en demandant l'exécution.
Communication bancaire : par défaut, ULIS CS génère une communication liée au type de paie. Il est possible de forcer cette communication via la ligne détail « Communication forcée » dans le bloc des détails du paramètre créant les documents destinés à l'Institution finale.
Rapports
- Rapport des Ordres de Paiements (sélecteurs [10] et [19]) : état du statut des paiements, bénéficiaire, montant.
- Rapport – Apurements (sélecteur [19]) : état global des apurements à une date donnée.
Modèle de données
Vue d'ensemble
U2REC — Ligne de paie (master)
CREATE TABLE "ULIS"."U2REC" (
"RECNUM" integer NOT NULL PRIMARY KEY,
"RECDEB" timestamp NOT NULL, -- début période de paie
"RECFIN" timestamp NOT NULL, -- fin période de paie
"PERMAT" integer NOT NULL, -- FK → U2PPH.PERMAT
"DOSNUM" integer NOT NULL, -- FK → U2DOS.DOSNUM
"RECLIQ" timestamp, -- date de liquidation
"RECMAN" char(1) NOT NULL, -- indicateur calcul manuel
"RECETA" char(1), -- état (I/D/C/E/L/A/H)
"RECPER" integer NOT NULL, -- période
"RECPRE" integer NOT NULL, -- prestation
"RECPET" varchar(10), -- période de traitement
"RECPAI" varchar(10), -- code paie
"RECPRT" varchar(10), -- partition
"RECSYN" varchar(12), -- synonyme
"RECLPC" varchar(10), -- type de paie (MENNOR, PROV01, ...)
"RECGEN" varchar(10), -- générique
"RECDPA" timestamp, -- date de paie / imputation
"RECFIS" timestamp, -- date fiscale
"RECSTA" char(1), -- statut (C = Confirmé)
"RECTYP" char(1) -- type (R = réelle, T = test)
);
-- Index
CREATE INDEX U2REC_PERMAT ON U2REC (PERMAT, RECDEB, RECFIN);
U2MVE — Montants calculés (rubriques)
CREATE TABLE "ULIS"."U2MVE" (
"RECNUM" integer NOT NULL, -- FK → U2REC.RECNUM
"MVEMVA" varchar(12) NOT NULL, -- code rubrique (dict: PMVA)
"MVEDET" integer NOT NULL, -- séquence
"MVEVAL" decimal(18,6), -- valeur du montant
"MVEVCO" decimal(18,6), -- valeur corrigée / calculée
"MVETYP" char(1), -- type de montant
PRIMARY KEY (RECNUM, MVEMVA, MVEDET)
);
-- Index
CREATE INDEX RECNUM ON U2MVE (RECNUM, MVEDET);
CREATE INDEX U2MVE_REC ON U2MVE (RECNUM, MVEMVA);
U2DET — Détails granulaires
DETMAS integer -- lien vers master (U2REC.RECNUM si DETTYP='PA', ou U2MVE.MVENUM)
DETNAT varchar -- nature (USRPERIOD, PRESTSS, ERROR, ...)
DETDEB date -- date de début
DETFIN date -- date de fin
DETVAC varchar -- valeur texte / détail erreur
DETVAM decimal -- valeur numérique / montant / heures
DETTYP char(2) -- type (PA = lien REC, ...)
Relation : DETMAS → U2REC.RECNUM (si DETTYP='PA'). La référence à U2MVE.MVENUM dans la documentation d'origine est à vérifier — U2MVE n'a pas de colonne MVENUM (PK composite (RECNUM, MVEMVA, MVEDET)).
U2MPA — Messages de paie
CREATE TABLE "ULIS"."U2MPA" (
"MPANUM" integer NOT NULL PRIMARY KEY,
"PERMAT" integer NOT NULL, -- destinataire (0 = collectif)
"MPAORI" varchar(10) NOT NULL, -- origine (dict: MPAO)
"MPADAT" timestamp NOT NULL, -- date du message
"PERMAT2" integer -- matricule tiers
);
-- Relation: U2LIE.LIDEXT (LIDEXN='MA')
U2CPT — Écritures comptables
RECNUM integer -- FK → U2REC.RECNUM
CPTNAT varchar -- nature comptable
CPTINP varchar -- compte d'entrée
CPTOUT varchar -- compte de sortie
CPTVAL decimal -- valeur
CPTSTA varchar -- statut
U2LIM — Détails de paiement et moyens de paiement
Table UDL polymorphe. Deux usages distincts :
| LIDNAT | Description | LIDEXT → | LIDEXN | Colonne utilisée |
|---|---|---|---|---|
MOPVEI |
Information IBAN | U2MOP.MOPNUM |
MP |
LIDVAC = IBAN |
DETPAI |
Détail paiement | U2REC.RECNUM |
PA |
LIDVAM = montant |
U2MOP — Moyens de paiement
CREATE TABLE "ULIS"."U2MOP" (
"PERMAT" integer NOT NULL, -- FK → U2PPH.PERMAT
"MOPNUM" integer NOT NULL PRIMARY KEY,
"MOPNAT" varchar(10) NOT NULL, -- nature (dict, ex: DEFAUT)
"MOPMOD" varchar(10) NOT NULL, -- mode (dict, ex: VIR, VEIBAN)
"MOPDEB" timestamp NOT NULL, -- début de validité
"MOPFIN" timestamp NOT NULL -- fin de validité
);
-- Relation: U2LIM.LIDEXT (LIDEXN='MP') → MOPNUM pour IBAN/BIC
ULIS CS permet plusieurs moyens de paiement simultanés pour un même agent (ex. : traitement sur un compte, indemnités sur un autre). Chaque moyen de paiement a :
- Nature :
DEFAUTpar défaut (obligatoire d'en avoir au moins un). D'autres natures sont définissables dans le dictionnaire (ex. : indemnités). - Mode : virement, chèque circulaire, paiement par caisse, etc. Pour les virements, un IBAN/BIC est exigé.
- Libellé / Remarque : zones facultatives (utiles quand le titulaire du compte n'est pas l'agent).
ULIS CS prend en charge la traduction BBAN ↔ IBAN/BIC et la gestion des comptes SEPA et hors SEPA. Le module de paie génère toujours les paiements bancaires au format IBAN, quel que soit le format d'entrée (BBAN ou IBAN).
Le bloc « Détails Paiement(s) » est daté et contient les paiements « En Attente » (calculés dans l'action « Edition : Paie » mais fichier de paiement non encore créé) ou « Exécutés » (fichier de paiement créé, paiement effectif). L'option « Date Visu. » du menu contextuel permet de naviguer dans l'historique mensuel.
Le détail « À cumuler » indique si les paiements « En attente » d'un moyen de paiement seront cumulés dans un seul virement (1 = oui, par défaut) ou feront l'objet de virements distincts (0 = non).
Configuration
Dictionnaires
| Dictionnaire | Rôle | Accès |
|---|---|---|
| Génériques de paie | Liste des codes génériques (RECGEN) |
Menu contextuel F5 dans la boîte de dialogue « Calcul Paie » |
| Types de paie | Regroupement de rémunérations (RECLPC) |
Menu contextuel F5 dans la boîte de dialogue « Calcul Paie » |
| Paie : Messages Codés | Messages récurrents attachables aux fiches | Sélecteur [50] → « Paie : messages codés » |
| Paie : Portée Messages | Documents sur lesquels apparaît un message | Menu contextuel F5 dans l'onglet Message |
Maintenance des rémunérations
Sélecteur [30] → « Maintenance des Rémunérations »
Définit pour chaque code rémunération :
- Libellé
- Unité (heures, jours, montant, quantité)
- Unité de temps (annuel, mensuel, ponctuel, variable)
- Imputation forcée
- Paie à activer (type de paie déclenché automatiquement)
- Paie à régulariser (type de paie recalculé en cas de modification)
- Cause pour paie à activer
- Case « Regen » : indique si la rémunération est générée par le Regen (cochée) ou encodée par l'utilisateur (non cochée)
Paramètres de paie (Chapeau Paie)
Sélecteur [49] → « Demande de Calcul Paie classique »
Configure :
- Population cible (classement pécuniaire, caractère anticipatif/échu, etc.)
- Phases à exécuter (1 à 4)
- Dates d'imputation et de paie
- Générique par défaut
Profils d'édition
Le SEGI configure des profils regroupant les documents édités lors d'une exploitation type (paie à blanc, paie définitive). Chaque profil contient :
- Liste des documents
- Mode de distribution
- Nombre de copies
- Imprimante par défaut
Les valeurs par défaut sont modifiables ponctuellement. Pour une modification durable, le SEGI adapte la configuration.
Requêtes utiles
Récaps calculées non liquidées d'un agent
SELECT
r.RECNUM,
r.PERMAT,
r.RECGEN,
r.RECLPC AS TYPE_PAI,
r.RECDEB,
r.RECFIN,
r.RECETA AS ETAT,
m.MVEMVA AS RUBRIQUE,
m.MVEVAL AS MONTANT
FROM U2REC r
LEFT JOIN U2MVE m ON m.RECNUM = r.RECNUM
WHERE r.PERMAT = 12345
AND r.RECETA = 'C' -- calculée
AND r.RECTYP = 'R' -- réelle
ORDER BY r.RECDEB DESC, m.MVEMVA;
Têtes de pile (dernières récaps par dossier/mois/type/typeRécap)
-- RECNUM (PK auto-incrémentée) détermine l'ordre : plus grand = plus récent
SELECT r.*
FROM U2REC r
LEFT JOIN U2REC r2
ON r2.PERMAT = r.PERMAT
AND r2.DOSNUM = r.DOSNUM
AND r2.RECPER = r.RECPER
AND r2.RECLPC = r.RECLPC
AND r2.RECTYP = r.RECTYP
AND r2.RECNUM > r.RECNUM
WHERE r2.RECNUM IS NULL
AND r.PERMAT = 12345;
Récap + détails paiement
SELECT
r.RECNUM,
r.PERMAT,
r.RECGEN,
r.RECLPC,
r.RECDEB,
r.RECETA,
lim.LIDVAM AS MONTANT_PAIEMENT,
m.MVEMVA,
m.MVEVAL
FROM U2REC r
LEFT JOIN U2LIM lim ON lim.LIDEXT = r.RECNUM
AND lim.LIDEXN = 'PA'
AND lim.LIDNAT = 'DETPAI'
LEFT JOIN U2MVE m ON m.RECNUM = r.RECNUM
WHERE r.PERMAT = 12345
ORDER BY r.RECDEB DESC;
Sélecteurs de référence
Les sélecteurs déterminent la fenêtre d'ULIS qui s'ouvre et les actions disponibles. Pour les sélecteurs avec sélection, l'écran se divise en quatre zones : la liste des sélectionneurs (critères de recherche), les sélectionneurs choisis, le bloc des objets (résultats) et la liste d'actions. Pour les sélecteurs sans sélection (comme [49]), une seule fenêtre s'ouvre avec directement la liste d'actions.
| N° | Nom | Type | Usage paie |
|---|---|---|---|
| [10] | Personnes Physiques — Sélection Unique | Avec sélection | Calcul de paie depuis le dossier pécuniaire ; visualisation des lignes de paie depuis le bloc « Rémunération » |
| [15] | Personnes Physiques — Sélection Multiple | Avec sélection | Demande de calcul de paie sur un ensemble d'agents sélectionnés |
| [16] | Dossiers — Sélection Multiple | Avec sélection | Ciblage précis de dossiers pécuniaires pour calcul ou recalcul |
| [30] | Administration | Avec sélection | Maintenance des rémunérations (paramétrage paie à activer/régulariser) |
| [40] | Récaps — Sélection Unique | Avec sélection | Visualisation détaillée d'une ligne de paie (états, montants, détails) |
| [45] | Récaps — Sélection Multiple | Avec sélection | Sélection de récaps pour liquidation, recalcul ou annulation |
| [49] | Sans Sélection préalable | Sans sélection | « Chapeau Paie » (calcul classique en 4 phases), édition depuis liste spéciale, calcul des paies différées |
| [50] | Dictionnaires | Avec sélection | Maintenance des messages codés, portée des messages et autres dictionnaires paie |
Conseil : dans le menu « Fenêtres » → « Préférences… », on peut définir le sélecteur par défaut au démarrage. Un gestionnaire pécuniaire choisira généralement le [45] pour accéder directement aux outils de paie.
Conventions de données
Dates
- Type :
timestamp(compatibilité Sybase ASE 17) - Format d'entrée dans ULIS :
jour/mois/année, séparateurs acceptés : virgule, point, barre oblique (/) - Jours et mois : 1 ou 2 chiffres
- Année : au moins 2 chiffres — ULIS déduit le siècle (≥ 50 → 1900, < 50 → 2000)
- Date début non précisée (sentinelle) :
01/01/1001 00:00:00 - Date fin non précisée (sentinelle) :
31/12/2099 00:00:00 - Forcer une date par défaut : introduire
?dans la zone de date pour obtenir la sentinelle ULIS
Montants
- Type :
decimal(18,6)— 18 chiffres au total, 6 décimales - Les montants dans U2MVE (
MVEVAL,MVEVCO) et U2LIM (LIDVAM) suivent cette convention
Clés étrangères
- Implicites : contrôlées par l'application ULIS, pas par des contraintes au niveau du SGBD
- Les relations entre tables sont documentées dans le modèle de données ci-dessus
Champs
- Champs obligatoires : surlignés en bleu dans l'interface ULIS. L'enregistrement est refusé s'ils ne sont pas complétés.
- Champs optionnels : surlignés en vert. L'enregistrement est accepté même s'ils sont vides.
- Champs dictionnaire : entourés d'un bord noir fin. La touche F5 ouvre le dictionnaire associé pour sélection assistée.