Example #1
0
 /**
  * Método que retorna os dados do perfil logado
  */
 protected function perfil()
 {
     $usr = new UsuariosAux();
     //
     $logado = $usr->usuarioLogado();
     $tmp = $this->modelo($logado);
     $this->appendResposta($tmp);
 }
 /**
  * Método que gera a página de visulaização dos anexos.
  *
  * @param int $anexoId O código do anexo a ser exibido
  */
 public function anexos($anexoId)
 {
     $this->debug();
     //Tratamento especial para requisições do tipo POST
     if ($this->getRequest()->isPost()) {
         header('Content-Type: application/json; charset=UTF-8');
         //Redireciona para os métodos de inseção
         switch ($this->input->post('acao')) {
             case 'avaliar':
                 $this->avaliar($anexoId);
                 break;
             default:
                 $this->comentar($anexoId);
                 break;
         }
     }
     //Definindo a página
     try {
         $usrValidar = new Usuarios();
         $sqlAnexo = new SqlAnexosAula();
         $sqlComentarios = new SqlAnexosComentarios();
         $sqlAvaliação = new SqlAnexosAvaliacoes();
         $sqlDisciplina = new SqlDisciplina();
         if (isset($_SERVER[MY_Controller::SESSION_USUARIO_ID])) {
             //Verificando se existe usuário logado
             $aluno = $usrValidar->getAluno(false);
         }
         $anexo = $sqlAnexo->get((int) $anexoId);
         $dsiciplina = $sqlDisciplina->deAnexo($anexo);
         //
         $outrosAnexos = array();
         //Carregando plugins especificos para tipos e subtipos e definindo os dados especificos
         if ($anexo->getTipo() == Anexos::TIPO_GALERIA) {
             $arquivo = new Arquivos();
             $this->loadPlugin('bootstrap-image-gallery');
             $this->bowerLoad('blueimp-bootstrap-image-gallery');
             //                $this->setData("imagens", $arquivo->arquivosDePasta($anexo->getNome(), false));
             $this->setData('arquivos', $arquivo);
             $this->setData('imagens', $arquivo->arquivosDePastaFtp($anexo->getNome()));
         }
         //Carregando os plugins básicos
         $this->bowerLoad('autosize');
         //Passando os dados para o view
         $this->setData('anexo', $anexo);
         $this->setData('disciplina', $dsiciplina);
         $this->setData('dadosAnexo', $anexo->dadosAnexo());
         $this->setData('outrosAnexos', $outrosAnexos);
         if (isset($_SERVER[MY_Controller::SESSION_USUARIO_ID])) {
             //Verificando se existe usuário logado
             $this->setData('comentarios', $sqlComentarios->comentariosDeAnexo($anexo));
             $this->setData('avaliacao', $sqlAvaliação->deAluno($anexo, $aluno));
         }
         $this->printView();
     } catch (Exception $exp) {
         $this->close($exp);
     }
 }
Example #3
0
 /**
  * Método que gera uma página genérica de distribuição de anotações
  * @param int $pkProfessor
  * @param int $tipo
  * @param int $subTipo
  */
 private function distribuicaoGeral($pkProfessor, $tipo = FALSE, $subTipo = FALSE)
 {
     try {
         $this->initGets(array("de", "ate", "professor", "unidade", "ensino", "serie", "turma"));
         $validarUsr = new Usuarios();
         $sqlTipo = new SqlTipo();
         $sqlSubtipo = new SqlSubTipo();
         $sqlAfa = new SqlAfaProfessores();
         //Aplicando os filtros
         if (is_int($tipo)) {
             $this->filtro->setGet(array("tipo_afa" => $tipo));
         }
         if (is_int($subTipo)) {
             $this->filtro->setGet(array("subtipo_afa" => $subTipo));
         }
         if ($this->filtro->issetGet("professor")) {
             $professor = $validarUsr->getProgfessor($this->filtro->get("professor"));
         } else {
             $professor = $validarUsr->getProgfessor((int) $pkProfessor);
         }
         $tipos = $sqlTipo->listarTodos($this->filtro);
         $subTipos = $sqlSubtipo->listarTodos($this->filtro);
         $anotacoes = $sqlAfa->deProfessor($professor, $this->filtro);
         //Passando os dados para o view
         $this->loadPlugin("filtros_de_tela")->setUserFiltros($professor)->setData("professor", $professor)->setData("tipos", $tipos)->setData("subTipos", $subTipos->fetchAll())->setData("anotacoes", array_reverse($anotacoes->fetchAll()))->printView();
     } catch (Exception $exc) {
         die($exc->getMessage());
     }
 }
Example #4
0
 /**
  * Método que retorna as ultimas mensagens destinadas ao usuário logado
  */
 protected function todas()
 {
     $this->filtro->initGets(array("de", "ate"));
     $usr = new Usuarios();
     $lodado = $usr->usuarioLogado();
     $sqlMensagem = new SqlMensagemService();
     switch ($this->tipoLogado) {
         case Kernel\Modelo\Perfil::ALUNO:
             $mensgens = $sqlMensagem->deAluno($lodado, $this->filtro);
             break;
         default:
             $mensgens = false;
             break;
     }
     if ($mensgens) {
         while ($mensagem = $mensgens->fetch()) {
             $tmp = $this->modelo($mensagem);
             if ($tmp) {
                 $this->appendResposta($tmp);
             }
         }
     }
 }
Example #5
0
 /**
  * Método que gera uma página padrão de distribuição de registros
  * @param int $pkAluno O código do aluno na tabela de usuários
  * @param int|boolean $tipo O tipo do registro no afa
  * @param int|boolean $subTipo O subtipo do registro no afa
  */
 private function distribuicaoGeral($pkAluno, $tipo = FALSE, $subTipo = FALSE)
 {
     try {
         //Inicializando os filtros usados
         $this->initGets(array("de", "ate", "unidade", "ensino", "serie", "turma"));
         //Definindo os filtros internamente
         if (is_int($tipo)) {
             $this->filtro->setGet(array("tipo_afa" => $tipo));
         }
         if (is_int($subTipo)) {
             $this->filtro->setGet(array("subtipo_afa" => $subTipo));
         }
         $usrValidar = new Usuarios();
         $aluno = $usrValidar->getAluno((int) $pkAluno);
         $sqlAfa = new SqlAfaAlunos();
         $sqlTipos = new SqlTipo();
         $sqlSubtipos = new SqlSubTipo();
         $registros = $sqlAfa->deAluno($aluno, $this->filtro);
         //Passando os dados para o view
         $this->loadPlugin("filtros_de_tela")->setUserFiltros($aluno)->setData("aluno", $aluno)->setData("afaTipos", $sqlTipos->listarTodos($this->filtro))->setData("afaSubTipos", $sqlSubtipos->listarTodos($this->filtro)->fetchAll())->setData("registros", $registros->fetchAll())->printView();
     } catch (Exception $exc) {
         $this->close($exc);
     }
 }
Example #6
0
 /**
  * Método que salva as respostas do aluno no testes do capítulo 
  * e retorna a sua nota.
  */
 private function set_respostas()
 {
     $usrAux = new Usuarios();
     $sqlTopico = new SqlTopico();
     $nota = 0;
     $respostasAluno = array();
     try {
         $this->filtro->initPost('topico');
         $tipo = filter_input(INPUT_POST, "testePara");
         $aluno = $usrAux->getAluno(false);
         $topico = $sqlTopico->get($this->filtro->post('topico'));
         if ($tipo == "capitulo") {
             $sqlTeste = new SqlTesteCapitulo();
         } elseif ($tipo == "topico") {
             $sqlTeste = new SqlTesteTopico();
         } else {
             throw new Exception("O alvo do teste não é permitido");
         }
         $teste = $sqlTeste->porAlunoTopico($aluno, $topico);
         if (!$teste) {
             throw new Exception("O teste não foi encontrado");
         }
         //Verificando se o aluno já realizou o teste e pode refaze-lo
         if (!$teste->podeRefazer()) {
             throw new Exception('Desculpe, mas sua nota não ' . 'permite que o teste seja refeito.');
         }
         //Lendo as respostas
         $resposta = filter_input(INPUT_POST, 'resspostas', FILTER_SANITIZE_MAGIC_QUOTES);
         $respostasStr = substr($resposta, 0, -1);
         $respostas = explode(',', $respostasStr);
         $questoes = $teste->getQuestoes();
         if (count($respostas) != count($questoes)) {
             throw new Exception('Ainda há questões sem resposta. ' . 'Volte e responda todas.');
         }
         foreach ($respostas as $resp) {
             $par = explode('=', $resp);
             $respostasAluno[trim($par[0])] = trim($par[1]);
             foreach ($questoes as $quest) {
                 if ($quest->getId() == $par[0]) {
                     if ($quest->getGabarito() == $par[1]) {
                         ++$nota;
                     }
                 }
             }
         }
         $teste->setNota((double) $nota);
         if (!$sqlTeste->salvaRespostas($teste, $respostasAluno)) {
             throw new Exception('Erro ao tentar salvar as suas respostas. ' . 'Tente novamente mais tarde.');
         }
         if (!$sqlTeste->salvarNota($teste)) {
             throw new Exception('Erro ao tentar salvar a sua nota. ' . 'Tente novamente mais tarde.');
         }
         //Gerando a resposta
         $tmp = new stdClass();
         $tmp->nota = $teste->getNota();
         $this->appendResposta($tmp);
         $this->statusTrue();
         $this->setMensagem('Nota salva com sucesso');
     } catch (SqlException $sql) {
         $this->setMensagem('Ocorreu um erro interno. ' . 'Tente novamente mais tarde.');
     } catch (Exception $exc) {
         $this->setMensagem($exc->getMessage());
     }
     $this->printResposta();
 }
Example #7
0
 //Trecho temporário
 $isSGDE = false;
 $ant = $_SERVER["HTTP_REFERER"] ?: false;
 if (is_string($ant)) {
     $parseUrl = parse_url($ant);
     $host = $parseUrl["host"] ?: false;
     $path = $parseUrl["path"] ?: false;
     $query = $parseUrl["query"] ?: false;
     if (is_string($host) && is_string($path) && is_string($query)) {
         $querys = explode("&", $query);
         $isSGDE = $host == "sistemaggedeensino.com.br" && $path == "/se/aula/livro/conteudos_digitais/" && in_array("pk_livro={$livroId}", $querys) && in_array("pk_materia={$disciplinaId}", $querys);
     }
 }
 if (!$isSGDE) {
     //carregando o usuário logado
     $usrValidar = new Usuarios();
     $usuario = $usrValidar->usuarioLogado();
     if (!$usuario instanceof Professor && !$usuario instanceof Aluno && $usuario->getPerfil()->getId() != Perfil::ADMIN && $usuario->getPerfil()->getId() != Perfil::COORDENADOR && $usuario->getPerfil()->getId() != Perfil::GESTOR) {
         throw new Exception("Desculpe, este conteúdo é apenas destinado " . "a professores e alunos");
     }
     //Carregando a disciplina de acordo com o perfil do usuário logado
     $sqlDisciplina = new SqlDisciplina();
     if ($usuario->getPerfil()->getId() == Perfil::ADMIN || $usuario->getPerfil()->getId() != Perfil::COORDENADOR || $usuario->getPerfil()->getId() != Perfil::GESTOR) {
         $disciplina = $sqlDisciplina->get($disciplinaId);
     } elseif ($usuario->getPerfil()->getId() == Perfil::ALUNO) {
         $disciplinas = $sqlDisciplina->deAluno($usuario, $filtros);
         while ($d = $disciplinas->fetch()) {
             if ($d->getId() == $disciplinaId) {
                 $disciplina = $d;
                 break;
             }
 /**
  * Método que retorna a foto do aluno informado ou logado
  * @param int $usuario
  */
 public function get_foto($usuario = false)
 {
     try {
         $this->filtro->initGets(array("width", "height"));
         $usrAux = new Usuarios();
         $sqlUnidade = new SqlUnidade();
         $aluno = $usrAux->getAluno((int) $usuario);
         //Definindo o caminho de acordo com o tipo de usuário buscado
         $unidade = $sqlUnidade->deAluno($aluno)->fetch();
         $caminho = "alunos/{$unidade->getId()}/{$aluno->getFoto()}";
         $arquivo = new Arquivos();
         $img = $arquivo->getPastaUpload($caminho);
         if (!file_exists($img) || is_dir($img)) {
             throw new Exception("A foto do usuário não foi encontrada ou ele " . "não possue foto cadastrada");
         }
         $imagem = new Image($img);
         if ($this->filtro->getInstance("dimension") instanceof Dimension) {
             $imagem->setNewDimesion($this->filtro->getInstance("dimension"));
         }
         $imagem->setQuality(100);
         $imagem->setAntiAlias(TRUE);
         $imagem->setType("");
         $getImage = new GetImage($imagem);
         $getImage->__toString();
     } catch (Exception $exc) {
         $this->setMensagem($exc->getMessage());
         $this->printResposta();
     }
     die;
 }
Example #9
0
 /**
  * Método que gera a página genérica do historico do fap
  * @param int $pkUsuario O código do coordenador
  * @param int $tipo O filtro de tipo
  * @param int $subtipo O filtro de subtipo
  */
 private function historicoGeral($pkUsuario, $tipo = FALSE, $subtipo = FALSE)
 {
     try {
         $usr = new Usuarios();
         $sqlfap = new SqlFapEqPedagogica();
         //Definindo os filtros
         $this->initGets(array("de", "ate", "professor", "coordenador"));
         if (is_int($tipo)) {
             $this->filtro->setGet(array("tipo_fap" => $tipo));
         }
         if (is_int($subtipo)) {
             $this->filtro->setGet(array("subtipo_fap" => $subtipo));
         }
         if ($this->filtro->issetGet('coordenador')) {
             $sqlCoord = new SqlCoordenador();
             $coordenador = $sqlCoord->get($this->filtro->get('coordenador'));
         } else {
             $coordenador = $usr->getCoordenador((int) $pkUsuario);
         }
         //
         $registros = $sqlfap->deCoordenador($coordenador, $this->filtro);
         //Passando os dados para o view
         $this->loadPlugin("jquery.tablesorter")->loadPlugin("conceitos")->setData("tipo", $tipo)->setData("subtipo", $subtipo)->setData("coordenador", $coordenador)->setData("registros", $registros)->printView();
     } catch (SqlException $sql) {
         echo Javascript::alert("Ocorreu um erro interno. " . "Tente novamente mais tarde");
         die(Javascript::shadowboxClose());
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::shadowboxClose());
     }
 }
Example #10
0
 /**
  * Método que exibe a distribuição de atendimentos pelo soep.
  * 
  * @param type $pkUsuario
  */
 public function distribuicao_de_atendimentos_por_familiares($pkUsuario = 0)
 {
     try {
         $this->initGets(array('de', 'ate', 'coordenador'));
         $this->filtro->setGet(array('subtipo_afa' => Subtipo::SUB_TIPO_CONVERSA_FAMILIA));
         $usr = new Usuarios();
         $sqlAfa = new SqlAfaEqPedagogica();
         $sqlResponsavel = new SqlResponsavelEqPedagogica();
         //
         if ($this->filtro->issetGet('coordenador')) {
             $sqlCoord = new SqlCoordenador();
             $coordenador = $sqlCoord->get($this->filtro->get('coordenador'));
         } else {
             $coordenador = $usr->getCoordenador((int) $pkUsuario);
         }
         //////////////////////////////
         $responsaveis = $sqlResponsavel->deCoordenadorDistr($coordenador);
         //////////////////////////////
         $anotacoes = $sqlAfa->deCoordenadorTemp($coordenador, $this->filtro);
         $this->setUserFiltros($coordenador)->setData('coordenador', $coordenador)->setData('responsaveis', $responsaveis)->setData('anotacoes', $anotacoes->fetchAll())->printView();
     } catch (Exception $exc) {
         $this->close($exc);
     }
 }
 /**
  * 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);
     }
 }
Example #12
0
 /**
  * Método que gera a página com a distribuição de atendimentos por agente.
  *
  * @param int $pkProfessor O código do professor na tabela de usuários
  */
 public function distribuicao_de_atendimentos($pkProfessor = 0)
 {
     try {
         $this->initGets(array("de", "ate", "tipo_fap", "professor", "unidade", "ensino", "serie", "turma"));
         //
         $validarUsr = new Usuarios();
         $sqlFap = new SqlFapProfessores();
         $sqlResumo = new SqlResumoProfessor();
         $sqlCoordenador = new SqlCoordenadoresProfessores();
         if ($this->filtro->issetGet("professor")) {
             $professor = $validarUsr->getProgfessor($this->filtro->get("professor"));
         } else {
             $professor = $validarUsr->getProgfessor((int) $pkProfessor);
         }
         //Apliando os filtros
         $this->filtro->setGet(array("tipo_fap" => Tipo::TIPO_ATENDIMENTO));
         //
         $resumo = $sqlResumo->get((int) $pkProfessor);
         $ocorrencias = $sqlFap->deProfessor($professor, $this->filtro);
         $funcoes = $sqlCoordenador->listarFuncoes($this->filtro);
         //Passando os dados para o view
         $this->loadPlugin('filtros_de_tela')->loadPlugin('calc-itens')->setUserFiltros($professor)->setData('professor', $professor)->setData('resumo', $resumo)->setData('registros', $ocorrencias->fetchAll())->setData("funcoes", $funcoes)->printView();
     } catch (Exception $exc) {
         $this->close($exc);
     }
 }
Example #13
0
 /**
  * Método que atualiza a foto do aluno
  * @param int $pkAluno O código do aluno na tabela de usuários
  */
 private function editarFoto($pkAluno = 0)
 {
     header('Content-Type: application/json; charset=UTF-8');
     $sqlUsuario = new SqlUsuario();
     $usrAux = new Usuarios();
     try {
         $aluno = $usrAux->getAluno((int) $pkAluno);
         if (!isset($_FILES["novafoto"])) {
             throw new Exception("Ocorreu um erro ao tentar atualizar a foto. " . "Recarregue a página e tente novamente");
         }
         $foto = $_FILES["novafoto"];
         $sqlUsuario->atualizarFoto($aluno->defineFoto($foto));
         die(json_encode(array("status" => true, "mensagem" => "Foto editada com sucesso")));
     } catch (Exception $exc) {
         die(json_encode(array("status" => false, "mensagem" => $exc->getMessage())));
     }
 }