Commit 99517d9b7af25b69ba1382046ed8601079ccb81e

Authored by Etienne Pallier
1 parent 3e57c505
Exists in master and in 1 other branch dev

Meilleur choix noms/couleurs/positions/tooltips pour boutons dé-valid

+ Nouveau Diagramme Etat-Transitions des statuts du matériel (workflow)

=> v5.2.5-3.7.9
@@ -341,27 +341,13 @@ Commencer à implémenter le nouveau workflow v5 : @@ -341,27 +341,13 @@ Commencer à implémenter le nouveau workflow v5 :
341 *) 341 *)
342 Mettre à jour le diagramme E-T 342 Mettre à jour le diagramme E-T
343 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 +
344 348
345 *) 349 *)
346 NEWS#7 ? 350 NEWS#7 ?
347 -  
348 -  
349 - *)  
350 - Lister les RG :  
351 -  
352 - - Pouvoir modifier le champ "n° inventaire Tutelle" sur un matos validé  
353 - (Service fait CNRS ----> je récupère le n° inventaire "Tutelle" sur GESLAB (SIFAC ?) et je complète la fiche INVENTIRAP  
354 -  
355 - * - Seul le Créateur de la fiche peut passer la Commande (cliquer sur "Commander")  
356 - - On ne peut pas supprimer le devis attaché (seulement en ajouter)  
357 - - On peut toujous modifier une fiche matériel (les champs obligatoires le restent)  
358 - - même "commandée" :  
359 - - champs obligatoires LOT1  
360 - - champs qui ne sont plus modifiables : AUCUN ? (tous sont toujours modifiables ?)  
361 - - même "validée" :  
362 - - champs obligatoires LOT2  
363 - - champs qui ne sont plus modifiables :  
364 - ...  
365 351
366 352
367 *) 353 *)
@@ -397,6 +383,12 @@ Commencer à implémenter le nouveau workflow v5 : @@ -397,6 +383,12 @@ Commencer à implémenter le nouveau workflow v5 :
397 ======= CHANGES ======= 383 ======= CHANGES =======
398 384
399 ------- 385 -------
  386 +10/09/2021 v5.2.5-3.7.9
  387 + - Meilleur choix de couleurs et de positions pour les boutons de validation et de dé-validation
  388 + - Meilleurs noms et tooltips pour les boutons de dé-validation
  389 + - Nouveau Diagramme Etat-Transitions des statuts du matériel (workflow)
  390 +
  391 +-------
400 10/09/2021 v5.2.4-3.7.9 392 10/09/2021 v5.2.4-3.7.9
401 - (i) Quand le statut d'un matos passe à TOBEORDERED, mettre son champ "tobeordered" à true (pour garder trace de la commande) 393 - (i) Quand le statut d'un matos passe à TOBEORDERED, mettre son champ "tobeordered" à true (pour garder trace de la commande)
402 - (e) Changement de l'effet du bouton "INVALIDER", désormais plus logique, repasse au statut "PRÉCÉDENT" et non pas systématiquement à CREATED : 394 - (e) Changement de l'effet du bouton "INVALIDER", désormais plus logique, repasse au statut "PRÉCÉDENT" et non pas systématiquement à CREATED :
@@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes : @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 -------------------------------------------------------------------------------------------- 53 --------------------------------------------------------------------------------------------
54 54
55 Date: 10/09/2021 55 Date: 10/09/2021
56 -Version: v5.2.4-3.7.9 56 +Version: v5.2.5-3.7.9
57 57
58 58
59 59
src/Template/Materiels/view.ctp
@@ -451,6 +451,8 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN @@ -451,6 +451,8 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
451 // Donc, on applique ce style à TOUS les boutons de cette 2e ligne 451 // Donc, on applique ce style à TOUS les boutons de cette 2e ligne
452 $bStyle2 = $bStyle.'; margin-top:10px; display:inline-block'; 452 $bStyle2 = $bStyle.'; margin-top:10px; display:inline-block';
453 $bStyle2Red = $bStyle2 . '; color:red'; 453 $bStyle2Red = $bStyle2 . '; color:red';
  454 + $bStyle2Green = $bStyle2 . '; color:green';
  455 + $bStyle2Blue = $bStyle2 . '; color:blue';
454 456
455 // BOUTONS de changement de statut : Valider, Invalider, Demander archivage, ou Archiver 457 // BOUTONS de changement de statut : Valider, Invalider, Demander archivage, ou Archiver
456 /* (EP) Moved this to controller:view() 458 /* (EP) Moved this to controller:view()
@@ -464,47 +466,59 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN @@ -464,47 +466,59 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
464 // - CREATED : 466 // - CREATED :
465 467
466 // Bouton COMMANDER 468 // Bouton COMMANDER
467 - if ($HAS_ORDER_BUTTON && $CAN_ORDER) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Commander', '', 'statusTobeordered', $entity->id, ['view'], "Demander la commande de ce matériel)"); 469 + if ($HAS_ORDER_BUTTON && $CAN_ORDER) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Green, ' Commander', '', 'statusTobeordered', $entity->id, ['view'], "Demander la commande de ce matériel)");
468 470
469 // Bouton VALIDER 471 // Bouton VALIDER
470 - if ($CAN_VALIDATE) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Red, ' Valider (=livré)', '', 'statusValidated', $entity->id, ['view'], "Valider ce matériel (le déclarer comme étant livré)"); 472 + if ($CAN_VALIDATE) $echoActionButton($this->Html, 'icon-ok-sign', $bStyle2Green, ' Valider (=livré)', '', 'statusValidated', $entity->id, ['view'], "Valider ce matériel (le déclarer comme étant livré)");
471 473
472 - // - VALIDATED or more :  
473 474
474 - // Bouton Invalider (Dévalider)  
475 - //$help = "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)";  
476 - $help = "dé-valider le matériel ";  
477 - if ($entity->status == 'ARCHIVED')  
478 - $new_status = "(le désarchiver, et repasser au statut 'A SORTIR')";  
479 - elseif ($entity->status == 'TOBEARCHIVED')  
480 - $new_status = "(annuler la demande d'archivage, et repasser au statut 'VALIDÉ')";  
481 - elseif ($entity->status == 'VALIDATED')  
482 - $new_status = "(annuler la validation de la livraison, et repasser au statut 'CRÉÉ')";  
483 - elseif ($entity->status == 'TOBEORDERED')  
484 - $new_status = "(annuler la demande d'achat, et repasser au statut 'CRÉÉ')";  
485 - // Par défaut => CREATED (VALIDATED ou TOBEORDERED => CREATED)  
486 - else  
487 - $new_status = "(repasser au statut 'CRÉÉ')";  
488 - $help .= $new_status;  
489 - if ($CAN_INVALIDATE)  
490 - $echoActionButton(  
491 - $this->Html, 'icon-remove-sign', $bStyle2Red, ' Invalider', '', 'statusCreated', $entity->id, ['view'],  
492 - $help  
493 - ); 475 + // - VALIDATED or more :
494 476
495 // Bouton TBA 477 // Bouton TBA
496 if ($CAN_TBA) 478 if ($CAN_TBA)
497 $echoActionButton( 479 $echoActionButton(
498 - $this->Html, 'icon-ok-sign', $bStyle2Red, ' Demander sortie', '', 'statusTobearchived', $entity->id, ['view'], 480 + $this->Html, 'icon-ok-sign', $bStyle2Blue, ' Demander sortie', '', 'statusTobearchived', $entity->id, ['view'],
499 "Demander la sortie de l'inventaire" 481 "Demander la sortie de l'inventaire"
500 ); 482 );
501 // Bouton ARCHIVER 483 // Bouton ARCHIVER
502 if ($CAN_ARCHIVE) 484 if ($CAN_ARCHIVE)
503 $echoActionButton( 485 $echoActionButton(
504 - $this->Html, 'icon-ok-sign', $bStyle2Red, ' Sortie inventaire', '', 'statusArchived', $entity->id, ['view'], 486 + $this->Html, 'icon-ok-sign', $bStyle2Blue, ' Sortie inventaire', '', 'statusArchived', $entity->id, ['view'],
505 "Sortir définitivement de l'inventaire", 487 "Sortir définitivement de l'inventaire",
506 "Êtes-vous sur de bien vouloir archiver $entity->designation ?" 488 "Êtes-vous sur de bien vouloir archiver $entity->designation ?"
507 ); 489 );
  490 +
  491 + // Bouton INVALIDER (Dévalider)
  492 + //$help = "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)";
  493 + $help = "dé-valider le matériel ";
  494 + if ($entity->status == 'ARCHIVED') {
  495 + $b_label = "Désarchiver";
  496 + $new_status = "(le désarchiver, et repasser au statut 'A SORTIR')";
  497 + }
  498 + elseif ($entity->status == 'TOBEARCHIVED') {
  499 + $b_label = "Annuler demande sortie";
  500 + $new_status = "(annuler la demande d'archivage, et repasser au statut 'VALIDÉ')";
  501 + }
  502 + elseif ($entity->status == 'VALIDATED') {
  503 + $b_label = "Invalider";
  504 + $new_status = "(annuler la validation de la livraison, dé-valider et repasser au statut 'CRÉÉ')";
  505 + }
  506 + elseif ($entity->status == 'TOBEORDERED') {
  507 + $b_label = "Annuler Commande";
  508 + $new_status = "(annuler la demande d'achat, et repasser au statut 'CRÉÉ')";
  509 + }
  510 + // Par défaut => CREATED (VALIDATED ou TOBEORDERED => CREATED)
  511 + else {
  512 + $b_label = "Invalider";
  513 + $new_status = "(repasser au statut 'CRÉÉ')";
  514 + }
  515 + $help .= $new_status;
  516 + if ($CAN_INVALIDATE)
  517 + $echoActionButton(
  518 + $this->Html, 'icon-remove-sign', $bStyle2Red, ' '.$b_label, '', 'statusCreated', $entity->id, ['view'],
  519 + $help
  520 + );
  521 +
508 522
509 /* 523 /*
510 if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)) { 524 if ($USER_IS_ADMIN_OR_MORE || ($USER_IS_RESPONSABLE && $USER_IS_SAME_GROUP_AS_MATERIEL)) {
webroot/doc/diagrams/Materiel_status_state_diagram_v5_2021_09.png 0 → 100644

267 KB

webroot/doc/diagrams/Materiel_status_state_diagram_v5_2021_09.txt 0 → 100755
@@ -0,0 +1,168 @@ @@ -0,0 +1,168 @@
  1 +@startuml
  2 +
  3 +'cf http://plantuml.com/fr/state-diagram'
  4 +
  5 +'Taille des etats :'
  6 +'skinparam stateFontSize 10'
  7 +
  8 +
  9 +skinparam titleFontSize 18
  10 +title
  11 +__CYCLE DE VIE D'UN MATÉRIEL (SES 5 ÉTATS)__
  12 +
  13 +end title
  14 +
  15 +
  16 +state "**CREATED** (fiche créée, matériel à commander ou valider)" as CREATED
  17 +state "**TOBEORDERED** (en commande)" as TOBEORDERED
  18 +state "**VALIDATED** (fiche validée, matériel livré et payé)" as VALIDATED
  19 +state "**TOBEARCHIVED** (à sortir)" as TOBEARCHIVED
  20 +state "**ARCHIVED** (matériel sorti de l'inventaire)" as ARCHIVED
  21 +
  22 +
  23 +' =======================
  24 +' 1) CRÉATION (COMMANDE)
  25 +' =======================
  26 +
  27 +[*] --> CREATED : \l**Créer [& commander]** (add) \n\
  28 +(par C) \n\
  29 +__Infos obligatoires (LOT 0)__ \n\
  30 + => <&envelope-open> (INFO) : GR (si précisé), U, R(s)
  31 +
  32 +CREATED -u-> [*]: \l**Supprimer** (delete)\n(par C, un R, ou un G) \
  33 +\n => <&envelope-open> (INFO "Fiche supprimée") : \
  34 +\n GR (cc Gestion), C/U, R(s)
  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\
  38 +
  39 +CREATED --> CREATED: \l**__Actions possibles__ :**\n\
  40 +- **Supprimer** \n\
  41 +- **[Imprimer étiquette]** (date cde + organisme tutelle [+ n° inventaire tutelle]) (par C/U, un R, ou un G) \n\
  42 +- **Modifier** (edit) (par C/U, un R, ou un G) \n\
  43 +(LOT 0 reste obligatoire, mais tous les champs sont modifiables) \n\
  44 + => <&envelope-open> (INFO) "Fiche modifiée" : C/U, R(s) \n\
  45 +
  46 +
  47 +
  48 +' ==============================
  49 +' 1) COMMANDE (demande d'achat)
  50 +' ==============================
  51 +
  52 +CREATED --> TOBEORDERED: \l**Commander** (demande d'achat) \n\
  53 +(par C/R ou un G) \n\
  54 +Infos obligatoires (LOT1 = LOT 0 + ...) : \n\
  55 + => <&envelope-open> (COMMANDE) : GR (cc Gestion) [avec __devis joint__] \
  56 +\n => <&envelope-open> (INFO) : C/U, R(s)
  57 +
  58 +TOBEORDERED: Une demande d'achat est faite \nà la Gestion pour ce matériel
  59 +
  60 +TOBEORDERED --> CREATED: \l**Annuler Commande** \n(par un G)\n => <&envelope-open> (INFO) : C/U, R(s) \n\
  61 +
  62 +TOBEORDERED --> TOBEORDERED: \l**__Actions possibles__ :**\n\
  63 +- **[Imprimer étiquette]** (date cde + organisme tutelle [+ n° inv. tut.])\n (par C/U, un R, ou un G)\n\
  64 +- **Modifier** (edit) (par C/U, un R, ou un G) \n\
  65 +(LOT1 reste obligatoire et certains champs NON MODIFIABLES) \n\
  66 + => <&envelope-open> (INFO) "Commande modifiée" : GR (cc Gestion), C/U, R(s) \n\
  67 +
  68 +TOBEORDERED --> VALIDATED: \l**Valider livraison** \n\
  69 +
  70 +
  71 +
  72 +' ==========================
  73 +' 2) VALIDATION (LIVRAISON)
  74 +' ==========================
  75 +
  76 +CREATED --> VALIDATED: \l**Valider livraison** \n\
  77 +(par un G) \n\
  78 +Infos obligatoires (LOT2 = LOT1 + ...) \n\
  79 + => <&envelope-open> (INFO facture payée) : C/U\n(+ "pensez à coller l'étiquette !")
  80 +
  81 +VALIDATED --> CREATED : \l **Invalider** \n (par un G) \n => <&envelope-open> : C/U
  82 +
  83 +VALIDATED: Le matériel a été livré et payé, \net son étiquette imprimée \n(et collée si posible)
  84 +
  85 +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 +- **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 +- **Imprimer fiche ENTRÉE matériel** (par un G) \n\
  89 +- **Prêter** (par C/U ou un R) \n\
  90 +- **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)
  92 +
  93 +
  94 +
  95 +' ==========================
  96 +' 3) DEMANDE SORTIE
  97 +' ==========================
  98 +
  99 +VALIDATED --> TOBEARCHIVED : \l**Demander sortie** (tobearchived) \n\
  100 +(par C/U, un R ou un G) \
  101 +\n => <&envelope-open> : C/U, GR (cc Gestion)
  102 +
  103 +TOBEARCHIVED --> VALIDATED : \l **Annuler demande sortie** \n\
  104 +(par C/U, un R ou un G) \
  105 +\n => <&envelope-open> : C/U, GR
  106 +
  107 +TOBEARCHIVED: Le matériel est en instance de sortie d'inventaire
  108 +
  109 +
  110 +' ==========================
  111 +' 4) SORTIE
  112 +' ==========================
  113 +
  114 +TOBEARCHIVED --> ARCHIVED : \l**Archiver (sortir de l'inventaire)** (archive) \n\
  115 +(par un G) \
  116 +\n => <&envelope-open> : C/U
  117 +
  118 +ARCHIVED --> VALIDATED : \l **Désarchiver** \n\
  119 +(par un G) \
  120 +\n => <&envelope-open> : C/U
  121 +
  122 +ARCHIVED: Le matériel n'est plus visible (sauf par un G)
  123 +
  124 +ARCHIVED --> ARCHIVED: \l**Imprimer fiche SORTIE matériel** \n\
  125 +(par un G)
  126 +
  127 +
  128 +
  129 +
  130 +
  131 +'On pouvait ausi utiliser _note_ au lieu de _legend_ mais ca se met tout en haut:'
  132 +'(cf note dans http://plantuml.com/fr/class-diagram)'
  133 +'note as N1'
  134 +
  135 +
  136 +skinparam legendFontSize 11
  137 +legend left
  138 +<u>Légende</u>:
  139 +
  140 +Diagramme UML d'États-Transitions du 10/09/2021 - Logiciel LabInvent v5.x - E. Pallier - IRAP
  141 +
  142 +Acteurs:
  143 +- C = Créateur : la personne qui crée la fiche (ou celle qui commande le matériel)
  144 +- U = Utilisateur : le destinataire du matériel (ou la destination)
  145 +- R = Responsable : le responsable d'un groupe (métier, projet, ou pôle) auquel le matériel est associé
  146 +- G = Gestionnaire : un administratif
  147 +- GR = Gestionnaire de Référence : l'administratif qui passe la commande du matériel (désigné par l'Acheteur)
  148 + (éventuellement, par défaut, celui qui est en charge du projet auquel le matériel est associé)
  149 + (en fait, le DERNIER gestionnaire qui modifie la fiche matériel devient le nouveau GR)
  150 +
  151 +Profils (rôles, pouvoirs) :
  152 +- 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)
  153 +- RESPONSABLE = Responsable d'un groupe métier, d'un projet ou d'un pôle
  154 +- ADMIN (Gestionnaire) = Administratif
  155 +- SUPERADMIN = Super utilisateur, il a au moins les mêmes droits que ADMIN (mais il peut ausi intervenir sur la configuration technique du logiciel)
  156 +
  157 +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)
  158 +
  159 +Un email est envoyé à chaque changement d'état du matériel //(pas de mail envoyé à la personne à l'origine de l'action car inutile)// :
  160 +- à C et U
  161 +- au(x) R(s) du/des groupe(s) (métier, projet, ou pôle) auquel(s) le matériel est affecté
  162 +- au GR (éventuellement avec copie au service Gestion)
  163 +
  164 +endlegend
  165 +'end note'
  166 +
  167 +
  168 +@enduml