find()->where(['id =' => 1])->first(); $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; $action = $this->request->params['action']; if($this->userHasRole('Administration')) return true; if($this->userHasRole('Responsable') && $action == 'fichemetro') return true; //Pour un "utilisateur" if (in_array($action, ['edit', 'delete'])) { $id = (int)$this->request->params['pass'][0]; if($this->isOwnedBy($id, $user['sn'][0].' '.$user['givenname'][0])) return true; if($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) return true; } return parent::isAuthorized($user); */ return true; } /** * Index method * * @return \Cake\Network\Response|null */ public function index() { $this->paginate = [ 'contain' => ['Suivis'] ]; $fichemetrologiques = $this->paginate($this->Fichemetrologiques->find('all')); $nbFichemetrologique = $this->Fichemetrologiques->find('all')->count(); $this->set(compact('fichemetrologiques','nbFichemetrologique')); $this->set('_serialize', ['fichemetrologique']); } /** * View method * * @param string|null $id Fichemetrologique id. * @return \Cake\Network\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function view($id = null) { $fichemetrologique = $this->Fichemetrologiques->get($id, [ 'contain' => ['Suivis'] ]); $unite = TableRegistry::get('Unites')->find()->select('nom')->where(['id ='=> $fichemetrologique->suivi->unite_id])->first()['nom']; $this->set('unite',$unite); $this->set('fichemetrologique', $fichemetrologique); $this->set('_serialize', ['fichemetrologique']); } /** * Add method * * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. */ public function add() { $fichemetrologique = $this->Fichemetrologiques->newEntity(); $numunite= TableRegistry::get('Suivis')->find()->select('unite_id')->where(['id ='=> $this->passedArgs[0]])->first()['unite_id']; $unite = TableRegistry::get('Unites')->find()->select('nom')->where(['id ='=> $numunite])->first()['nom']; $symbole= TableRegistry::get('Unites')->find()->select('symbole')->where(['id ='=> $numunite])->first()['symbole']; $resol = TableRegistry::get('Suivis')->find()->select('resolution')->where(['id ='=> $this->passedArgs[0]])->first()['resolution']; $suivi = TableRegistry::get('Suivis')->find()->where(['id ='=> $this->passedArgs[0]])->first(); if ($this->request->is('post')) { $fichemetrologique = $this->Fichemetrologiques->patchEntity($fichemetrologique, $this->request->data,['associated' => 'Mesures']); if($fichemetrologique->resolution == 0) $fichemetrologique->resolution = 'numerique'; else $fichemetrologique->resolution = 'cadran'; if($fichemetrologique->etatmateriel == 0) $fichemetrologique->etatmateriel = 'Neuf'; else if($fichemetrologique->etatmateriel == 1) $fichemetrologique->etatmateriel = 'RAS'; else $fichemetrologique->etatmateriel = 'dégradé'; $suivis = TableRegistry::get('Suivis')->get($this->passedArgs[0], [ 'contain' => [] ]); if(isset($suivi->date_prochain_controle)){ if($suivis->date_prochain_controle< $fichemetrologique->datefiche){ $fichemetrologique->retard='RAS'; } else{ $fichemetrologique->retard='OUI'; } } else{ $fichemetrologique->retard='RAS'; } if ($this->Fichemetrologiques->save($fichemetrologique)) { $suivis->conforme = $fichemetrologique->conformeEMTstandart; $suivis->date_controle = $fichemetrologique->datefiche; $datecontrole = $fichemetrologique->datefiche; $valfrequence = $suivis->frequence; if($suivis->type_frequence == '/ Jours') $type_freque= ' day'; else if($suivis->type_frequence == '/ Mois') $type_freque= ' month'; else if($suivis->type_frequence == '/ Ans') $type_freque= ' year'; else $type_freque=' week'; $suivis->date_prochain_controle = date('Y-m-d',strtotime('+'.$valfrequence.' '.$type_freque ,strtotime(date('Y-m-d')))); TableRegistry::get('Suivis')->save($suivis); $this->Flash->success(__('La fiche metrologique a bien été ajouté.')); return $this->redirect(['controller' => 'Suivis', 'action' => 'view', $fichemetrologique->suivi_id]); } else { $this->Flash->error(__('La fiche metrologique n\'a pas pu être ajouté.')); } } $this->set(compact('suivi','resol','unite','symbole','fichemetrologique')); $this->set('_serialize', ['fichemetrologique']); } /** * Edit method * * @param string|null $id Fichemetrologique id. * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. * @throws \Cake\Network\Exception\NotFoundException When record not found. */ public function edit($id = null) { $fichemetrologique = $this->Fichemetrologiques->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $fichemetrologique = $this->Fichemetrologiques->patchEntity($fichemetrologique, $this->request->data); if($fichemetrologique->typemesure == 0) $fichemetrologique->typemesure = 'direct'; else $fichemetrologique->typemesure = 'indirect'; if($fichemetrologique->resolution == 0) $fichemetrologique->resolution = 'numerique'; else $fichemetrologique->resolution = 'cadran'; if ($this->Fichemetrologiques->save($fichemetrologique)) { $this->Flash->success(__('La fichemetrologique a bien été édité.')); return $this->redirect(['action' => 'view', $id]); } else { $this->Flash->error(__('La fichemetrologique n\'a pas pu être édité.')); } } $this->set(compact('fichemetrologique')); $this->set('_serialize', ['fichemetrologique']); } /* * Delete method * * @param string|null $id Fichemetrologique id. * @return \Cake\Network\Response|null Redirects to index. * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function delete($id = null) { $this->request->allowMethod(['post', 'delete']); $fichemetrologique = $this->Fichemetrologiques->get($id); if ($this->Fichemetrologiques->delete($fichemetrologique)) { $this->Flash->success(__('La fiche metrologique a bien été supprimé.')); } else { $this->Flash->error(__('La fiche metrologique n\'a pas pu être supprimé.')); } return $this->redirect(['controller' => 'Suivis', 'action' => 'view', $fichemetrologique->suivi_id]); } }