Employés & contrats¶
À quoi ça sert¶
Ce module centralise la fiche de chaque employé (état civil, poste, département, documents, contacts d'urgence, coordonnées bancaires) ainsi que ses contrats de travail, de la création du brouillon jusqu'à la résiliation, en passant par l'onboarding à l'arrivée et l'offboarding au départ.
Prérequis¶
Prérequis
- Modules sous licence :
HR - Permissions :
users.manage,employee.read,employee.manage,employee.document.manage,employee.ssn.read,onboarding.manage,offboarding.manage,contract.read,contract.manage - Rôles :
HR_MANAGER,ORG_ADMIN
Comment ça marche¶
1. Créer un employé¶
- Ouvrez Administration → Utilisateurs (
/dashboard/admin/users). - Cliquez sur Ajouter un employé.
- Renseignez prénom, nom, email, poste, département, manager, matricule, date d'entrée et convention collective.
- Validez : l'employé est créé avec le statut de cycle de vie Pré-embauche.
À tout moment, la liste peut être filtrée par recherche texte (nom/email), département, statut de cycle de vie, et permet d'afficher ou masquer les employés résiliés (Afficher les résiliés).
2. Faire évoluer le cycle de vie¶
Le statut d'un employé (lifecycle) suit les valeurs suivantes :
| Statut | Signification |
|---|---|
PRE_HIRE |
Pré-embauche — dossier créé, pas encore actif |
ACTIVE |
Actif |
ON_LEAVE |
En congé |
SUSPENDED |
Suspendu |
TERMINATED |
Résilié |
Depuis la fiche employé ou le menu d'actions de la liste, utilisez Modifier le statut pour faire transiter l'employé d'un état à l'autre. La suppression d'un employé (bouton corbeille) ne supprime rien physiquement : elle bascule le statut sur TERMINATED.
3. Gérer les documents d'identité, bancaires et de contact¶
Sur la fiche employé :
- Documents d'identité — ajout, modification, suppression (passeport, carte d'identité, titre de séjour…), avec permission dédiée
employee.managepour écrire. - Coordonnées bancaires (IBAN/BIC) — validées côté serveur (
BankAccountValidator) avant enregistrement, utilisées pour la paie. - Contact d'urgence — nom, lien de parenté, téléphone.
- Documents RH (contrat signé, diplôme, justificatif…) classés par catégorie ; une tâche planifiée (
EmployeeDocumentExpiryAlertJob) alerte automatiquement avant l'expiration d'un document (ex. titre de séjour).
4. Lancer un onboarding¶
- Créez au préalable un modèle d'onboarding dans Administration → Employés → Modèles d'onboarding : une liste ordonnée d'étapes (ex. remise du matériel, signature du contrat, formation sécurité).
- Depuis la fiche d'un nouvel employé, démarrez l'onboarding en choisissant le modèle applicable.
- Chaque étape générée (
OnboardingStepInstance) est cochée au fur et à mesure qu'elle est complétée, par l'employé ou par un RH selon le type d'étape. - L'onboarding peut être annulé à tout moment si l'embauche ne se concrétise pas.
5. Lancer un offboarding¶
- Depuis la fiche employé, cliquez sur Initier l'offboarding, en précisant le motif et la date de sortie.
- L'offboarding déclenche une instance du moteur de workflow générique (entité
EMPLOYEE_OFFBOARDING, voir Workflows d'approbation) pour faire valider les étapes de départ (restitution de matériel, solde de tout compte, etc.) par les bons approbateurs.
6. Créer et faire vivre un contrat de travail¶
- Ouvrez la fiche employé, section Contrats, ou la liste globale sous RH → Contrats.
- Créer un contrat : type (CDI, CDD, stage, consultant, intérim…), à partir d'un modèle de contrat filtrable par pays et par type — les modèles encodent les règles légales locales (
CountryContractRules, indemnités de préavis viaSeveranceCalculator). -
Le contrat suit un cycle de vie strict :
DRAFT → SENT → SIGNED → ACTIVE → TERMINATED(avec un état intermédiaire
AMENDEDlorsqu'un avenant a été appliqué à un contrat déjà actif). -
Actions disponibles selon l'étape : Envoyer (
/send), Signer (/sign, avec justificatif signé), Activer (/activate), Résilier (/terminate, avec motif et date d'effet). - Avenants : depuis un contrat actif, créez un avenant (changement de salaire, de temps de travail…) ; il doit lui-même être signé pour prendre effet.
- Génération PDF : à chaque étape clé, un PDF du contrat peut être généré et téléchargé (
/pdf,/pdf/download). - Projections de coût : l'écran de projections agrège le coût prévisionnel des contrats actifs pour aider à la planification budgétaire.
Qui peut faire quoi¶
| Permission requise | Rôles concernés |
|---|---|
users.manage |
HR_MANAGER, ORG_ADMIN |
employee.read |
HR_MANAGER, ORG_ADMIN |
employee.manage |
HR_MANAGER, ORG_ADMIN |
employee.document.manage |
HR_MANAGER, ORG_ADMIN |
employee.ssn.read |
HR_MANAGER, ORG_ADMIN |
onboarding.manage |
HR_MANAGER, ORG_ADMIN |
offboarding.manage |
HR_MANAGER, ORG_ADMIN |
contract.read |
HR_MANAGER, ORG_ADMIN |
contract.manage |
HR_MANAGER, ORG_ADMIN |
| Rôle système | Peut faire |
|---|---|
ORG_ADMIN |
Toutes les actions de ce module (permission globale) |
HR_MANAGER |
Consulter les employés (employee.read), pas de gestion directe des contrats par défaut — à compléter via un rôle personnalisé si besoin |
| Rôle personnalisé | Selon les permissions cochées (voir Utilisateurs, rôles & permissions) |
| Permission | Donne accès à |
|---|---|
users.manage |
Lister, créer, modifier, changer le statut et supprimer (résilier) un employé ; importer des employés en masse |
employee.read |
Consulter la fiche employé, les documents d'identité, l'onboarding |
employee.manage |
Ajouter/modifier/supprimer les documents d'identité |
employee.document.manage |
Gérer les documents RH classés par catégorie |
employee.ssn.read |
Consulter le numéro de sécurité sociale (donnée masquée par défaut) |
onboarding.manage |
Créer les modèles d'onboarding, démarrer/annuler une instance |
offboarding.manage |
Initier et consulter un offboarding |
contract.read |
Consulter les contrats, avenants, modèles, projections de coût |
contract.manage |
Créer/modifier un contrat, gérer son cycle de vie, créer des avenants, générer les PDF, gérer les modèles de contrat |
Accès en propre
Chaque employé garde par ailleurs un accès en lecture/écriture limité à ses propres données via MyProfileController (mon profil, mes coordonnées bancaires, mon contact d'urgence) — voir Mon profil.
Détails techniques
Entités principales : EmployeeProfile, EmployeeBankAccount, EmployeeEmergencyContact, EmployeeIdentityDocument, EmployeeDocument / EmployeeDocumentCategory, EmployeeOffboarding, OnboardingTemplate / OnboardingTemplateStep / OnboardingInstance / OnboardingStepInstance, Contract, ContractAmendment, ContractTemplate (package app.jigi.hr.employee et app.jigi.hr.contract).
Endpoints clés :
GET/POST/PUT/DELETE /admin/employees[/{id}]— CRUD employé (EmployeeAdminController)PATCH /admin/employees/{id}/lifecycle— changement de statutGET /admin/employees/import/template,POST /admin/employees/import— import CSV/XLSX dédié (indépendant du grand import multi-modules, voir Import en masse & audit)POST/GET /hr/employees/{employeeId}/offboardingGET/POST/DELETE /hr/onboarding-templates,POST /hr/employees/{employeeId}/onboardingGET/POST/PUT /hr/contracts,/{id}/send,/{id}/sign,/{id}/activate,/{id}/terminate,/{id}/amendments,/{id}/pdf
Jobs planifiés : EmployeeDocumentExpiryAlertJob (alertes d'expiration de documents), ContractAlertJob (alertes de fin de contrat CDD, période d'essai…).
Workflow : l'offboarding déclenche une instance de workflow sur l'entité EMPLOYEE_OFFBOARDING ; l'onboarding a son propre callback (OnboardingWorkflowCallback) indépendant du moteur générique.
Cas d'erreur et FAQ¶
Un employé résilié disparaît-il de la liste ? Non, il reste consultable en cochant Afficher les résiliés. Aucune donnée n'est supprimée physiquement lors d'une résiliation.
Peut-on modifier un contrat déjà signé ?
Pas directement : une fois SIGNED ou ACTIVE, toute modification passe par un avenant (ContractAmendment), qui doit lui-même être signé.
Qui peut voir le numéro de sécurité sociale d'un employé ?
Uniquement les utilisateurs disposant de la permission employee.ssn.read, distincte de la lecture générale de la fiche employé — cette donnée est traitée comme sensible et son accès est audité séparément.
Comment savoir si un titre de séjour ou un document arrive à expiration ?
Le job planifié EmployeeDocumentExpiryAlertJob envoie une notification automatique avant la date d'expiration renseignée sur le document.
Peut-on annuler un onboarding en cours ? Oui, via Annuler l'onboarding sur la fiche employé, tant que l'instance n'est pas terminée.