/** * 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)); }
/** * 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(); }
/** * 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(); }
/** * 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); }
/** * 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)); }
/** * 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); }
/** * 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; }
/** * 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))); }
/** * 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)); }
/** * 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')); }
/** * 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); }
/** * Método que retorna o código de associação do aluno com uma turma avançada * @param Aluno $aluno Objeto referente ao aluno * @return int|boolean O código de associação do aluno com a turma avançada ou FALSE caso não encontre * @throws Exception Caso o aluno não esteja devidamente instanciado */ public function pkAlunoTurmaAvancada(Aluno $aluno) { $tableGatway = new TableGatway(new Turma(), "turmas_extras.te_alunos_vin, turmas_extras.te_aulas, alunos_view"); $query = "SELECT distinct on(fk_usuario_aluno) " . "turmas_extras.te_alunos_vin.fk_usuario_aluno " . "FROM turmas_extras.te_alunos_vin, turmas_extras.te_aulas, alunos_view " . "WHERE turmas_extras.te_alunos_vin.fk_usuario_aluno=alunos_view.pk_usuario_aluno " . "and turmas_extras.te_alunos_vin.fk_turma=turmas_extras.te_aulas.fk_turma " . "and alunos_view.ano_mat='" . Loader::data("config", "site", "ano_letivo") . "' " . "and fk_te_tipo=" . Kernel_Models_Turma::EXTRA_COD_METAS_AVA . " " . "and alunos_view.pk_usuario=" . $aluno->getId(); return $tableGatway->querySelect($query); }
/** * 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")); }
/** * 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; }
/** * 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()))); }