Commit 7727c2818dfc2b913c3ff1c8f5ea374595eb0c45
1 parent
5973ba4e
Exists in
master
and in
3 other branches
mise a jour fichier
Showing
6 changed files
with
513 additions
and
240 deletions
Show diff stats
src/Controller/AppController.php
... | ... | @@ -423,12 +423,12 @@ class AppController extends Controller |
423 | 423 | * login['xxx'][0] /!\ Ce champ est suceptible de changer de nom, dans les tests ce champ est ['cn'][0] |
424 | 424 | * mdp['userpassword'][0] |
425 | 425 | */ |
426 | - | |
426 | + | |
427 | 427 | $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
428 | 428 | $action = $this->request->params['action']; // add or edit or delete or ... |
429 | 429 | |
430 | 430 | if(!$configuration->envoi_mail) return null; |
431 | - | |
431 | + | |
432 | 432 | // On détermine le message et le sujet du mail en fonction de l'action effectuee |
433 | 433 | if($idObj != null || $nomObj != null) { |
434 | 434 | |
... | ... | @@ -487,20 +487,20 @@ class AppController extends Controller |
487 | 487 | else $mailList[0] = $mailOwner; |
488 | 488 | |
489 | 489 | //mail resp |
490 | - $mailsRespMetier = null; | |
491 | - $mailsRespMetier = null; | |
490 | + $mailsRespMetier = []; | |
491 | + $mailRespThematique = []; | |
492 | 492 | |
493 | 493 | if ($idObj != null){ |
494 | 494 | if ($materiel->groupes_metier_id != null && $materiel->groupes_metier_id != 1) $mailsRespMetier = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->groupes_metier_id])->toArray(); |
495 | 495 | if ($materiel->groupes_thematique_id != null && $materiel->groupes_thematique_id != 1) $mailRespThematique = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->groupes_thematique_id])->toArray(); |
496 | 496 | } else { |
497 | 497 | if ($groupesMetier != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $groupesMetier])->toArray(); |
498 | - if ($groupesThematique != null) $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $groupesThematique])->toArray(); | |
498 | + if ($groupesThematique != null) $mailsResp += TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupe_thematique_id =' => $groupesThematique])->toArray(); | |
499 | 499 | } |
500 | 500 | // Le ..!= 1 c'est parce que le groupe métier/thématique d'id 1 correspond au groupe N/A, soit aucun groupe |
501 | 501 | |
502 | - if ($mailsRespMetier != null && $mailsRespMetier != null) { | |
503 | - $mailResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique)); | |
502 | + if ($mailsRespMetier != null || $mailRespThematique != null) { | |
503 | + $mailsResp = array_unique(array_merge($mailsRespMetier, $mailRespThematique)); | |
504 | 504 | for($i = 0; $i < sizeof($mailsResp); $i++) { |
505 | 505 | $mailList[sizeof($mailList)]= $mailsResp[$i]['email']; |
506 | 506 | } |
... | ... | @@ -540,20 +540,22 @@ class AppController extends Controller |
540 | 540 | |
541 | 541 | // Fonction d'envoi de mails |
542 | 542 | private function sendEmailTo($subject, $msg, $mail, $config) { |
543 | - | |
544 | - if ($mail != null && !$config->test) { | |
543 | + | |
544 | + | |
545 | + if ($mail != null && !$config->test) { | |
546 | + | |
545 | 547 | if (filter_var($mail, FILTER_VALIDATE_EMAIL)) { |
546 | 548 | $email = new Email(); |
547 | 549 | |
548 | 550 | $etiquetteFrom = explode("@", $config->sender_mail); |
549 | 551 | |
550 | -// if($config->envoi_mail) { // <-- Si la case "Envoi des mails de management en local " est cochée | |
551 | -// $email->transport('dev') | |
552 | +// if($config->envoi_mail) { // <-- Si la case "Envoi des mails de management en local " est cochée | |
553 | +// $email->transport('dev') | |
552 | 554 | // ->from([$config->sender_mail => $etiquetteFrom[0]]) |
553 | -// ->to($mail) | |
554 | -// ->subject("[LabInvent] ".$subject) | |
555 | -// ->send($msg); | |
556 | -// } else { // <-- Si la case n'est pas cochée | |
555 | +// ->to($mail) | |
556 | +// ->subject("[LabInvent] ".$subject) | |
557 | +// ->send($msg); | |
558 | +// } else { // <-- Si la case n'est pas cochée | |
557 | 559 | $email->transport('default') |
558 | 560 | ->from([$config->sender_mail => $etiquetteFrom[0]]) |
559 | 561 | ->to($mail) | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -10,13 +10,13 @@ use Cake\Mailer\Email; |
10 | 10 | * Materiels Controller |
11 | 11 | * |
12 | 12 | * @property \App\Model\Table\MaterielsTable $Materiels |
13 | + * | |
13 | 14 | */ |
14 | 15 | class MaterielsController extends AppController |
15 | 16 | { |
16 | 17 | |
17 | 18 | private $NOTARCHIVED = ['CREATED', 'VALIDATED', 'TOBEARCHIVED']; |
18 | 19 | public $role; |
19 | - | |
20 | 20 | /** |
21 | 21 | * @param $user |
22 | 22 | * |
... | ... | @@ -26,6 +26,7 @@ class MaterielsController extends AppController |
26 | 26 | */ |
27 | 27 | public function isAuthorized($user) |
28 | 28 | { |
29 | + | |
29 | 30 | $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); |
30 | 31 | $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; |
31 | 32 | $this->role = $role; |
... | ... | @@ -170,78 +171,79 @@ class MaterielsController extends AppController |
170 | 171 | * |
171 | 172 | * @return \Cake\Network\Response|null |
172 | 173 | */ |
173 | - public function index() | |
174 | - { | |
174 | + public function index() | |
175 | + { | |
175 | 176 | // Remplacement de $this->passedArgs[0] (deprecated) |
176 | 177 | // Par $this->request->params['pass'][0] |
177 | - $condition = ''; | |
178 | - if (isset($this->request->params['pass'][0])) { | |
179 | - $condition = ['Materiels.status =' => $this->request->params['pass'][0]]; | |
180 | - $this->set('STATUS', $this->request->params['pass'][0]); | |
181 | - } | |
182 | - | |
183 | - $GM = $this->request->query('GM'); | |
184 | - $GT = $this->request->query('GT'); | |
185 | - if(isset($GM) || isset($GT)) { | |
186 | - if(isset($GM) && $GM != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
187 | - $condition = ['Materiels.groupes_metier_id =' => $GM, 'Materiels.status !=' => 'ARCHIVED']; | |
188 | - } | |
189 | - else if (isset($GT) && $GT != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
190 | - $condition = ['Materiels.groupes_thematique_id =' => $GT, 'Materiels.status !=' => 'ARCHIVED']; | |
191 | - } | |
192 | - else { | |
193 | - $condition = ['Materiels.id =' => 0]; | |
194 | - } | |
195 | - } | |
196 | - | |
197 | - $GMV = $this->request->query('GMV'); | |
198 | - $GTV = $this->request->query('GTV'); | |
199 | - if(isset($GMV) || isset($GTV)) { | |
200 | - if(isset($GMV) && $GMV != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
201 | - $condition = ['Materiels.groupes_metier_id =' => $GMV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; | |
202 | - } | |
203 | - else if (isset($GTV) && $GTV != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
204 | - $condition = ['Materiels.groupes_metier_id =' => $GTV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; | |
205 | - } | |
206 | - else { | |
207 | - $condition = ['Materiels.id =' => 0]; | |
208 | - } | |
209 | - } | |
210 | - | |
211 | - | |
212 | - $MY = $this->request->query('MY'); | |
213 | - if(isset($MY)) { | |
214 | - if(in_array($this->role, ['Utilisateur', 'Responsable'])) { | |
215 | - $condition = ['Materiels.nom_responsable =' => $this->request->query('MY'), 'Materiels.status !=' => 'ARCHIVED']; | |
216 | - } else { | |
217 | - $condition = ['Materiels.nom_responsable =' => $this->request->query('MY')]; | |
218 | - } | |
219 | - | |
220 | - } | |
221 | - | |
222 | - | |
223 | - if(in_array($this->role, ['Utilisateur', 'Responsable']) && $condition == '') { | |
224 | - $condition = ['Materiels.status !=' => 'ARCHIVED']; | |
225 | - } | |
226 | - | |
227 | - $config = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
178 | + $condition = ''; | |
179 | + if (isset($this->request->params['pass'][0])) { | |
180 | + $condition = ['Materiels.status =' => $this->request->params['pass'][0]]; | |
181 | + $this->set('STATUS', $this->request->params['pass'][0]); | |
182 | + } | |
183 | + | |
184 | + $GM = $this->request->query('GM'); | |
185 | + $GT = $this->request->query('GT'); | |
186 | + if(isset($GM) || isset($GT)) { | |
187 | + if(isset($GM) && $GM != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
188 | + $condition = ['Materiels.groupes_metier_id =' => $GM, 'Materiels.status !=' => 'ARCHIVED']; | |
189 | + } | |
190 | + else if (isset($GT) && $GT != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
191 | + $condition = ['Materiels.groupes_thematique_id =' => $GT, 'Materiels.status !=' => 'ARCHIVED']; | |
192 | + } | |
193 | + else { | |
194 | + $condition = ['Materiels.id =' => 0]; | |
195 | + } | |
196 | + } | |
197 | + | |
198 | + $GMV = $this->request->query('GMV'); | |
199 | + $GTV = $this->request->query('GTV'); | |
200 | + if(isset($GMV) || isset($GTV)) { | |
201 | + if(isset($GMV) && $GMV != TableRegistry::get('GroupesMetiers')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
202 | + $condition = ['Materiels.groupes_metier_id =' => $GMV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; | |
203 | + } | |
204 | + else if (isset($GTV) && $GTV != TableRegistry::get('GroupesThematiques')->find()->where(['nom =' => 'N/A'])->first()['id']) { | |
205 | + $condition = ['Materiels.groupes_metier_id =' => $GTV, 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED']; | |
206 | + } | |
207 | + else { | |
208 | + $condition = ['Materiels.id =' => 0]; | |
209 | + } | |
210 | + } | |
211 | + | |
212 | + | |
213 | + $MY = $this->request->query('MY'); | |
214 | + if(isset($MY)) { | |
215 | + if(in_array($this->role, ['Utilisateur', 'Responsable'])) { | |
216 | + $condition = ['Materiels.nom_responsable =' => $this->request->query('MY'), 'Materiels.status !=' => 'ARCHIVED']; | |
217 | + } else { | |
218 | + $condition = ['Materiels.nom_responsable =' => $this->request->query('MY')]; | |
219 | + } | |
220 | + | |
221 | + } | |
222 | + | |
223 | + | |
224 | + if(in_array($this->role, ['Utilisateur', 'Responsable']) && $condition == '') { | |
225 | + $condition = ['Materiels.status !=' => 'ARCHIVED']; | |
226 | + } | |
227 | + | |
228 | + $config = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
228 | 229 | $limit = $this->request->query('aff'); |
229 | 230 | if (!isset($limit))$limit = $config['aff_par_defaut']; |
230 | 231 | |
231 | - $this->paginate = [ | |
232 | - 'limit' => $limit, | |
233 | - 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites'], | |
234 | - 'order' => ['Materiels.numero_laboratoire' => 'desc'] | |
235 | - ]; | |
236 | - | |
237 | - $materiels = $this->paginate($this->Materiels->find('all', ['conditions' => $condition])); | |
232 | + $this->paginate = [ | |
233 | + 'limit' => $limit, | |
234 | + 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites'], | |
235 | + 'order' => ['Materiels.numero_laboratoire' => 'desc'] | |
236 | + ]; | |
237 | + | |
238 | + $materiels = $this->paginate($this->Materiels->find('all', ['conditions' => $condition])); | |
239 | + | |
238 | 240 | |
239 | - $this->set('nbMateriels', $this->Materiels->find('all', ['conditions' => $condition])->count()); | |
241 | + $this->set('nbMateriels', $this->Materiels->find('all', ['conditions' => $condition])->count()); | |
240 | 242 | |
241 | 243 | |
242 | - $this->set(compact('materiels')); | |
243 | - $this->set('_serialize', ['materiels']); | |
244 | - } | |
244 | + $this->set(compact('materiels')); | |
245 | + $this->set('_serialize', ['materiels']); | |
246 | + } | |
245 | 247 | |
246 | 248 | /** |
247 | 249 | * View method |
... | ... | @@ -253,14 +255,15 @@ class MaterielsController extends AppController |
253 | 255 | public function view($id = null) |
254 | 256 | { |
255 | 257 | $materiel = $this->Materiels->get($id, [ |
256 | - 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites', 'Documents', 'Emprunts', 'Suivis'] | |
258 | + 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites', 'Documents', 'Emprunts', 'Suivis','Fournisseurs'] | |
257 | 259 | ]); |
258 | 260 | |
259 | 261 | $sites = TableRegistry::get('Sites'); |
260 | 262 | $typeSuivis = TableRegistry::get('TypeSuivis'); |
261 | 263 | $typeDocuments = TableRegistry::get('TypeDocuments'); |
262 | - | |
263 | - if($materiel->photo_id != null) { | |
264 | + $fournisseurs = TableRegistry::get('Fournisseurs'); | |
265 | + | |
266 | + if($materiel->photo_id != null) { | |
264 | 267 | $imgMateriel = $materiel->photo_id.'.'.TableRegistry::get('Documents')->get($materiel->photo_id)->get('type_doc'); |
265 | 268 | $this->set('imgMateriel', $imgMateriel); |
266 | 269 | } |
... | ... | @@ -268,75 +271,94 @@ class MaterielsController extends AppController |
268 | 271 | $this->set('sites', $sites); |
269 | 272 | $this->set('typeSuivis', $typeSuivis); |
270 | 273 | $this->set('typeDocuments', $typeDocuments); |
271 | - | |
274 | + $this->set('fournisseurs', $fournisseurs); | |
272 | 275 | $this->set('materiel', $materiel); |
273 | 276 | $this->set('_serialize', ['materiel']); |
274 | - } | |
275 | - | |
277 | + } | |
278 | + | |
276 | 279 | /** |
277 | 280 | * Add method |
278 | 281 | * |
279 | 282 | * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. |
280 | 283 | */ |
281 | - public function add() { | |
284 | + public function add($valeurs = null, $erreurs = null) | |
285 | + { | |
282 | 286 | |
283 | 287 | $materiel = $this->Materiels->newEntity(); |
284 | 288 | if ($this->request->is('post')) { |
285 | 289 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
286 | 290 | if ($this->Materiels->save($materiel)) { |
287 | 291 | $this->Flash->success(__('Le matériel a bien été ajouté.')); |
292 | + /* | |
293 | + $this->sendEmailToManagement($materiel->id); | |
288 | 294 | |
289 | -// $this->sendEmailToManagement($materiel->id); | |
290 | - | |
291 | -// if($materiel->nom_createur != $materiel->nom_responsable) { | |
292 | -// $this->sendEmailToCreate($materiel->id); | |
293 | -// } | |
294 | - | |
295 | -// $message = $materiel->get('nom_createur').' à ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | |
296 | -// $subject = 'Ajout de matériel'; | |
297 | -// $listMails = []; | |
298 | - | |
299 | -// //Envoi mail responsable | |
300 | -// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->orWhere(['role =' => 'Responsable', 'groupe_thematique_id =' => $materiel->get('groupes_thematique_id')])->toArray(); | |
301 | -// $mails = []; | |
302 | -// for($i = 0; $i < sizeof($mailsResp); $i++) { | |
303 | -// $mails[$i] = $mailsResp[$i]['email']; | |
304 | -// } | |
305 | -// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | |
306 | - | |
307 | -// //Envoi mail administratif | |
308 | -// //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); | |
309 | -// $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray(); | |
310 | -// $mails = []; | |
311 | -// for($i = 0; $i < sizeof($mailsResp); $i++) { | |
312 | -// $mails[$i] = $mailsResp[$i]['email']; | |
313 | -// } | |
314 | - | |
315 | - | |
316 | -// // Rajout condition d'envoi de mail ou pas | |
317 | -// $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
318 | - | |
319 | -// if(!$configuration['envoi_mail_management_dev']){ // Si false, on envoie les mails, sinon on les envoie pas | |
320 | -// $this->sendEmailTo('Ajout d\'un matériel', $message, $mails); | |
321 | -// } | |
295 | + if($materiel->nom_createur != $materiel->nom_responsable) { | |
296 | + $this->sendEmailToCreate($materiel->id); | |
297 | + } | |
298 | + | |
299 | + //chemin pour voir un materiel | |
300 | + $cheminMateriel = 'https://labinvent.latmos.ipsl.fr/materiels/view/'; | |
301 | + // variable pour le message des mails au Responsable de domaine (sur categorie): | |
302 | + $objet_message_Responsable_Domaine = 'Ajout d\'un matériel dans votre domaine à valider'; | |
303 | + $message_Responsable_Domaine = $materiel->get('nom_createur').' a ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') '.$cheminMateriel.''.$materiel->id.' <- cliquer sur le lien pour valider le materiel'; | |
304 | + | |
305 | + // variable pour le message des mails au Responsable de département (groupe métier): | |
306 | + $objet_message_Responsable_Departement = 'Ajout d\'un matériel dans votre département '; | |
307 | + $message_Responsable_Departement = $materiel->get('nom_createur').' a ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') '.$cheminMateriel.''.$materiel->id.' <- cliquer sur le lien pour voir le materiel'; | |
308 | + | |
309 | + // variable pour le message des mails au Administration Plus | |
310 | + $objet_message_Administration_Plus = 'Ajout d\'un matériel dans un département'; | |
311 | + $message_Administration_Plus = $materiel->get('nom_createur').' a ajouté le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') '.$cheminMateriel.''.$materiel->id.' <- cliquer sur le lien pour voir le materiel'; | |
312 | + | |
313 | + //Envoi mail Responsable de domaine | |
314 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role ='=> 'Responsable', 'sur_categorie_id =' =>$materiel->get('sur_categorie_id')])->toArray(); //->orWhere(['role =' => 'Responsable', 'groupe_metier_id =' => $materiel->get('groupes_metier_id')]) | |
315 | + | |
316 | + $mails = []; | |
317 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | |
318 | + $mails[$i] = $mailsResp[$i]['email']; | |
319 | + } | |
320 | + $this->sendEmailTo($objet_message_Responsable_Domaine, $message_Responsable_Domaine , $mails); | |
321 | + | |
322 | + //Envoi mail administratif | |
323 | + //$mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->orWhere(['role =' => 'Administration'])->toArray(); | |
324 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Administration Plus'])->toArray(); | |
325 | + $mails = []; | |
326 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | |
327 | + $mails[$i] = $mailsResp[$i]['email']; | |
328 | + } | |
329 | + $this->sendEmailTo($objet_message_Administration_Plus, $message_Administration_Plus, $mails); | |
330 | + | |
331 | + //Envoi mail Responsable de département | |
332 | + $mailsResp = TableRegistry::get('Users')->find()->select('email')->where(['role =' => 'Responsable', 'groupes_metier_id =' => $materiel->get('groupes_metier_id')])->toArray(); | |
333 | + $mails = []; | |
334 | + for($i = 0; $i < sizeof($mailsResp); $i++) { | |
335 | + $mails[$i] = $mailsResp[$i]['email']; | |
336 | + } | |
322 | 337 | |
323 | - $this->sendEmail($materiel->id); | |
324 | - | |
325 | - return $this->redirect(['action' => 'view', $materiel->id]); | |
338 | + $this->sendEmailTo($objet_message_Responsable_Departement, $message_Responsable_Departement, $mails); | |
339 | + */ | |
340 | + $this->sendEmail($materiel->id); | |
341 | + //return $this->redirect(['action' => 'view', $materiel->id]); | |
326 | 342 | } else { |
327 | 343 | $this->Flash->error(__('Le matériel n\'a pas pu être ajouté.')); |
328 | 344 | } |
329 | 345 | } |
330 | - | |
331 | - $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom']); | |
346 | + | |
347 | + | |
348 | + | |
349 | + $surCategories = $this->Materiels->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SurCategories.nom' ,'conditions' => array('nom !=' => 'N/A')]); | |
332 | 350 | $categories = $this->Materiels->Categories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Categories.nom']); |
333 | 351 | $sousCategories = $this->Materiels->SousCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'SousCategories.nom']); |
334 | 352 | $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); |
335 | 353 | $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); |
336 | 354 | $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); |
337 | 355 | $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); |
338 | - | |
339 | - $users = TableRegistry::get('LdapConnections')->getListUsers(); | |
356 | + $fournisseurs = $this->Materiels->Fournisseurs->find('list', ['keyField' => 'id', 'valueField' => 'nom', 'order' => 'Fournisseurs.nom']); | |
357 | + $lieu_detail = $this->Materiels->find('list', ['keyField' => 'lieu_detail', 'valueField' => 'lieu_detail', 'conditions' => array('lieu_detail !='=>''),'order' => 'lieu_detail','group' => 'lieu_detail']); | |
358 | + $designation = $this->Materiels->find('list', ['keyField' => 'designation', 'valueField' => 'designation', 'conditions' => array('designation !='=>''),'order' => 'designation','group' => 'designation']); | |
359 | + $domaineresp= TableRegistry::get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['sur_categorie_id']; | |
360 | + $utilisateurconnect = TableRegistry::get('Users')->find('all')->toArray(); | |
361 | + $users = TableRegistry::get('LdapConnections')->getListUsers(); | |
340 | 362 | //tri des utilisateurs par nom |
341 | 363 | sort($users); |
342 | 364 | $utilisateurs = []; |
... | ... | @@ -344,15 +366,14 @@ class MaterielsController extends AppController |
344 | 366 | $utilisateurs[$users[$i]] = $users[$i]; |
345 | 367 | } |
346 | 368 | |
347 | - // Ne pas commenter la ligne suivante, on en a besoin dans add.cpt | |
348 | 369 | $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; |
349 | 370 | |
350 | 371 | if(isset($this->request->params['pass'][0])) { |
351 | 372 | $cpMateriel = $this->Materiels->get($this->request->params['pass'][0]); |
352 | 373 | $this->set('cpMateriel', $cpMateriel); |
353 | 374 | } |
354 | - | |
355 | - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); | |
375 | + | |
376 | + $this->set(compact('domaineresp','designation','utilisateurconnect','users','materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable','lieu_detail','fournisseurs')); | |
356 | 377 | $this->set('_serialize', ['materiel']); |
357 | 378 | |
358 | 379 | } |
... | ... | @@ -373,13 +394,13 @@ class MaterielsController extends AppController |
373 | 394 | $materiel = $this->Materiels->patchEntity($materiel, $this->request->data); |
374 | 395 | if ($this->Materiels->save($materiel)) { |
375 | 396 | $this->Flash->success(__('Le matériel a bien été édité.')); |
376 | -// $this->sendEmailToManagement($id); | |
377 | -// if($materiel->nom_modificateur != $materiel->nom_responsable) { | |
378 | -// $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | |
379 | -// $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); | |
380 | -// } | |
397 | + /* $this->sendEmailToManagement($id); | |
398 | + if($materiel->nom_modificateur != $materiel->nom_responsable) { | |
399 | + $message = $materiel->get('nom_modificateur').' a édité le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.')'; | |
400 | + $this->sendEmailTo('Modification d\'un matériel', $message, [$materiel->get('email_responsable')]); | |
401 | + }*/ | |
381 | 402 | $this->sendEmail($id); |
382 | - return $this->redirect(['action' => 'view', $id]); | |
403 | + return $this->redirect(['action' => 'view', $id]); | |
383 | 404 | } else { |
384 | 405 | $this->Flash->error(__('Le matériel n\'a pas pu être édité.')); |
385 | 406 | } |
... | ... | @@ -390,9 +411,24 @@ class MaterielsController extends AppController |
390 | 411 | $groupesThematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); |
391 | 412 | $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); |
392 | 413 | $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); |
393 | - $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); | |
394 | - | |
395 | - $users = TableRegistry::get('LdapConnections')->getListUsers(); | |
414 | + $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); | |
415 | + $designation = $this->Materiels->find('list', ['keyField' => 'designation', 'valueField' => 'designation', 'conditions' => array('designation !='=>''),'order' => 'designation','group' => 'designation']); | |
416 | + $designation_edit = $this->Materiels->find('list', ['keyField' => 'id', 'valueField' => 'designation', 'conditions' => array('id ='=>$materiel->id)]); | |
417 | + $designation_edit= $designation_edit->toArray(); | |
418 | + //autocomplete + saisie sites | |
419 | + $lieu_detail = $this->Materiels->find('list', ['keyField' => 'lieu_detail', 'valueField' => 'lieu_detail', 'conditions' => array('lieu_detail !='=>''),'order' => 'lieu_detail']); | |
420 | + $lieu_detail_edit = $this->Materiels->find('list', ['keyField' => 'id', 'valueField' => 'lieu_detail', 'conditions' => array('id ='=>$materiel->id)]); | |
421 | + $lieu_detail_edit= $lieu_detail_edit->toArray(); | |
422 | + //liste fournisseur | |
423 | + $fournisseurs = $this->Materiels->Fournisseurs->find('list', ['keyField' => 'id', 'valueField' => 'nom', 'order' => 'Fournisseurs.nom']); | |
424 | + $dom= TableRegistry::get('Materiels')->find()->select('sur_categorie_id')->where(['id =' => $materiel->id])->first()['sur_categorie_id']; | |
425 | + $domaines= TableRegistry::get('Users')->find()->select('sur_categorie_id')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['sur_categorie_id']; | |
426 | + $role = TableRegistry::get('Users')->find()->select('role')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['role']; | |
427 | + if($dom == $domaines) | |
428 | + $domaineresp=true; | |
429 | + else | |
430 | + $domaineresp=false; | |
431 | + $users = TableRegistry::get('LdapConnections')->getListUsers(); | |
396 | 432 | //tri des utilisateurs par nom |
397 | 433 | sort($users); |
398 | 434 | $utilisateurs = []; |
... | ... | @@ -400,6 +436,7 @@ class MaterielsController extends AppController |
400 | 436 | $utilisateurs[$users[$i]] = $users[$i]; |
401 | 437 | } |
402 | 438 | |
439 | + | |
403 | 440 | if(!empty($materiel->get('nom_responsable'))){ |
404 | 441 | if(!in_array($materiel->get('nom_responsable'), $utilisateurs)){ |
405 | 442 | $nom_ancien_responsable = $materiel->get('nom_responsable'); |
... | ... | @@ -407,8 +444,8 @@ class MaterielsController extends AppController |
407 | 444 | } |
408 | 445 | } |
409 | 446 | $mail_responsable = TableRegistry::get('Users')->find()->select('email')->where(['username =' => $this->LdapAuth->user($this->request->session()->read('authType'))[0]])->first()['email']; |
410 | - | |
411 | - //Fonction utilisée dans la vue, déclaré ici pour éviter les problèmes de tests | |
447 | + | |
448 | + //Fonction utilisé dans la vue, déclaré ici pour éviter les problèmes de tests | |
412 | 449 | $isReadonlyField = function ($fieldName, $myReadonlyFields) { |
413 | 450 | if (! empty ( $myReadonlyFields ) && $myReadonlyFields [0] == '*') { |
414 | 451 | $modifiableFields = $myReadonlyFields; |
... | ... | @@ -423,7 +460,7 @@ class MaterielsController extends AppController |
423 | 460 | $this->set('IS_VALIDATED', $materiel->status == 'VALIDATED'); |
424 | 461 | $this->set('IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'])); |
425 | 462 | |
426 | - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); | |
463 | + $this->set(compact('role','domaine','domaineresp','designation_edit','designation','materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable','lieu_detail','lieu_detail_edit','fournisseurs')); | |
427 | 464 | $this->set('_serialize', ['materiel']); |
428 | 465 | } |
429 | 466 | |
... | ... | @@ -456,7 +493,8 @@ class MaterielsController extends AppController |
456 | 493 | $groupesMetiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); |
457 | 494 | $organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); |
458 | 495 | $sites = $this->Materiels->Sites->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Sites.nom']); |
459 | - | |
496 | + $fournisseurs = $this->Materiels->Fournisseurs->find('list', ['keyField' => 'id', 'valueField' => 'nom', 'order' => 'Fournisseurs.nom']); | |
497 | + | |
460 | 498 | $users = TableRegistry::get('LdapConnections')->getListUsers(); |
461 | 499 | //tri des utilisateurs par nom |
462 | 500 | sort($users); |
... | ... | @@ -477,7 +515,7 @@ class MaterielsController extends AppController |
477 | 515 | $this->set('IS_VALIDATED', $materiel->status == 'VALIDATED'); |
478 | 516 | $this->set('IS_ARCHIVED_OR_TOBE', in_array ( $materiel->status, ['TOBEARCHIVED','ARCHIVED'])); |
479 | 517 | |
480 | - $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable')); | |
518 | + $this->set(compact('materiel', 'surCategories', 'categories', 'sousCategories', 'groupesThematiques', 'groupesMetiers', 'organismes', 'sites', 'utilisateurs', 'mail_responsable','fournisseurs')); | |
481 | 519 | $this->set('_serialize', ['materiel']); |
482 | 520 | } |
483 | 521 | |
... | ... | @@ -491,7 +529,7 @@ class MaterielsController extends AppController |
491 | 529 | */ |
492 | 530 | public function delete($id = null) |
493 | 531 | { |
494 | - //$this->request->allowMethod(['post', 'delete']); | |
532 | + //$this->request->allowMethod(['post', 'delete']); | |
495 | 533 | $materiel = $this->Materiels->get($id); |
496 | 534 | // On récupère les infos dont on a besoin pour l'envoi de mails AVANT la supression, on s'appelle pas Chuck Norris |
497 | 535 | $nom = $materiel->designation; |
... | ... | @@ -501,7 +539,6 @@ class MaterielsController extends AppController |
501 | 539 | |
502 | 540 | if ($this->Materiels->delete($materiel)) { |
503 | 541 | $this->Flash->success(__('Le matériel a bien été supprimé.')); |
504 | -// $this->sendEmailToManagement($id); | |
505 | 542 | $this->sendEmail(null, $nom, $mailOwner, $grpMetier, $grpThematique); |
506 | 543 | } else { |
507 | 544 | $this->Flash->error(__('Le matériel n\'a pas pu être supprimé.')); |
... | ... | @@ -509,6 +546,7 @@ class MaterielsController extends AppController |
509 | 546 | return $this->redirect(['action' => 'index']); |
510 | 547 | } |
511 | 548 | |
549 | + | |
512 | 550 | /** |
513 | 551 | * StatusSetTo method |
514 | 552 | * |
... | ... | @@ -526,22 +564,17 @@ class MaterielsController extends AppController |
526 | 564 | } |
527 | 565 | |
528 | 566 | if($newStatus == 'VALIDATED') { |
529 | - if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { | |
567 | + if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur_id) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { | |
530 | 568 | $this->Flash->error('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception'); |
531 | 569 | return $this->redirect(['action' => 'edit', $id]); |
532 | 570 | } |
533 | - $role_session = TableRegistry::get('Users')->find()->select('id')->where(['email' => $_SESSION['Auth']['User']['mail'][0], 'role' => 'Administration'])->first(); | |
534 | - if ($role_session) { | |
535 | - $nom_gest = $_SESSION['Auth']['User']['givenname'][0].' '.$_SESSION['Auth']['User']['sn'][0]; | |
536 | - $materiel->set('nom_gestionnaire', $nom_gest ); | |
537 | - } | |
538 | -// $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.'; | |
539 | -// $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); | |
571 | + // $message = 'Le matériel "'.$materiel->get('designation').'" ('.$materiel->numero_laboratoire.') a été validé.'; | |
572 | + // $this->sendEmailTo('Validation d\'un matériel', $message, [$materiel->get('email_responsable')]); | |
540 | 573 | } |
541 | 574 | |
542 | 575 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
543 | 576 | $this->Flash->success(__($message)); |
544 | -// $this->sendEmailToManagement($id); | |
577 | + //$this->sendEmailToManagement($id); | |
545 | 578 | } |
546 | 579 | else { |
547 | 580 | $this->Flash->error(__('Le statut n\'a pas pu être édité.')); |
... | ... | @@ -559,7 +592,7 @@ class MaterielsController extends AppController |
559 | 592 | */ |
560 | 593 | public function statusValidated($id = null, $from = 'index') { |
561 | 594 | $this->statusSetTo('VALIDATED', 'Le matériel a bien été validé', $id, $from); |
562 | - $this->sendEmail($id); | |
595 | + $this->sendEmail($id); | |
563 | 596 | } |
564 | 597 | |
565 | 598 | /** |
... | ... | @@ -570,7 +603,7 @@ class MaterielsController extends AppController |
570 | 603 | */ |
571 | 604 | public function statusToBeArchived($id = null, $from = 'index') { |
572 | 605 | $this->statusSetTo('TOBEARCHIVED', 'La sortie d\'inventaire a bien été demandée', $id, $from); |
573 | - $this->sendEmail($id); | |
606 | + $this->sendEmail($id); | |
574 | 607 | } |
575 | 608 | |
576 | 609 | /** |
... | ... | @@ -581,7 +614,7 @@ class MaterielsController extends AppController |
581 | 614 | */ |
582 | 615 | public function statusArchived($id = null, $from = 'index') { |
583 | 616 | $this->statusSetTo('ARCHIVED', 'Le matériel a bien été sorti de l\'inventaire', $id, $from); |
584 | - $this->sendEmail($id); | |
617 | + $this->sendEmail($id); | |
585 | 618 | } |
586 | 619 | |
587 | 620 | /** |
... | ... | @@ -619,10 +652,13 @@ class MaterielsController extends AppController |
619 | 652 | $s_groupes_thematiques = $this->Materiels->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesThematiques.nom']); |
620 | 653 | $s_groupes_metiers = $this->Materiels->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'GroupesMetiers.nom']); |
621 | 654 | $s_organismes = $this->Materiels->Organismes->find('list', [ 'keyField' => 'id', 'valueField' => 'nom', 'order' => 'Organismes.nom']); |
622 | - | |
655 | + $s_fournisseurs = $this->Materiels->Fournisseurs->find('list', ['keyField' => 'id', 'valueField' => 'nom', 'order' => 'Fournisseurs.nom']); | |
656 | + $s_salles = $this->Materiels->find('list',[ 'keyField' => 'lieu_detail','valueField' => 'lieu_detail', 'order' => 'lieu_detail' , 'conditions' => array( 'status !=' => 'ARCHIVED', 'lieu_detail !=' =>'null' )]); | |
657 | + $s_nomresp = $this->Materiels->find('list',[ 'keyField' => 'nom_responsable','valueField' => 'nom_responsable', 'order' => 'nom_responsable' , 'conditions' => array( 'status !=' => 'ARCHIVED', 'nom_responsable !=' =>'null' )]); | |
658 | + $s_numero_laboratoire = $this->Materiels->find('list',[ 'keyField' => 'numero_laboratoire','valueField' => 'numero_laboratoire', 'order' => 'numero_laboratoire' , 'conditions' => array( 'status !=' => 'ARCHIVED', 'numero_laboratoire !=' =>'null' )]); | |
623 | 659 | $categories = $this->Materiels->Categories; |
624 | 660 | |
625 | - $this->set(compact('s_sur_categories', 's_categories', 's_sous_categories', 's_groupes_thematiques', 's_groupes_metiers', 's_organismes', 'categories')); | |
661 | + $this->set(compact('s_numero_laboratoire','s_nomresp','s_sur_categories', 's_categories', 's_sous_categories', 's_groupes_thematiques', 's_groupes_metiers', 's_organismes', 's_fournisseurs', 's_salles', 'categories')); | |
626 | 662 | |
627 | 663 | $resultTri = $this->request->session()->read("resultTri"); |
628 | 664 | |
... | ... | @@ -638,6 +674,7 @@ class MaterielsController extends AppController |
638 | 674 | // if general field set (s_all), then set general request for it |
639 | 675 | if (isset($this->request->data['s_all'])) { |
640 | 676 | $all = $this->request->data['s_all']; |
677 | + | |
641 | 678 | $generalFieldConditions = ['OR' => [ |
642 | 679 | 'Materiels.designation LIKE' => '%'.$all.'%', |
643 | 680 | 'Materiels.numero_laboratoire LIKE' => '%'.$all.'%', |
... | ... | @@ -645,13 +682,13 @@ class MaterielsController extends AppController |
645 | 682 | 'Materiels.numero_inventaire_old LIKE' => '%'.$all.'%', |
646 | 683 | 'Materiels.numero_commande LIKE' => '%'.$all.'%', |
647 | 684 | 'Materiels.description LIKE' => '%'.$all.'%', |
648 | - 'Materiels.fournisseur LIKE' => '%'.$all.'%', | |
685 | + 'Materiels.fournisseur_id LIKE' => '%'.$all.'%', | |
649 | 686 | 'Materiels.nom_responsable LIKE' => '%'.$all.'%', |
650 | 687 | 'Materiels.email_responsable LIKE' => '%'.$all.'%', |
651 | 688 | 'Materiels.code_comptable LIKE' => '%'.$all.'%', |
652 | 689 | 'Materiels.numero_serie LIKE' => '%'.$all.'%', |
653 | 690 | 'Materiels.date_acquisition LIKE' => '%'.$all.'%', |
654 | - 'Materiels.date_reception LIKE' => '%'.$all.'%', | |
691 | + 'Materiels.lieu_detail LIKE' => '%'.$all.'%', | |
655 | 692 | ]]; |
656 | 693 | } |
657 | 694 | if (isset($this->request->data['s_all_2'])) { |
... | ... | @@ -663,13 +700,14 @@ class MaterielsController extends AppController |
663 | 700 | 'Materiels.numero_inventaire_old LIKE' => '%'.$all.'%', |
664 | 701 | 'Materiels.numero_commande LIKE' => '%'.$all.'%', |
665 | 702 | 'Materiels.description LIKE' => '%'.$all.'%', |
666 | - 'Materiels.fournisseur LIKE' => '%'.$all.'%', | |
703 | + 'Materiels.fournisseur_id LIKE' => '%'.$all.'%', | |
667 | 704 | 'Materiels.nom_responsable LIKE' => '%'.$all.'%', |
668 | 705 | 'Materiels.email_responsable LIKE' => '%'.$all.'%', |
669 | 706 | 'Materiels.code_comptable LIKE' => '%'.$all.'%', |
670 | 707 | 'Materiels.numero_serie LIKE' => '%'.$all.'%', |
671 | 708 | 'Materiels.date_acquisition LIKE' => '%'.$all.'%', |
672 | 709 | 'Materiels.date_reception LIKE' => '%'.$all.'%', |
710 | + 'Materiels.lieu_detail LIKE' => '%'.$all.'%', | |
673 | 711 | ]]; |
674 | 712 | } |
675 | 713 | $specificFieldsConditions = NULL; |
... | ... | @@ -707,6 +745,9 @@ class MaterielsController extends AppController |
707 | 745 | |
708 | 746 | $periode_acquisitionRequest = NULL; |
709 | 747 | $date_acquisition = NULL; |
748 | + | |
749 | + $salle=NULL; | |
750 | + $fournisseur=NULL; | |
710 | 751 | if ($this->request->data['s_periode_acquisition1'] != '') |
711 | 752 | $periode_acquisitionRequest['Materiels.date_acquisition >='] = date('Y-m-d', strtotime(str_replace('/', '-', $this->request->data['s_periode_acquisition1']))); |
712 | 753 | if ($this->request->data['s_periode_acquisition2'] != '') |
... | ... | @@ -719,8 +760,16 @@ class MaterielsController extends AppController |
719 | 760 | $montantRequest['Materiels.prix_ht <='] = $this->request->data['s_prix_ht_inf']; |
720 | 761 | if ($this->request->data['s_prix_ht_sup'] != '') |
721 | 762 | $montantRequest['Materiels.prix_ht >='] = $this->request->data['s_prix_ht_sup']; |
722 | - | |
723 | - $specificFieldsConditions = [ | |
763 | + | |
764 | + | |
765 | + | |
766 | + if($this->request->data['s_salle'] !='') | |
767 | + $salle['Materiels.lieu_detail LIKE']= '%'.$this->request->data['s_salle'].'%'; | |
768 | + | |
769 | + if($this->request->data['s_fournisseur'] !='') | |
770 | + $fournisseur['Materiels.fournisseur_id =']= $this->request->data['s_fournisseur']; | |
771 | + | |
772 | + $specificFieldsConditions = [ | |
724 | 773 | 'Materiels.designation LIKE' => '%'.$this->request->data['s_designation'].'%', |
725 | 774 | 'Materiels.numero_laboratoire LIKE' => '%'.$this->request->data['s_numero_laboratoire'].'%', |
726 | 775 | $this->getConditionForField('numero_commande'), |
... | ... | @@ -736,9 +785,12 @@ class MaterielsController extends AppController |
736 | 785 | $this->getConditionForField('numero_inventaire_old'), |
737 | 786 | $this->getConditionForFieldNumber('groupes_metier_id'), |
738 | 787 | $this->getConditionForFieldNumber('groupes_thematique_id'), |
739 | - | |
788 | + $salle, | |
789 | + $fournisseur, | |
740 | 790 | $this->getConditionForFieldNumber('organisme_id'), |
741 | 791 | $matostypeRequest, |
792 | + | |
793 | + | |
742 | 794 | ]; |
743 | 795 | if($this->request->data['s_status'] != '') { |
744 | 796 | array_push($specificFieldsConditions, ['Materiels.status =' => $this->request->data['s_status']]); |
... | ... | @@ -822,8 +874,16 @@ class MaterielsController extends AppController |
822 | 874 | } |
823 | 875 | //if mode_debug desactivate |
824 | 876 | if (!$this->isLabinventDebugMode()) { |
825 | - $materiel = $this->Materiels->get($id)->set('status', $new); | |
826 | - $this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false]); | |
877 | + $materiel = $this->Materiels->get($id); | |
878 | + if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) { | |
879 | + $this->Flash->error('le materiel '.$materiel->designation.'-'.$materiel->numero_laboratoire.' n\'a pas pu etre validé car un des champs nécessaires n\'est pas rempli'); | |
880 | + $nb--; | |
881 | + }else{ | |
882 | + $materiel->set('status', $new); | |
883 | + $this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false]); | |
884 | + } | |
885 | + | |
886 | + | |
827 | 887 | } |
828 | 888 | $nb++; |
829 | 889 | } endforeach; |
... | ... | @@ -834,7 +894,9 @@ class MaterielsController extends AppController |
834 | 894 | } |
835 | 895 | } |
836 | 896 | } |
837 | - | |
897 | + | |
898 | + | |
899 | + | |
838 | 900 | /** |
839 | 901 | * |
840 | 902 | * Export method |
... | ... | @@ -943,11 +1005,22 @@ class MaterielsController extends AppController |
943 | 1005 | |
944 | 1006 | $this->response->header(['Content-type: application/csv', 'Content-Disposition: attachment; filename="'.$filename.'"']); |
945 | 1007 | $this->response->sendHeaders(); |
946 | - | |
1008 | + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first(); | |
1009 | + $nomgroupemetier = $configuration->nom_groupe_metier; | |
1010 | + $nomgroupethematique = $configuration->nom_groupe_thematique; | |
1011 | + | |
1012 | + $nomgroupemetier = htmlentities($nomgroupemetier, ENT_NOQUOTES, 'utf-8'); | |
1013 | + $nomgroupemetier = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nomgroupemetier); | |
1014 | + $nomgroupemetier = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nomgroupemetier); // pour les ligatures e.g. 'œ' | |
1015 | + $nomgroupemetier = preg_replace('#&[^;]+;#', '', $nomgroupemetier); // supprime les autres caractères | |
1016 | + $nomgroupethematique = htmlentities($nomgroupethematique, ENT_NOQUOTES, 'utf-8'); | |
1017 | + $nomgroupethematique = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $nomgroupethematique); | |
1018 | + $nomgroupethematique = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $nomgroupethematique); // pour les ligatures e.g. 'œ' | |
1019 | + $nomgroupethematique = preg_replace('#&[^;]+;#', '', $nomgroupethematique); // supprime les autres caractères | |
947 | 1020 | $header_row = [ |
948 | 1021 | "id", "Designation", "Sur-categorie", "Categorie", "Sous-categorie", "Numero interne", "Description", "Organisme", |
949 | 1022 | "Mat. administratif", "Mat. technique", "Statut", "Date d'acquisition", "Date de reception", "Fournisseur", "Prix HT", |
950 | - "EOTP", "Numero de commande", "Code comptable", "Numero de serie", "Grp. thematique", "Grp. metier", | |
1023 | + "EOTP", "Numero de commande", "Code comptable", "Numero de serie", $nomgroupethematique , $nomgroupemetier, | |
951 | 1024 | "Numero inventaire organisme", "Ancien Numero inventaire", "Site stockage", "Nom responsable", "Email responsable"]; |
952 | 1025 | |
953 | 1026 | fputcsv($csv_file, $header_row, ';'); |
... | ... | @@ -1034,7 +1107,7 @@ class MaterielsController extends AppController |
1034 | 1107 | fclose($csv_file); |
1035 | 1108 | |
1036 | 1109 | exit(); |
1037 | - //Sans le exit() ça ne fonctionne pas pour des petites listes, et dans tout les cas une ligne en javascript est écrite si il n'y a pas exit() | |
1110 | + //Sans le exit() ca ne fonctionne pas pour de petite liste, et dans tous les cas une ligne en javascript est écris si il n'y a pas exit() | |
1038 | 1111 | |
1039 | 1112 | //La redirection suivante fonctionne parfaitement, mais inutile à cause du exit() |
1040 | 1113 | /* |
... | ... | @@ -1062,8 +1135,7 @@ class MaterielsController extends AppController |
1062 | 1135 | $this->Flash->success(__('L\'étiquette a bien été éditée.')); |
1063 | 1136 | // Envoi email seulement si etiquette posée |
1064 | 1137 | if ($printed) { |
1065 | -// $this->sendEmailToManagement($id); | |
1066 | - $this->sendEmail($id); | |
1138 | + $this->sendEmailToManagement($id); | |
1067 | 1139 | } |
1068 | 1140 | } |
1069 | 1141 | else { | ... | ... |
src/Template/Materiels/find.ctp
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | </h2> |
6 | 6 | <?php |
7 | 7 | $r = isset ($_results); |
8 | - | |
8 | + | |
9 | 9 | if ($r) { |
10 | 10 | echo '<div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;">'; |
11 | 11 | echo $this->Html->link ( '<i class="icon-file"></i> Exporter la liste', [ |
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | $selected = [ |
37 | 37 | 'selected' => '' |
38 | 38 | ]; |
39 | - | |
39 | + | |
40 | 40 | |
41 | 41 | // FORMULAIRE DE RECHERCHE |
42 | 42 | echo $this->Form->create(); |
... | ... | @@ -62,6 +62,7 @@ |
62 | 62 | 'style' => 'width: 280px' |
63 | 63 | ]); |
64 | 64 | |
65 | + | |
65 | 66 | // DOMAINE |
66 | 67 | echo $this->Form->input ( 's_sur_categorie_id', [ |
67 | 68 | 'label' => 'Domaine', |
... | ... | @@ -140,11 +141,15 @@ |
140 | 141 | echo $this->Form->input ( 's_numero_commande', [ |
141 | 142 | 'label' => 'N° BC' |
142 | 143 | ]); |
144 | + | |
143 | 145 | echo $this->Form->input ( 's_numero_laboratoire', [ |
144 | - 'label' => 'N° interne (labo)' | |
146 | + 'label' => 'N° interne (labo)', | |
147 | + 'empty' => 'Tous', | |
148 | + 'style' => 'width: 200px', | |
149 | + 'options' => $s_numero_laboratoire | |
150 | + | |
145 | 151 | ]); |
146 | - | |
147 | - //ORGANISME | |
152 | + | |
148 | 153 | $orgas = $s_organismes; |
149 | 154 | echo $this->Form->input ( 's_organisme_id', [ |
150 | 155 | 'label' => 'Organisme', |
... | ... | @@ -152,17 +157,40 @@ |
152 | 157 | 'style' => 'width: 200px', |
153 | 158 | 'options' => $orgas |
154 | 159 | ]); |
155 | - | |
160 | + | |
161 | + echo $this->Form->input ( 's_fournisseur', [ | |
162 | + 'label' => 'Fournisseur', | |
163 | + 'empty' => 'Tous', | |
164 | + 'style' => 'width: 200px', | |
165 | + 'options' => $s_fournisseurs | |
166 | + | |
167 | + ]); | |
168 | + | |
169 | + $salle= $s_salles; | |
170 | + echo $this->Form->input ( 's_salle', [ | |
171 | + 'label' => 'Détail lieu de stockage', | |
172 | + 'empty' => 'Toutes', | |
173 | + 'style' => 'width: 200px', | |
174 | + 'options' => $salle | |
175 | + | |
176 | + ]); | |
177 | + | |
156 | 178 | echo $this->Form->input ( 's_nom_responsable', [ |
157 | - 'label' => 'Nom du propriétaire' | |
179 | + 'label' => 'Nom du propriétaire', | |
180 | + 'empty' => 'Toutes', | |
181 | + 'options' => $s_nomresp | |
158 | 182 | ]); |
159 | 183 | echo $this->Form->input ( 's_numero_inventaire_organisme', [ |
160 | 184 | 'label' => 'N° inventaire organisme' |
161 | 185 | ]); |
186 | + | |
187 | + | |
162 | 188 | echo $this->Form->input ( 's_numero_inventaire_old', [ |
163 | 189 | 'label' => 'N° inventaire (ancien)' |
164 | 190 | ]); |
165 | 191 | |
192 | + | |
193 | + if(in_array($role, ['Responsable','Administration', 'Administration Plus', 'Super Administrateur'])) { | |
166 | 194 | // Date acquisition |
167 | 195 | echo "<u>DATE d'achat:</u>"; |
168 | 196 | echo $this->Form->input ( 's_date_acquisition', [ |
... | ... | @@ -185,7 +213,7 @@ |
185 | 213 | echo $this->Form->input ( 's_prix_ht', ['label' => '- Montant exact']); |
186 | 214 | echo $this->Form->input ( 's_prix_ht_sup', ['label' => '- Montant sup. ou égal à']); |
187 | 215 | echo $this->Form->input ( 's_prix_ht_inf', ['label' => '- Montant inf. ou égal à']); |
188 | - | |
216 | + } | |
189 | 217 | // CHAMP DE RECHERCHE GENERIQUE |
190 | 218 | echo $this->Form->input ( 's_all', ['label' => 'TOUS LES CHAMPS' ]); |
191 | 219 | |
... | ... | @@ -217,6 +245,8 @@ |
217 | 245 | <th><?= $this->Paginator->sort('nom_responsable', $configuration->nom_responsable) ?></th> |
218 | 246 | <th><?= $this->Paginator->sort('status', 'Statut') ?></th> |
219 | 247 | <th><?= $this->Paginator->sort('date_acquisition', 'Date') ?></th> |
248 | + <th><?= $this->Paginator->sort('fournisseur', 'Fournisseur') ?></th> | |
249 | + <th><?= $this->Paginator->sort('lieu_detail', 'Salle') ?></th> | |
220 | 250 | </tr> |
221 | 251 | </thead> |
222 | 252 | <tbody> |
... | ... | @@ -317,8 +347,12 @@ |
317 | 347 | echo '<td class="smallText">'; |
318 | 348 | echo $material->date_acquisition; |
319 | 349 | echo '</td>'; |
320 | - | |
321 | - | |
350 | + echo '<td class="smallText">'; | |
351 | + echo $material->fournisseur; | |
352 | + echo '</td>'; | |
353 | + echo '<td class="smallText">'; | |
354 | + echo $material->lieu_detail; | |
355 | + echo '</td>'; | |
322 | 356 | echo '<tr>'; |
323 | 357 | endforeach; |
324 | 358 | echo '</tbody>'; | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -135,6 +135,7 @@ if (isset ( $STATUS )) { |
135 | 135 | <th><?= $this->Paginator->sort('status', 'Statut') ?></th> |
136 | 136 | <th><?= $this->Paginator->sort('date_acquisition', 'Date Achat') ?></th> |
137 | 137 | <th><?= $this->Paginator->sort('etiquette', 'Et') ?></th> |
138 | + <th><?= $this->Paginator->sort('metrologie', 'Metro') ?></th> | |
138 | 139 | </tr> |
139 | 140 | </thead> |
140 | 141 | <tbody> |
... | ... | @@ -249,7 +250,7 @@ if (isset ( $STATUS )) { |
249 | 250 | |
250 | 251 | <td class="smallText"><?= h($materiel->date_acquisition) ?></td> |
251 | 252 | <td class="smallText"><?php if (h($materiel->etiquette) == '1') { echo 'Y'; } else { echo 'N'; } ?></td> |
252 | - | |
253 | + <td class="smallText"><?php if (h($materiel->metrologie) == '1') { echo 'Y'; } else { echo 'N'; } ?></td> | |
253 | 254 | |
254 | 255 | </tr> |
255 | 256 | <?php endforeach; ?> | ... | ... |
src/Template/Suivis/add.ctp
... | ... | @@ -11,52 +11,43 @@ |
11 | 11 | 'default' => $materiel['numero_laboratoire'], |
12 | 12 | 'disabled' => TRUE |
13 | 13 | ]); |
14 | - | |
15 | - | |
16 | - echo $this->Form->input('type_suivi_id', [ | |
17 | - 'label' => 'Type d\'intervention', | |
18 | - 'options' => $typeSuivis | |
19 | - ]); | |
20 | - | |
21 | - echo $this->Form->input('date_controle', [ | |
22 | - 'type' => 'text', | |
23 | - 'label' => 'Date intervention', | |
24 | - 'placeholder' => 'Cliquez pour selectionner une date', | |
25 | - 'class' => 'datepicker', | |
26 | - 'default' => NULL | |
27 | - ]); | |
28 | - | |
29 | - echo '<table id="tableAlignementFrequence"><tr><td>'; | |
30 | - echo $this->Form->input('frequence', [ | |
31 | - 'type' => 'text', | |
32 | - 'id' => 'SuiviFrequence', | |
33 | - 'label' => 'Fréquence', | |
34 | - 'templates' => ['inputContainer' => '<div class="A">{{content}}</div>'], | |
35 | - 'placeholder' => '' | |
14 | + echo '<div style="display:none">'; | |
15 | + echo $this->Form->input('listeunite',[ | |
16 | + 'options' => $unite | |
36 | 17 | ]); |
37 | - echo '</td><td>'; | |
38 | - echo $this->Form->input ('type_frequence', [ | |
39 | - 'label' => false, | |
40 | - 'templates' => ['inputContainer' => '<div class="typeFrequence">{{content}}</div>'], | |
41 | - 'options' => ['/ Jours' => '/ Jours', '/ Semaines' => '/ Semaines', '/ Mois' => '/ Mois', '/ Ans' => '/ Ans'], | |
42 | - 'default' => '/ Mois' | |
18 | + echo $this->Form->input('listeformule',[ | |
19 | + 'options' => $formule | |
43 | 20 | ]); |
44 | - echo '</td></tr></table>'; | |
45 | - | |
46 | - echo $this->Form->input('date_prochain_controle', [ | |
47 | - 'type' => 'text', | |
48 | - 'label' => 'Date prochaine intervention', | |
49 | - 'placeholder' => 'Cliquez pour selectionner une date', | |
50 | - 'class' => 'datepicker' | |
21 | + | |
22 | + echo'</div>'; | |
23 | + echo $this->Form->input('listeformules',[ | |
24 | + 'options' => $formules | |
25 | + ]); | |
26 | + | |
27 | + echo $this->Form->input('type_suivi_id', [ | |
28 | + 'label' => 'Type d\'intervention', | |
29 | + 'options' => $typeSuivis, | |
30 | + 'default' => 3 | |
51 | 31 | ]); |
32 | + | |
33 | + echo '<div id="frequence" style="display:none">'; | |
34 | + echo '</div>'; | |
35 | + | |
52 | 36 | echo $this->Form->input('organisme', ['label' => 'Prestataire']); |
53 | 37 | |
54 | 38 | echo $this->Form->input('groupes_thematique_id', ['label' => $configuration->nom_groupe_thematique, 'options' => $groupesThematiques, 'default' => $materiel['groupes_thematique_id']]); |
55 | 39 | echo $this->Form->input('groupes_metier_id', ['label' => $configuration->nom_groupe_metier, 'options' => $groupesMetiers, 'default' => $materiel['groupes_metier_id']]); |
56 | - | |
57 | - echo $this->Form->input('commentaire', ['type' => 'textarea']); | |
58 | - | |
59 | - echo $this->Form->hidden('nom_createur', ['value' => $username ]); | |
40 | + | |
41 | + echo $this->Form->input('intitule', ['label' => 'Intitulé', 'required'=> 'required']); | |
42 | + | |
43 | + echo '<div id="typedemesure">'; | |
44 | + echo '</div>'; | |
45 | + echo '<div id="metro">'; | |
46 | + echo '</div>'; | |
47 | + | |
48 | + echo $this->Form->input('commentaire', ['type' => 'textarea']); | |
49 | + | |
50 | + echo $this->Form->hidden('nom_createur', ['value' => $username ]); | |
60 | 51 | ?> |
61 | 52 | </fieldset> |
62 | 53 | <?= $this->Form->submit(__('Valider')) ?> |
... | ... | @@ -72,6 +63,98 @@ |
72 | 63 | |
73 | 64 | <script type="text/javascript"> |
74 | 65 | |
66 | + | |
67 | + | |
68 | + | |
69 | + $(document).ready(function () { | |
70 | + $("#type-suivi-id").bind("change", function (event) { | |
71 | + var domaineId=$("#type-suivi-id :selected").text(); | |
72 | + | |
73 | + if (domaineId== "Réparation" || domaineId == "Etalonnage externe" || domaineId== "Etalonnage interne" || domaineId =="Maintenance") { | |
74 | + document.getElementById('metro').innerHTML =""; | |
75 | + document.getElementById('typedemesure').innerHTML = ""; | |
76 | + }else { | |
77 | + document.getElementById('typedemesure').innerHTML ="<div class=\"input select required\"><label for=\"typemesure\">Type de mesure</label><select name=\"typemesure\" onchange=\"typedemesure()\" id=\"typemesure\"><option value=\"1\">Direct</option><option value=\"2\">Indirect</option></select></div>"; | |
78 | + typedemesure(); | |
79 | + } | |
80 | + if( domaineId == "Réparation"){ | |
81 | + document.getElementById('frequence').innerHTML = ""; | |
82 | + $("#frequence").hide(); | |
83 | + } | |
84 | + else{ | |
85 | + $("#frequence").show(); | |
86 | + document.getElementById('frequence').innerHTML = "<div class=\"input text required\" ><table id=\"tableAlignementFrequence\" ><tbody><tr><td><div class=\"A\"><label for=\"SuiviFrequence\">Fréquence</label><input type=\"text\" name=\"frequence\" id=\"SuiviFrequence\" placeholder=\"\" required=\"required\" maxlength=\"11\"></div></td><td><div class=\"typeFrequence\" ><select name=\"type_frequence\" id=\"type-frequence\"><option value=\"/ Jours\">/ Jours</option><option value=\"/ Semaines\">/ Semaines</option><option value=\"/ Mois\" selected=\"selected\">/ Mois</option><option value=\"/ Ans\">/ Ans</option></select></div></td></tr></tbody></table></div>"; | |
87 | + | |
88 | + } | |
89 | + | |
90 | + }); | |
91 | + }); | |
92 | + | |
93 | + | |
94 | + function typedemesure(){ | |
95 | + var domaineId=$("#type-suivi-id :selected").text(); | |
96 | + var opts =""; | |
97 | + $('#listeunite option').each(function(){ | |
98 | + if($(this).val()==10){ | |
99 | + opts += "<option selected=\"selected\" value=\""+$(this).val()+"\">"+$(this).text()+"</option>"; | |
100 | + }else{ | |
101 | + opts += "<option value=\""+$(this).val()+"\">"+$(this).text()+"</option>"; | |
102 | + } | |
103 | + }); | |
104 | + | |
105 | + var listformule = "<option selected=\"selected\"></option>"; | |
106 | + $('#listeformule option').each(function(){ | |
107 | + listformule += "<option value=\""+$(this).val()+"\">"+$(this).text()+"</option>"; | |
108 | + | |
109 | + } | |
110 | + ); | |
111 | + | |
112 | + | |
113 | + if($('#typemesure option:selected').val() == '1'){ | |
114 | + document.getElementById('metro').innerHTML ="<div class=\"input text required\" ><label for=\"nommesure\">Nom de la mesure</label><input type=\"text\" name=\"nommesure\" maxlength=\"45\" id=\"nommesure\"></div><div class=\"input text required\" ><label for=\"symbole\">Symbole</label><input type=\"text\" name=\"symbole\" maxlength=\"45\" id=\"symbole\"></div>"; | |
115 | + document.getElementById('metro').innerHTML +="<div class=\"input select required\" ><label for=\"unite-id\">Unité</label><select name=\"unite_id\" id=\"unite-id\" >"+opts+"</select></div>"; | |
116 | + }else{ | |
117 | + document.getElementById('metro').innerHTML ="<div class=\"input select required\" ><label for=\"formule_id\">Formule</label><select onchange=\"changeformule()\" name=\"formule_id\" id=\"formule-id\" >"+listformule+"</select></div>"; | |
118 | + document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"nommesure\">Nom de la mesure</label><input type=\"text\" readonly name=\"nommesure\" maxlength=\"45\" id=\"nommesure\"></div>"; | |
119 | + document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"symbole\">Symbole</label><input type=\"text\" readonly name=\"symbole\" maxlength=\"45\" id=\"symbole\"></div>"; | |
120 | + document.getElementById('metro').innerHTML +="<div class=\"input text required\" ><label for=\"unite\">Unité</label><input type=\"text\" readonly name=\"unite\" id=\"unite\"></div>"; | |
121 | + } | |
122 | + document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"valeurref\">Valeur de référence</label><input type=\"number\" name=\"valeurRef\" step=\"any\" id=\"valeurref\"></div><div class=\"input number\" ><label for=\"plage-debut\">Plage de mesure (debut)</label><input type=\"number\" name=\"plage_debut\" step=\"any\" id=\"plage-debut\"></div><div class=\"input number\" ><label for=\"plage-fin\">Plage de mesure (fin)</label><input type=\"number\" name=\"plage_fin\" step=\"any\" id=\"plage-fin\"></div>"; | |
123 | + document.getElementById('metro').innerHTML +="<div class=\"input number required\" ><label for=\"resolution\">Resolution</label><input type=\"number\" name=\"resolution\" step=\"any\" id=\"resolution\"></div><div class=\"input number required\" ><label for=\"tolerance\">Tolerance</label><input type=\"number\" name=\"tolerance\" step=\"any\" id=\"tolerance\"></div><div class=\"input number\" ><label for=\"sensibilite\">Sensibilité</label><input type=\"number\" name=\"sensibilite\" step=\"any\" id=\"sensibilite\"></div>"; | |
124 | + document.getElementById('metro').innerHTML +="<div class=\"input number \" ><label for=\"justesse\">Justesse</label><input type=\"number\" name=\"justesse\" step=\"any\" id=\"justesse\"></div><div class=\"input number \" ><label for=\"fidelite\">Fidelite</label><input type=\"number\" name=\"fidelite\" step=\"any\" id=\"fidelite\"></div><div class=\"input number required\" ><label for=\"emtstandart\">EMT standart</label><input type=\"number\" name=\"emtstandart\" step=\"any\" id=\"emtstandart\"></div>"; | |
125 | + | |
126 | + | |
127 | + | |
128 | + } | |
129 | + | |
130 | +function changeformule(){ | |
131 | + var listeformules = $('#listeformules'); | |
132 | + var formule_id=document.getElementById('formule-id').options[document.getElementById('formule-id').selectedIndex].value; | |
133 | + var re=new RegExp('.*\"id\": '+formule_id+',.*'); | |
134 | + var formule; | |
135 | + var formule_array; | |
136 | + $('#listeformules option').each(function() { | |
137 | + if(re.test($(this).text())){ | |
138 | + formule =$(this).text(); | |
139 | + formule= formule.substring(2,formule.length-2); | |
140 | + var reg=new RegExp('[ ,:]+'); | |
141 | + formule_array = formule.split(reg); | |
142 | + var regE=new RegExp('[ "]+'); | |
143 | + for(var i=0; i< formule_array.length;i++){ | |
144 | + if(regE.test(formule_array[i])){ | |
145 | + formule_array[i]= formule_array[i].substring(1,formule_array[i].length-1); | |
146 | + } | |
147 | + } | |
148 | + } | |
149 | + }); | |
150 | + document.getElementById("nommesure").value=formule_array[4]; | |
151 | + document.getElementById("symbole").value=formule_array[8]; | |
152 | + document.getElementById("unite").value=formule_array[10]; | |
153 | + var var_array = new Array(<?php $variables ?>); | |
154 | + alert(var_array); | |
155 | + } | |
156 | + | |
157 | + | |
75 | 158 | /** |
76 | 159 | * Event calcul date prochain controle |
77 | 160 | */ | ... | ... |
src/Template/Suivis/view.ctp
... | ... | @@ -26,8 +26,8 @@ |
26 | 26 | ['style'=>'margin-left: 10px', 'title' => 'Attacher un Doc. à ce suivi', |
27 | 27 | 'escape' => false] |
28 | 28 | ); |
29 | - | |
30 | - } | |
29 | + | |
30 | + } | |
31 | 31 | ?> |
32 | 32 | </div> |
33 | 33 | |
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | $displayElement(__('Materiel'), $suivi->has('materiel') ? $this->Html->link($suivi->materiel->designation, ['controller' => 'Materiels', 'action' => 'view', $suivi->materiel->id]) : ''); |
38 | 38 | $displayElement(__('Numéro interne (labo)'), $suivi->has('materiel') ? h($suivi->materiel->numero_laboratoire) : ''); |
39 | 39 | $displayElement(__('Statut'), h($suivi->statut)); |
40 | - $displayElement(__('Date Intervention'), h($suivi->date_controle)); | |
40 | + $displayElement(__('Date Derniere Intervention'), h($suivi->date_controle)); | |
41 | 41 | $displayElement(__('Date Prochaine Intervention'), h($suivi->date_prochain_controle)); |
42 | 42 | $displayElement(__('Type d\'intervention'), $suivi->has('type_suivi') ? h($suivi->type_suivi->nom) : ''); |
43 | 43 | |
... | ... | @@ -47,32 +47,75 @@ |
47 | 47 | $displayElement(__($configuration->nom_groupe_thematique), $suivi->has('groupes_thematique') ? $this->Html->link($suivi->groupes_thematique->nom, ['controller' => 'GroupesThematiques', 'action' => 'view', $suivi->groupes_thematique->id]) : ''); |
48 | 48 | $displayElement(__($configuration->nom_groupe_metier), $suivi->has('groupes_metier') ? $this->Html->link($suivi->groupes_metier->nom, ['controller' => 'GroupesMetiers', 'action' => 'view', $suivi->groupes_metier->id]) : ''); |
49 | 49 | |
50 | - $displayElement(__('Commentaire'), h($suivi->commentaire)); | |
50 | + $displayElement(__('Intitulé'), h($suivi->intitule)); | |
51 | 51 | $displayElement(__('Date création'), h($suivi->created)); |
52 | 52 | $displayElement(__('Nom du créateur'), h($suivi->nom_createur)); |
53 | 53 | $displayElement(__('Date modification'), h($suivi->modified)); |
54 | 54 | $displayElement(__('Nom du modificateur'), h($suivi->nom_modificateur)); |
55 | + $displayElement(__('Intitulé'), h($suivi->intitule)); | |
56 | + ?> | |
55 | 57 | |
56 | - ?> | |
57 | - | |
58 | - | |
59 | - </table> | |
58 | + </table> | |
59 | + <?php | |
60 | + // Partie metrologie | |
61 | + if ($suivi->type_suivi->nom == "Vérification métrologique") { | |
62 | + echo '<h3 id="t_informations_metrologie" style="cursor: pointer;">'; | |
63 | + echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_metrologie"></i>'; | |
64 | + echo '<span style="text-decoration: underline;">Informations Métrologique</span>'; | |
65 | + echo '</h3>'; | |
66 | + echo '<div id="informations_metro" style="margin-bottom: 20px;">'; | |
67 | + echo '<table>'; | |
68 | + echo '<tr><th style="width: 200px;"></th><th></th><th></th><th></th></tr>'; | |
69 | + | |
70 | + echo '<tr><td><strong>' . __ ( 'Unite' ) . ' </strong></td><td>'. ($suivi->has('unite') ? h($suivi->unite->nom) : '' ). '</td><td></td><td></td></tr>'; | |
71 | + echo '<tr><td><strong>' . __ ( 'Plage de mesure (debut)' ) . ' </strong></td><td>' . h ( $suivi->plage_debut ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td></td><td></td></tr>'; | |
72 | + echo '<tr><td><strong>' . __ ( 'Plage de mesure (fin)' ) . ' </strong></td><td>' . h ( $suivi->plage_fin ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td></td><td></td></tr>'; | |
73 | + echo '<tr><td><strong>' . __ ( 'Resolution' ) . ' </strong></td><td>' . h ( $suivi->resolution ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td></td><td></td></tr>'; | |
74 | + echo '<tr><td><strong>' . __ ( 'Tolerance' ) . ' </strong></td><td>' . h ( $suivi->tolerance ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td><strong>' . __ ( 'Derniere Tolerance' ) . ' </strong></td><td>' . (isset($fiche) ? h($fiche->u) : '' ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td></tr>'; | |
75 | + echo '<tr><td><strong>' . __ ( 'Sensibilité' ) . ' </strong></td><td>' . h ( $suivi->sensibilite ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td><strong>' . __ ( 'Derniere sensibilite' ) . ' </strong></td><td>' . h($suivi->sensibilite) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td></tr>'; | |
76 | + echo '<tr><td><strong>' . __ ( 'Justesse' ) . ' </strong></td><td>' . h ( $suivi->justesse ).' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td><strong>' . __ ( 'Derniere justesse' ) . ' </strong></td><td>' .(isset($fiche) ? h($fiche->justesse) : '' ).' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td></tr>'; | |
77 | + echo '<tr><td><strong>' . __ ( 'Fidelite' ) . ' </strong></td><td>' . h ( $suivi->fidelite ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td><strong>' . __ ( 'Derniere fidelite' ) . ' </strong></td><td>' . (isset($fiche) ? h($fiche->uf) : '' ) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td></tr>'; | |
78 | + echo '<tr><td><strong>' . __ ( 'EMT standart' ) . ' </strong></td><td>' . h ( $suivi->emtstandart) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ).'</td><td><strong>' . __ ( 'Derniere emt standart' ) . ' </strong></td><td>' . h($suivi->emtstandart) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td></tr>'; | |
79 | + echo '<tr><td><strong>' . __ ( 'Derniere etat metrologique' ) . ' </strong></td><td>' . h ( $suivi->conforme) . '</td><td></td><td></td></tr>'; | |
80 | + echo '<tr></tr>'; | |
81 | + | |
82 | + echo '<tr><td><strong>' . __ ( 'Valeur de référence' ) . ' </strong></td><td>' . h ( $suivi->valeurRef) .' '.($suivi->has('unite') ? h($suivi->unite->symbole) : '' ). '</td><td></td><td></td></tr>'; | |
83 | + | |
84 | + if( $suivi->typemesure == "1"){ | |
85 | + echo '<tr><td><strong>' . __ ( 'Type de mesure' ) . ' </strong></td><td>' . h ("Direct") . '</td><td></td><td></td></tr>'; | |
86 | + }else{ | |
87 | + echo '<tr><td><strong>' . __ ( 'Type de mesure' ) . ' </strong></td><td>' . h ("Indirect") . '</td><td></td><td></td></tr>'; | |
88 | + } | |
89 | + | |
90 | + echo '</table>'; | |
91 | + echo '</div>'; | |
92 | + } | |
93 | + | |
94 | + ?> | |
95 | + | |
60 | 96 | <h3 id="t_fichiers" style="cursor: pointer;"> |
61 | 97 | <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichiers"></i> |
62 | 98 | <span style="text-decoration: underline;">Fichier(s) lié(s) au suivi (<?= count($suivi->documents) ?>)</span> |
63 | 99 | </h3> |
64 | 100 | <div id="fichiers" style="margin-bottom: 20px;"> |
65 | 101 | |
66 | - <?php if (!empty($suivi->documents)) { ?> | |
102 | + <?php if (!empty($suivi->documents) || $suivi->type_suivi->nom == "Vérification métrologique") { ?> | |
67 | 103 | <table> |
68 | 104 | <tr> |
69 | 105 | <th class="actions"><?= __('') ?></th> |
70 | - <th><?= __('Nom') ?></th> | |
71 | - <th><?= __('Type') ?></th> | |
106 | + <th><?= __('N°') ?></th> | |
107 | + <th><?= __('Liens/fichiers') ?></th> | |
72 | 108 | </tr> |
109 | + <?php $i=1; ?> | |
110 | + | |
111 | + <td class="actions" style="padding: 6px 0; text-align: left;"> | |
112 | + </td> | |
113 | + <td><?php echo $i; $i++; ?></td> | |
114 | + <td><?= $this->Html->link('Lien 1: Fiche métrologique', ['controller' => 'Fichemetrologiques', 'action' => 'add', $suivi->id]) ?></td> | |
115 | + | |
116 | + | |
73 | 117 | <?php foreach ($suivi->documents as $documents): |
74 | 118 | |
75 | - $type = $typeDocuments->find()->where(['id =' => h($documents->type_document_id)])->first()['nom']; | |
76 | 119 | |
77 | 120 | ?> |
78 | 121 | <tr> |
... | ... | @@ -90,16 +133,54 @@ |
90 | 133 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Documents', 'action' => 'delete', $documents->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $documents->id)]) ?> |
91 | 134 | </td> |
92 | 135 | <?php } ?> |
93 | - | |
136 | + <td><?= $i ?></td> | |
94 | 137 | <td><?= $this->Html->link($documents->nom, ['controller' => 'documents', 'action' => 'view', $documents->id]) ?></td> |
95 | - <td><?= $type ?></td> | |
96 | - | |
138 | + | |
139 | + <?php $i++; ?> | |
97 | 140 | </tr> |
98 | 141 | <?php endforeach; ?> |
99 | 142 | </table> |
100 | 143 | <?php }else { echo 'Aucun fichier pour ce matériel.'; } ?> |
101 | 144 | </div> |
102 | - | |
145 | + | |
146 | + <h3 id="t_fichemetrologiques" style="cursor: pointer;"> | |
147 | + <i class="icon-chevron-down" style="font-size: 14px;" id="i_fichemetrologiques"></i> | |
148 | + <span style="text-decoration: underline;">Archive du suivi metrologique (<?= count($suivi->fichemetrologiques) ?>)</span> | |
149 | + </h3> | |
150 | + <div id="fichemetrologiques" style="margin-bottom: 20px;"> | |
151 | + <?php if (!empty($suivi->fichemetrologiques)) { ?> | |
152 | + <table> | |
153 | + <tr> | |
154 | + <?php $i=1; ?> | |
155 | + <th class="actions"><?= __('') ?></th> | |
156 | + <th><?= __('N°') ?></th> | |
157 | + <th><?= __('Date') ?></th> | |
158 | + <th><?= __('Nom') ?></th> | |
159 | + <th><?= __('Etat metrologique') ?></th> | |
160 | + <th><?= __('Retard') ?></th> | |
161 | + </tr> | |
162 | + <?php foreach (array_reverse($suivi->fichemetrologiques, TRUE) as $fichemetrologique): | |
163 | + | |
164 | + ?> | |
165 | + <tr> | |
166 | + | |
167 | + <td class="actions" style="padding: 6px 0; text-align: left;"> | |
168 | + | |
169 | + | |
170 | + <?= $this->Html->link(__('<i class="icon-file"></i>'), ['controller' => 'Documents', 'action' =>'ficheMetrologique', $fichemetrologique->id], ['escape' => false, 'style' => 'margin:0'])?> | |
171 | + <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['controller' => 'Fichemetrologiques', 'action' => 'delete', $fichemetrologique->id], ['escape' => false, 'style' => 'margin:0', 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $fichemetrologique->id)]) ?> | |
172 | + </td> | |
173 | + <td><?php echo $i; $i++; ?></td> | |
174 | + <td><?php echo $fichemetrologique->datefiche; ?></td> | |
175 | + | |
176 | + <td><?php echo $this->Html->link('Fiche '.$fichemetrologique->id, ['controller' => 'Documents', 'action' => 'ficheMetrologique', $fichemetrologique->id]) ?></td> | |
177 | + <td><?php echo $fichemetrologique->conformeEMTstandart; ?></td> | |
178 | + <td><?php echo $fichemetrologique->retard; ?></td> | |
179 | + </tr> | |
180 | + <?php endforeach; ?> | |
181 | + </table> | |
182 | + <?php }else { echo 'Aucune fiche metrologique pour ce matériel.'; } ?> | |
183 | + </div> | |
103 | 184 | </div> |
104 | 185 | |
105 | 186 | <div class="actions"> | ... | ... |