---
title: "Contrats rattachés à un matériel"
module: store
type: functional
status: active
updated: 2026-08-12
---

# Contrats rattachés à un matériel

> Doc fonctionnelle : décrit le **quoi** et le **pourquoi** (point de vue utilisateur / chef de projet).

## À quoi ça sert

Un matériel du parc est très souvent couvert par un contrat : maintenance, infogérance, location,
garantie étendue. Jusqu'ici cette information ne vivait que dans le module Contrats, sans lien avec
la fiche du matériel concerné : impossible, en regardant un poste, de savoir s'il est sous contrat
et lequel.

Cette feature permet de **rattacher un ou plusieurs contrats existants** à une fiche matériel,
directement depuis cette fiche. Le rattachement est purement déclaratif : il ne crée ni ne modifie
aucun contrat, il relie ce qui existe déjà des deux côtés.

## Comment ça marche (côté utilisateur)

Sur une fiche matériel en modification (`/mod/81000101/update/{idhw}`), la sidebar affiche une
entrée **« Contrats liés »**, accompagnée d'un compteur des contrats déjà rattachés.

Un clic ouvre une fenêtre listant les contrats rattachés, avec pour chacun :

| Colonne | Contenu |
|---------|---------|
| Actions | Ouvrir la fiche du contrat, retirer le rattachement |
| Contrat | Libellé du contrat |
| Fournisseur | Fournisseur porteur du contrat |
| Statut | En discussion, En cours, Terminé |

**Rattacher** : la liste déroulante propose les contrats de l'entité qui ne sont pas déjà
rattachés. Les libellés portent le nom du fournisseur entre parenthèses, ce qui permet de
distinguer deux contrats homonymes. La sélection est multiple : on peut en rattacher plusieurs en
une fois.

**Retirer** : le bouton de chaque ligne demande une confirmation, puis supprime le lien. Le contrat
lui-même n'est pas touché — il reste intact dans le module Contrats et redevient disponible dans la
liste déroulante.

Le compteur de la sidebar se met à jour immédiatement après chaque rattachement ou retrait, sans
recharger la page.

## Règles d'accès

| Condition | Effet |
|-----------|-------|
| Droit **consultation** (`SEE`) sur le matériel | L'entrée « Contrats liés » est visible, la fenêtre s'ouvre en **lecture seule** |
| Droit **modification** (`U`) sur le matériel | Rattachement et retrait autorisés |
| Droit **consultation** sur le contrat | Le bouton d'ouverture de la fiche contrat apparaît sur la ligne |

En lecture seule, un bandeau l'indique explicitement et les boutons d'écriture ne sont pas
affichés : aucune action n'est proposée à un utilisateur qui ne peut pas l'exécuter.

Un matériel n'est accessible que s'il appartient au périmètre de l'utilisateur (entité rattachée à
son tenant). Un matériel d'un autre tenant est refusé, y compris en lecture.

Seuls les contrats de l'entité de l'utilisateur sont proposés au rattachement ; un contrat d'un
autre tenant est refusé même si sa référence est fournie directement.

## Points d'attention

- **Contrats archivés** : archiver un contrat le fait disparaître de la fenêtre et du compteur du
  matériel. Le lien n'est pas supprimé pour autant : restaurer le contrat le fait réapparaître
  rattaché.
- **Le rattachement ne porte aucune date** : il dit « ce matériel est couvert par ce contrat »,
  sans période de couverture propre. Les dates pertinentes sont celles du contrat.
- **Aucun contrôle de cohérence** entre le contrat et le matériel : rien n'empêche de rattacher un
  contrat à un matériel d'une autre entité du même tenant, ni d'en rattacher un nombre arbitraire.
- **Périmètre entité des contrats** : la liste déroulante applique le périmètre tenant et le profil
  limité, mais pas les restrictions de visibilité par entité/groupe (« Super Limite ») du module
  Contrats. Un contrat restreint peut donc y apparaître alors qu'il n'est pas visible dans le
  listing Contrats.
- Le même mécanisme existe côté **GMAO** pour les équipements ; les deux fonctionnent
  indépendamment et ne partagent pas leurs rattachements.

## Voir aussi

- Doc technique : [`../../.claude/technical-docs/store/hardware-contracts.md`](../../.claude/technical-docs/store/hardware-contracts.md)
- Module Matériels : [`hardware.md`](hardware.md)
