Aller au contenu

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é

  1. Ouvrez Administration → Utilisateurs (/dashboard/admin/users).
  2. Cliquez sur Ajouter un employé.
  3. Renseignez prénom, nom, email, poste, département, manager, matricule, date d'entrée et convention collective.
  4. 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.manage pour é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

  1. 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é).
  2. Depuis la fiche d'un nouvel employé, démarrez l'onboarding en choisissant le modèle applicable.
  3. 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.
  4. L'onboarding peut être annulé à tout moment si l'embauche ne se concrétise pas.

5. Lancer un offboarding

  1. Depuis la fiche employé, cliquez sur Initier l'offboarding, en précisant le motif et la date de sortie.
  2. 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

  1. Ouvrez la fiche employé, section Contrats, ou la liste globale sous RH → Contrats.
  2. 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 via SeveranceCalculator).
  3. Le contrat suit un cycle de vie strict :

    DRAFT → SENT → SIGNED → ACTIVE → TERMINATED
    

    (avec un état intermédiaire AMENDED lorsqu'un avenant a été appliqué à un contrat déjà actif).

  4. Actions disponibles selon l'étape : Envoyer (/send), Signer (/sign, avec justificatif signé), Activer (/activate), Résilier (/terminate, avec motif et date d'effet).

  5. 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.
  6. Génération PDF : à chaque étape clé, un PDF du contrat peut être généré et téléchargé (/pdf, /pdf/download).
  7. 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 statut
  • GET /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}/offboarding
  • GET/POST/DELETE /hr/onboarding-templates, POST /hr/employees/{employeeId}/onboarding
  • GET/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.

Voir aussi