/** * Método que lista todos os comentários feitos para o anexo informado * @param Anexos $anexo * @return ResultSetHydrator Um objeto contendo conversões de modelos com os dados da consulta * @throws Exception */ public function comentariosDeAnexo(Anexos $anexo) { if (!is_int($anexo->getId())) { throw new Exception("O anexo informado não é válido", 11); } $select = new Select(); $select->where(array("comentario_fk_anexo" => $anexo->getId()))->join("public.usuario", array("comentario_fk_usuario" => "pk_usuario"))->join("apostilas.anexos", array("pk_anexo" => "comentario_fk_anexo")); return $this->tableGatway->selectObj($select); }
/** * Método que lista todos os comentários feitos para o anexo informado. * * @param Anexos $anexo * * @return ResultSetHydrator Um objeto contendo conversões de modelos com os dados da consulta * * @throws Exception */ public function comentariosDeAnexo(Anexos $anexo) { if (!is_int($anexo->getId())) { throw new Exception('O anexo informado não é válido', 11); } $select = new Select(); $select->where(array('comentario_fk_anexo' => $anexo->getId()))->join('public.usuario', array('comentario_fk_usuario' => 'pk_usuario'))->join('apostilas.anexos', array('pk_anexo' => 'comentario_fk_anexo')); return $this->tg->selectObj($select); }
/** * Método que retorna a disciplina de acordo com o anexo informado * @param \Kernel\Modelo\Livro\Anexos $anexo O anexo usado como filtro * @return \Kernel\Modelo\Disciplina\Disciplina A disciplina associada ao anexo informado * @throws \Kernel\Exception\DisciplinaException * @throws \Kernel\Exception\LivroException */ public function deAnexo(\Kernel\Modelo\Livro\Anexos $anexo) { if (!$anexo->getId()) { throw new \Kernel\Exception\LivroException("O anexo informado é inválido"); } $query = "select * from public.materia " . "inner join public.materia_vin on pk_materia=fk_materia " . "inner join apostilas.capitulo on pk_materia_vin=fk_materia_vin " . "inner join apostilas.conteudo on pk_capitulo=fk_capitulo " . "inner join apostilas.anexos_vin on apostilas.anexos_vin.fk_conteudo=pk_conteudo " . "or apostilas.anexos_vin.fk_capitulo=pk_capitulo " . "WHERE fk_anexo={$anexo->getId()} limit 1"; $resultset = $this->tableGatway->querySelect($query); if (!$resultset->rowCount()) { throw new \Kernel\Exception\DisciplinaException("A disciplina informada não foi encontrada"); } return $resultset->fetch(); }
/** * Método que retorna a avaliação do anexo informado * @param Anexos $anexo O anexo alvo da consulta * @param Usuario $aluno O aluno que fez a avaliação * @return AnexosAvaliacao Retorna a avaliação do anexo */ public function get(Anexos $anexo, Usuario $aluno) { $ava = $this->tableGatway->select(array("anexos_ava_fk_anexo" => $anexo->getId(), "anexos_ava_fk_usuario" => $aluno->getId())); if ($ava->rowCount()) { return $ava->fetch(); } else { return new AnexosAvaliacao(); } }
/** * Método responsável por atualizar o anexo informado * @param Anexos $anexo O anexo contendo os novos dados a serem atualizados no banco * @return boolean Retorna TRUE em caso de sucesso ou FALSE em caso de erro * @throws LivroException */ public function update(Anexos $anexo) { if (!is_int($anexo->getId())) { throw new Exception("O anexo informado não pode ser atualizado"); } return $this->tablegateway->update(array("pk_anexo" => $anexo->getId()), array("anexo_desc" => $anexo->getDescricao(), "arquivo_nome" => $anexo->getNome(), "extensao" => $anexo->getExtensao(), "subtipo" => $anexo->getSubtipo(), "objetivo" => $anexo->getObjetivo(), "obs" => $anexo->getObs(), "fonte" => $anexo->getFonte(), "fonte_url" => $anexo->getFonteUrl())); }
/** * Metodo que associa o código do anexo ao código da série, conteúdo e/ou capítulo. * * @param int O código do anexo a ser vinculado * @param Anexos $anexo O anexo a ser viinculado * @param Serie $serie A série referente ao anexo * @param Topico|Capitulo $voidConteudo O tópico ou capítulo referente ao anexo * * @return bool Retorna TRUE em caso de sucesso ou FALSE em caso de falha * * @throws PDOException */ public function insertVinculo(Anexos $anexo, Serie $serie, $voidConteudo) { if (!$anexo->getId()) { throw new LivroException('Nãp foi possível associar o anexo informado ao livro'); } if ($voidConteudo instanceof Topico) { $query = 'INSERT INTO apostilas.anexos_vin (fk_anexo, fk_conteudo, fk_serie) values (:fk_anexo, :fk_conteudo, :fk_serie)'; $prepare = $this->tg->getPDO()->prepare($query); $prepare->bindParam(':fk_conteudo', $voidConteudo->getId(), PDO::PARAM_INT); } elseif ($voidConteudo instanceof Capitulo) { $query = 'INSERT INTO apostilas.anexos_vin (fk_anexo, fk_serie, fk_capitulo) values (:fk_anexo, :fk_serie, :fk_capitulo)'; $prepare = $this->tg->getPDO()->prepare($query); $prepare->bindParam(':fk_capitulo', $voidConteudo->getId(), PDO::PARAM_INT); } else { $this->tg->getPDO()->rollBack(); throw new LivroException('Erro ao associar o anexo ao conteúdo'); } $prepare->bindParam(':fk_anexo', $anexo->getId(), PDO::PARAM_INT); $prepare->bindParam(':fk_serie', $serie->getId(), PDO::PARAM_INT); return $prepare->execute(); }