/** * 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(); }
/** * 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(); }