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 | 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
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'; | ... | ... |