/**
  * Método que retorna todos os professores associados a um determinado coordenador
  * @param \Kernel\Modelo\Perfis\Coordenador $coordenador O coordenador de filtro
  * @param \FiltrosSistema $filtros Objeto do sistema de filtros
  * @return \GGE\Lib\Sql\ResultSetHydrator Objeto contendo os professores relacionado ao coordenador
  * @throws \Kernel\Exception\UsuarioException
  */
 public function deCoordenador(\Kernel\Modelo\Perfis\Coordenador $coordenador, \FiltrosSistema $filtros)
 {
     if (!$coordenador->getId()) {
         throw new \Kernel\Exception\UsuarioException("O coordenador informado é inválido");
     }
     $professor = new \Kernel\Modelo\Perfis\Professor();
     $select = new \GGE\Lib\Sql\Querys\Select();
     return $this->gatWayUsuario->selectObj($select->join($professor->getPerfil()->getTabela(), array("pk_usuario" => "{$professor->getPerfil()->getTabela()}.fk_usuario"))->join("public.grade", array("public.grade.fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->join("public.turma_vin", array("public.turma_vin.fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("public.coordenacao_vin.fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "fk_usuario_tipo_vin"))->where("public.usuario_tipo_vin.fk_usuario={$coordenador->getId()}")->limit(1));
 }
 /**
  * Método que retorna os dados do tópico informado
  * @param int $id O id do tópico no banco de dados
  * @return Topico O tópico de acordo com o id informado
  * @throws \Kernel\Exception\LivroException
  */
 public function get($id)
 {
     if (!is_int($id)) {
         throw new \Kernel\Exception\LivroException("O tópico informado é inválido");
     }
     $select = new \GGE\Lib\Sql\Querys\Select();
     $resultset = $this->tableGatway->selectObj($select->join("apostilas.capitulo", array("fk_capitulo" => "pk_capitulo"))->join("apostilas.livro", array("pk_livro" => "fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat"))->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"))->where(array("pk_conteudo" => $id)));
     if (!$resultset->rowCount()) {
         throw new \Kernel\Exception\LivroException("O tópico informado não foi encontrado");
     }
     return $resultset->fetch();
 }
Exemple #3
0
 /**
  * Retorna a série associada ao topico informado
  * @param \Kernel\Modelo\Livro\Topico $topico O tópico usado como filtro
  * @return \Kernel\Modelo\Unidade\Serie Um objeto contendo os dados da série
  * @throws \Kernel\Exception\UnidadeException
  */
 public function deTopico(\Kernel\Modelo\Livro\Topico $topico)
 {
     if (!$topico->getId()) {
         throw new \Kernel\Exception\LivroException("O tópico informado é inválido");
     }
     $this->tableGatway->defineColuna("pk_conteudo", new \GGE\Lib\Sql\ResultSetMap(\GGE\Lib\Sql\Column::INTEGER));
     $select = new \GGE\Lib\Sql\Querys\Select();
     $resultset = $this->tableGatway->selectObj($select->join("apostilas.livro", array("pk_serie" => "fk_serie"))->join("apostilas.capitulo", array("pk_livro" => "fk_livro"))->join("apostilas.conteudo", array("pk_capitulo" => "fk_capitulo"))->where(array("pk_conteudo" => $topico->getId()))->limit(1));
     if (!$resultset->rowCount()) {
         throw new \Kernel\Exception\UnidadeException("A série informada não foi encontrada");
     }
     return $resultset->fetch();
 }