/**
  * Verifica se um funcionário tem necessidades especiais, caso tenha retorna quantas ele tem.
  * @param FuncionarioModel $funcinoario
  * @param integer $necessidadeEspecialId
  */
 public function hasNecessidadeEspecial(FuncionarioModel $funcinoario, $necessidadeEspecialId = null)
 {
     $sql = "SELECT id FROM funcionario_necessidadesespeciais WHERE funcionario_id = {$funcinoario->getId()}";
     if ($necessidadeEspecialId) {
         $sql .= " AND necessidadeespecial_id = {$necessidadeEspecialId}";
     }
     $result = $this->conn->query($sql);
     return $result->rowCount();
 }
 public function update()
 {
     $id = $_POST['id'];
     $nome = $_POST['nome'];
     $salario = $_POST['salario'];
     $necessidadesEspeciais = $_POST['necessidadesEspeciais'];
     try {
         $funcionario = new FuncionarioModel();
         $funcionario->setId($id);
         $funcionario->setNome($nome);
         $funcionario->setSalario($salario);
         foreach ($necessidadesEspeciais as $id) {
             $necessidadeEspecial = new NecessidadeEspecialModel();
             $necessidadeEspecial->setId($id);
             $funcionario->addNecessidadeEspecial($necessidadeEspecial);
         }
         ConnectDB::open();
         ConnectDB::beginTransaction();
         $funcionarioDAO = new FuncionarioDAO();
         $funcionarioDAO->update($funcionario);
         $funcionarioDAO->updateNecessidadesEspeciais($funcionario);
         ConnectDB::commit();
         ConnectDB::close();
         header('location: index.php?c=FuncionarioController&m=index');
     } catch (PDOException $e) {
         echo $e->getMessage();
         ConnectDB::rollBack();
         ConnectDB::close();
     }
 }