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
@@ -402,11 +402,18 @@ Commencer à implémenter le nouveau workflow v5 : @@ -402,11 +402,18 @@ Commencer à implémenter le nouveau workflow v5 :
402 *) 402 *)
403 Gérer les autorisations (ACL) via fichier de conf 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 ======= CHANGES ======= 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 09/09/2021 v5.2.1-3.7.9 417 09/09/2021 v5.2.1-3.7.9
411 - (i) Changement config par défaut pour ajouter des champs non modifiables après commande (LOT1) 418 - (i) Changement config par défaut pour ajouter des champs non modifiables après commande (LOT1)
412 - (b) Bugfix : suppression message debug 419 - (b) Bugfix : suppression message debug
@@ -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.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,7 +425,10 @@ class DocumentsController extends AppController
425 // On refuse de creer une entité sans préciser l'id de l'entité parente associée (suivi ou materiel) 425 // On refuse de creer une entité sans préciser l'id de l'entité parente associée (suivi ou materiel)
426 if ($id===null) return; 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 // POST (on vient de soumettre un nouveau doc) 433 // POST (on vient de soumettre un nouveau doc)
431 // add 434 // add
@@ -561,6 +564,23 @@ class DocumentsController extends AppController @@ -561,6 +564,23 @@ class DocumentsController extends AppController
561 else { 564 else {
562 $PARENT_IS_MATOS = ! empty($document->materiel_id); 565 $PARENT_IS_MATOS = ! empty($document->materiel_id);
563 $parent_id = $PARENT_IS_MATOS ? $document->materiel_id : $document->suivi_id; 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 //$parent_controller = $PARENT_IS_MATOS ? 'Materiels' : 'Suivis'; 586 //$parent_controller = $PARENT_IS_MATOS ? 'Materiels' : 'Suivis';