Commit 7727c2818dfc2b913c3ff1c8f5ea374595eb0c45

Authored by Alexis Proust
1 parent 5973ba4e

mise a jour fichier

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. '&oelig;'
  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. '&oelig;'
  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">
... ...