Example #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"));
 }
Example #2
0
 /**
  * Método que retorna todas as materias com aulas amanhã
  * @param Turma $turma A turma a ser consultada
  * @return array Um array contendo as matérias com aulas amanhã
  */
 public function turmaAulasAmanha(Turma $turma)
 {
     $tableGatway = new TableGatway(new Disciplina(), "public.turma");
     $ano = Loader::data("config", "site", "ano_letivo");
     $dia = date("N", strtotime("+1 day"));
     $query = "select distinct on(fk_materia) * " . "from public.turma " . "inner join public.grade_horario on fk_turma=public.turma.pk_turma " . "inner join public.grade on pk_grade_horario=fk_grade_horario " . "inner join public.materia_vin on pk_materia_vin=fk_materia_vin " . "inner join public.materia on pk_materia=fk_materia " . "where public.turma.ano={$ano} " . "and dia={$dia} " . "and pk_turma={$turma->getId()}";
     return $tableGatway->querySelect($query);
 }
Example #3
0
 /**
  * Método que retorna todos os livros usados por uma determinada turma
  * @param Turma $turma
  * @return ResultSetHydrator Um objeto contendo o resultado da consulta
  */
 public function deTurma(Turma $turma)
 {
     $this->tg->defineColuna("fk_turma", $this->colInt);
     $resultset = $this->tg->selectObj($this->select()->distinct("volume")->join("apostilas.livro_turmas_vin", array("fk_livro" => "pk_livro"))->where(array("fk_turma" => $turma->getId(), "ano" => $this->anoLetivo))->order("volume"));
     if (!$resultset->rowCount()) {
         throw new LivroException("Não foram encontrados livros associados a turma");
     }
     return $resultset;
 }
Example #4
0
 /**
  * Método que gera o modelo de turma para a resposta
  * 
  * @param Turma $turma
  * 
  * @return stdClass
  */
 private function modelo($turma)
 {
     $tmp = false;
     if ($turma instanceof Turma) {
         $tmp = new stdClass();
         $tmp->id = $turma->getId();
         $tmp->nome = $turma->getNome();
     }
     return $tmp;
 }
Example #5
0
 /**
  * Método que retorna o próximo conteúdo não dado da matéria para a turma
  * @param Turma $turma A turma a ser consultada
  * @param stdClass $conteudo O ultimo conteúdo concluído
  * @return array Um array contendo objetos do tipo anexos referentes aos próximos conteudos
  */
 public function anexosPre(Turma $turma, $conteudo)
 {
     //Lendo o conteúdo seguinte
     $query = "select apostilas.conteudo.* " . "from apostilas.conteudo " . "inner join apostilas.capitulo on pk_capitulo=fk_capitulo " . "inner join public.materia_vin on pk_materia_vin=fk_materia_vin " . "inner join public.turma on public.turma.fk_serie=public.materia_vin.fk_serie " . "where pk_conteudo>{$conteudo->fk_conteudo} " . "and pk_turma={$turma->getId()} " . "and fk_materia={$conteudo->fk_materia} " . "order by pk_conteudo limit 1";
     $prepare = $this->tablegateway->getPDO()->query($query);
     $prepare->execute();
     if (!$prepare->rowCount()) {
         return array();
     }
     $conteudo = $prepare->fetchObject();
     $query = "select distinct on(pk_anexo) " . "* " . "from {$this->tablegateway->getTabela()} " . "inner join {$this->tablegateway->getTabela()}_vin on fk_anexo=pk_anexo " . "inner join apostilas.capitulo on pk_capitulo=fk_capitulo " . "inner join public.materia_vin on pk_materia_vin=fk_materia_vin " . "inner join public.materia on pk_materia=fk_materia " . "where posicao=" . Anexos::ANEXO_PRE . " " . "and fk_conteudo={$conteudo->pk_conteudo} ";
     return $this->tablegateway->querySelect($query)->fetchAll();
 }
 /**
  * Método que lista as questões associadas ao capítulo e que 
  * nenhum aluno da turma informada tenha respondido
  * @param Model $model O capitulo ou tópico a ser usado como filtro
  * @param Turma $turma A turma a ser excluída da resposta
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function semTurma(ConteudoInterno $model, Turma $turma)
 {
     if ($model instanceof Capitulo) {
         $tipoTeste = new TesteCapitulo();
         $fk = "fk_capitulo";
     } else {
         $tipoTeste = new TesteTopico();
         $fk = "pk_conteudo";
     }
     $tabela = $tipoTeste->getTabela();
     $tb = substr($tabela, strrpos($tabela, '.') + 1);
     $query = "SELECT distinct on(pk_questao)* FROM testes.questao " . "inner join testes.questao_vin_topico on " . "pk_questao=questao_vin_topico_pk_questao " . "inner join apostilas.conteudo on " . "pk_conteudo=questao_vin_topico_pk_conteudo " . "where " . "pk_questao not in (select {$tb}_questao_pk_questao " . "from testes.{$tb}_questao " . "inner join testes.{$tb} " . "on pk_{$tb}={$tb}_questao_pk_{$tb} " . "inner join public.usuario_aluno " . "on fk_usuario={$tb}_pk_usuario " . "WHERE fk_turma={$turma->getId()} " . "and ano_mat='{$this->anoLetivo}' " . "and status=" . Status::ATIVO . " " . "and {$tb}_ano={$this->anoLetivo}) " . "and {$fk}={$model->getId()} " . "limit {$tipoTeste->getMaxQuestoes()}";
     return $this->tg->querySelect($query);
 }
Example #7
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())));
 }
Example #8
0
 /**
  * Método que retorna os tópicos de um capítulo com o acompanhamento
  * @param Capitulo $capitulo
  * @param Turma $turma
  */
 public function deCapituloTurma(Capitulo $capitulo, Turma $turma)
 {
     $queryAcomp = "select apostilas.acompanhamento.status||','||" . "apostilas.acompanhamento.data_aula " . "from apostilas.acompanhamento " . "WHERE fk_conteudo=pk_conteudo and fk_turma={$turma->getId()} " . "and extract(year from data_aula)={$this->anoLetivo} " . "order by fk_aula desc " . "limit 1";
     return $this->tg->selectObj($this->select()->distinct("pk_conteudo")->columnsReset()->columns("*, ({$queryAcomp}) as topico_acompanhamento")->where(array("pk_capitulo" => $capitulo->getId())));
 }
 /**
  * Método que verifica se houve aula da matéria no dia informado
  * @param Turma $turma A turma a ser buscada
  * @param stdClass $materia A matéria a ser buscada
  * @param int $dia O dia a ser verificado
  */
 public function houveAulaMateria(Turma $turma, \Kernel\Modelo\Disciplina\Disciplina $materia, $dia)
 {
     $query = "select * from public.grade_horario " . "inner join public.grade on pk_grade_horario=fk_grade_horario " . "inner join public.materia_vin on pk_materia_vin=fk_materia_vin " . "where public.grade_horario.fk_turma={$turma->getId()} " . "and dia={$dia} and fk_materia={$materia->getId()} " . "limit 1";
     return (bool) $this->tableGatway->querySelect($query)->rowCount();
 }
Example #10
0
 /**
  * Método que lista todos os alunos de uma determinada turma.
  *
  * @param Turma $turma
  *
  * @return ResultSetHydrator
  */
 public function deTurma(Turma $turma)
 {
     $this->tg->defineColuna('fk_turma', new ResultSetMap(Column::INTEGER));
     return $this->tg->selectObj($this->select()->where(array('fk_turma' => $turma->getId())));
 }