Commit 07035c50b325fff5d81018e98aedd424e063a44b
1 parent
8a693ba8
Exists in
master
and in
1 other branch
devis attaché à matériel commandé (TOBEORDERED) doit être NON MODIFIABLE
=> v5.2.2-3.7.9
Showing
3 changed files
with
29 additions
and
2 deletions
Show diff stats
CHANGELOG
@@ -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 |
README.md
@@ -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'; |