Commit 3e57c50585982c3bf5e8337ea5146b2940a31f46

Authored by Etienne Pallier
1 parent 52fef20f
Exists in master and in 1 other branch dev

Changement effet bouton "INVALIDER", désormais plus logique...

- Changement de l'effet du bouton "INVALIDER", désormais plus logique,
repasse au statut "PRÉCÉDENT" et non pas systématiquement à CREATED :
		- ARCHIVED => TOBEARCHIVED
		- TOBEARCHIVED => VALIDATED
		- VALIDATED => CREATED (il faudra commander à nouveau si le matos
était commandé...)
		- TOBEORDERED => CREATED
- Un gestionnaire peut INVALIDER une commande (TOBEORDERED => CREATED)
- Quand le statut d'un matos passe à TOBEORDERED, mettre son champ
"tobeordered" à true (pour garder trace de la commande)

=> v5.2.4-3.7.9
CHANGELOG
... ... @@ -348,18 +348,6 @@ Commencer à implémenter le nouveau workflow v5 :
348 348  
349 349 *)
350 350 Lister les RG :
351   - - Champs obligatoires LOT 0 :
352   - - ...
353   - - Champs obligatoires LOT 1 (en commande, demande d'achat faite au SG) :
354   - - fournisseur !!!
355   - - si > 10K€ :
356   - - S/N
357   - - lieu stockage
358   - - ...
359   - - Champs obligatoires LOT 2 (livré) :
360   - - ...
361   - - Si "TBA" : règle du LOT2
362   - - Si "ARCHIVED" : on ne peut plus rien modifier (on peut "invalider")
363 351  
364 352 - Pouvoir modifier le champ "n° inventaire Tutelle" sur un matos validé
365 353 (Service fait CNRS ----> je récupère le n° inventaire "Tutelle" sur GESLAB (SIFAC ?) et je complète la fiche INVENTIRAP
... ... @@ -375,20 +363,19 @@ Commencer à implémenter le nouveau workflow v5 :
375 363 - champs qui ne sont plus modifiables :
376 364 ...
377 365  
378   -
379   -
380   - *)
381   - Détail lieu stockage demandé seulement si > 10K€
382   -
383   -
384   -
  366 +
385 367 *)
386 368 Rendre modifiable la config via page web "Gérer les champs obligatoires"
387 369 - OFF_nom_du_champ : 'libellé'
388 370 - Restaurer la config par défaut
389 371 - Réactiver une variable : OFF_nom_du_champ => nom_du_champ
  372 +
  373 +
  374 + *)
  375 + Détail lieu stockage + S/N demandé ssi > 10K€
  376 +
  377 +
390 378  
391   -
392 379 *)
393 380 Procédures pour les utilisateurs et les gestionnaires désormais configurable via le fichier de conf
394 381  
... ... @@ -410,12 +397,23 @@ Commencer à implémenter le nouveau workflow v5 :
410 397 ======= CHANGES =======
411 398  
412 399 -------
413   -09/09/2021 v5.2.3-3.7.9
  400 +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)
  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 :
  403 + - ARCHIVED => TOBEARCHIVED
  404 + - TOBEARCHIVED => VALIDATED
  405 + - VALIDATED => CREATED (il faudra commander à nouveau si le matos était commandé...)
  406 + - TOBEORDERED => CREATED
  407 + - (e) Un gestionnaire peut INVALIDER une commande (TOBEORDERED => CREATED)
  408 +
  409 +
  410 +-------
  411 +10/09/2021 v5.2.3-3.7.9
414 412 - (b) Bugfix : certains champs ne pouvaient pas être rendus NON MODIFIABLES
415 413 - (i) Changement config par défaut pour ajouter des champs non modifiables après commande et validation (LOT1 et donc aussi LOT2)
416 414  
417 415 -------
418   -09/09/2021 v5.2.2-3.7.9
  416 +10/09/2021 v5.2.2-3.7.9
419 417 - (e) Le devis attaché à un matériel commandé (TOBEORDERED) doit être NON MODIFIABLE
420 418  
421 419 -------
... ...
README.md
... ... @@ -53,7 +53,7 @@ Logiciel testé et validé sur les configurations suivantes :
53 53 --------------------------------------------------------------------------------------------
54 54  
55 55 Date: 10/09/2021
56   -Version: v5.2.3-3.7.9
  56 +Version: v5.2.4-3.7.9
57 57  
58 58  
59 59  
... ...
config/app_labinvent_mandatory_fields.default.yml
... ... @@ -186,6 +186,7 @@ MANDATORY_FIELDS_LOT2:
186 186  
187 187 #TODO: seulement si prix > 10K€
188 188 lieu_detail: 'Lieu de stockage'
  189 + #numero_serie: 'S/N'
189 190  
190 191 #// INFOS ADMINISTRATIVES :
191 192  
... ... @@ -215,7 +216,7 @@ UNEDITABLE_FIELDS_LOT2:
215 216  
216 217 - sous_categorie_id
217 218  
218   - - numero_serie
  219 + #- numero_serie
219 220  
220 221 - materiel_administratif
221 222  
... ...
src/Controller/MaterielsController.php
... ... @@ -518,7 +518,7 @@ class MaterielsController extends AppController {
518 518 // - Action 'devalidate' ou 'invalidate' (repasser le matériel au statut 'CREATED', c'est à dire le dé-valider ou l'invalider)
519 519 // (VALIDATED ou TBA ou ARCHIVED) => CREATED
520 520 //$this->setAuthorizationsForAction('devalidate',
521   - $this->setAuthorizationsForAction('statusCreated (valider)', ['NOT CREATED',0], [
  521 + $this->setAuthorizationsForAction('statusCreated (invalider)', ['NOT CREATED',0], [
522 522 'user' => -1, // PAS AUTORISÉ
523 523 'resp' => ['NOT CREATED',1],
524 524 ]);
... ... @@ -2925,12 +2925,33 @@ class MaterielsController extends AppController {
2925 2925 ]
2926 2926 ]);
2927 2927  
2928   - // Set new status
2929   - $materiel->set('status', $newStatus);
  2928 +
2930 2929  
2931 2930 //debug($materiel); exit;
2932 2931 $msgError2 = "Le statut du matériel " . $materiel->designation . " (" . $materiel->numero_laboratoire . ") n'a pas pu être modifié";
2933 2932  
  2933 +
  2934 + /*
  2935 + * - INVALIDER (CREATED)
  2936 + * Repasse le matos au statut "PRÉCÉDENT" (et non pas systématiquement à CREATED) :
  2937 + * - ARCHIVED => TOBEARCHIVED
  2938 + * - TOBEARCHIVED => VALIDATED
  2939 + * - VALIDATED => CREATED (il faudra commander à nouveau si le matos était commandé...)
  2940 + */
  2941 + if ($newStatus == 'CREATED') {
  2942 + if ($materiel->status == 'ARCHIVED')
  2943 + $materiel->status = 'TOBEARCHIVED';
  2944 + elseif ($materiel->status == 'TOBEARCHIVED')
  2945 + $materiel->status = 'VALIDATED';
  2946 + // Par défaut => CREATED (VALIDATED ou TOBEORDERED => CREATED)
  2947 + else
  2948 + $materiel->status = 'CREATED';
  2949 + }
  2950 + // Set new status
  2951 + else $materiel->status = $newStatus;
  2952 + //$materiel->set('status', $newStatus);
  2953 +
  2954 +
2934 2955 // - TOBEORDERED
2935 2956 if ($newStatus == 'TOBEORDERED') {
2936 2957  
... ... @@ -2965,6 +2986,7 @@ class MaterielsController extends AppController {
2965 2986  
2966 2987 //TODO
2967 2988 // Le matos est valide, on pourrait donc marquer la date de commande
  2989 + $materiel->tobeordered = true;
2968 2990 ////$materiel->set('date_ordered', date('Y-m-d'));
2969 2991 //$materiel->date_ordered = date('Y-m-d');
2970 2992  
... ...
src/Template/Materiels/view.ctp
... ... @@ -472,12 +472,24 @@ $CAN_PRINT_LABEL = $IS_VALIDATED && $configuration->hasPrinter && $USER_IS_ADMIN
472 472 // - VALIDATED or more :
473 473  
474 474 // Bouton Invalider (Dévalider)
475   - // (EP désactivé depuis 2021-09 car n'est plus utile
476   - // => on peut toujours modifier un matériel tant que certains champs restent obligatoires
  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;
477 489 if ($CAN_INVALIDATE)
478 490 $echoActionButton(
479 491 $this->Html, 'icon-remove-sign', $bStyle2Red, ' Invalider', '', 'statusCreated', $entity->id, ['view'],
480   - "dé-valider le matériel (le repasser au statut Créé, il faudra le re-valider ensuite)"
  492 + $help
481 493 );
482 494  
483 495 // Bouton TBA
... ...