/** * Método que retorna um objeto contendo o modelo de consulta básica. * * @return Select Uma consulta básica */ public function select() { $sqlTurma = new SqlTurma(); $sqlTopico = new SqlTopico(); $t = $this->tg->getTabela(true); $select = new Select(); return $select->from($this->tg->getTabela())->columns(array("{$t}_status" => 'status', "{$t}_data_aula" => 'data_aula', '*'))->join('public.turma', array('pk_turma' => "{$this->tg->getTabela()}.fk_turma"))->import($sqlTurma->select())->join('apostilas.conteudo', array('pk_conteudo' => "{$this->tg->getTabela()}.fk_conteudo"))->import($sqlTopico->select()); }
/** * Método que gera um Select genérico para uso interno da classe * * @return Select Retorna um objeto contendo a base para as consultas */ public function select() { $t = $this->tg->getTabela(); $sqlUnidade = new SqlUnidade(); $sqlSerie = new SqlSerie(); $sqlTurma = new SqlTurma(); $sqlUsuario = new SqlUsuario(); $select = new Select($t); return $select->columns(array("pk_area_transf_dest" => "cod", "area_transf_dest_tipo" => "(case " . "when {$t}.fk_unidade!=0 then '" . Destinatario::UNIDADE . "' " . "when {$t}.fk_serie!=0 then '" . Destinatario::SERIE . "' " . "when {$t}.fk_turma!=0 then '" . Destinatario::TURMA . "' " . "else '" . Destinatario::USUARIO . "' " . "end)", "area_transf_dest_alvo" => "(case " . "when {$t}.fk_unidade!=0 " . "then ({$sqlUnidade->select()->columnsReset()->columns("unidade||''")->where("pk_unidade={$t}.fk_unidade")->limit(1)}) " . "when {$t}.fk_serie!=0 " . "then ({$sqlSerie->select()->columnsReset()->columns("serie||''")->where("pk_serie={$t}.fk_serie")->limit(1)}) " . "when {$t}.fk_turma!=0 " . "then ({$sqlTurma->select()->columnsReset()->columns("turma||''")->where("pk_turma={$t}.fk_turma")->limit(1)}) " . "else ({$sqlUsuario->select()->columnsReset()->columns("usuario||''")->where("pk_usuario={$t}.fk_usuario " . "and {$t}.fk_tipo_usuario=pk_tipo_usuario")->limit(1)}) " . "end)")); }
/** * Método que retorna a turma selecionada */ protected function selecionada() { $sqlTurma = new SqlTurma(); $id = false; $tmp = false; //Selecionando o id de acordo com o perfil logado switch ($this->tipoLogado) { case Perfil::ALUNO: $id = (int) $this->data["idTurmaAluno"]; break; default: break; } if ($id) { $turma = $sqlTurma->get($id); $tmp = $this->modelo($turma); } // $this->appendResposta($tmp); }
/** * Método que realiza as consultas de listagen de turmas de acordo com o usuário logado * * @param Filtros $filtros Objeto do sistema de filtros * * @return ResultSetHydrator Objeto contendo a resposta da consulta */ public function listar(Filtros $filtros, Usuario $usrFiltro = null) { $sqlTurma = new SqlTurma(); if ($usrFiltro instanceof Usuario) { $usuario = $usrFiltro; } else { $usuario = $this->usuarioLogado; } switch ($usuario->getPerfil()->getId()) { case Perfil::COORDENADOR: $coordenador = new Coordenador($usuario->getId()); return $sqlTurma->deCoordenador($coordenador, $filtros); case Perfil::ALUNO: $aluno = new Aluno($usuario->getId()); return $sqlTurma->deALuno($aluno, $filtros); case Perfil::PROFESSOR: $professor = new Professor($usuario->getId()); return $sqlTurma->deProfessor($professor, $filtros); default: return $sqlTurma->listarTodas($filtros); } }
/** * Método que gera um novo teste e o retorna para o aluno. */ private function get_novo_teste() { try { $this->filtro->initGets('topico'); $usrValidar = new Usuarios(); $sqlQuestao = new SqlQuestaoService(); $sqlTurma = new SqlTurma(); $sqlTopico = new SqlTopico(); $sqlAcomp = new SqlAcompanhamento(); $aluno = $usrValidar->getAluno(false); $topico = $sqlTopico->get($this->filtro->get('topico')); $capitulo = $topico->getCapitulo(); $acomp = $sqlAcomp->deTopico($topico); $tipo = filter_input(INPUT_GET, "testePara"); if ($tipo == "capitulo") { $sqlTeste = new SqlTesteCapitulo(); $novoTeste = new TesteCapitulo(); $novoDe = $capitulo; } elseif ($tipo == "topico") { $sqlTeste = new SqlTesteTopico(); $novoTeste = new TesteTopico(); $novoDe = $topico; } else { throw new Exception("O alvo do teste não é permitido"); } if ($acomp->getStatus() != Acompanhamento::STATUS_CONCLUIDO && $acomp->getStatus() != Acompanhamento::STATUS_REVISADO) { throw new Exception('O tópico informado ainda não ' . 'foi concluído. Tente outro.'); } $teste = $sqlTeste->porAlunoTopico($aluno, $topico); if ($teste) { //Caso já exista um teste if (!$teste->podeRefazer()) { //O teste já foi feito e não pode ser refeito throw new Exception('Você já realizou o teste. ' . 'Sua nota não permite refazer o teste. Que pena.'); } } else { //Caso ainda não exista um teste $turma = $sqlTurma->deALuno($aluno); $q1 = $sqlQuestao->semTurma($novoDe, $turma); $questoes = $q1->fetchAll(); if (count($questoes) < $novoTeste->getMaxQuestoes()) { $q2 = $sqlQuestao->questoesAdicionais($capitulo, $questoes); $questoes = array_merge($questoes, $q2->fetchAll()); } $teste = $novoTeste; $teste->setAluno($aluno); $teste->setAlvo($novoDe); $teste->setQuestoes($questoes); $sqlTeste->insert($teste); } $arrayTmp = array(); foreach ($teste->getQuestoes() as $questao) { $tmp = new stdClass(); $tmp->idQuestao = $questao->getId(); $tmp->questao = $questao->getQuestao(); $tmp->tipo = $questao->getTipo(); $tmp->tipoTexto = $questao->getTipoInsert(); $tmp->qtAlternativas = $questao->getNumAlternativas(); array_push($arrayTmp, $tmp); } //Gerando a resposta $this->setMensagem('Teste gerado com sucesso'); $this->appendResposta($arrayTmp); $this->statusTrue(); } catch (SqlException $sql) { $this->setMensagem('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.'); } catch (Exception $exc) { $this->setMensagem($exc->getMessage()); } $this->printResposta(); }
/** * Método que gera uma consulta básica para uso interno da classe * * @return Select */ public function select() { $select = new Select($this->tg->getTabela()); $sqlTurma = new SqlTurma(); return $select->columns("pk_aula")->columns(array("aula", "obs", "data_aula"), "aula_")->import($this->usrInsert(""))->join("public.grade", array("pk_grade" => "{$this->tg->getTabela()}.fk_grade"))->join("public.turma", array("pk_turma" => "public.grade.fk_turma"))->import($sqlTurma->select()); }
/** * Método que gera a página de distribuição de atendimentos por turmas * * @param int $pkUsuario O código do coordenador */ public function distribuicao_de_atendimentos_por_turmas($pkUsuario = 0) { try { $this->initGets(array('de', 'ate', 'unidade', 'ensino', 'serie', 'turma', 'coordenador')); $usr = new Usuarios(); $sqlAfa = new SqlAtenPedagogicosEqPedagogica(); $sqlTurmas = new SqlTurma(); // if ($this->filtro->issetGet('coordenador')) { $sqlCoord = new SqlCoordenador(); $coordenador = $sqlCoord->get($this->filtro->get('coordenador')); } else { $coordenador = $usr->getCoordenador((int) $pkUsuario); } $turmas = $sqlTurmas->deCoordenador($coordenador, $this->filtro); $anotacoes = $sqlAfa->deCoordenador($coordenador, $this->filtro); $this->loadPlugin('calc-itens')->setUserFiltros($coordenador)->setData('coordenador', $coordenador)->setData('turmas', $turmas->fetchAll())->setData('anotacoes', $anotacoes->fetchAll())->printView(); } catch (Exception $exc) { $this->close($exc); } }
/** * Método que lista todas as séries 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 séries encontradas */ 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")} "; } if ($filtros->issetVar("ensino")) { $where .= "and pk_ensino={$filtros->get("ensino")} "; } $sqlTurma = new SqlTurma(); $select = new Select(array("series" => $selectTemp->import($sqlTurma->select(), array("colunas"))->where($where)->order("serie_nome"))); 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_serie")); }
/** * Método que gera a página de exibição do tópico acessado na home do estudo online. * Só é exibido o tópico já dado em sala de aula. * * @param int $topicoId O código do tópico */ public function estudoOnlineTopico($topicoId) { $this->load->helper('link'); $usrAux = new Usuarios(); $sqlTurma = new SqlTurma(); $sqlTopico = new SqlTopicoAula(); $sqlAnexo = new SqlAnexosAula(); $sqlQuestao = new SqlQuestaoAula(); $sqlAcomp = new SqlAcompanhamento(); $sqlLivreto = new SqlLivretoAula(); $teste = false; try { $aluno = $usrAux->getAluno(false); $turma = $sqlTurma->deALuno($aluno)->fetch(); $topico = $sqlTopico->get((int) $topicoId); $anexos = $sqlAnexo->deTopicoECapitulo($topico); $acomp = $sqlAcomp->deTopico($topico); $livreto = $sqlLivreto->deTopico($topico); if ($acomp->getStatus() == Acompanhamento::STATUS_CONCLUIDO || $acomp->getStatus() == Acompanhamento::STATUS_REVISADO) { //Criando um teste para o tópico $sqlTeste = new SqlTesteTopico(); $teste = $sqlTeste->porAlunoTopico($aluno, $topico); if (!$teste) { //Verificando se existem questões cadastrdas para realizar o teste if ($sqlQuestao->temParaTopico($topico)) { //Tem //Gera o teste $teste = new TesteTopico(); } } } //Passando os dados para o view $this->loadPlugin('shadowbox'); $this->setData('aluno', $aluno); $this->setData('turma', $turma); $this->setData('livro', $livreto); $this->setData('topico', $topico); $this->setData('anexos', $anexos); $this->setData('teste', $teste); $this->printView(); } catch (SqlException $sql) { echo $sql->getMessage(); echo Javascript::alert('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.'); // $this->close(true); } catch (Exception $exc) { echo $exc->getMessage(); // $this->close(true); } }
/** * Método que gera o painel de acompanhamento do aluno * @param int $pkAluno O código do usuário referente ao aluno na * tabela de usuários */ public function painel_de_acompanhamento($pkAluno = 0) { if ($_SERVER['REQUEST_METHOD'] == "POST") { //Tratando a requisição POST $this->editarFoto($pkAluno); } if (!filter_input(INPUT_GET, "menu", FILTER_VALIDATE_BOOLEAN)) { //Definindo se deve ou não exibir o menu principal $this->setShadowBox(TRUE); } //Inicializando os objetos básicos $usrAux = new Usuarios(); $sqlUnidade = new SqlUnidade(); $sqlSerie = new SqlSerie(); $sqlTurmas = new SqlTurma(); $sqlResumo = new SqlResumoALuno(); $sqlAcomp = new SqlAcompanhamento(); $sqlAgenda = new SqlAgendaSemanalAluno(); $sqlRecuperacao = new SqlRecuperacao(); $centralNotifi = new Kernel_Models_Notificacoes(); //Refazer como lib $sqlPlantao = new SqlPlantaoPedagogico(); try { $aluno = $usrAux->getAluno((int) $pkAluno); $resumo = $sqlResumo->get($aluno->getId()); $alunoInfo = $sqlPlantao->get_aluno_info($aluno->getId()); // $videos = array(); $videos = array_merge($videos, $sqlAgenda->listarTodas($aluno)->fetchAll()); $videos = array_merge($videos, $sqlAcomp->videosAcompanahemto($aluno)->fetchAll()); //Definindo os parametros para as notificações $ids = array("aluno_conteudo_diario", "aluno_regs_afa", "aluno_aten_afa", "aluno_acao_afa", "aluno_novas_notas", "aluno_mensagens"); $parametros = array("idAluno" => (string) $aluno->getId()); $centralNotifi->getUltimos($ids, $parametros); $recParalela = $sqlRecuperacao->get_modulos_aluno($aluno->getIdEspecifico()); //Definindo os plugins usados na página e o template $this->definirTema("responsive"); if ($this->tipoLogado == Perfil::ALUNO || $this->tipoLogado == Perfil::RESPONSAVEL) { //As notificações só aparecem para o aluno ou responsável $this->loadPlugin("notif.center"); } $this->bowerLoad("jquery-form"); $this->loadPlugin("shadowbox"); $this->loadPlugin("file_upload"); //Passando os dados para a view e exibindo a página $this->setData("aluno", $aluno); $this->setData("resumo", $resumo); $this->setData("unidades", $sqlUnidade->deAluno($aluno)->fetchAll()); $this->setData("serie", $sqlSerie->deAluno($aluno)->fetch()); $this->setData("turma", $sqlTurmas->deALuno($aluno)->fetch()); $this->setData("estaRecparalela", (bool) count($recParalela)); $this->setData("turmaOlimAssoc", $sqlAcomp->pkAlunoTurmaOlimpica($aluno)); $this->setData("turmaAvancada", $sqlAcomp->pkAlunoTurmaAvancada($aluno)); $this->setData("centralNotifi", $centralNotifi); $this->setData("parametros", $parametros); $this->setData("mensagens", $sqlAcomp->listarMensagens($aluno)); $this->setData("videos", array()); $this->setData("arquivos", new Arquivos()); $this->setData("videos", $videos); $this->setData("alunoInfo", $alunoInfo); //Imprimindo a página $this->printView(); } catch (Exception $exc) { $this->close($exc); } }