Commit abc9320c324343c4de74e473b7253ba697baed0a
1 parent
db090f9a
Exists in
master
and in
1 other branch
amélioration validation => set gestionnaire de ref
Showing
1 changed file
with
39 additions
and
23 deletions
Show diff stats
src/Controller/MaterielsController.php
@@ -2147,6 +2147,7 @@ class MaterielsController extends AppController { | @@ -2147,6 +2147,7 @@ class MaterielsController extends AppController { | ||
2147 | */ | 2147 | */ |
2148 | private function statusSetTo($newStatus, $message, $id = null, $from = 'index', $onlyOneMateriel = True) { | 2148 | private function statusSetTo($newStatus, $message, $id = null, $from = 'index', $onlyOneMateriel = True) { |
2149 | $materiel = $this->Materiels->get($id)->set('status', $newStatus); | 2149 | $materiel = $this->Materiels->get($id)->set('status', $newStatus); |
2150 | + $msgError2 = "Le statut du matériel " . $materiel->designation . " (" . $materiel->numero_laboratoire . ") n'a pas pu être modifié"; | ||
2150 | 2151 | ||
2151 | // - ARCHIVED | 2152 | // - ARCHIVED |
2152 | if ($newStatus == 'ARCHIVED') | 2153 | if ($newStatus == 'ARCHIVED') |
@@ -2170,10 +2171,11 @@ class MaterielsController extends AppController { | @@ -2170,10 +2171,11 @@ class MaterielsController extends AppController { | ||
2170 | Organisme, | 2171 | Organisme, |
2171 | Prix, | 2172 | Prix, |
2172 | et Numéro de commande"; | 2173 | et Numéro de commande"; |
2173 | - $msgError2 = "Le statut du matériel " . $materiel->designation . " (" . $materiel->numero_laboratoire . ") n'a pas pu être modifié"; | ||
2174 | 2174 | ||
2175 | + // Si au moins un champ obligatoire est nul ou vide => ERROR | ||
2175 | foreach ($mandatoryFields as $field) { | 2176 | foreach ($mandatoryFields as $field) { |
2176 | if ($field === null || $field == '') { | 2177 | if ($field === null || $field == '') { |
2178 | + // Validation d'un seul matériel => on revient à "edit" | ||
2177 | if ($onlyOneMateriel) { | 2179 | if ($onlyOneMateriel) { |
2178 | /* (EP 2020 03) | 2180 | /* (EP 2020 03) |
2179 | * Ce genre de ligne ($this->Flash->...) affichant un message flash en haut de page, | 2181 | * Ce genre de ligne ($this->Flash->...) affichant un message flash en haut de page, |
@@ -2188,7 +2190,9 @@ class MaterielsController extends AppController { | @@ -2188,7 +2190,9 @@ class MaterielsController extends AppController { | ||
2188 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible in alert-danger']]); | 2190 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible in alert-danger']]); |
2189 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible fade in alert-danger']]); | 2191 | //$this->Flash->set($msgError1, ['params' => ['class' => 'alert alert-dismissible fade in alert-danger']]); |
2190 | return $this->redirect(['action'=>'edit',$id]); | 2192 | return $this->redirect(['action'=>'edit',$id]); |
2191 | - } else { | 2193 | + } |
2194 | + // Validation de plusieurs matériels (cochés) à la fois => on annule l'action de validation | ||
2195 | + else { | ||
2192 | $this->Flash->error($msgError2); | 2196 | $this->Flash->error($msgError2); |
2193 | return False; | 2197 | return False; |
2194 | } | 2198 | } |
@@ -2199,6 +2203,35 @@ class MaterielsController extends AppController { | @@ -2199,6 +2203,35 @@ class MaterielsController extends AppController { | ||
2199 | //$materiel->date_validated = date('Y-m-d'); | 2203 | //$materiel->date_validated = date('Y-m-d'); |
2200 | //debug($materiel->date_validated); | 2204 | //debug($materiel->date_validated); |
2201 | //exit; | 2205 | //exit; |
2206 | + | ||
2207 | + // Si le current user est un admin => on le met comme "gestionnaire" de ce matériel | ||
2208 | + //if ($newStatus == 'VALIDATED') { | ||
2209 | + $current_user = $_SESSION['Auth']['User']['sn'][0]; | ||
2210 | + if ( | ||
2211 | + in_array( | ||
2212 | + | ||
2213 | + $current_user, | ||
2214 | + | ||
2215 | + //TableRegistry::get('Users')->find('list', [ | ||
2216 | + TableRegistry::getTableLocator()->get('Users') | ||
2217 | + ->find('list', [ | ||
2218 | + 'keyField' => 'id', | ||
2219 | + 'valueField' => 'nom' | ||
2220 | + ]) | ||
2221 | + ->where(['role =' => 'Administration']) | ||
2222 | + ->toArray() | ||
2223 | + | ||
2224 | + ) | ||
2225 | + ) { | ||
2226 | + $gestionnaireID = TableRegistry::getTableLocator()->get('Users') | ||
2227 | + ->find() | ||
2228 | + ->where(['nom' => $current_user]) | ||
2229 | + ->first() | ||
2230 | + ->id; | ||
2231 | + $materiel->gestionnaire_id = $gestionnaireID; | ||
2232 | + } // if | ||
2233 | + //} | ||
2234 | + | ||
2202 | } // VALIDATED | 2235 | } // VALIDATED |
2203 | 2236 | ||
2204 | // SAVE | 2237 | // SAVE |
@@ -2214,30 +2247,11 @@ class MaterielsController extends AppController { | @@ -2214,30 +2247,11 @@ class MaterielsController extends AppController { | ||
2214 | $success = True; | 2247 | $success = True; |
2215 | if ($onlyOneMateriel) $this->Flash->success(__($message)); | 2248 | if ($onlyOneMateriel) $this->Flash->success(__($message)); |
2216 | $this->ilog("Changement de statut (passe à '$newStatus') du matériel '$materiel' (id=$id)"); | 2249 | $this->ilog("Changement de statut (passe à '$newStatus') du matériel '$materiel' (id=$id)"); |
2217 | - // TODO: ce code ne peut pas marcher !!! il faut faire un SAVE | ||
2218 | - if ($newStatus == 'VALIDATED') | ||
2219 | - if (in_array($_SESSION['Auth']['User']['sn'][0], TableRegistry::get('Users')->find('list', [ | ||
2220 | - 'keyField' => 'id', | ||
2221 | - 'valueField' => 'nom' | ||
2222 | - ]) | ||
2223 | - ->where([ | ||
2224 | - 'role =' => 'Administration' | ||
2225 | - ]) | ||
2226 | - ->toArray())) { | ||
2227 | - $gestionnaireID = TableRegistry::get('Users')->find() | ||
2228 | - ->where([ | ||
2229 | - 'nom' => $_SESSION['Auth']['User']['sn'][0] | ||
2230 | - ]) | ||
2231 | - ->first()->id; | ||
2232 | - $materiel->gestionnaire_id = $gestionnaireID; | ||
2233 | - // TODO: SAVE !!! | ||
2234 | - } | ||
2235 | //$this->sendEmail($materiel); | 2250 | //$this->sendEmail($materiel); |
2236 | //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created | 2251 | //évite le double envoi car il y a un envoi de mail a la fonction add et à l'état created |
2237 | //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier | 2252 | //évite les envois succcessifs si qqn fait une erreur sur la fiche, valide la fiche, et dévalide pour remodifier |
2238 | //if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { | 2253 | //if ($newStatus == 'ARCHIVED' || $newStatus == 'TOBEARCHIVED') { |
2239 | - if (in_array($newStatus,['ARCHIVED','TOBEARCHIVED','VALIDATED'])) | ||
2240 | - $this->sendmail($materiel,3); | 2254 | + if (in_array($newStatus,['ARCHIVED','TOBEARCHIVED','VALIDATED'])) $this->sendmail($materiel,3); |
2241 | } // SAVE OK | 2255 | } // SAVE OK |
2242 | 2256 | ||
2243 | if (! $onlyOneMateriel) | 2257 | if (! $onlyOneMateriel) |
@@ -2254,7 +2268,9 @@ class MaterielsController extends AppController { | @@ -2254,7 +2268,9 @@ class MaterielsController extends AppController { | ||
2254 | 'action' => $from, | 2268 | 'action' => $from, |
2255 | $id // null pour $from=index | 2269 | $id // null pour $from=index |
2256 | ]); | 2270 | ]); |
2257 | - } | 2271 | + |
2272 | + } // statusSetTo() | ||
2273 | + | ||
2258 | 2274 | ||
2259 | //@Override parent | 2275 | //@Override parent |
2260 | static public function getActions() { | 2276 | static public function getActions() { |