Esempio n. 1
0
 /**
  * Método que retorna todos os liovros usados por uma determinada turma
  * @param Turma $turma
  * @return ResultSetHydrator Um objeto contendo o resultado da consulta
  */
 public function deTurma(Turma $turma)
 {
     $select = new Select();
     $this->tableGatway->defineColuna("fk_turma", new ResultSetMap(Column::INTEGER));
     $this->tableGatway->defineColuna("ano", new ResultSetMap(Column::INTEGER));
     return $this->tableGatway->selectObj($select->distinct("volume")->join("apostilas.livro_turmas_vin", array("pk_livro" => "apostilas.livro_turmas_vin.fk_livro"))->join("apostilas.livro_cat", array("pk_livro_cat" => "fk_livro_cat"))->where(array("fk_turma" => $turma->getId(), "ano" => $turma->getAno()))->order("volume"));
 }
Esempio n. 2
0
 /**
  * Método que retorna a série em que o aluno estuda
  * @param Aluno $aluno O aluno usado como filtro
  * @return Serie A série em que o aluno informado estuda
  */
 public function deAluno(Aluno $aluno)
 {
     $select = new Select();
     $serie = $this->tableGatway->selectObj($select->distinct("pk_serie")->join("public.turma", array("fk_serie" => "pk_serie"))->join("public.usuario_aluno", array("pk_turma" => "fk_turma"))->join("public.ensinos", array("ensino" => "pk_ensino"))->join("public.curso", array("pk_curso" => "fk_curso"))->where(array("fk_usuario" => $aluno->getId(), "ano" => \GGE\Lib\Controller\Loader::data("config", "site", "ano_letivo")))->limit(1));
     if (!$serie->rowCount()) {
         throw new Exception("Não foi encontrada nenhuma série para o aluno informado");
     }
     return $serie->fetch();
 }
Esempio n. 3
0
 /**
  * Método que retorna todos os professores 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 a resposta da consulta
  */
 public function deCoordenador(Coordenador $coordenador, Filtros $filtros)
 {
     $where = "";
     $select = $this->select()->join("public.grade", array("fk_usuario_professor" => "pk_usuario_professor"))->join("public.materia_vin", array("pk_materia_vin" => "public.grade.fk_materia_vin"));
     $this->filtrosUEST($select, $where, $filtros);
     $this->filtrosAGD($select, $where, $filtros);
     $selOrdem = new Select(array("professores" => $select->order("nome")->where($where)));
     return $this->tg->selectObj($selOrdem->distinct(array("pk_usuario"))->join("public.grade", array("fk_usuario_professor" => "pk_usuario_professor"))->join("public.turma_vin", array("fk_turma" => "public.grade.fk_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()}"));
 }
Esempio n. 4
0
 /**
  * Método que retorna todos anexos referentes aos conteúdo concluídos no dia da execução do método.
  * @param Turma $turma A classe referente a aula
  * @return array Um array de anexos contendo somente os anexos do com objetivo Pós-Aula
  */
 public function anexosPosHoje(Turma $turma)
 {
     if (!is_int($turma->getId())) {
         throw new TurmaException("A turma informada é inválida", 1);
     }
     if (!$turma->getId()) {
         throw new TurmaException("A turma informada é inválida", 2);
     }
     if (!Data::validar($turma->getAno(), "Y")) {
         throw new TurmaException("A turma informada é inválida", 3);
     }
     if (!$turma->getStatus()) {
         throw new TurmaException("A turma informada esta desativada no sistema");
     }
     $hoje = date("Y-m-d");
     $select = new Select();
     $select->distinct("pk_anexo")->join("apostilas.anexos_vin", array("fk_anexo" => "pk_anexo"))->join("apostilas.acompanhamento", array("apostilas.acompanhamento.fk_conteudo" => "apostilas.anexos_vin.fk_conteudo"))->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"))->where("posicao=" . Anexos::ANEXO_POS . " and data_aula='{$hoje}' " . "and apostilas.acompanhamento.status=" . Conteudos::STATUS_ACOMPANAHMENTO_CONCLUIDO);
     return $this->tablegateway->selectObj($select);
 }
Esempio n. 5
0
 /**
  * Método que retorna os ensinos associados ao professor informado
  * 
  * @param Professor $professor O professor usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator
  */
 public function deProfessor(Professor $professor, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} " . "and public.usuario_professor.fk_usuario={$professor->getId()}";
     $selectTemp = $this->select()->join("public.grade", array("fk_turma" => "pk_turma"))->join("public.usuario_professor", array("pk_usuario_professor" => "public.grade.fk_usuario_professor"));
     if ($filtros->issetVar("unidade")) {
         $where .= "and pk_unidade={$filtros->get("unidade")} ";
     }
     $select = new Select(array("ensinos" => $selectTemp->where($where)->order("nome_ensino")));
     return $this->tg->selectObj($select->distinct("pk_ensino"));
 }
Esempio n. 6
0
 /**
  * Método que retorna os conteúdos do livro informado com o seu andamento
  * @param Livro $livro O livro alvo da busca
  * @param Disciplina $disciplina A disciplina referente ao conteúdo
  * @throws \GGE\Lib\Base\Exception
  */
 public function deLivroComAcompanhamento(Livro $livro, Disciplina $disciplina)
 {
     $select = new Select();
     return $this->tableGatway->selectObj($select->distinct("sequencial_topico")->columns("*, apostilas.acompanhamento.status as topico_status, " . "data_aula as topico_data_aula ")->join("apostilas.capitulo", array("pk_capitulo" => "fk_capitulo"))->join("public.materia_vin", array("fk_materia_vin" => "pk_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.acompanhamento", array("pk_conteudo" => "fk_conteudo"))->where("fk_livro={$livro->getId()} " . "and pk_materia={$disciplina->getId()} " . "and (status=" . \Kernel\Modelo\Livro\Topico::STATUS_EM_ANDAMENTO . " " . "or status=" . \Kernel\Modelo\Livro\Topico::STATUS_CONCLUIDO . ") " . "and id=(select max(id) from apostilas.acompanhamento " . "where fk_conteudo=pk_conteudo and status!=" . \Kernel\Modelo\Livro\Topico::STATUS_REVISADO . ") " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo"))->order("sequencial_topico"));
 }
 /**
  * Método que lista todas as mensagens para o aluno informado
  * A consulta busca apenas por turmas pois foi definido assim no projeto
  * @param Usuario $destinatario O aluno de destino da mensagem
  * @param FiltrosSistema $filtrosSistema
  * @return ResultSetHydrator
  */
 public function listarTodas(Usuario $destinatario, FiltrosSistema $filtrosSistema = null)
 {
     $select = new Select();
     return $this->tableGatway->selectObj($select->distinct("agendas_semanais.mensagem_alunos.id")->join("agendas_semanais.mensagem_alunos_destinatarios", array("agendas_semanais.mensagem_alunos.id" => "mensagem"))->join("public.turma", array("pk_turma" => "pk_destinatario"))->join("public.usuario_aluno", array("fk_turma" => "pk_turma"))->where(array("fk_usuario" => $destinatario->getId()))->order("agendas_semanais.mensagem_alunos.id", Order::DSC)->limit(3));
 }
Esempio n. 8
0
 /**
  * Método que lista todos os anexos relacionados ao tópico informado
  * @param Topico $topico O tópico usado como filtro
  * @return ResultSetHydrator Um objeto contendo os dados da resposta da consulta
  * @throws LivroException
  */
 public function deTopicoProfessor(Topico $topico, \Kernel\Modelo\Perfis\Professor $professor)
 {
     if (!$topico->getId()) {
         throw new LivroException("O tópico informado não é válido");
     }
     $this->tablegateway->defineColuna("fk_conteudo", new ResultSetMap(Column::INTEGER));
     $select = new Select();
     return $this->tablegateway->selectObj($select->distinct("pk_anexo")->join("apostilas.anexos_vin", array("pk_anexo" => "fk_anexo"))->join("public.usuario_tipo_vin", array("fk_usuario" => "anexos_usuario_insert", "fk_tipo_usuario" => "anexos_tipo_usuario_insert"))->join("public.usuario", array("fk_usuario" => "pk_usuario"))->where(array("fk_conteudo" => $topico->getId(), "anexos_usuario_insert" => $professor->getId(), "anexos_tipo_usuario_insert" => \Kernel\Modelo\Perfil::PROFESSOR)));
 }
 /**
  * Método que retorna todas as mensagens já enviadas.
  * A busca acontece apenas por turma pois foi definido assim no projeto
  * @param Aluno $aluno Se informado, exibe todas as mensagens enviadas por este usuário
  * @param int $limit O limite de mensagens a serem exibidas
  */
 public function listarMensagens(Aluno $aluno, $limit = 15)
 {
     $tableGatway = new TableGatway(new Mensagens(), "transf.area_transf");
     $select = new Select();
     return $tableGatway->selectObj($select->distinct("pk_area_transferencia")->join("transf.area_transf_tipo", array("pk_area_transf_tipo" => "fk_area_transf_tipo"))->join("transf.area_transferencia_dest", array("fk_area_transferencia" => "pk_area_transferencia"))->join("public.usuario", array("pk_usuario" => "fk_usuario_remetente"))->join("public.turma", array("pk_turma" => "transf.area_transferencia_dest.fk_turma"))->join("public.usuario_aluno", array("fk_turma" => "pk_turma"))->where("public.usuario_aluno.fk_usuario={$aluno->getId()}")->order("pk_area_transferencia", Order::DSC)->limit($limit));
 }