Commit 07035c50b325fff5d81018e98aedd424e063a44b

Authored by Etienne Pallier
1 parent 8a693ba8
Exists in master and in 1 other branch dev

devis attaché à matériel commandé (TOBEORDERED) doit être NON MODIFIABLE

=> v5.2.2-3.7.9
CHANGELOG
... ... @@ -402,11 +402,18 @@ Commencer à implémenter le nouveau workflow v5 :
402 402 *)
403 403 Gérer les autorisations (ACL) via fichier de conf
404 404  
  405 + *)
  406 + On doit pouvoir supprimer un devis sur un matériel commandé (TOBEORDERED) à condition qu'il en reste au moins 1
  407 + => du coup, astuce, on peut REMPLACER un devis en ajoutant le nouveau puis en supprimant l'ancien
405 408  
406 409  
407 410 ======= CHANGES =======
408 411  
409 412 -------
  413 +09/09/2021 v5.2.2-3.7.9
  414 + - (e) Le devis attaché à un matériel commandé (TOBEORDERED) doit être NON MODIFIABLE
  415 +
  416 +-------
410 417 09/09/2021 v5.2.1-3.7.9
411 418 - (i) Changement config par défaut pour ajouter des champs non modifiables après commande (LOT1)
412 419 - (b) Bugfix : suppression message debug
... ...
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.1-3.7.9
  56 +Version: v5.2.2-3.7.9
57 57  
58 58  
59 59  
... ...
src/Controller/DocumentsController.php
... ... @@ -425,7 +425,10 @@ class DocumentsController extends AppController
425 425 // On refuse de creer une entité sans préciser l'id de l'entité parente associée (suivi ou materiel)
426 426 if ($id===null) return;
427 427  
428   - $document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => []]);
  428 + //$document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => []]);
  429 + $document = $IS_ADD ? $this->Documents->newEntity() : $this->Documents->get($id, ['contain' => ['TypeDocuments']]);
  430 + //$document = $this->getEntity($id, false, ['TypeDocuments']);
  431 +
429 432  
430 433 // POST (on vient de soumettre un nouveau doc)
431 434 // add
... ... @@ -561,6 +564,23 @@ class DocumentsController extends AppController
561 564 else {
562 565 $PARENT_IS_MATOS = ! empty($document->materiel_id);
563 566 $parent_id = $PARENT_IS_MATOS ? $document->materiel_id : $document->suivi_id;
  567 +
  568 + if ($PARENT_IS_MATOS) {
  569 +
  570 + $materiel = $this->Documents->Materiels->get($parent_id);
  571 +
  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"));
  576 + $this->ACTION_CANCELLED = TRUE;
  577 + return $this->redirect([
  578 + 'controller' => 'materiels',
  579 + 'action' => 'view',
  580 + $parent_id
  581 + ]);
  582 + }
  583 + }
564 584 }
565 585  
566 586 //$parent_controller = $PARENT_IS_MATOS ? 'Materiels' : 'Suivis';
... ...