Commit 8c9b696c799dd78b2ff4a5ed390c698efd06aeb6

Authored by Etienne Pallier
1 parent 99517d9b
Exists in master and in 1 other branch dev

Message rappel sur vue matériel validé et protection des docs attachés

- NEWSLETTER #5 envoyée
- Mise à jour du diagramme workflow (E-T) pour introduire la nouvelle
étape TOBEORDERED ("En Commande")
- Bugfix : infos sur etiquettes affichées SEULEMENT si une étiqueteuse
est configurée...
- Message affiché sur l'écran de G après validation et à chaque
consultation (view) de la fiche :
  - (1) Veuillez imprimer l'étiquette du matériel (et la coller sur le
matériel) \n\
  - (2) Pensez à remplir le champ "Inventaire Tutelles' dès que service
fait CNRS (GesLab) \n\
 => (Ce message reste affiché sur la fiche du matériel validé \n\
		 jusqu'à ce que ces 2 champs soient complétés)

-  On ne peut pas modifier ou supprimer le DEVIS d'un matos commandé
(TOBEORDERED)
-  On ne peut pas modifier ou supprimer les docs attachés d'un matos
validé (VALIDATED)

=> v5.2.6-3.7.9
CHANGELOG
... ... @@ -13,18 +13,36 @@ CHANGEMENTS
13 13  
14 14  
15 15 -------
16   -06/09/2021 NEWS#7 (v5.0.0) :
  16 +13/09/2021 NEWS#5 (v5) :
17 17  
18   -- Nouveau workflow incluant la "commande d'un matériel" :
19   - - nouveau bouton "Commander"
20   - - nouveau statut "TOBEORDERED" (à commander)
21   - - L'étape de commande est optionnelle
  18 +- Documentation en ligne (install et technique) grandement mise à jour, pour une progression plus logique
  19 +
  20 +- Nouveau workflow incluant une nouvelle étape (optionnelle) de "commande d'un matériel" (demande d'achat, nouveau bouton "Commander")
  21 +
  22 +- Champs obligatoires (et modifiables) désormais configurables (pour la saisie d'un matériel)
  23 +
  24 +- Installation du logiciel désormais disponible via DOCKER (en quelques petites minutes)
  25 +
  26 +- Liste des matériels beaucoup plus pratique (colonnes plus pertinentes) et filtrage plus efficace
  27 +
  28 +- Recherche des matériels plus fonctionnelle et résultats affichés exactement comme la liste des matériels (même colonnes pertinentes)
22 29  
23   -- Champs obligatoires désormais configurables (pour la saisie d'un matériel)
  30 +- Correction de nombreux bugs...
  31 +
  32 +- Page "Gestion des fournisseurs" enrichie (/fournisseurs/index) avec :
  33 + => (superadmin) Bouton "Nettoyer la liste complète" (nettoyage "automagique" de la liste par suppression intelligente des doublons et espaces en trop)
  34 + => (administratif) Bouton "Remplacer" un fournisseur par un autre
  35 +
  36 +- Ajout de la notion d'"utilisateur" en plus de la notion d'"acheteur" :
  37 + => L'"acheteur" commande un matériel pour un "utilisateur" destinataire du bien (par défaut, lui-même),
  38 + => peut aussi être juste la précision d'une destination quelconque (local technique, manip...)
  39 + => le but est seulement de préciser QUI utilise ce bien, ou à QUOI il est destiné exactement
  40 +
  41 +- Et comme toujours : Correction de nombreux bugs pour une version plus stable
24 42  
25 43  
26 44 -------
27   -31/03/2021 NEWS#6 (v4.108.18) :
  45 +31/03/2021 (v4.108.18) :
28 46  
29 47 - Installation du logiciel désormais disponible via DOCKER (en quelques petites minutes)
30 48  
... ... @@ -41,14 +59,14 @@ FÉVRIER 2021 (v4.108.0) - GROSSE AMÉLIORATION DE LA PHASE INSTALLATION (FROM S
41 59  
42 60  
43 61 -------
44   -30/11/2020 NEWS#5 (v4.107.21) :
  62 +30/11/2020 (v4.107.21) :
45 63  
46 64 - Liste des matériels beaucoup plus pratique (colonnes plus pertinentes) et filtrage plus efficace
47 65 - Recherche des matériels plus fonctionnelle et résultats affichés exactement comme la liste des matériels (même colonnes pertinentes)
48 66  
49 67  
50 68 -------
51   -20/10/2020 NEWS#4 (v4.105.29) :
  69 +20/10/2020 (v4.105.29) :
52 70  
53 71 Page "Gestion des fournisseurs" enrichie (/fournisseurs/index) avec :
54 72 => (superadmin) Bouton "Nettoyer la liste complète" (nettoyage "automagique" de la liste par suppression intelligente des doublons et espaces en trop)
... ... @@ -335,20 +353,14 @@ Commencer à implémenter le nouveau workflow v5 :
335 353 ======= TODO =======
336 354  
337 355 *)
  356 + validation (=livré ET payé)
  357 + Facture jointe (si > 10K)
  358 +
  359 +
  360 + *)
338 361 TESTS !!!!
339 362  
340 363  
341   - *)
342   - Mettre à jour le diagramme E-T
343   -
344   -"Pensez à coller l'étiquette"
345   -On ne peut pas supprimer les docs attachés d'un matos VALIDATED
346   -Imprimer étiquette : toujours possible ?
347   -
348   -
349   - *)
350   - NEWS#7 ?
351   -
352 364  
353 365 *)
354 366 Rendre modifiable la config via page web "Gérer les champs obligatoires"
... ... @@ -378,11 +390,26 @@ Imprimer étiquette : toujours possible ?
378 390 *)
379 391 On doit pouvoir supprimer un devis sur un matériel commandé (TOBEORDERED) à condition qu'il en reste au moins 1
380 392 => du coup, astuce, on peut REMPLACER un devis en ajoutant le nouveau puis en supprimant l'ancien
381   -
  393 + - (Imprimer étiquette : toujours possible ?)
  394 +
382 395  
383 396 ======= CHANGES =======
384 397  
385 398 -------
  399 +13/09/2021 v5.2.6-3.7.9
  400 + - NEWSLETTER #5 envoyée
  401 + - Mise à jour du diagramme workflow (E-T) pour introduire la nouvelle étape TOBEORDERED ("En Commande")
  402 + - Bugfix : infos sur etiquettes affichées SEULEMENT si une étiqueteuse est configurée...
  403 + - Message affiché sur l'écran de G après validation et à chaque consultation (view) de la fiche :
  404 + - (1) Veuillez imprimer l'étiquette du matériel (et la coller sur le matériel) \n\
  405 + - (2) Pensez à remplir le champ "Inventaire Tutelles' dès que service fait CNRS (GesLab) \n\
  406 + => (Ce message reste affiché sur la fiche du matériel validé \n\
  407 + jusqu'à ce que ces 2 champs soient complétés)
  408 + - On ne peut pas modifier ou supprimer le DEVIS d'un matos commandé (TOBEORDERED)
  409 + - On ne peut pas modifier ou supprimer les docs attachés d'un matos validé (VALIDATED)
  410 +
  411 +
  412 +-------
386 413 10/09/2021 v5.2.5-3.7.9
387 414 - Meilleur choix de couleurs et de positions pour les boutons de validation et de dé-validation
388 415 - Meilleurs noms et tooltips pour les boutons de dé-validation
... ...
README.md
... ... @@ -52,8 +52,8 @@ Logiciel testé et validé sur les configurations suivantes :
52 52  
53 53 --------------------------------------------------------------------------------------------
54 54  
55   -Date: 10/09/2021
56   -Version: v5.2.5-3.7.9
  55 +Date: 13/09/2021
  56 +Version: v5.2.6-3.7.9
57 57  
58 58  
59 59  
... ...
src/Controller/DocumentsController.php
... ... @@ -90,10 +90,11 @@ class DocumentsController extends AppController
90 90 /*
91 91 * Action 'delete' (suppression d'une entité)
92 92 * (EP 2021 09) ATTENTION : Outre cette règle de base implémentée ici,
93   - * une autre règle (trop complexe pour être gérée par ce biais) est implémentée "EN DUR" dans le code... :
94   - * => On ne doit pas pouvoir supprimer un DEVIS associé à un matériel de status TOBEORDERED (commandé)
95   - * (pas simple comme règle hein ?)
96   - * => implémentée dans le code de l'action delete() de ce controleur
  93 + * DEUX autres règles (trop complexes pour être gérées par ce biais) sont implémentées "EN DUR" dans le code... :
  94 + * (1) => On ne doit pas pouvoir modifier ou supprimer un DEVIS associé à un matériel de status TOBEORDERED (commandé)
  95 + * (2) => On ne doit pouvoir modifier ou supprimer AUCUN document associé à un matériel de status VALIDATED (validé)
  96 + * (pas simple comme règle hein ? car elles dépendent du statut d'une autre entité associée à celle-ci : Materiel)
  97 + * => implémentées dans le code de l'action delete() de ce controleur
97 98 */
98 99 $this->setAuthorizationsForAction('delete', [0,1], [
99 100 // Mais admin (et superadmin) peut supprimer tous les docs attachés
... ... @@ -569,10 +570,17 @@ class DocumentsController extends AppController
569 570  
570 571 $materiel = $this->Documents->Materiels->get($parent_id);
571 572  
572   - // ATTENTION, règle de gestion complexe :
573   - // On ne doit pas pouvoir modifier (ni supprimer) un DEVIS associé à un matériel de status TOBEORDERED (commandé)
574   - if ($document->is_devis && $materiel->is_tobeordered) {
575   - $this->Flash->error(__("Ce matériel est en commande, vous ne pouvez donc pas modifier son devis"));
  573 + /* ATTENTION, règles de gestion complexes :
  574 + * (1) => On ne doit pas pouvoir (modifier ou) supprimer un DEVIS associé à un matériel de status TOBEORDERED (commandé)
  575 + * (2) => On ne doit pouvoir (modifier ou) supprimer AUCUN document associé à un matériel de status VALIDATED (validé)
  576 + */
  577 + $CANNOT_EDIT_ERROR_MSG = '';
  578 + // (Règle 1)
  579 + if ($materiel->is_tobeordered && $document->is_devis) $CANNOT_EDIT_ERROR_MSG = "Ce matériel est en Commande, vous ne pouvez donc pas modifier son devis";
  580 + // (Règle 2)
  581 + elseif ($materiel->is_validated_or_more) $CANNOT_EDIT_ERROR_MSG = "Ce matériel est Validé, vous ne pouvez donc modifier aucun document associé";
  582 + if ($CANNOT_EDIT_ERROR_MSG) {
  583 + $this->Flash->error(__($CANNOT_EDIT_ERROR_MSG));
576 584 $this->ACTION_CANCELLED = TRUE;
577 585 return $this->redirect([
578 586 'controller' => 'materiels',
... ... @@ -580,6 +588,7 @@ class DocumentsController extends AppController
580 588 $parent_id
581 589 ]);
582 590 }
  591 +
583 592 }
584 593 }
585 594  
... ... @@ -663,10 +672,17 @@ class DocumentsController extends AppController
663 672  
664 673 $materiel = $this->Documents->Materiels->get($parent_id);
665 674  
666   - // ATTENTION, règle de gestion complexe :
667   - // On ne doit pas pouvoir supprimer un DEVIS associé à un matériel de status TOBEORDERED (commandé)
668   - if ($document->is_devis && $materiel->is_tobeordered) {
669   - $this->Flash->error(__("Ce matériel est en commande, vous ne pouvez donc pas supprimer son devis"));
  675 + /* ATTENTION, règles de gestion complexes :
  676 + * (1) => On ne doit pas pouvoir modifier ou supprimer un DEVIS associé à un matériel de status TOBEORDERED (commandé)
  677 + * (2) => On ne doit pouvoir modifier ou supprimer AUCUN document associé à un matériel de status VALIDATED (validé)
  678 + */
  679 + $CANNOT_DELETE_ERROR_MSG = '';
  680 + // (Règle 1)
  681 + if ($materiel->is_tobeordered && $document->is_devis) $CANNOT_DELETE_ERROR_MSG = "Ce matériel est en Commande, vous ne pouvez donc pas supprimer son devis";
  682 + // (Règle 2)
  683 + elseif ($materiel->is_validated_or_more) $CANNOT_DELETE_ERROR_MSG = "Ce matériel est Validé, vous ne pouvez donc supprimer aucun document associé";
  684 + if ($CANNOT_DELETE_ERROR_MSG) {
  685 + $this->Flash->error(__($CANNOT_DELETE_ERROR_MSG));
670 686 $this->ACTION_CANCELLED = TRUE;
671 687 return $this->redirect([
672 688 'controller' => 'materiels',
... ...
src/Controller/MaterielsController.php
... ... @@ -1890,6 +1890,21 @@ class MaterielsController extends AppController {
1890 1890 //$emails = $this->sendNotificationForEntityAction($materiel);
1891 1891 //debug($emails);
1892 1892  
  1893 + /*
  1894 + * Si le materiel est VALIDATED :
  1895 + * - l'étiquette doit être imprimée (et collée)
  1896 + * - le n° inventaire tutelles doit être renseigné
  1897 + * Si ça n'est pas le cas, on affiche un message de rappel sur cette vue détaillée
  1898 + */
  1899 + $LABEL_NOT_PRINTED = false;
  1900 + $NUM_INV_TUTELLES_NOT_FILLED = false;
  1901 + if ($entity->is_validated) {
  1902 + if ($CAN_PRINT_LABEL) $LABEL_NOT_PRINTED = ! $entity->etiquette;
  1903 + $NUM_INV_TUTELLES_NOT_FILLED = empty($entity->numero_inventaire_organisme);
  1904 + if ($LABEL_NOT_PRINTED) $this->Flash->set("Cette fiche est validée mais n'oubliez pas d'imprimer l'étiquette associée et de la coller sur le matériel");
  1905 + if ($NUM_INV_TUTELLES_NOT_FILLED) $this->Flash->set("Cette fiche est validée mais vous n'avez pas encore rempli le champ 'N° inventaire comptable/tutelles'");
  1906 + }
  1907 +
1893 1908 } // view
1894 1909  
1895 1910  
... ... @@ -2678,16 +2693,18 @@ class MaterielsController extends AppController {
2678 2693 // Gestionnaires (id=>name):
2679 2694 'gestionnaires'
2680 2695 ));
  2696 +
  2697 +
2681 2698 //debug($this->Materiels->getUneditableFieldsForMaterielStatus($status)); exit;
2682 2699 $this->set('readonlyFields', $IS_ADD ? [] : $this->Materiels->getUneditableFieldsForMaterielStatus($materiel->status));
2683   -
  2700 + $this->set('CAN_PRINT_LABEL', $this->isAuthorizedActionForCurrentUser('printLabelRuban', $id));
2684 2701  
2685 2702 /* (EP) INUTILE (sauf pour faire du json ou xml) !!!
2686 2703 $this->set('_serialize', [
2687 2704 'materiel',
2688 2705 ]);
2689 2706 */
2690   -
  2707 +
2691 2708 } //add_or_edit()
2692 2709  
2693 2710  
... ...
src/Model/Entity/Materiel.php
... ... @@ -153,6 +153,7 @@ class Materiel extends Entity {
153 153 //return $this->status == 'CREATED';
154 154 protected function _getIsTobeordered() { return $this->status == 'TOBEORDERED'; }
155 155 protected function _getIsValidated() { return $this->status == 'VALIDATED'; }
  156 + protected function _getIsValidatedOrMore() { return in_array($this->status, ['VALIDATED', 'TOBEARCHIVED', 'ARCHIVED']); }
156 157 //protected function _getIsValidated() { return $this->_fields['status'] == 'VALIDATED'; }
157 158 //public function is_tobearchived() { return $this->status == 'TOBEARCHIVED'; }
158 159 protected function _getIsTobearchived() { return $this->status == 'TOBEARCHIVED'; }
... ... @@ -162,7 +163,7 @@ class Materiel extends Entity {
162 163 //if ($this->is_created) return 'À VALIDER';
163 164 if ($this->is_created) return 'CRÉÉ - à valider';
164 165 if ($this->is_tobeordered) return 'EN COMMANDE - à valider';
165   - if ($this->is_validated) return 'VALIDÉ - livré';
  166 + if ($this->is_validated) return 'VALIDÉ - livré & payé';
166 167 if ($this->is_tobearchived) return 'À SORTIR';
167 168 //if ($this->is_archived)
168 169 return 'ARCHIVÉ';
... ...
src/Template/Materiels/add_edit.ctp
... ... @@ -74,6 +74,7 @@ $dateProchainControleVerif = $dateProchainControleVerif;
74 74 // add or edit mode ? true=add ; false=edit
75 75 $IS_ADD = $IS_ADD;
76 76 $IS_EDIT = !$IS_ADD;
  77 +$CAN_PRINT_LABEL = $CAN_PRINT_LABEL;
77 78  
78 79 $entity = $entity;
79 80 // @deprecated
... ... @@ -588,7 +589,7 @@ if (isset($cpMateriel)) {
588 589 }
589 590  
590 591 // - Etiquette posée ?
591   - if ($USER_IS_RESPONSABLE_OR_MORE) {
  592 + if ($CAN_PRINT_LABEL && $USER_IS_RESPONSABLE_OR_MORE) {
592 593 /*
593 594 * }
594 595 * if (in_array($role, [
... ...
src/Template/Materiels/view.ctp
... ... @@ -555,7 +555,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
555 555  
556 556 // - Bouton "Imprimer étiquette"
557 557 $echoActionButton($this->Html, 'icon-print', $bStyle,
558   - ' étiquette', '', 'printLabelRuban', h($entity->id), [],
  558 + ' Etiquette', '', 'printLabelRuban', h($entity->id), [],
559 559 "Imprimer une étiquette");
560 560  
561 561 // - Bouton "Etiquette [non] collée"
... ... @@ -697,7 +697,7 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
697 697 $displayElement(__('Organisme'), $entity->has('organisme') ? h($entity->organisme->nom) : '');
698 698  
699 699 $etiq = (h($entity->etiquette) == 0) ? "Non" : "Oui";
700   - $displayElement(__('Étiquette placée'), $etiq, $etiq=="Oui"?$style_green:$style_red);
  700 + if ($CAN_PRINT_LABEL) $displayElement(__('Étiquette placée'), $etiq, $etiq=="Oui"?$style_green:$style_red);
701 701  
702 702 $displayElement(__('N° de série'), $entity->numero_serie);
703 703  
... ...
webroot/doc/diagrams/Materiel_status_state_diagram_v5_2021_09.png

267 KB | W: | H:

276 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
webroot/doc/diagrams/Materiel_status_state_diagram_v5_2021_09.txt
... ... @@ -13,7 +13,7 @@ __CYCLE DE VIE D'UN MATÉRIEL (SES 5 ÉTATS)__
13 13 end title
14 14  
15 15  
16   -state "**CREATED** (fiche créée, matériel à commander ou valider)" as CREATED
  16 +state "**CREATED** (fiche créée, matériel à valider)" as CREATED
17 17 state "**TOBEORDERED** (en commande)" as TOBEORDERED
18 18 state "**VALIDATED** (fiche validée, matériel livré et payé)" as VALIDATED
19 19 state "**TOBEARCHIVED** (à sortir)" as TOBEARCHIVED
... ... @@ -33,8 +33,7 @@ CREATED -u-> [*]: \l**Supprimer** (delete)\n(par C, un R, ou un G) \
33 33 \n => <&envelope-open> (INFO "Fiche supprimée") : \
34 34 \n GR (cc Gestion), C/U, R(s)
35 35  
36   -CREATED: Si c'est une commande, le matériel est en attente de commande (par un G) \n\
37   -(La section administrative ne peut être saisie que par un G) \n\n\
  36 +CREATED: La section administrative ne peut être saisie que par un G
38 37  
39 38 CREATED --> CREATED: \l**__Actions possibles__ :**\n\
40 39 - **Supprimer** \n\
... ... @@ -55,7 +54,7 @@ Infos obligatoires (LOT1 = LOT 0 + ...) : \n\
55 54 => <&envelope-open> (COMMANDE) : GR (cc Gestion) [avec __devis joint__] \
56 55 \n => <&envelope-open> (INFO) : C/U, R(s)
57 56  
58   -TOBEORDERED: Une demande d'achat est faite \nà la Gestion pour ce matériel
  57 +TOBEORDERED: Une demande d'achat est faite \nà la Gestion pour ce matériel\n(étape optionnelle)
59 58  
60 59 TOBEORDERED --> CREATED: \l**Annuler Commande** \n(par un G)\n => <&envelope-open> (INFO) : C/U, R(s) \n\
61 60  
... ... @@ -76,19 +75,25 @@ TOBEORDERED --&gt; VALIDATED: \l**Valider livraison** \n\
76 75 CREATED --> VALIDATED: \l**Valider livraison** \n\
77 76 (par un G) \n\
78 77 Infos obligatoires (LOT2 = LOT1 + ...) \n\
79   - => <&envelope-open> (INFO facture payée) : C/U\n(+ "pensez à coller l'étiquette !")
  78 + => <&envelope-open> (INFO "matériel livré & facture payée") : C/U\n\
  79 + (+ "pensez à imprimer & coller l'étiquette")\n\
  80 + (+ "pensez à remplir le champ 'num. inventaire tutelle'")
80 81  
81 82 VALIDATED --> CREATED : \l **Invalider** \n (par un G) \n => <&envelope-open> : C/U
82 83  
83   -VALIDATED: Le matériel a été livré et payé, \net son étiquette imprimée \n(et collée si posible)
  84 +VALIDATED: Le matériel a été livré et la facture payée. \n\n\
  85 + Message affiché sur l'écran de G :\n\
  86 + - (1) Veuillez imprimer & coller l'étiquette du matériel \n\
  87 + - (2) Pensez à remplir le champ "Inventaire Tutelles' dès que service fait CNRS (GesLab) \n\
  88 + => (reste affiché sur fiche du matériel jusqu'à ce que ces 2 actions soient faites)
84 89  
85 90 VALIDATED --> VALIDATED: \l**__Actions posibles__ :**\n\
86   -- **Modifier** (edit) \n (par C/U, un R, ou un G) \n (LOT2 reste obligatoire et certains champs NON MODIFIABLES)) \n (//NB: on ne doit pas pouvoir modifier la "nature" du bien)// \n => <&envelope-open> : C/U, GR \n\
87 91 - **Ajouter documents attachés** (par C/U, un R, ou un G) \n (mais on ne peut pas supprimer les documents déjà attachés) \n\
88 92 - **Imprimer fiche ENTRÉE matériel** (par un G) \n\
89 93 - **Prêter** (par C/U ou un R) \n\
90 94 - **Faire un Suivi** (par C/U ou un R) \n\
91   -- **Imprimer étiquette** (date cde + tutelle [+ n° inventaire tutelle]) (par C/U, un R, ou un G)
  95 +- **Imprimer étiquette** (date cde + tutelle [+ n° inventaire tutelle]) (par C/U, un R, ou un G) \n\
  96 +- **Modifier** (edit) \n (par C/U, un R, ou un G) \n (LOT2 reste obligatoire et certains champs NON MODIFIABLES)) \n (//NB: on ne doit pas pouvoir modifier la "nature" du bien)// \n => <&envelope-open> : C/U, GR \n\
92 97  
93 98  
94 99  
... ... @@ -106,6 +111,9 @@ TOBEARCHIVED --&gt; VALIDATED : \l **Annuler demande sortie** \n\
106 111  
107 112 TOBEARCHIVED: Le matériel est en instance de sortie d'inventaire
108 113  
  114 +TOBEARCHIVED --> TOBEARCHIVED: \l**__Actions posibles__ :** idem VALIDATED \n\
  115 +
  116 +
109 117  
110 118 ' ==========================
111 119 ' 4) SORTIE
... ... @@ -115,14 +123,15 @@ TOBEARCHIVED --&gt; ARCHIVED : \l**Archiver (sortir de l&#39;inventaire)** (archive) \n
115 123 (par un G) \
116 124 \n => <&envelope-open> : C/U
117 125  
118   -ARCHIVED --> VALIDATED : \l **Désarchiver** \n\
  126 +ARCHIVED --> TOBEARCHIVED : \l **Désarchiver** \n\
119 127 (par un G) \
120 128 \n => <&envelope-open> : C/U
121 129  
122 130 ARCHIVED: Le matériel n'est plus visible (sauf par un G)
123 131  
124   -ARCHIVED --> ARCHIVED: \l**Imprimer fiche SORTIE matériel** \n\
125   -(par un G)
  132 +ARCHIVED --> ARCHIVED: \l**AUCUNE ACTION disponible sauf** :\n\
  133 +- **Imprimer fiche SORTIE** matériel** (par un G) \n\
  134 +- **Imprimer étiquette** (date cde + tutelle [+ n° inventaire tutelle]) (par C/U, un R, ou un G)
126 135  
127 136  
128 137  
... ... @@ -137,7 +146,7 @@ skinparam legendFontSize 11
137 146 legend left
138 147 <u>Légende</u>:
139 148  
140   -Diagramme UML d'États-Transitions du 10/09/2021 - Logiciel LabInvent v5.x - E. Pallier - IRAP
  149 +Diagramme UML d'États-Transitions du 13/09/2021 - Logiciel LabInvent v5.x - E. Pallier - IRAP
141 150  
142 151 Acteurs:
143 152 - C = Créateur : la personne qui crée la fiche (ou celle qui commande le matériel)
... ...