Пример #1
0
 /**
  * Método que retorna o total de registros de acordo com o tipo ou subtipo
  * informado nos filtros
  * 
  * @param Professor $professor O professor alvo
  * @param Filtros $filtros Objeto do sistema de filtros
  */
 private function totalTipoSubtipo(Professor $professor, Filtros $filtros)
 {
     $where = "{$this->tabela}.fk_usuario_professor={$professor->getIdEspecifico()} ";
     $subSelect = new Select($this->tabela);
     $subSelect->columns(array("pk_fap_registro"))->distinct("pk_fap_registro");
     if ($filtros->issetGet("tipo_fap")) {
         $subSelect->join("fap.fap_subtipo", array("pk_fap_subtipo" => "fk_fap_subtipo"));
         $where .= "and fk_fap_tipo={$filtros->get("tipo_fap")}";
     }
     if ($filtros->issetGet("subtipo_fap")) {
         $where .= "and fk_fap_subtipo={$filtros->get("subtipo_fap")}";
     }
     //Filtrando por periodo
     if ($filtros->issetVar(array('unidade', 'ensino', 'serie', 'turma'))) {
         $subSelect->join("public.aula", array("pk_aula" => "{$this->tabela}.fk_aula"))->join("public.grade", array("pk_grade" => "public.aula.fk_grade"));
         $this->filtrosUEST($subSelect, $where, $filtros);
     }
     $this->filtrosPeriodo($where, $filtros);
     $select = new Select(array("fap" => $subSelect->where($where)));
     $select->columns("count(pk_fap_registro) as total");
     $prepare = $this->tg->getPDO()->prepare($select);
     $prepare->execute();
     $obj = $prepare->fetchObject();
     return (int) $obj->total;
 }
Пример #2
0
 /**
  * Método que lista apenas os ensinos associados ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo todos os dados da consulta
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} ";
     $selectTemp = $this->select();
     if ($filtros->issetVar("unidade")) {
         $where .= "and pk_unidade={$filtros->get("unidade")} ";
     }
     $select = new Select(array("ensinos" => $selectTemp->columns(array("pk_turma"))->where($where)->order("nome_ensino")));
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_ensino"));
 }
Пример #3
0
 /**
  * Método que retorna a turma que o aluno estuda
  * @param Aluno $aluno
  * @return Turma Um objeto do tipo turma contendo o resultado da consulta
  * @throws Exception
  */
 public function deALuno(Aluno $aluno)
 {
     $ano = \GGE\Lib\Controller\Loader::data("config", "site", "ano_letivo");
     $select = new Select();
     $this->tableGatway->defineColuna("fk_usuario", new ResultSetMap(Column::INTEGER));
     $this->tableGatway->defineColuna("ano", new ResultSetMap(Column::VARCHAR));
     $turmaResultSet = $this->tableGatway->selectObj($select->join("public.usuario_aluno", array("pk_turma" => "fk_turma"))->where("fk_usuario={$aluno->getId()} " . "and ano={$ano} " . "and public.usuario_aluno.status=" . \GGE\Lib\Models\Status::ATIVO . " " . "and public.turma.status=" . \GGE\Lib\Models\Status::ATIVO)->limit(1));
     if (!$turmaResultSet->rowCount()) {
         throw new TurmaException("Não foi encontrada nenhuma turma associada ao aluno informado");
     }
     return $turmaResultSet->fetch();
 }
Пример #4
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();
 }
Пример #5
0
 /**
  * Método que retorna um determinado capítulo de acordo com o id informado
  * @param int $id O indice do capítulo desejado
  * @return Capitulo Um objeto capítulo de acordo com o id informado
  * @throws LivroException
  */
 public function get($id)
 {
     if (!is_int($id)) {
         throw new LivroException("O capítulo informado não é válido");
     }
     $select = new Select();
     $resultset = $this->tableGatway->selectObj($select->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_capitulo" => $id)));
     if (!$resultset->rowCount()) {
         throw new LivroException("O capítulo informado não foi encontrado");
     }
     return $resultset->fetch();
 }
Пример #6
0
 /**
  * Método que retorna um determinado professor caso ele esteja 
  * associado ao coordenador infromado
  * @param Coordenador $coordenador O coordenado usado como filtro
  * @param Professor $professor Um objeto contendo o id do professor pedido.
  * Serve como modelo em caso de herança
  * @return Professor Um objeto contendo os dados do professor informado
  * @throws UsuarioException
  */
 public function getDeCoordenador(Coordenador $coordenador, Professor $professor)
 {
     if (!$coordenador->getId()) {
         throw new UsuarioException("O coordenador informado é inválido");
     }
     if (!$professor->getId()) {
         throw new UsuarioException("O professor informado é inválido");
     }
     $select = new Select();
     $resultset = $this->tg->selectObj($select->join($professor->getPerfil()->getTabela(), array("fk_usuario" => "pk_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()} " . "and pk_usuario={$professor->getId()}")->limit(1));
     if (!$resultset->rowCount()) {
         throw new UsuarioException("O professor informado não " . "foi encontrado, " . "esta desativado ou não esta associado ao coordendor");
     }
     return $resultset->fetch(new Professor());
 }
Пример #7
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);
 }
Пример #8
0
 /**
  * Método que gera um select básico para as consultas.
  *
  * @return Select Um select genérico
  */
 public function select()
 {
     $select = new Select();
     return $select->join('apostilas.capitulo', array('pk_capitulo' => 't_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'))->join('public.usuario', array('pk_usuario' => 't_capitulo_pk_usuario'))->join('public.usuario_aluno', array('fk_usuario' => 'pk_usuario'));
 }
Пример #9
0
 /**
  * Método que lista todos os alunos de uma determinada turma
  * @param Turma $turma
  * @return ResultSetHydrator
  */
 public function deTurma(Turma $turma)
 {
     $this->gatWayUsuario->defineColuna("fk_turma", new ResultSetMap(Column::INTEGER));
     $select = new Select();
     return $this->gatWayUsuario->selectObj($select->join("public.usuario_aluno", array("pk_usuario" => "fk_usuario"))->where(array("fk_turma" => $turma->getId())));
 }
Пример #10
0
 /**
  * Método que lista as equipes(grupos de disciplinas)
  * relacionadas ao coordenador informado
  * 
  * @param Coordenador $coordenador
  * @param Filtros $filtros
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $select = new Select(array("grupos" => $this->listarTodosBase($filtros)->order("materia_mae_nome")));
     //Retornando a resposta da consulta
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_materia_mae"));
 }
Пример #11
0
 /**
  * Método que lista todas as turmas associadas ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtros
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo as turmas encontradas
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} " . "and public.turma.status=" . Status::ATIVO;
     //Filtrando
     if ($filtros->issetGet("unidade")) {
         $where .= " and pk_unidade={$filtros->get("unidade")}";
     }
     if ($filtros->issetGet("ensino")) {
         $where .= " and pk_ensino={$filtros->get("ensino")}";
     }
     if ($filtros->issetGet("serie")) {
         $where .= " and pk_serie={$filtros->get("serie")}";
     }
     //Retornando a consulta
     $select = new Select(array("turmas" => $this->select()->distinct("pk_turma")->where($where)));
     return $this->tg->selectObj($select->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->order("turma_nome"));
 }
Пример #12
0
 /**
  * Método que retorna todas as disciplinas existentes em um determinado livro.
  *
  * @param Livro $livro O livro alvo da busca
  *
  * @return ResultSetHydrator Um objeto contendo os dados do retorno da consulta
  */
 public function deLivro(Livro $livro)
 {
     $select = new Select();
     $this->tg->defineColuna('fk_livro', $this->colInt);
     return $this->tg->selectObj($select->join('public.materia_vin', array('fk_materia' => 'pk_materia'))->join('apostilas.capitulo', array('fk_materia_vin' => 'pk_materia_vin'))->where(array('fk_livro' => $livro->getId()))->order("materia_nome"));
 }
Пример #13
0
 /**
  * Método que lista todas as áreas da natureza relacionadas ao coordenador informado
  * 
  * @param Coordenador $coordenador O coordenador usado como filtros
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo a resposta da requisição
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $selectAreas = new Select(array("areas" => $this->listarTodosBase($filtros)->order("area_nome")));
     return $this->tg->selectObj($selectAreas->join("public.turma_vin", array("fk_turma" => "pk_turma"))->join("public.coordenacao", array("pk_coordenacao" => "public.turma_vin.fk_coordenacao"))->join("public.coordenacao_vin", array("fk_coordenacao" => "pk_coordenacao"))->join("public.usuario_tipo_vin", array("pk_usuario_tipo_vin" => "public.coordenacao_vin.fk_usuario_tipo_vin"))->where("fk_usuario={$coordenador->getId()}")->distinct("pk_area"));
 }
Пример #14
0
 /**
  * Método que retorna um determinado aluno se este estiver associado ao coordenador informado.
  *
  * @param Coordenador $coordenador O coordenador usado como filtro
  * @param Aluno       $aluno       Objeto contendo o indice do aluno e um modelo para aresposta
  *
  * @throws UsuarioException
  *
  * @return Aluno Um objeto contendo todos os dados do aluno
  */
 public function getDeCoordenador(Coordenador $coordenador, Aluno $aluno)
 {
     $select = new Select(array("aluno" => $this->select()->columns(array("pk_turma" => "public.usuario_aluno.fk_turma"))->where("pk_usuario={$aluno->getId()} " . "and public.usuario_aluno.ano_mat='{$this->anoLetivo}' " . "and public.usuario_aluno.status=" . Status::ATIVO)));
     $resultset = $this->tg->selectObj($select->join('public.turma_vin', array('fk_turma' => 'pk_turma'))->join('public.coordenacao', array('pk_coordenacao' => 'fk_coordenacao'))->join('public.coordenacao_vin', array('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));
     if (!$resultset->rowCount()) {
         throw new UsuarioException('O aluno não foi encontrado ou não ' . 'esta associado ao coordenador logado');
     }
     return $resultset->fetch($aluno);
 }
Пример #15
0
 /**
  * Metodo que retorna uma consulta genérica para uso geral da classe
  */
 public function select()
 {
     $select = new Select();
     return $select->join("b_talentos.areas_interesse", array("pk_areas_interesse" => "candidato_pk_areas_interesse"));
 }
Пример #16
0
 /**
  * Método que adiciona as configurações para a filtragem por área da natureza,
  * frente(grupo) e disciplina.
  * 
  * @param Select  $select       A consulta base a ser configurada
  * @param type    $where        O teste para a consulta
  * @param Filtros $filtros      Objeto do sistema de filtros
  * @param type    $fkmateriaCol A coluna que se liga a tabela de disciplina
  * @param array   $filtrosArray Um array contendo so filtros a serem usados 
  * 
  * @return Select Uma consulta já configurada com os filtros
  */
 protected function filtrosAGD(Select &$select, &$where, Filtros $filtros, $fkmateriaCol = 'public.materia_vin.fk_materia', array $filtrosArray = array('disciplina', 'grupo', 'area_da_natureza'))
 {
     if ($filtros->issetVar($filtrosArray, false)) {
         //Adicionando as tabelas para a filtragem
         $select->join('public.materia', array('pk_materia' => $fkmateriaCol))->join('public.materia_mae', array('pk_materia_mae' => 'public.materia.fk_materia_mae'))->join('public.area', array('pk_area' => 'public.materia_mae.fk_area'));
         //Definindo os filtros especificos
         if ($filtros->issetVar('disciplina')) {
             $this->defWhere($where, 'pk_materia', $filtros->read('disciplina'));
         }
         if ($filtros->issetVar('grupo')) {
             $this->defWhere($where, 'pk_materia_mae', $filtros->read('grupo'));
         }
         if ($filtros->issetVar('area_da_natureza')) {
             $this->defWhere($where, 'pk_area', $filtros->read('area_da_natureza'));
         }
     }
     return $select;
 }
Пример #17
0
 /**
  * Método que retorna todas as disciplinas existentes em um determinado livro
  * @param Livro $livro O livro alvo da busca
  * @return ResultSetHydrator Um objeto contendo os dados do retorno da consulta
  */
 public function deLivro(Livro $livro)
 {
     $select = new Select();
     $this->tableGatway->defineColuna("fk_livro", new ResultSetMap(Column::INTEGER));
     return $this->tableGatway->selectObj($select->join("public.materia_vin", array("pk_materia" => "fk_materia"))->join("apostilas.capitulo", array("pk_materia_vin" => "fk_materia_vin"))->where(array("fk_livro" => $livro->getId())));
 }
Пример #18
0
 /**
  * Método que gera uma consulta básica para uso da classe.
  * Obs: Este método esta imcompleto.
  * @return Select Um objeto contendo uma consulta genérica
  */
 public function select()
 {
     $select = new Select();
     return $select->join("apostilas.conteudo", array("pk_conteudo" => "status_aluno_topico_pk_conteudo"))->join("public.usuario", array("pk_usuario" => "status_aluno_topico_pk_usuario"));
 }