Пример #1
0
 /**
  * Método que retorna as mensagens do aluno informado
  * 
  * @param Aluno $aluno
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deAluno(Aluno $aluno, Filtros $filtros)
 {
     $where = "public.usuario_aluno.fk_usuario={$aluno->getId()}";
     $select = $this->select()->distinct(array("pk_area_transferencia"))->join("public.usuario_aluno", array("fk_turma" => "transf.area_transferencia_dest.fk_turma"));
     $this->filtrosPeriodo($where, $filtros, "data_inc");
     $sel = new Select(array("mensagens" => $select->where($where)));
     return $this->tg->selectObj($sel->order(array("{$this->tg->getTabela(true)}_data_inc")));
 }
 /**
  * Método que retorna todos os atendimentos realizados ao aluno informado
  * 
  * @param Aluno $aluno O aluno alvo do atendimento
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator
  */
 public function deAluno(Aluno $aluno, Filtros $filtros)
 {
     $where = "public.usuario_aluno.fk_usuario={$aluno->getId()}";
     $select = $this->select();
     $this->filtrosPeriodo($where, $filtros);
     $this->filtrosUEST($select, $where, $filtros, "public.usuario_aluno.fk_turma");
     return $this->tg->selectObj($select->distinct(array("pk_afa_conceito_aluno"))->order(array("pk_afa_conceito_aluno"), Order::DSC)->where($where));
 }
Пример #3
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();
 }
Пример #4
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();
 }
Пример #5
0
 /**
  * Método que faz a tradução da resposta da consulta para o objeto.
  * 
  * @param array $dados
  */
 public function exchangeArray(array $dados)
 {
     parent::exchangeArray($dados);
     $this->exchangeArrayExtra($dados);
 }
Пример #6
0
 /**
  * Método que retorna as unidades relacionadas ao aluno informado
  * @param \Kernel\Modelo\Perfis\Aluno $aluno
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deAluno(\Kernel\Modelo\Perfis\Aluno $aluno)
 {
     $query = "select distinct on(pk_unidade) * " . "from {$this->tableGatway->getTabela()} " . "inner join public.turma on pk_unidade=fk_unidade " . "inner join public.usuario_aluno on fk_turma=pk_turma " . "where fk_usuario={$aluno->getId()} " . "and public.turma.status=" . Status::ATIVO . " " . "and public.usuario_aluno.status=" . Status::ATIVO . " " . "and ano=" . Loader::data("config", "site", "ano_letivo");
     return $this->tableGatway->querySelect($query);
 }
Пример #7
0
 /**
  * Método que retorna a turma que o aluno estuda
  * @param Aluno $aluno
  * @return ResultSetHydrator Um objeto do tipo turma contendo o resultado da consulta
  * @throws TurmaException
  */
 public function deALuno(Aluno $aluno)
 {
     if (!$aluno->getId()) {
         throw new UsuarioException("O aluno informado é inválido");
     }
     $this->tg->defineColuna("fk_usuario", $this->colInt);
     $turmaResultSet = $this->tg->selectObj($this->select()->distinct("pk_turma")->join("public.usuario_aluno", array("fk_turma" => "pk_turma"))->where(" fk_usuario={$aluno->getId()} " . " and ano={$this->anoLetivo} " . " and public.usuario_aluno.status=" . Status::ATIVO . " and public.turma.status=" . Status::ATIVO));
     return $turmaResultSet;
 }
 /**
  * Método que retorna todas as ações relacionadas ao aluno informado
  * @param Aluno $aluno O aluno base da consulta
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deAluno(Aluno $aluno)
 {
     $select = new Select(array("afa" => $this->select()->where("public.usuario_aluno.fk_usuario={$aluno->getId()} " . "and extract(year from data_anotacao)={$this->anoLetivo}")->distinct("pk_afa_conceito_aluno")->join("public.usuario_aluno", array("pk_usuario_aluno" => "{$this->tg->getTabela()}.fk_usuario_aluno"))));
     return $this->tg->selectObj($select->order("pk_afa_conceito_aluno", Order::DSC));
 }
Пример #9
0
 /**
  * Método temporário.
  * Retorna os indices do aluno informado
  * 
  * @param Aluno $aluno O aluno alvo
  * 
  * @return array Um array contendo os indices do aluno
  */
 public function inidices(Aluno $aluno)
 {
     $prepare = $this->tg->getPDO()->prepare($this->select()->columns(array("afa_p" => "'0'", "afa_n" => "'0'", "acao" => "'0'", "aten" => "'0'", "falta" => "'0'", "atraso" => "'0'"))->where("pk_usuario={$aluno->getId()}")->limit(1));
     $prepare->execute();
     return $prepare->fetch(PDO::FETCH_ASSOC);
 }
Пример #10
0
 /**
  * Método que retorna a série em que o aluno estuda
  * @param Aluno $aluno O aluno usado como filtro
  * @return ResultSetHydrator A série em que o aluno informado estuda
  */
 public function deAluno(Aluno $aluno)
 {
     $serie = $this->tg->selectObj($this->select()->distinct("pk_serie")->join("public.usuario_aluno", array("fk_turma" => "pk_turma"))->where(array("fk_usuario" => $aluno->getId(), "ano" => $this->anoLetivo)));
     return $serie;
 }
Пример #11
0
 /**
  * Metodo que retorna todas as disciplinas associadas ao aluno informado.
  *
  * @param Aluno $aluno
  */
 public function deAluno(Aluno $aluno)
 {
     $this->tg->defineColuna('fk_usuario', new ResultSetMap(Column::INTEGER));
     $this->tg->defineColuna('ano_mat', new ResultSetMap(Column::VARCHAR));
     return $this->tg->selectObj($this->select()->distinct('pk_materia')->join('public.turma', array('fk_serie' => 'public.materia_vin.fk_serie'))->join('public.usuario_aluno', array('fk_turma' => 'pk_turma'))->where(array('fk_usuario' => $aluno->getId(), 'ano_mat' => $this->anoLetivo)));
 }
Пример #12
0
 /**
  * Metodo que lista todos os registros do aluno informado feitos pelo coordenador informado.
  *
  * @param Aluno   $aluno   O aluno usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  *
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  *
  * @throws RegistrosException
  */
 public function deAlunoCoordenador(Coordenador $coordenador, Aluno $aluno, Filtros $filtros)
 {
     if (!$aluno->getId()) {
         throw new RegistrosException('O aluno informado não é válido');
     }
     $where = "public.usuario_aluno.fk_usuario={$aluno->getId()} " . "and {$this->tabela}.fk_usuario_coordenador={$coordenador->getIdEspecifico()} ";
     //Aplicando os filtros
     //-Pertiodo
     if ($filtros->issetVar('de')) {
         $where .= "and data_evento>='{$filtros->read('de')->format(Date::FORMAT_SQL_DATE)}' ";
     }
     if ($filtros->issetVar('ate')) {
         $where .= "and data_evento<='{$filtros->read('ate')->format(Date::FORMAT_SQL_DATE)}' ";
     }
     //-Tipo e subtipo
     if (!$filtros->issetVar(array('tipo_afa', 'subtipo_afa'))) {
         //Este trecho bloqueia a exibição de qualquer outro tipo de anotação
         $where .= 'and (pk_afa_tipo_anotacao=' . Tipo::TIPO_POSITIVO . ' ';
         $where .= 'or pk_afa_tipo_anotacao=' . Tipo::TIPO_NEGATIVO . ') ';
     } else {
         $this->filtrosTipoSub($where, $filtros);
     }
     //
     $select = new Select(array('afa' => $this->select()->distinct('pk_afa_conceito_aluno')->join("public.usuario_aluno", array("pk_usuario_aluno" => "{$this->tg->getTabela()}.fk_usuario_aluno"))->where($where)));
     return $this->tg->selectObj($select->order('afa.pk_afa_conceito_aluno', Order::DSC));
 }
Пример #13
0
 /**
  * Método que retorna as unidades relacionadas ao aluno informado.
  *
  * @param Aluno $aluno
  *
  * @return ResultSetHydrator Um objeto contendo a resposta da consulta
  */
 public function deAluno(Aluno $aluno)
 {
     return $this->tg->selectObj($this->select()->join('public.turma', array('fk_unidade' => 'pk_unidade'))->join('public.usuario_aluno', array('fk_turma' => 'pk_turma'))->where("fk_usuario={$aluno->getId()} " . ' and public.turma.status=' . Status::ATIVO . ' and public.usuario_aluno.status=' . Status::ATIVO . ' and ano=' . $this->anoLetivo)->distinct('pk_unidade'));
 }
Пример #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
 /**
  * Método que lista todos os vídeos cadastrados como anexos dos conteúdos
  * para o aluno informado
  * @param Aluno $aluno O aluno relacionado ao matérial
  * @param int $limit Define o máximo de vídeos a serem retornados
  * @return ResultSetHydrator Um objeto contendo os anexos busacdos
  */
 public function videosAcompanahemto(Aluno $aluno, $limit = 3)
 {
     $tableGatway = new TableGatway(new Anexos(), "apostilas.anexos");
     $sqlAnexos = new SqlAnexos();
     return $tableGatway->selectObj($sqlAnexos->select()->join("apostilas.anexos_vin", array("fk_anexo" => "pk_anexo"))->join("apostilas.acompanhamento", array("fk_conteudo" => "apostilas.anexos_vin.fk_conteudo"))->join("public.usuario_aluno", array("fk_turma" => "apostilas.acompanhamento.fk_turma"))->where("pk_usuario_aluno={$aluno->getIdEspecifico()} " . "and extract(year from data_aula)=" . Loader::data("config", "site", "ano_letivo") . " " . "and apostilas.anexos.tipo=" . Anexos::TIPO_VIDEO)->order("data_aula", Order::DSC)->limit($limit));
 }
Пример #16
0
 /**
  * Método que retorna os ensinos associados ao aluno informado
  * 
  * @param Aluno $aluno O aluno usado como filtro
  * @param Filtros $filtros Objeto do sistema de filtros
  * 
  * @return ResultSetHydrator
  */
 public function deAluno(Aluno $aluno, Filtros $filtros)
 {
     $where = "public.turma.ano={$this->anoLetivo} " . "and public.usuario_aluno.fk_usuario={$aluno->getId()}";
     $selectTemp = $this->select();
     if ($filtros->issetVar("unidade")) {
         $where .= "and pk_unidade={$filtros->get("unidade")} ";
     }
     $select = new Select(array("ensinos" => $selectTemp->columns(array("pk_turma"))->join("public.usuario_aluno", array("fk_turma" => "pk_turma"))->where($where)->order("nome_ensino")));
     return $this->tg->selectObj($select->distinct("pk_ensino"));
 }
Пример #17
0
 /**
  * Metodo que retorna um teste relacionado ao aluno e ao capítulo ou 
  * tópico informado. O capítulo é obtido por meio do tópico informado.
  *
  * @param Aluno $aluno O aluno alvo da busca
  * @param Model $model O capítulo relacionado a questão
  *
  * @return TesteCapitulo|bool Um objeto contendo os dados do teste 
  *                            ou FALSE caso não seja encontrado
  *
  * @throws TesteException
  */
 protected function deAlunoTopCap(Aluno $aluno, ConteudoInterno $model)
 {
     if (!$aluno->getId() || !$model->getId()) {
         throw new TesteException('O aluno ou capítulo informado é inválido');
     }
     if ($model instanceof Capitulo) {
         $fk = "pk_capitulo";
     } else {
         $fk = "pk_conteudo";
     }
     $resultset = $this->tg->selectObj($this->select()->distinct("pk_{$this->tabela}")->where(array("{$this->tabela}_pk_usuario" => $aluno->getId(), "{$this->tabela}_{$fk}" => $model->getId(), "{$this->tabela}_ano" => $this->anoLetivo)));
     if (!$resultset->rowCount()) {
         $return = false;
     } else {
         $teste = $resultset->fetch();
         $sqlQuestao = new SqlQuestao();
         $teste->setQuestoes($sqlQuestao->deTeste($teste)->fetchAll());
         $return = $teste;
     }
     return $return;
 }
Пример #18
0
 /**
  * Método que retorna todos os status dos tópicos já vistos pelo aluno no ano atual
  * @param Aluno $aluno
  * @return ResultSetHydrator Objeto contendo a resposta da consulta
  */
 public function porAluno(Aluno $aluno)
 {
     return $this->tg->selectObj($this->select()->where(array("status_aluno_topico_pk_usuario" => $aluno->getId())));
 }