/**
  * 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);
 }
Пример #3
0
 /**
  * Método que salva uma avaliação de um determinado extra
  * @param AnexosAvaliacao $avaliacao
  * @throws Exception
  */
 public function avaliar(AnexosAvaliacao $avaliacao)
 {
     $select = new Select();
     $ava = $this->tg->selectObj($select->where(array("anexos_ava_fk_anexo" => $avaliacao->getAnexo()->getId(), "anexos_ava_fk_usuario" => $avaliacao->getUsuario()->getId())));
     if ($ava->rowCount()) {
         $aval = $ava->fetch();
         return $this->tg->update("pk_anexos_ava={$aval->getId()}", array("anexos_ava_nota" => $avaliacao->getNota()));
     } else {
         return $this->tg->insert(array("anexos_ava_fk_anexo" => $avaliacao->getAnexo()->getId(), "anexos_ava_fk_usuario" => $avaliacao->getUsuario()->getId(), "anexos_ava_nota" => $avaliacao->getNota(), "anexos_ava_dt" => $avaliacao->getDtHora()->format("Y-m-d G:i:s")));
     }
 }
Пример #4
0
 /**
  * Método que lista usuários de um determinado perfil
  * @param Usuario $modelo
  * @return array
  * @throws UsuarioException
  */
 public function listar(Usuario $modelo = null)
 {
     //Montando a consulta
     $select = new Select();
     if (!is_null($modelo)) {
         //Caso seja buscado um usuário de acordo com o perfil
         $select->join("public.usuario_tipo_vin", array("pk_usuario" => "public.usuario_tipo_vin.fk_usuario"))->join("public.tipo_usuario", array("pk_tipo_usuario" => "fk_tipo_usuario"))->join($modelo->getPerfil()->getTabela(), array("pk_usuario" => $modelo->getPerfil()->getTabela() . ".fk_usuario"));
         $select->where(array("pk_tipo_usuario" => $modelo->getPerfil()->getId()));
     }
     //Realizando a consulta e testando o resultado
     $querySelect = $this->gatWayUsuario->selectObj($select);
     if (!$querySelect->rowCount()) {
         throw new UsuarioException("Não foram encontrados usuários do perfil informado");
     }
     return $querySelect->fetchAll($modelo);
 }
Пример #5
0
 /**
  * Método que retorna o tópico pedido
  * @param int $topico O código do tópico buscado
  * @return Topico Um objeto contendo os dados do tópico
  * @param boolea $apenasMinistrados Define se deve exibir qualquer tópico ou apenas os já ministrados em aula
  * @throws LivroException
  */
 public function getTopico($topico, $apenasMinistrados = TRUE)
 {
     if (!is_int($topico)) {
         throw new LivroException("O tópico informado não é válido");
     }
     $select = new Select();
     $tableGatway = new TableGatway(new Topico(), "apostilas.conteudo");
     $tableGatway->defineColuna("pk_conteudo", new ResultSetMap(Column::INTEGER));
     $select->columns("*, " . "apostilas.acompanhamento.data_aula as topico_data_aula," . "apostilas.acompanhamento.status as topico_status")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("pk_materia_vin" => "fk_materia_vin"))->join("public.materia", array("pk_materia" => "fk_materia"))->join("public.materia_mae", array("pk_materia_mae" => "fk_materia_mae"))->join("public.area", array("pk_area" => "fk_area"))->join("apostilas.livro", array("pk_livro" => "fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat"));
     if ((bool) $apenasMinistrados) {
         $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"));
     } else {
         $select->join("apostilas.acompanhamento", array("pk_conteudo" => "fk_conteudo"), Join::LEFT_JOIN);
     }
     $select->where(array("pk_conteudo" => $topico));
     $resultSet = $tableGatway->selectObj($select);
     if (!$resultSet->rowCount()) {
         throw new LivroException("O tópico informado não foi encontrado ou ainda não foi dado em aula");
     }
     return $resultSet->fetch();
 }
Пример #6
0
 /**
  * Método usado para buscas especificas, especialização criada 
  * para permitir o armazenamento de logs de exibições unicas.
  * Este método adiciona um "limit 1" ao fim da consulta e define o where 
  * baseado na coluna e indice informados
  * 
  * @param string $coluna A culuna usada para o busca
  * 
  * @param int $id O indice a ser buscado
  * 
  * @param Select $select A consulta a ser executada
  *
  * @return Model Um objeto contendo os dados de acordo com o indice 
  *               informado ou FALSE em caso de erro
  */
 public function get($coluna, $id, Select $select)
 {
     if (!(int) $id) {
         throw new SqlException("Foi informado um indice inválido para a consulta", 65);
     }
     if (!String::validarTipo($coluna)) {
         throw new SqlException("Foi informada uma coluna inválida para a consulta", 66);
     }
     $this->defineColuna($coluna, new ResultSetMap(Column::INTEGER));
     $this->salvarLog(Logs::GET, $id);
     $resultset = $this->selectObj($select->where(array($coluna => $id))->limit(1));
     if ($resultset->rowCount()) {
         return $resultset->fetch();
     } else {
         return false;
     }
 }