@startuml 'cf http://plantuml.com/fr/state-diagram' 'Taille des etats :' 'skinparam stateFontSize 10' skinparam titleFontSize 18 title __CYCLE DE VIE D'UN MATÉRIEL (SES 4 ÉTATS)__ end title state "**CREATED** (fiche créée, matériel à commander ou pas)" as CREATED state "**VALIDATED** (fiche validée, matériel livré et payé)" as VALIDATED state "**TOBEARCHIVED** (à sortir)" as TOBEARCHIVED state "**ARCHIVED** (matériel sorti de l'inventaire)" as ARCHIVED ' ======================= ' 1) CRÉATION (COMMANDE) ' ======================= [*] --> CREATED : \l**Créer [& commander]** (add) \n\ (par A) \n\ __Infos obligatoires (LOT1)__ : \n\ - désignation \n\ - description (important pour communiquer avec GR) \n\ - domaine/catégorie \n\ - prix \n\ - acheteur (par défaut = A, celui qui fait la fiche) \n\ - [ responsable du crédit (si autre que l'acheteur) ] (optionnel) \n\ - utilisateur destination (champ texte libre) \n\ - gestionnaire de référence (GR) (par défaut "Je ne sais pas") \n\ - ligne budgétaire = "Sur quel(s) budget(s) ?" (à transformer en entité(s) dépens.) \n\ - organisme (CNRS, UPS, ...) \n\ - fournisseur (on pourra toujours le modifier après) \n\ - tobeordered (champ invisible, FAUX par défaut, VRAI si commande*) \n\ __Infos obligatoires (LOT1+) (si on a cliqué sur "commander")__ : \n\ - [ devis joint (ou copie écran du "panier") ] (optionnel ou obligatoire selon config) \ \n => <&envelope-open> (INFO ou COMMANDE si commande*) : GR (cc Gestion) [avec __devis joint__] \ \n => <&envelope-open> (INFO) : U, R(s) CREATED -u-> [*]: \l**Supprimer** (delete) (ssi tobeordered=FAUX) \n(par A, un R, ou un G) \ \n => <&envelope-open> (INFO "Fiche supprimée") : GR (cc Gestion), A/U, R(s) CREATED: Si c'est une commande, le matériel est en attente de commande (par un G) \n\ (La section administrative ne peut être saisie que par un G) \n\n\ CREATED --> CREATED: \l**__Actions possibles__ :**\n\ - **Commander** (ssi tobeordered=FAUX) (par A/U, un R, ou un G) \ \n => tobeordered=VRAI \ \n => <&envelope-open> (COMMANDE) : GR (cc Gestion) [avec __devis joint__] \ \n => <&envelope-open> (INFO) : U, R(s) \n\ - **Annuler Commande** (ssi tobeordered=VRAI) (par un G) \ \n => tobeordered=FAUX \ \n => <&envelope-open> (INFO) : U, R(s) \n\ - **Modifier** (edit) (par A/U, un R, ou un G) \n\ (LOT2 ne peut être saisi/modifié que par un G) \n\ (LOT1 peut être saisi par tous, et reste obligatoire) \ \n => <&envelope-open> (INFO "Fiche modifiée" ("Commande modifiée" si Commande*) : GR (cc Gestion), A/U, R(s) \n\ - **Imprimer étiquette** (date cde + organisme tutelle [+ n° inventaire tutelle]) (par A/U, un R, ou un G) ' ========================== ' 2) VALIDATION (LIVRAISON) ' ========================== CREATED --> VALIDATED: \l**Valider** (validate) \n\ (par un G) \n\ Infos obligatoires (LOT2) : \n\ - LOT1 \n\ - entité(s) dépens. (= validation de la ligne budgétaire) \n\ - n° BC + date BC \n\ - date livraison \n\ - n° inventaire comptable/tutelles (= service fait GESLAB) \n\ - "Etiquette imprimée" (à cocher) \n\ - (si > 10K€ : lieu stockage précis + facture jointe) \ \n => <&envelope-open> (INFO facture payée) : A/U (+ "pensez à coller l'étiquette !") VALIDATED --> CREATED : \l **Invalider** (invalidate) \n (par un G) \n => <&envelope-open> : A/U VALIDATED: Le matériel a été livré et payé, \net son étiquette imprimée \n(et collée si possible) VALIDATED --> VALIDATED: \l**__Actions possibles__ :**\n\ - **Modifier** (edit) \n (par A/U, un R, ou un G) \n (LOT2 obligatoire et NON MODIFIABLE, sauf champ "utilisateur") \n (//NB: on ne devrait pas pouvoir modifier la "nature" du bien)// \n => <&envelope-open> : A/U, GR \n\ - **Ajouter documents attachés** (par A/U, un R, ou un G) \n (mais on ne peut pas supprimer les documents déjà attachés) \n\ - **Imprimer fiche ENTRÉE matériel** (par un G) \n\ - **Prêter** (par A/U ou un R) \n\ - **Faire un Suivi** (par A/U ou un R) \n\ - **Imprimer étiquette** (date cde + tutelle [+ n° inventaire tutelle]) (par A/U, un R, ou un G) ' ========================== ' 3) DEMANDE SORTIE ' ========================== VALIDATED --> TOBEARCHIVED : \l**Demander sortie** (tobearchived) \n\ (par A/U, un R ou un G) \ \n => <&envelope-open> : A/U, GR (cc Gestion) TOBEARCHIVED --> VALIDATED : \l **Annuler demande archivage** \n\ (par A/U, un R ou un G) \ \n => <&envelope-open> : A/U, GR TOBEARCHIVED: Le matériel est en instance de sortie d'inventaire ' ========================== ' 4) SORTIE ' ========================== TOBEARCHIVED --> ARCHIVED : \l**Archiver (sortir de l'inventaire)** (archive) \n\ (par un G) \ \n => <&envelope-open> : A/U ARCHIVED --> VALIDATED : \l **Désarchiver** (unarchive) \n\ (par un G) \ \n => <&envelope-open> : A/U ARCHIVED: Le matériel n'est plus visible (sauf par un G) ARCHIVED --> ARCHIVED: \l**Imprimer fiche SORTIE matériel** \n\ (par un G) 'On pouvait aussi utiliser _note_ au lieu de _legend_ mais ca se met tout en haut:' '(cf note dans http://plantuml.com/fr/class-diagram)' 'note as N1' skinparam legendFontSize 11 legend left Légende: Diagramme UML d'États-Transitions du 04/12/20 - Logiciel LabInvent v5.x - E. Pallier - IRAP Acteurs: - A = Acheteur : la personne qui commande le matériel - U = Utilisateur : le destinataire du matériel (ou la destination) - R = Responsable : le responsable d'un groupe (métier, projet, ou pôle) auquel le matériel est associé - G = Gestionnaire : un administratif - GR = Gestionnaire de Référence : l'administratif qui passe la commande du matériel (désigné par l'Acheteur) (éventuellement, par défaut, celui qui est en charge du projet auquel le matériel est associé) (en fait, le DERNIER gestionnaire qui modifie la fiche matériel devient le nouveau GR) Profils (rôles, pouvoirs) : - UTILISATEUR = personne quelconque du laboratoire (authentifiée), profil avec les droits minimum (ne pas confondre avec U qui est l'Utilisateur réel d'un matériel spécifique) - RESPONSABLE = Responsable d'un groupe métier, d'un projet ou d'un pôle - ADMIN (Gestionnaire) = Administratif - SUPERADMIN = Super utilisateur, il a au moins les mêmes droits que ADMIN (mais il peut aussi intervenir sur la configuration technique du logiciel) Matériel inventoriable = au moins 1000€ HT (en-dessous, le matériel peut quand même être inventorié, mais ne fait pas partie de l'inventaire comptable, seulement de l'inventaire physique) Un email est envoyé à chaque changement d'état du matériel //(pas de mail envoyé à la personne à l'origine de l'action car inutile)// : - à A et U - au(x) R(s) du/des groupe(s) (métier, projet, ou pôle) auquel(s) le matériel est affecté - au GR (éventuellement avec copie au service Gestion) //(*) Le champ "tobeordered" est à VRAI, on a cliqué sur le bouton "Enregistrer et COMMANDER" (et non pas sur le bouton "Enregistrer")// endlegend 'end note' @enduml