/** * View method * * @param string|null $id Alerta id. * @return \Cake\Network\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function view($id = null) { $alerta = $this->Alertas->get($id, ['contain' => []]); $tomboEquip = $alerta->tomboEquipamento; $local = $this->Alertas->Equipamentos->find()->select(['codLocal'])->where(['tombo' => $tomboEquip])->first()->toArray(); $session = $this->request->session()->read('Auth.User.matricula'); $bolsistas = UsersController::getUsersLocalsBolsistas($local['codLocal']); $equipamento = $this->Alertas->Equipamentos->find()->where(['tombo' => $alerta->tomboEquipamento])->first()->toArray(); $this->set('session', $session); $this->set('bolsistas', $bolsistas); $this->set('alerta', $alerta); $this->set('equipamento', $equipamento); $this->set('_serialize', ['alerta', 'bolsistas', 'session', 'equipamento']); }
/** * bolsista method * * @param string|null $codigo Local codigo. * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. */ public function bolsista($codigo = null) { /** $local = $this->Locals->get($id, [ 'contain' => [] ]); **/ $local = $this->Locals->find()->where(['codigo' => $codigo])->all()->first(); if (is_null($local)) { throw new \Cake\Datasource\Exception\RecordNotFoundException("Ops! Algo de errado aconteceu.", 1); } $userAuth = $this->request->session()->read('Auth.User'); /** Bolsistas **/ $usersLocal = UsersController::getUsersLocalsBolsistas($local->codigo); /** Matriculas **/ $matriculas = UsersController::getMatriculaUsers($local->codigo); if (!empty($matriculas)) { /** Bolsistas **/ $userLocalsBolsistas = UsersController::getBolistas($local->codigo); } if ($this->request->is(['patch', 'post', 'put'])) { /** Trata o array de matriculas vindo do formulario **/ $matriculasForm = array_unique(array_merge($this->request->data['bolsistas'])); $matriculasForm = array_filter($matriculasForm); $matriculaInserir = array_diff($matriculasForm, $matriculas); $local = $this->Locals->patchEntity($local, $this->request->data); // Salva as outras informalções do local if ($this->Locals->save($local)) { /** Insere os novos registros **/ foreach ($matriculaInserir as $user) { UsersController::insereUserLocals($local->codigo, $user); } /** Deleta do tabela os que foram removidos **/ foreach ($usersLocal as $user) { if (!in_array($user->user_matricula, $matriculasForm)) { UsersController::deleteUserLocals($user->id); } } $this->Flash->success(__('Bolsistas alterados com sucesso.')); return $this->redirect(['action' => 'index']); } else { $this->Flash->error(__('Ops! Ocorreu um erro ao salvar.')); } } $bolsistas = $this->Locals->Users->find()->select(['nome', 'matricula'])->where(['role' => 'Bolsista'])->all()->toArray(); $this->set(compact('local', 'bolsistas', 'userLocalsBolsistas', 'usersLocal')); $this->set('_serialize', ['local']); }