Commit 9138c8559cbce617dc8284f801c0530cff13f64f
1 parent
d27459ad
Exists in
master
and in
2 other branches
Bugfix, simplification, et amélioration fonction "Copier ce matériel"
Showing
5 changed files
with
166 additions
and
43 deletions
Show diff stats
README.md
@@ -53,10 +53,10 @@ Logiciel testé et validé sur les configurations suivantes : | @@ -53,10 +53,10 @@ Logiciel testé et validé sur les configurations suivantes : | ||
53 | 53 | ||
54 | VERSION ACTUELLE | 54 | VERSION ACTUELLE |
55 | 55 | ||
56 | -Date: 13/05/2019 | ||
57 | -Version: 2.12.10 | 56 | +Date: 15/05/2019 |
57 | +Version: 2.12.11 | ||
58 | Author: EP | 58 | Author: EP |
59 | -Commentaire: Ajout de l'option "Librairie pdf utilisée" pour choisir entre fpdf et dompdf | 59 | +Commentaire: Bugfix, simplification, et amélioration de la fonctionnalité "Copier ce matériel" |
60 | 60 | ||
61 | IMPORTANT : | 61 | IMPORTANT : |
62 | - Pour connaitre la version actuelle, taper "./VERSION" | 62 | - Pour connaitre la version actuelle, taper "./VERSION" |
src/Controller/MaterielsController.php
@@ -707,20 +707,56 @@ class MaterielsController extends AppController | @@ -707,20 +707,56 @@ class MaterielsController extends AppController | ||
707 | * @param $IS_ADD: True = add ; False = edit | 707 | * @param $IS_ADD: True = add ; False = edit |
708 | * @return \Cake\Network\Response|void Redirects on successful add/edit, renders view otherwise. | 708 | * @return \Cake\Network\Response|void Redirects on successful add/edit, renders view otherwise. |
709 | */ | 709 | */ |
710 | - public function add_or_edit($is_add, $id = null, $valeurs = null, $erreurs = null) | 710 | + public function add_or_edit($is_add, $id=null, $valeurs=null, $erreurs=null) |
711 | { | 711 | { |
712 | $usersTable = TableRegistry::getTableLocator()->get('Users'); | 712 | $usersTable = TableRegistry::getTableLocator()->get('Users'); |
713 | 713 | ||
714 | + // Set $materiel | ||
715 | + $materiel = NULL; | ||
716 | + | ||
714 | // ADD | 717 | // ADD |
715 | if ($is_add) { | 718 | if ($is_add) { |
716 | - $materiel = $this->Materiels->newEntity(); | 719 | + // - COPIE de materiel (on a cliqué sur "Copier ce materiel") => id passé en argument |
720 | + if (isset($this->request->getAttribute('params')['pass'][0])) { | ||
721 | + // 1) on crée un materiel vide | ||
722 | + $materiel = $this->Materiels->newEntity(); | ||
723 | + // 2) on récupère le materiel à copier et on le copie dans $materiel | ||
724 | + $materiel_to_copy = $this->Materiels->get($this->request->getAttribute('params')['pass'][0]); | ||
725 | + $materiel_to_copy = $materiel_to_copy->toArray(); | ||
726 | + //var_dump($materiel_to_copy); | ||
727 | + ///foreach ($materiel_to_copy as $key=>$value) $materiel->$key = $value; | ||
728 | + // IMPORTANT: validate=False car sinon, les données sont validées avant la copie, | ||
729 | + // et le numero_laboratoire est vu comme invalide car déjà utilisé et doit etre unique !!! | ||
730 | + // et on a pour résultat : "le matériel n'a pas pu être ajouté" (sans savoir pourquoi !!!) | ||
731 | + $materiel = $this->Materiels->patchEntity($materiel, $materiel_to_copy, ['validate' => false]); | ||
732 | + // Du coup, on supprime le champ numero_laboratoire car il va être généré automatiquement | ||
733 | + unset($materiel->numero_laboratoire); | ||
734 | + // IMPORTANT: on ne doit pas laisser l'id égal à celui du matériel copié !!! il en faut un nouveau | ||
735 | + $materiel->id = NULL; | ||
736 | + //$materiel->id = False; | ||
737 | + //unset($materiel->id); | ||
738 | + | ||
739 | + /* | ||
740 | + $attribute="[original]"; | ||
741 | + $materiel->$attribute = []; | ||
742 | + */ | ||
743 | + //$materiel->id = FALSE; | ||
744 | + //$materiel->'[new]' => true, | ||
745 | + } | ||
746 | + // - NOUVEAU materiel (on a cliqué sur "Nouveau materiel") | ||
747 | + else { | ||
748 | + $materiel = $this->Materiels->newEntity(); | ||
749 | + // Set default values : "N/A" | ||
750 | + $materiel->groupes_thematique_id = 1; | ||
751 | + $materiel->groupes_metier_id = 1; | ||
752 | + $materiel->site_id = 9; | ||
753 | + } | ||
717 | } | 754 | } |
718 | // EDIT | 755 | // EDIT |
719 | - else { | 756 | + else |
720 | $materiel = $this->Materiels->get($id, [ | 757 | $materiel = $this->Materiels->get($id, [ |
721 | 'contain' => [] | 758 | 'contain' => [] |
722 | ]); | 759 | ]); |
723 | - } | ||
724 | 760 | ||
725 | /* SI POST | 761 | /* SI POST |
726 | * Les données ont été saisies et postées | 762 | * Les données ont été saisies et postées |
@@ -796,6 +832,7 @@ class MaterielsController extends AppController | @@ -796,6 +832,7 @@ class MaterielsController extends AppController | ||
796 | 832 | ||
797 | //--- 1) INITIALISATION DE LISTES POUR ASSISTER LA SAISIE (listes de choix proposés) | 833 | //--- 1) INITIALISATION DE LISTES POUR ASSISTER LA SAISIE (listes de choix proposés) |
798 | 834 | ||
835 | + // DOMAINES : LISTE COMPLETE | ||
799 | $surCategories = $this->Materiels->SurCategories->find('list', [ | 836 | $surCategories = $this->Materiels->SurCategories->find('list', [ |
800 | 'keyField' => 'id', | 837 | 'keyField' => 'id', |
801 | 'valueField' => 'nom', | 838 | 'valueField' => 'nom', |
@@ -805,6 +842,35 @@ class MaterielsController extends AppController | @@ -805,6 +842,35 @@ class MaterielsController extends AppController | ||
805 | 'nom !=' => 'N/A' | 842 | 'nom !=' => 'N/A' |
806 | ) | 843 | ) |
807 | ]); | 844 | ]); |
845 | + | ||
846 | + // CATEGORIES ET SOUS-CATEG (modes EDIT et ADD-by-COPIE only) | ||
847 | + $categories = []; | ||
848 | + $sousCategories = []; | ||
849 | + if ( !$is_add or ($is_add and isset($this->request->getAttribute('params')['pass'][0])) ) { | ||
850 | + // - Seulement les categories correspondant au domaine choisi | ||
851 | + $categories = $this->Materiels->Categories->find('list', [ | ||
852 | + 'conditions' => [ | ||
853 | + 'Categories.sur_categorie_id' => $materiel->sur_categorie_id | ||
854 | + ], | ||
855 | + //'recursive' => - 1, | ||
856 | + 'keyField' => 'id', | ||
857 | + 'valueField' => 'nom', | ||
858 | + 'order' => 'nom', | ||
859 | + //'order' => 'Categories.nom', | ||
860 | + ]); | ||
861 | + // - Seulement les sous-categ correspondant à la categorie choisie | ||
862 | + $sousCategories = $this->Materiels->SousCategories->find('list', [ | ||
863 | + 'conditions' => [ | ||
864 | + 'SousCategories.categorie_id' => $materiel->categorie_id | ||
865 | + ], | ||
866 | + //'recursive' => - 1, | ||
867 | + 'keyField' => 'id', | ||
868 | + 'valueField' => 'nom', | ||
869 | + 'order' => 'nom' | ||
870 | + //'order' => 'SousCategories.nom' | ||
871 | + ]); | ||
872 | + } | ||
873 | + /* (EP) Totalement inutile !!! | ||
808 | $categories = $this->Materiels->Categories->find('list', [ | 874 | $categories = $this->Materiels->Categories->find('list', [ |
809 | 'keyField' => 'id', | 875 | 'keyField' => 'id', |
810 | 'valueField' => 'nom', | 876 | 'valueField' => 'nom', |
@@ -815,6 +881,8 @@ class MaterielsController extends AppController | @@ -815,6 +881,8 @@ class MaterielsController extends AppController | ||
815 | 'valueField' => 'nom', | 881 | 'valueField' => 'nom', |
816 | 'order' => 'SousCategories.nom' | 882 | 'order' => 'SousCategories.nom' |
817 | ]); | 883 | ]); |
884 | + */ | ||
885 | + | ||
818 | $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ | 886 | $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ |
819 | 'keyField' => 'id', | 887 | 'keyField' => 'id', |
820 | 'valueField' => 'nom', | 888 | 'valueField' => 'nom', |
@@ -958,17 +1026,21 @@ class MaterielsController extends AppController | @@ -958,17 +1026,21 @@ class MaterielsController extends AppController | ||
958 | ]) | 1026 | ]) |
959 | ->first()['email']; | 1027 | ->first()['email']; |
960 | 1028 | ||
1029 | + /* | ||
961 | // ADD only | 1030 | // ADD only |
962 | - if ( $is_add) { | 1031 | + if ($is_add) { |
1032 | + // Un id a été passé en argument => Copie de materiel (on a cliqué sur "Copier ce materiel") | ||
963 | if (isset($this->request->getAttribute('params')['pass'][0])) { | 1033 | if (isset($this->request->getAttribute('params')['pass'][0])) { |
964 | $cpMateriel = $this->Materiels->get($this->request->getAttribute('params')['pass'][0]); | 1034 | $cpMateriel = $this->Materiels->get($this->request->getAttribute('params')['pass'][0]); |
965 | $this->set('cpMateriel', $cpMateriel); | 1035 | $this->set('cpMateriel', $cpMateriel); |
966 | } | 1036 | } |
967 | } | 1037 | } |
968 | - | ||
969 | - // EDIT only | ||
970 | else { | 1038 | else { |
1039 | + */ | ||
971 | 1040 | ||
1041 | + // EDIT only | ||
1042 | + if (!$is_add) { | ||
1043 | + | ||
972 | if (! empty($materiel->get('nom_responsable'))) { | 1044 | if (! empty($materiel->get('nom_responsable'))) { |
973 | //if (! in_array($materiel->get('nom_responsable'), $utilisateurs)) { | 1045 | //if (! in_array($materiel->get('nom_responsable'), $utilisateurs)) { |
974 | if (! in_array($materiel->get('nom_responsable'), $users_name)) { | 1046 | if (! in_array($materiel->get('nom_responsable'), $users_name)) { |
@@ -1033,7 +1105,8 @@ class MaterielsController extends AppController | @@ -1033,7 +1105,8 @@ class MaterielsController extends AppController | ||
1033 | 'materiel', | 1105 | 'materiel', |
1034 | // not used | 1106 | // not used |
1035 | //'utilisateurconnect', | 1107 | //'utilisateurconnect', |
1036 | - 'surCategories', 'categories', 'sousCategories', | 1108 | + 'surCategories', |
1109 | + 'categories', 'sousCategories', | ||
1037 | 'groupesThematiques', 'groupesMetiers', | 1110 | 'groupesThematiques', 'groupesMetiers', |
1038 | 'organismes', 'sites', | 1111 | 'organismes', 'sites', |
1039 | 'mail_responsable', | 1112 | 'mail_responsable', |
@@ -1047,9 +1120,11 @@ class MaterielsController extends AppController | @@ -1047,9 +1120,11 @@ class MaterielsController extends AppController | ||
1047 | 'administrateurs' | 1120 | 'administrateurs' |
1048 | )); | 1121 | )); |
1049 | 1122 | ||
1123 | + /* (EP) INUTILE (sauf pour faire du json ou xml) !!! | ||
1050 | $this->set('_serialize', [ | 1124 | $this->set('_serialize', [ |
1051 | - 'materiel' | 1125 | + 'materiel', |
1052 | ]); | 1126 | ]); |
1127 | + */ | ||
1053 | 1128 | ||
1054 | } //add_or_edit() | 1129 | } //add_or_edit() |
1055 | 1130 |
src/Template/Materiels/add.ctp
@@ -6,13 +6,20 @@ | @@ -6,13 +6,20 @@ | ||
6 | */ | 6 | */ |
7 | $users_option_list = $users_option_list; | 7 | $users_option_list = $users_option_list; |
8 | $users_login_and_email = $users_login_and_email; | 8 | $users_login_and_email = $users_login_and_email; |
9 | +$materiel = $materiel; | ||
9 | // TODO: yena d'autres... il faut les lister toutes ici, pour plus de clarté | 10 | // TODO: yena d'autres... il faut les lister toutes ici, pour plus de clarté |
10 | 11 | ||
12 | +//debug($materiel); | ||
11 | //debug($users_option_list); | 13 | //debug($users_option_list); |
12 | //debug($users_login_and_email); | 14 | //debug($users_login_and_email); |
15 | +//debug($sousCategories); | ||
13 | 16 | ||
14 | use Cake\ORM\TableRegistry; | 17 | use Cake\ORM\TableRegistry; |
18 | + | ||
19 | +/* | ||
20 | +// COPIE de materiel (on a cliqué sur "Copier ce matériel") | ||
15 | if (isset($cpMateriel)) { | 21 | if (isset($cpMateriel)) { |
22 | + //debug($cpMateriel); | ||
16 | $Designation = $cpMateriel->designation; | 23 | $Designation = $cpMateriel->designation; |
17 | $Sur_categ_id = $cpMateriel->sur_categorie_id; | 24 | $Sur_categ_id = $cpMateriel->sur_categorie_id; |
18 | $Categ_id = $cpMateriel->categorie_id; | 25 | $Categ_id = $cpMateriel->categorie_id; |
@@ -30,6 +37,7 @@ if (isset($cpMateriel)) { | @@ -30,6 +37,7 @@ if (isset($cpMateriel)) { | ||
30 | $Lieu_detail = $cpMateriel->lieu_detail; | 37 | $Lieu_detail = $cpMateriel->lieu_detail; |
31 | $Site_id = $cpMateriel->site_id; | 38 | $Site_id = $cpMateriel->site_id; |
32 | } else { | 39 | } else { |
40 | +// NOUVEAU matériel (on a cliqué sur "Nouveau matériel") | ||
33 | $Designation = NULL; | 41 | $Designation = NULL; |
34 | if (!isset($Sur_categ_id)) $Sur_categ_id = NULL; | 42 | if (!isset($Sur_categ_id)) $Sur_categ_id = NULL; |
35 | $Categ_id = NULL; | 43 | $Categ_id = NULL; |
@@ -47,6 +55,7 @@ if (isset($cpMateriel)) { | @@ -47,6 +55,7 @@ if (isset($cpMateriel)) { | ||
47 | $Lieu_detail = NULL; | 55 | $Lieu_detail = NULL; |
48 | $Site_id = 9; | 56 | $Site_id = 9; |
49 | } | 57 | } |
58 | +*/ | ||
50 | //debug($Sur_categ_id) | 59 | //debug($Sur_categ_id) |
51 | ?> | 60 | ?> |
52 | 61 | ||
@@ -67,34 +76,45 @@ if (isset($cpMateriel)) { | @@ -67,34 +76,45 @@ if (isset($cpMateriel)) { | ||
67 | <?php | 76 | <?php |
68 | echo $this->Form->control('designation', [ | 77 | echo $this->Form->control('designation', [ |
69 | 'label' => 'Désignation', | 78 | 'label' => 'Désignation', |
70 | - 'default' => $Designation | 79 | + //'default' => $Designation |
80 | + 'default' => $materiel->designation | ||
71 | ]); | 81 | ]); |
72 | 82 | ||
83 | + // SUR-CATEGORIES (DOMAINES) | ||
84 | + //debug($surCategories); | ||
73 | echo $this->Form->control('sur_categorie_id', [ | 85 | echo $this->Form->control('sur_categorie_id', [ |
74 | 'label' => 'Domaine', | 86 | 'label' => 'Domaine', |
75 | 'style' => 'width: 260px', | 87 | 'style' => 'width: 260px', |
76 | 'options' => $surCategories, | 88 | 'options' => $surCategories, |
77 | 'empty' => 'Choisir un domaine', | 89 | 'empty' => 'Choisir un domaine', |
78 | - 'default' => $Sur_categ_id | 90 | + //'default' => $Sur_categ_id |
91 | + 'default' => $materiel->sur_categorie_id | ||
79 | ]); | 92 | ]); |
80 | - /* (EP 26/2/19) Inutile, je commente | ||
81 | - // if a domaine is selected, reduce the categories list to this domaine | 93 | + |
94 | + // CATEGORIES | ||
82 | $categs = $categories; | 95 | $categs = $categories; |
96 | + /* | ||
97 | + // if a domain is selected, reduce the categories list to this domain | ||
98 | + //debug($categories); | ||
83 | if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) { | 99 | if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) { |
84 | $categs = $categs->where([ | 100 | $categs = $categs->where([ |
85 | 'sur_categorie_id =' => $this->request->getData('sur_categorie_id') | 101 | 'sur_categorie_id =' => $this->request->getData('sur_categorie_id') |
86 | ]); | 102 | ]); |
87 | } | 103 | } |
104 | + //$categs = []; | ||
88 | */ | 105 | */ |
89 | - $categs = []; | ||
90 | echo $this->Form->control('categorie_id', [ | 106 | echo $this->Form->control('categorie_id', [ |
91 | 'label' => 'Catégorie', | 107 | 'label' => 'Catégorie', |
92 | 'style' => 'width: 380px', | 108 | 'style' => 'width: 380px', |
93 | 'options' => $categs, | 109 | 'options' => $categs, |
94 | 'empty' => 'Choisir une catégorie', | 110 | 'empty' => 'Choisir une catégorie', |
95 | - 'default' => $Categ_id | 111 | + //'default' => $Categ_id |
112 | + 'default' => $materiel->categorie_id | ||
96 | ]); | 113 | ]); |
97 | - // by default, list is empty | 114 | + |
115 | + // SOUS-CATEGORIES (by default, list is empty) | ||
116 | + $souscategs = $sousCategories; | ||
117 | + /* | ||
98 | $souscategs = []; | 118 | $souscategs = []; |
99 | // if a categ is selected, update sous-categs list for this categ (only) | 119 | // if a categ is selected, update sous-categs list for this categ (only) |
100 | if ($this->request->getData('categorie_id') !== null && ($this->request->getData('categorie_id') != '')) { | 120 | if ($this->request->getData('categorie_id') !== null && ($this->request->getData('categorie_id') != '')) { |
@@ -103,20 +123,25 @@ if (isset($cpMateriel)) { | @@ -103,20 +123,25 @@ if (isset($cpMateriel)) { | ||
103 | 'categorie_id' => $this->request->getData('categorie_id') | 123 | 'categorie_id' => $this->request->getData('categorie_id') |
104 | ]); | 124 | ]); |
105 | } | 125 | } |
126 | + */ | ||
106 | echo $this->Form->control('sous_categorie_id', [ | 127 | echo $this->Form->control('sous_categorie_id', [ |
107 | 'label' => 'Sous-catégorie', | 128 | 'label' => 'Sous-catégorie', |
108 | 'style' => 'width: 380px', | 129 | 'style' => 'width: 380px', |
109 | 'options' => $souscategs, | 130 | 'options' => $souscategs, |
110 | 'empty' => 'Choisir une sous-catégorie', | 131 | 'empty' => 'Choisir une sous-catégorie', |
111 | - 'default' => $Sous_categ_id | 132 | + //'default' => $Sous_categ_id |
133 | + 'default' => $materiel->sous_categorie_id | ||
112 | ]); | 134 | ]); |
135 | + | ||
113 | echo $this->Form->control('materiel_technique', [ | 136 | echo $this->Form->control('materiel_technique', [ |
114 | 'label' => 'Technique', | 137 | 'label' => 'Technique', |
115 | - 'default' => $Mat_technique | 138 | + //'default' => $Mat_technique |
139 | + 'default' => $materiel->materiel_technique | ||
116 | ]); | 140 | ]); |
117 | echo $this->Form->control('materiel_administratif', [ | 141 | echo $this->Form->control('materiel_administratif', [ |
118 | 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)', | 142 | 'label' => 'Inventoriable (>' . $configuration->prix_inventaire_administratif . '€)', |
119 | - 'default' => $Mat_administratif | 143 | + //'default' => $Mat_administratif |
144 | + 'default' => $materiel->materiel_administratif | ||
120 | ]); | 145 | ]); |
121 | if ($configuration->metrologie) { | 146 | if ($configuration->metrologie) { |
122 | echo $this->Form->control('metrologie', [ | 147 | echo $this->Form->control('metrologie', [ |
@@ -126,7 +151,8 @@ if (isset($cpMateriel)) { | @@ -126,7 +151,8 @@ if (isset($cpMateriel)) { | ||
126 | } | 151 | } |
127 | echo $this->Form->control('description', [ | 152 | echo $this->Form->control('description', [ |
128 | 'label' => 'Description', | 153 | 'label' => 'Description', |
129 | - 'default' => $Description | 154 | + //'default' => $Description |
155 | + 'default' => $materiel->description | ||
130 | ]); | 156 | ]); |
131 | if ($USER_IS_RESPONSABLE_OR_MORE) { | 157 | if ($USER_IS_RESPONSABLE_OR_MORE) { |
132 | /* | 158 | /* |
@@ -145,7 +171,8 @@ if (isset($cpMateriel)) { | @@ -145,7 +171,8 @@ if (isset($cpMateriel)) { | ||
145 | echo $this->Form->control('site_id', [ | 171 | echo $this->Form->control('site_id', [ |
146 | 'options' => $sites, | 172 | 'options' => $sites, |
147 | 'style' => 'width: 380px', | 173 | 'style' => 'width: 380px', |
148 | - 'default' => $Site_id | 174 | + //'default' => $Site_id |
175 | + 'default' => $materiel->site_id | ||
149 | ]); | 176 | ]); |
150 | echo '<div class="input text"><label for="lieu_detail">Détail lieu de stockage</label><input list="lieu" id="lieu_detail" name="lieu_detail" type="text" placeholder="choisir/ajouter un lieu" autocomplete="off"><datalist id="lieu">'; | 177 | echo '<div class="input text"><label for="lieu_detail">Détail lieu de stockage</label><input list="lieu" id="lieu_detail" name="lieu_detail" type="text" placeholder="choisir/ajouter un lieu" autocomplete="off"><datalist id="lieu">'; |
151 | foreach ($lieu_detail as $e) { | 178 | foreach ($lieu_detail as $e) { |
@@ -157,7 +184,8 @@ if (isset($cpMateriel)) { | @@ -157,7 +184,8 @@ if (isset($cpMateriel)) { | ||
157 | 'label' => 'Date de la commande', | 184 | 'label' => 'Date de la commande', |
158 | 'class' => 'datepicker', | 185 | 'class' => 'datepicker', |
159 | 'placeholder' => 'Cliquez pour sélectionner une date', | 186 | 'placeholder' => 'Cliquez pour sélectionner une date', |
160 | - 'default' => $Date_acquisition | 187 | + //'default' => $Date_acquisition |
188 | + 'default' => $materiel->date_acquisition | ||
161 | ]); | 189 | ]); |
162 | echo $this->Form->control('date_reception', [ | 190 | echo $this->Form->control('date_reception', [ |
163 | 'type' => 'text', | 191 | 'type' => 'text', |
@@ -165,7 +193,8 @@ if (isset($cpMateriel)) { | @@ -165,7 +193,8 @@ if (isset($cpMateriel)) { | ||
165 | 'class' => 'datepicker', | 193 | 'class' => 'datepicker', |
166 | 'placeholder' => 'A éditer lors de la réception uniquement.', | 194 | 'placeholder' => 'A éditer lors de la réception uniquement.', |
167 | 'empty' => true, | 195 | 'empty' => true, |
168 | - 'default' => $Date_reception | 196 | + //'default' => $Date_reception |
197 | + 'default' => $materiel->date_reception | ||
169 | ]); | 198 | ]); |
170 | echo '<table id="tableAlignementFrequence"><tr><td>'; | 199 | echo '<table id="tableAlignementFrequence"><tr><td>'; |
171 | echo $this->Form->control('duree_garantie', [ | 200 | echo $this->Form->control('duree_garantie', [ |
@@ -203,25 +232,29 @@ if (isset($cpMateriel)) { | @@ -203,25 +232,29 @@ if (isset($cpMateriel)) { | ||
203 | echo $this->Form->control('groupes_thematique_id', [ | 232 | echo $this->Form->control('groupes_thematique_id', [ |
204 | 'label' => $configuration->nom_groupe_thematique, | 233 | 'label' => $configuration->nom_groupe_thematique, |
205 | 'options' => $groupesThematiques, | 234 | 'options' => $groupesThematiques, |
206 | - 'default' => $Groupes_thematique_id | 235 | + //'default' => $Groupes_thematique_id |
236 | + 'default' => $materiel->groupes_thematique_id | ||
207 | ]); | 237 | ]); |
208 | echo $this->Form->control('groupes_metier_id', [ | 238 | echo $this->Form->control('groupes_metier_id', [ |
209 | 'label' => $configuration->nom_groupe_metier, | 239 | 'label' => $configuration->nom_groupe_metier, |
210 | 'options' => $groupesMetiers, | 240 | 'options' => $groupesMetiers, |
211 | - 'default' => $Groupes_metier_id | 241 | + //'default' => $Groupes_metier_id |
242 | + 'default' => $materiel->groupes_metier_id | ||
212 | ]); | 243 | ]); |
213 | $fieldType = $USER_IS_UTILISATEUR ? 'hidden' : 'input'; | 244 | $fieldType = $USER_IS_UTILISATEUR ? 'hidden' : 'input'; |
214 | echo $this->Form->$fieldType('nom_responsable', [ | 245 | echo $this->Form->$fieldType('nom_responsable', [ |
215 | 'label' => 'Nom de l\'utilisateur', | 246 | 'label' => 'Nom de l\'utilisateur', |
216 | 'empty' => 'Choisir un utilisateur', | 247 | 'empty' => 'Choisir un utilisateur', |
217 | - 'default' => $username, | 248 | + //'default' => $username, |
249 | + 'default' => $materiel->username, | ||
218 | //'options' => $utilisateurs | 250 | //'options' => $utilisateurs |
219 | 'options' => $users_option_list | 251 | 'options' => $users_option_list |
220 | ]); | 252 | ]); |
221 | echo $this->Form->control('email_responsable', [ | 253 | echo $this->Form->control('email_responsable', [ |
222 | 'label' => 'Email de l\'utilisateur', | 254 | 'label' => 'Email de l\'utilisateur', |
223 | 'readonly' => true, | 255 | 'readonly' => true, |
224 | - 'default' => $mail_responsable | 256 | + //'default' => $mail_responsable |
257 | + 'default' => $materiel->mail_responsable, | ||
225 | ]); | 258 | ]); |
226 | 259 | ||
227 | /* | 260 | /* |
@@ -260,11 +293,13 @@ if (isset($cpMateriel)) { | @@ -260,11 +293,13 @@ if (isset($cpMateriel)) { | ||
260 | 'options' => $organismes, | 293 | 'options' => $organismes, |
261 | 'style' => 'width: 380px', | 294 | 'style' => 'width: 380px', |
262 | 'empty' => 'Choisir un organisme', | 295 | 'empty' => 'Choisir un organisme', |
263 | - 'default' => $Organisme_id | 296 | + //'default' => $Organisme_id |
297 | + 'default' => $materiel->organisme_id, | ||
264 | ]); | 298 | ]); |
265 | echo $this->Form->control('prix_ht', [ | 299 | echo $this->Form->control('prix_ht', [ |
266 | 'label' => 'Prix HT (€)', | 300 | 'label' => 'Prix HT (€)', |
267 | - 'default' => $Prix_ht | 301 | + //'default' => $Prix_ht |
302 | + 'default' => $materiel->prix_ht, | ||
268 | ]); | 303 | ]); |
269 | if ($USER_IS_ADMIN_OR_MORE) { | 304 | if ($USER_IS_ADMIN_OR_MORE) { |
270 | /* | 305 | /* |
src/Template/Materiels/edit.ctp
@@ -11,7 +11,7 @@ $users_login_and_email = $users_login_and_email; | @@ -11,7 +11,7 @@ $users_login_and_email = $users_login_and_email; | ||
11 | 11 | ||
12 | //debug($users_option_list); | 12 | //debug($users_option_list); |
13 | //debug($users_login_and_email); | 13 | //debug($users_login_and_email); |
14 | - | 14 | +//debug($materiel); |
15 | 15 | ||
16 | use Cake\ORM\TableRegistry; | 16 | use Cake\ORM\TableRegistry; |
17 | 17 | ||
@@ -116,6 +116,8 @@ if ($IS_VALIDATED && $materiel->numero_serie) | @@ -116,6 +116,8 @@ if ($IS_VALIDATED && $materiel->numero_serie) | ||
116 | 'label' => 'Appareil hors_service' | 116 | 'label' => 'Appareil hors_service' |
117 | ]); | 117 | ]); |
118 | } | 118 | } |
119 | + | ||
120 | + // DOMAINES | ||
119 | echo $this->Form->control('sur_categorie_id', [ | 121 | echo $this->Form->control('sur_categorie_id', [ |
120 | 'label' => 'Domaine', | 122 | 'label' => 'Domaine', |
121 | 'options' => $surCategories, | 123 | 'options' => $surCategories, |
@@ -124,13 +126,17 @@ if ($IS_VALIDATED && $materiel->numero_serie) | @@ -124,13 +126,17 @@ if ($IS_VALIDATED && $materiel->numero_serie) | ||
124 | 'readonly' => $isReadonlyField('sur_categorie_id', $myReadonlyFields), | 126 | 'readonly' => $isReadonlyField('sur_categorie_id', $myReadonlyFields), |
125 | 'disabled' => $isReadonlyField('sur_categorie_id', $myReadonlyFields) | 127 | 'disabled' => $isReadonlyField('sur_categorie_id', $myReadonlyFields) |
126 | ]); | 128 | ]); |
129 | + | ||
130 | + // CATEGORIES | ||
127 | $categs = $categories; | 131 | $categs = $categories; |
132 | + /* | ||
128 | // if a domain is selected, reduce the categories list to this domain | 133 | // if a domain is selected, reduce the categories list to this domain |
129 | //if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) | 134 | //if ($this->request->getData('sur_categorie_id') !== null && ($this->request->getData('sur_categorie_id') != '')) |
130 | if ($materiel->sur_categorie_id !== null && $materiel->sur_categorie_id != '') | 135 | if ($materiel->sur_categorie_id !== null && $materiel->sur_categorie_id != '') |
131 | $categs = $categs->where([ | 136 | $categs = $categs->where([ |
132 | 'sur_categorie_id =' => $materiel->sur_categorie_id | 137 | 'sur_categorie_id =' => $materiel->sur_categorie_id |
133 | ]); | 138 | ]); |
139 | + */ | ||
134 | echo $this->Form->control('categorie_id', [ | 140 | echo $this->Form->control('categorie_id', [ |
135 | 'label' => 'Catégorie', | 141 | 'label' => 'Catégorie', |
136 | 'style' => 'width: 380px', | 142 | 'style' => 'width: 380px', |
@@ -138,7 +144,10 @@ if ($IS_VALIDATED && $materiel->numero_serie) | @@ -138,7 +144,10 @@ if ($IS_VALIDATED && $materiel->numero_serie) | ||
138 | 'empty' => 'Choisir une catégorie', | 144 | 'empty' => 'Choisir une catégorie', |
139 | 'disabled' => $isReadonlyField('categorie_id', $myReadonlyFields) | 145 | 'disabled' => $isReadonlyField('categorie_id', $myReadonlyFields) |
140 | ]); | 146 | ]); |
147 | + | ||
141 | // SOUS-CATEGORIES | 148 | // SOUS-CATEGORIES |
149 | + $souscategs = $sousCategories; | ||
150 | + /* | ||
142 | // by default, list is empty | 151 | // by default, list is empty |
143 | $souscategs = []; | 152 | $souscategs = []; |
144 | // if a categ is selected, update sous-categs list for this categ (only) | 153 | // if a categ is selected, update sous-categs list for this categ (only) |
@@ -150,6 +159,7 @@ if ($IS_VALIDATED && $materiel->numero_serie) | @@ -150,6 +159,7 @@ if ($IS_VALIDATED && $materiel->numero_serie) | ||
150 | 'categorie_id' => $materiel->categorie_id | 159 | 'categorie_id' => $materiel->categorie_id |
151 | ]); | 160 | ]); |
152 | } | 161 | } |
162 | + */ | ||
153 | echo $this->Form->control('sous_categorie_id', [ | 163 | echo $this->Form->control('sous_categorie_id', [ |
154 | 'label' => 'Sous-catégorie', | 164 | 'label' => 'Sous-catégorie', |
155 | 'style' => 'width: 380px', | 165 | 'style' => 'width: 380px', |
src/Template/Materiels/view.ctp
@@ -470,16 +470,19 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; | @@ -470,16 +470,19 @@ $panne = h($materiel->hors_service) ? ' (HORS SERVICE)' : ''; | ||
470 | } // switch | 470 | } // switch |
471 | } // BOUTON changement statut | 471 | } // BOUTON changement statut |
472 | 472 | ||
473 | - // BOUTON Copier | ||
474 | - echo $this->Html->link('<i class="icon-pencil"></i> Copier ce matériel', [ | ||
475 | - 'controller' => 'materiels', | ||
476 | - 'action' => 'add', | ||
477 | - $materiel->id | ||
478 | - ], [ | ||
479 | - 'title' => 'Copier ce matériel', | ||
480 | - 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block', | ||
481 | - 'escape' => false | ||
482 | - ]); | 473 | + // BOUTON Copier (seulement pour les materiels qui sont CREATED et pour les ADMINet+ ou USER owner) |
474 | + if ( $IS_CREATED and ($USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER) ) | ||
475 | + echo $this->Html->link('<i class="icon-pencil"></i> Copier ce matériel', | ||
476 | + [ | ||
477 | + 'controller' => 'materiels', | ||
478 | + 'action' => 'add', | ||
479 | + $materiel->id | ||
480 | + ], | ||
481 | + [ | ||
482 | + 'title' => 'Copier ce matériel', | ||
483 | + 'style' => 'margin-right: 10px; margin-top: 10px; display: inline-block', | ||
484 | + 'escape' => false | ||
485 | + ]); | ||
483 | 486 | ||
484 | // BOUTON ETIQUETTE (si imprimante disponible) | 487 | // BOUTON ETIQUETTE (si imprimante disponible) |
485 | if ($IS_VALIDATED && $configuration->hasPrinter && in_array($role, [ | 488 | if ($IS_VALIDATED && $configuration->hasPrinter && in_array($role, [ |