Exemplo n.º 1
0
 /**
  * Página que exibe a lista dos professores e suas notas nas avaliações pelos coordenadores
  * @param type $pkUsuario
  */
 public function professores_e_notas($pkUsuario = 0, $pkPesquisa = 0)
 {
     //Variaveis básicas
     $respostasProfs = array();
     //Validando o coordenador
     $validarusr = new Kernel_Models_ValidarUsuarios();
     $coordenador = $validarusr->coordenador($pkUsuario);
     //Inicializando os objetos básicos
     $professor = new Kernel_Models_Professor();
     $avaliacoes = new eqpedagogica_models_Avaliacoes();
     //Lendo as pesquisas respondidas pelo coordenador
     $pesquisas = $avaliacoes->pesquisaDeCoordenador($coordenador);
     $perguntas = $avaliacoes->perguntas($pkPesquisa);
     $indGerais = $avaliacoes->indicadoresGerais($pkPesquisa);
     $respostas = $avaliacoes->pesuisaNotas($pkPesquisa);
     //Lendo os professores relacionados ao coordenador informado
     $professores = $professor->listarTodos(NULL, $coordenador);
     //Ordenando e agrupando as respostas por professor
     while ($resposta = $respostas->fetchObject()) {
         $respostasProfs[$resposta->fk_usuario_professor][$resposta->pk_par_questao] = $resposta;
     }
     //Passadno os dados para o view
     $this->loadPlugin("conceitos")->loadPlugin("jquery.tablesorter")->setData("coordenador", $coordenador)->setData("professores", $professores)->setData("pkPesquisa", $pkPesquisa)->setData("pesquisas", $pesquisas)->setData("perguntas", $perguntas->fetchAll(PDO::FETCH_CLASS))->setData("indicadores", $indGerais->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_CLASS))->setData("respostas", $respostasProfs)->printView();
 }
Exemplo n.º 2
0
 /**
  * Método que retorna um professor válido
  * @param int $pkUsuario Define o código do professor a ser buscado.
  * É ignorado caso o usuário logado seja do tipo professro
  * @param string $objetoHerdado Define uma especialização, um objeto herdeiro de Professor
  * @return Kernel_Models_Professor retorna um objeto do tipo professor de
  * acordo com o que foi informado ou usuário logado
  * @throws Exception
  */
 public function getProfessor($pkUsuario = 0, $objetoHerdado = FALSE)
 {
     //Validação inicial
     $tipoLogado = $this->usuarioLogado->get_tipoUsuarioAtivo()->get_idTipoUsuario();
     //Impedindo que um professor use dados de outro
     if ($tipoLogado == Kernel_Models_TiposUsuario::TIPO_PROFESSOR) {
         $pkUsuario = (int) $this->usuarioLogado->get_idUsuario();
     }
     if (!(int) $pkUsuario) {
         //Verificando se o código do professor é válido
         throw new Exception("O professor informado é inválido");
     }
     //Criando instancia da classe
     if (is_string($objetoHerdado)) {
         //Este trecho é executado quando um objeto especifico é informado(especialização)
         //Verificando se a classe informada existe
         if (!class_exists($objetoHerdado)) {
             throw new Exception("Ocorreu um erro interno. Entre em contato com o administrador do sistema");
         }
         //Verifica se a classe informada é herdeira da classe do professor
         if (!in_array("Kernel_Models_Professor", array_keys(class_parents($objetoHerdado)))) {
             throw new Exception("Ocorreu um erro interno. Entre em contato com o administrador do sistema");
         }
         //Inicializa a especialização
         $professorObj = new $objetoHerdado();
     } else {
         //Inicializa o objeto padrão
         $professorObj = new Kernel_Models_Professor();
     }
     $professor = $professorObj->get((int) $pkUsuario);
     if (!$professor) {
         //Verificando se o professor existe no banco de dados
         throw new Exception("O professor informado é inválido");
     }
     return $professor;
 }
Exemplo n.º 3
0
 /**
  * Método que lista todos os registros de um determinado professor
  * @param Kernel_Models_Professor $professor Objeto referente ao professor relacionado aos registros. Por padrão retorna apenas os registros do ano atual
  * @param int|array|boolean $tipo Define como filtro o tipo do registro
  * @param int|array|boolean $subTipo Define como filtro o subtipo
  * @param FiltrosSistema $filtrosSistema Sistema de filtros do sistema
  * @return PDOStatement|boolean Retorna um objeto do tipo PDOStatement contendo a resposta da consulta ou FALSE em caso de erro
  */
 public function registrosDeProfessor(Kernel_Models_Professor $professor, $tipo = FALSE, $subTipo = FALSE, FiltrosSistema $filtrosSistema = NULL)
 {
     $coordenador = new Kernel_Models_Coordenador();
     $query = "select distinct on(fap.fap_registro.pk_fap_registro) " . "fap.fap_registro.*, fap.fap_subtipo.*, fap.fap_tipo.*, " . "public.usuario.nome as nome_coordenador, " . "public.usuario_coordenador.tipo, " . "public.usuario.pk_usuario as pk_coordenador, " . "(select public.tipo_usuario.tipo_usuario_nome " . "from public.tipo_usuario " . "inner join public.usuario_tipo_vin on " . "public.usuario_tipo_vin.fk_tipo_usuario=" . "pk_tipo_usuario " . "WHERE public.usuario_tipo_vin.fk_usuario=" . "fap.fap_registro.fk_usuario_inc limit 1) " . "as tipo_usuario, " . "(select public.coordenacao.coordenacao_nome " . "from public.tipo_usuario " . "inner join public.usuario_tipo_vin on " . "public.usuario_tipo_vin.fk_tipo_usuario=pk_tipo_usuario " . "inner join public.coordenacao_vin on " . "public.coordenacao_vin.fk_usuario_tipo_vin=" . "public.usuario_tipo_vin.pk_usuario_tipo_vin " . "inner join public.coordenacao on " . "public.coordenacao.pk_coordenacao=" . "public.coordenacao_vin.fk_coordenacao " . "WHERE public.usuario_tipo_vin.fk_usuario=" . "fap.fap_registro.fk_usuario_inc limit 1) " . "as tipo_coordenacao, " . "(case ";
     //Adicionando a query todos os tipos de coordenação disponíveis
     foreach ($coordenador->getCoordTipos() as $cod => $tipoCoord) {
         $query .= "when tipo={$cod} then '{$tipoCoord}' ";
     }
     $query .= "end) as tipo_coordenador " . "from fap.fap_registro " . "inner join fap.fap_subtipo on " . "fap.fap_subtipo.pk_fap_subtipo=" . "fk_fap_subtipo " . "inner join fap.fap_tipo on " . "fap.fap_tipo.pk_fap_tipo=" . "fk_fap_tipo " . "inner join public.usuario_coordenador on " . "public.usuario_coordenador.fk_usuario=fk_usuario_inc " . "inner join public.usuario_professor on " . "public.usuario_professor.pk_usuario_professor=" . "fk_usuario_professor " . "inner join public.usuario on " . "public.usuario.pk_usuario=fk_usuario_inc ";
     $query .= "where public.usuario_professor.fk_usuario=" . $professor->getId() . " ";
     if ($filtrosSistema instanceof FiltrosSistema) {
         if ($filtrosSistema->validar(array("de")) || $filtrosSistema->validar(array("ate"))) {
             //Filtrando o periodo
             $query .= $filtrosSistema->validar(array("de")) ? "and data_evento>='" . $filtrosSistema->getDe() . "' " : "";
             $query .= $filtrosSistema->validar(array("ate")) ? "and data_evento<='" . $filtrosSistema->getAte() . "' " : "";
         } else {
             $query .= "and extract(year from data_evento)=" . Loader::data("config", "site", "ano_letivo") . " ";
         }
         $query .= $filtrosSistema->validar(array("fapTipo")) ? "and pk_fap_tipo={$filtrosSistema->getFapTipo()} " : "";
     }
     //Filtrando os valores por tipo e subtipo
     if (is_int($tipo)) {
         $query .= "and pk_fap_tipo={$tipo} ";
     } elseif (is_array($tipo)) {
         if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) {
             $query .= "and (pk_fap_tipo=" . implode(" or pk_fap_tipo=", $tipo) . ") ";
         }
     }
     if (is_int($subTipo)) {
         $query .= "and fk_fap_subtipo={$subTipo} ";
     } elseif (is_array($subTipo)) {
         if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) {
             $query .= "and (fk_fap_subtipo=" . implode(" or fk_fap_subtipo=", $subTipo) . ") ";
         }
     }
     $query .= "order by(pk_fap_registro) desc";
     return $this->queryStatement($query);
 }
Exemplo n.º 4
0
 /**
  * Método que permite editar a mensagem informada
  * @param int $mensagemId O código da mensagem a ser editada
  */
 public function editar($mensagemId = 0)
 {
     //validando o ususário
     //Inicializando os objetos básicos
     $usrvalidar = new Kernel_Models_ValidarUsuarios();
     $agenda = new docentes_models_AgendaSemanal();
     $unidade = new Kernel_Models_Unidade();
     $serie = new Kernel_Models_Serie();
     $turma = new Kernel_Models_Turma();
     $professor = new Kernel_Models_Professor();
     //Trecho responsável pela edição da menasgem
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             $coordenador = $usrvalidar->getCoordenador();
             //Verificando se a mensagem a ser editada é válida
             $agenda = $agenda->getMensagem((int) $mensagemId);
             $agenda->destinatariosReset();
             //Recebendo os dados para o cadastro
             $titulo = filter_input(INPUT_POST, "assunto", FILTER_SANITIZE_MAGIC_QUOTES);
             $tipo = filter_input(INPUT_POST, "tipo", FILTER_VALIDATE_INT);
             $conteudo = filter_input(INPUT_POST, "mensagem", FILTER_SANITIZE_MAGIC_QUOTES);
             //Definindo os dados do objeto
             $agenda->setTitulo($titulo);
             $destinatariosValidos = $agenda->getDestinatariosValidos();
             $agenda->setTipoDestinatarios($destinatariosValidos[$tipo]);
             //Lendo so destinatários de acordo com o tipo de destinatário selecionado
             $destinatarios = isset($_POST["desti{$tipo}"]) ? $_POST["desti{$tipo}"] : array();
             $tipoDestinatario = $agenda->getTipoDestinatarios();
             $tmp = new $tipoDestinatario();
             foreach ($destinatarios as $destinatario) {
                 $agenda->setDestinatarios($tmp->get((int) $destinatario));
             }
             $agenda->setConteudo($conteudo);
             //fazendo o cadastro da mensagem
             $agenda->editar();
             echo Javascript::alert("Mensagem editada com sucesso");
             die(Javascript::window_location($this->rotas->rotaById(716)));
         } catch (Exception $exc) {
             echo Javascript::alert($exc->getMessage());
             die(Javascript::history_back());
         }
     }
     //Testando a mensagem informada
     try {
         $coordenador = $usrvalidar->coordenador();
         $mensagem = $agenda->getMensagem((int) $mensagemId);
         $destinatarios = $mensagem->getDestinatarios();
         $tipoDestinatarioId = array_search($mensagem->getTipoDestinatarios(), $mensagem->getDestinatariosValidos());
     } catch (Exception $exc) {
         echo Javascript::alert($exc->getMessage());
         die(Javascript::window_location($this->rotas->rotaById(932)));
     }
     //Passando os dados para a view
     $this->loadPlugin("tiny_mce")->setData("coordenador", $coordenador)->setData("professores", $professor->listarTodos(NULL, $coordenador))->setData("unidades", $unidade->listarTodas(NULL, $coordenador)->fetchAll(PDO::FETCH_CLASS))->setData("series", $serie->listarTodas(null, $coordenador)->fetchAll(PDO::FETCH_CLASS))->setData("turmas", $turma->listarTodas(null, $coordenador)->fetchAll(PDO::FETCH_CLASS))->setData("mensagem", $mensagem)->setData("tipoDestinatarioId", $tipoDestinatarioId)->setData("destinatarios", array_keys($destinatarios))->printView();
 }
Exemplo n.º 5
0
 /**
  * Método de envio de mensagens(envio geral)
  */
 public function contatenos()
 {
     $data = $this->getParametroVisao();
     $msg = '';
     //
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         ini_set('default_charset', 'utf8');
         //Executando o cadastro da mensagem
         $titulo = filter_input(INPUT_POST, 'assunto', FILTER_SANITIZE_MAGIC_QUOTES);
         $mensagem = filter_input(INPUT_POST, 'mensagem', FILTER_SANITIZE_MAGIC_QUOTES);
         $destinatario = filter_input(INPUT_POST, 'destinatario', FILTER_SANITIZE_MAGIC_QUOTES);
         if (!$destinatario) {
             echo Javascript::alert("O destinatário informado é invalido. Selecione um na lista");
             echo Javascript::history_back();
             exit;
         }
         if (!$titulo) {
             echo Javascript::alert("O assunto informado é inválido");
             echo Javascript::history_back();
             exit;
         }
         if (!$mensagem) {
             echo Javascript::alert("A mensagem informada é inválida");
             echo Javascript::history_back();
             exit;
         }
         $novaMensagem = "<p>Mensagem para {$destinatario}</p>";
         $novaMensagem .= "<div>Assunto:{$titulo}</div>";
         $novaMensagem .= "<div>Mensagem</div><div>{$mensagem}</div>";
         if (!Mail::envioSimples($novaMensagem, "Mensagem enviada pela áres restrita", "*****@*****.**", "Colégio GGE")) {
             echo Javascript::alert("Ocorreu um erro ao tentar enviar a mensagem. Tente novamente mais tarde");
             echo Javascript::history_back();
             exit;
         }
         echo Javascript::alert("Mensagem enviada com sucesso");
         echo Javascript::window_location(base_url() . 'transf/mensagem/contatenos/');
         exit;
     }
     //Exibindo a página
     if ($data['mobile']) {
         $data['usuario'] = unserialize($_SESSION['usuario']);
         $data['page'] = 'default';
         $data['tema'] = $this->load->setTheme('responsive');
     } else {
         $data['page'] = 'home';
         $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     }
     $data['msg'] = $msg;
     $data['abaAtiva'] = 10;
     $data['alias'] = $data['abaPage'] = __FUNCTION__;
     $data["js"] = array("/js/plugins/filtros/filtros.min.js");
     //
     $data["arrayFiltros"] = array("unidade", "serie", "turma");
     $filtrosSistema = new FiltrosSistema();
     $data["filtros"] = $filtrosSistema;
     //        $tipo_usuario = $this->load->model('public_tipo_usuario');
     $tipo_usuario = new ModelBase("public.tipo_usuario");
     $data['pk_tipo_usuario'] = filter_input(INPUT_GET, 'tipousuario', FILTER_VALIDATE_INT);
     $data['tipo_usuario'] = $tipo_usuario->select("pk_tipo_usuario=3 or pk_tipo_usuario=15 and pk_tipo_usuario!=11");
     //
     switch ($data['pk_tipo_usuario']) {
         case Kernel_Models_TiposUsuario::TIPO_COORDENADOR:
             $usuarios = new Kernel_Models_Coordenador();
             $data['destinatarios'] = $usuarios->listarTodos($filtrosSistema);
             $data["arrayFiltros"] = array("unidade");
             break;
         case Kernel_Models_TiposUsuario::TIPO_PROFESSOR:
             $usuarios = new Kernel_Models_Professor();
             $data['destinatarios'] = $usuarios->listarTodos($filtrosSistema);
             $data["arrayFiltros"] = array("unidade", "serie", "turma");
             break;
         default:
             $data['destinatarios'] = FALSE;
             break;
     }
     $filtrosSistema->init($data["arrayFiltros"]);
     $this->load->view($this->load->getUrlTema(), $data);
 }
Exemplo n.º 6
0
 /**
  * Método que informa todos os dados pessoais de um usuário logado
  */
 public function get_mobile()
 {
     $usuarioSistema = new Kernel_Models_Usuario();
     //Objeto responsavel pelo login
     $this->setMensagem("Dados inválidos");
     $dadosPost = file_get_contents('php://input');
     if (strlen($dadosPost)) {
         $post = json_decode($dadosPost);
         if (is_object($post)) {
             //Validando os dados
             if (!isset($post->email) || !isset($post->senha) || !isset($post->imei) || !isset($post->tipologin)) {
                 $this->printResposta();
             }
             $email = filter_var(trim($post->email));
             //Email usado no login convencional
             $senha = filter_var($post->senha);
             //A senha de login
             $imei = filter_var($post->imei);
             //Código unico do aparelho
             $tipoUsuario = filter_var($post->tipologin, FILTER_VALIDATE_INT);
             //            $so = $this->getBrowserDetect()->getS_o(); //Nome do sistema operacional do cliente
             $so = "generico";
             //Comentado por não ser possível detectar o s.o. do cliente utilizando a classe BrowserDetect
             $id = $usuarioSistema->getIdEspecifico($email, $senha, $imei, $so, $tipoUsuario);
             if ($id) {
                 $usuario = FALSE;
                 if ($tipoUsuario == 15) {
                     //Trecho referente ao professor
                     $tmp = new Kernel_Models_Professor();
                     $usuario = $tmp->selectUsuarioProfessor($id);
                     $usuario = $usuario->fetchObject("Kernel_Models_Professor");
                     $contrato = new Kernel_Models_ContratosAgendaProfessor();
                     $contrato->setFk_usuario_professor($id);
                     $contrato->setResposta(1);
                     $contrato->save("fk_usuario_professor={$id}");
                 }
                 if ($usuario) {
                     $this->setMensagem("")->statusTrue()->setStatusCod(0);
                     $tmp = new stdClass();
                     $tmp->id = $usuario->pk_usuario;
                     $tmp->idEspecifico = $id;
                     $tmp->nome = $usuario->nome;
                     $tmp->foto = $usuario->foto;
                     $tmp->unidades = array();
                     $unidades = $usuario->unidades($id);
                     while ($unidade = $unidades->fetchObject()) {
                         $unidadeTmp = new stdClass();
                         $unidadeTmp->id = $unidade->pk_unidade;
                         $unidadeTmp->nome = $unidade->unidade_nome;
                         $unidadeTmp->series = array();
                         $series = $usuario->series($id, FALSE, $unidade->pk_unidade);
                         while ($serie = $series->fetchObject()) {
                             $tmpSerie = new stdClass();
                             $tmpSerie->id = $serie->pk_serie;
                             $tmpSerie->unidade = $unidade->pk_unidade;
                             $tmpSerie->nome = $serie->serie_nome;
                             $tmpSerie->turmas = array();
                             $turmas = $usuario->turmas($id, FALSE, $unidade->pk_unidade, $serie->pk_serie);
                             while ($turma = $turmas->fetchObject()) {
                                 $tmpTurma = new stdClass();
                                 $tmpTurma->id = $turma->pk_turma;
                                 $tmpTurma->serie = $serie->pk_serie;
                                 $tmpTurma->nome = $turma->turma_nome;
                                 array_push($tmpSerie->turmas, $tmpTurma);
                             }
                             array_push($unidadeTmp->series, $tmpSerie);
                         }
                         array_push($tmp->unidades, $unidadeTmp);
                     }
                     $this->appendResposta($tmp);
                 }
             }
         }
     }
     $this->printResposta();
 }
Exemplo n.º 7
0
 public function listar_relatorios()
 {
     $data = $this->getParametroVisao();
     if ($data['idTipoUsuario'] == 15) {
         //Alteração feita para um melhor controle de acesso
         $pkUsuarioProfessor = $data['idUsuarioProfessor'];
         $professorTmp = new Kernel_Models_Professor();
         $professorTmp = $professorTmp->selectUsuarioProfessor((int) $pkUsuarioProfessor);
         if ($data['idUsuarioProfessor'] != $pkUsuarioProfessor || !$professorTmp) {
             ini_set('default_charset', 'utf8');
             echo Javascript::alert('Desculpe, você não tem acesso a este relátorio');
             echo Javascript::history_back();
             echo Javascript::close();
             echo Javascript::shadowboxClose();
             return;
         }
         $professor = $professorTmp->fetchObject('public_usuario_professor');
         $data['professorObj'] = $professor;
     }
     $data['page'] = 'home';
     $data['msg'] = $this->getMsg();
     $data['abaAtiva'] = 7;
     $data['abaPage'] = 'listar_relatorios';
     $data['alias'] = 'listar_relatorios';
     isset($data['tema']) ? $this->load->setTheme($data['tema']) : '';
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             redirect(base_url() . 'aula/conteudo/listar_relatorios/?&pk_turma=' . $this->input->post('pk_turma') . '&pk_usuario_professor=' . $this->input->post('pk_usuario_professor') . '&pk_materia_vin=' . $this->input->post('pk_materia_vin') . '&data_inicial=' . View::converteDataEUA($this->input->post('data_inicial')) . '&data_final=' . View::converteDataEUA($this->input->post('data_final')));
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     if ($data['idTipoUsuario'] == 1 || $data['idTipoUsuario'] == 2) {
         $sqlGrade = new SqlGrade();
         $result = $sqlGrade->lista_turmas_usuario_admin($data['ano_letivo']);
     } else {
         if ($data['idTipoUsuario'] == 15) {
             //Modificação feita para permitir um melhor controle de acesso
             $professor = new Kernel_Models_Professor();
             $turmas = $professor->turmas((int) $data['idUsuarioProfessor']);
             $result = $turmas->fetchAll();
             //                var_dump($result);
             //                die(var_dump($data));
         } else {
             $sqlGrade = new SqlGrade();
             $result = $sqlGrade->lista_turmas_usuario($data['turmas']);
         }
     }
     $turma = explode("&pk_turma=", $_SERVER['QUERY_STRING']);
     $turma_url = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/' . $this->uri->segment(4) . '/' . $this->uri->segment(5) . '?' . $turma[0];
     if (!isset($_GET['data_final'])) {
         $select = '<p class="left mr20"><label>Turma</label><br />';
         $select .= '<select name="jumpMenu" id="jumpMenu" class="w280" onchange="MM_jumpMenu(\'parent\',this,0)">';
         $label_default = isset($_GET['pk_turma']) ? 'Retirar filtro de turma' : '';
         $select .= '<option value="' . $turma_url . '">' . $label_default . '</option>';
         foreach ($result as $row) {
             $checked = isset($_GET['pk_turma']) && $_GET['pk_turma'] == $row['pk_turma'] ? 'selected' : '';
             $select .= '<option value="' . $turma_url . '&pk_turma=' . $row['pk_turma'] . '" ' . $checked . '>' . $row['turma_nome'] . '</option>';
         }
         $select .= '</select></p>';
         $data['filtro_turmas'] = $select;
     }
     $tabela = '';
     $filtro_professores = '';
     if (isset($_GET['pk_turma']) && $_GET['pk_turma'] != '') {
         $sqlAula = new SqlAula();
         if ($data['idTipoUsuario'] == 15) {
             //Modificação feita para permitir um melhor controle de acesso
             $result = $sqlAula->get_professores_aulas_coordenador($_GET['pk_turma'], (int) $data['idUsuarioProfessor']);
         } else {
             $result = $sqlAula->get_professores_aulas_coordenador($_GET['pk_turma']);
         }
         $professor = explode("&pk_usuario_professor=", $_SERVER['QUERY_STRING']);
         $professor_url = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/' . $this->uri->segment(4) . '/' . $this->uri->segment(5) . '?' . $professor[0];
         $select = '<p class="left mr20"><label>Disciplina / Professor</label><br />';
         $select .= '<select name="jumpMenu" id="jumpMenu" class="w200" onchange="MM_jumpMenu(\'parent\',this,0)">';
         $label_default = isset($_GET['pk_usuario_professor']) ? 'Retirar filtro de professor' : '';
         $select .= '<option value="' . $professor_url . '">' . $label_default . '</option>';
         foreach ($result as $row) {
             $checked = isset($_GET['pk_usuario_professor']) && $_GET['pk_usuario_professor'] == $row['fk_usuario_professor'] ? 'selected' : '';
             $select .= '<option value="' . $professor_url . '&pk_usuario_professor=' . $row['fk_usuario_professor'] . '&pk_materia_vin=' . $row['fk_materia_vin'] . '" ' . $checked . '>' . $row['materia_nome'] . ' - ' . $row['professor_nome'] . '</option>';
         }
         $select .= '</select></p>';
         $filtro_professores = $select;
         if (isset($_GET['pk_usuario_professor']) && $_GET['pk_usuario_professor'] != '') {
             // pega a matéria
             $sqlGrade = new SqlGrade();
             $result = $sqlGrade->get_materia_vin_nome($_GET['pk_materia_vin']);
             $data['materia'] = $result[0]['materia_nome'];
             // pega o nome da turma
             $sqlGrade = new SqlGrade();
             $result = $sqlGrade->get_turma($_GET['pk_turma']);
             $data['turma'] = $result[0]['turma_nome'];
             // pega o nome do professor
             $sqlUsuario = new SqlUsuario();
             $result = $sqlUsuario->get_nome_professor($_GET['pk_usuario_professor']);
             $data['professor'] = $result[0]['nome'];
             if (isset($_GET['data_final']) && $_GET['data_final'] != '') {
                 $sqlAula = new SqlAula();
                 $result = $sqlAula->listar_aulas_professor($_GET['pk_turma'], $_GET['pk_usuario_professor'], $_GET['pk_materia_vin']);
                 $data['total'] = count($result);
                 if ($data['total'] > 0) {
                     $this->load->library('table');
                     $arrHead[] = '';
                     $this->table->set_heading($arrHead);
                     $tabela = '';
                     $tabela .= '<table>';
                     foreach ($result as $row) {
                         $tabela .= '<tr>';
                         $tabela .= '<td  class="aulas_conteudos">';
                         $tabela .= '<strong>Data / horário:</strong> ' . View::converteDataBr($row['data_aula']) . ' - ' . substr($row['hora_inicio'], 0, 5) . ' às ' . substr($row['hora_fim'], 0, 5) . '<br />';
                         if ($row['conteudos_livro_desc'] != '') {
                             $tabela .= '<strong>Conteúdo:</strong> ' . $row['conteudos_livro_desc'] . '<br />';
                         } else {
                             $tabela .= '<strong>Conteúdo:</strong> ' . $row['conteudo'] . '<br />';
                         }
                         if ($row['capitulo'] != '') {
                             $tabela .= '<strong>Capítulo:</strong> ' . $row['capitulo'] . '<br />';
                         }
                         if ($row['paginas'] != '') {
                             $tabela .= '<strong>Página(s):</strong> ' . $row['paginas'] . '<br />';
                         }
                         if ($row['exercicios_sala'] != '') {
                             $tabela .= '<strong>Exercícios em sala:</strong> ' . $row['exercicios_sala'] . '<br />';
                         }
                         if ($row['exercicios_casa'] != '') {
                             $tabela .= '<strong>Exercícios propostos para casa:</strong> ' . $row['exercicios_casa'] . '<br />';
                         }
                         if ($row['obs'] != '') {
                             $tabela .= '<strong>Observação:</strong> ' . $row['obs'] . '<br />';
                         }
                         $tabela .= '<strong style="margin-left:500px;">Assinatura:</strong> _____________________________________<br />';
                         $tabela .= '</td>';
                         $tabela .= '</tr>';
                     }
                     $tabela .= '</table>';
                     $data['tabela'] = $tabela;
                 } else {
                     $data['msg'] = '<div class="alert atencao">Nenhuma prova incluída. Para cadastrar, clique no botão acima.</div>';
                 }
             }
         }
     }
     $data['filtro_professores'] = $filtro_professores;
     $data['tabela'] = $tabela;
     $this->load->view($this->load->getUrlTema(), $data);
 }
Exemplo n.º 8
0
 /**
  * Método que retorna todas as anotações feitas pelo professor informado
  * @param Kernel_Models_Professor $professor
  * @param int|array|boolean O código do tipo do registro ou array de códigos. Informe FALSE para ignorar
  * @param int|array|boolean O código do subtipo do registro ou array de códigos. Informe FALSE para ignorar
  * @param FiltrosSistema $filtrosSistema Objeto contendo os filtros do sistema de filtros
  * @return PDOStatement|boolean Objeto contendo a resposta da consulta ou FALSE em caso de erro
  * @throws Exception Gera uma exceção ao introduzir dados inválidos,
  * como um professor não instanciado e etc
  */
 public function getAfaDeProfessor(Kernel_Models_Professor $professor, $tipo = FALSE, $subTipo = FALSE, FiltrosSistema $filtrosSistema = NULL)
 {
     $query = "select distinct on(afa.afa_conceito_aluno.pk_afa_conceito_aluno)" . "afa.afa_conceito_aluno.*, afa.afa_tipo_anotacao.*, " . "afa.afa_subtipo_anotacao.*, pk_turma, " . "public.usuario.pk_usuario as pk_aluno, " . "public.usuario_aluno.pk_usuario_aluno, " . "public.usuario.nome as aluno_nome, " . "public.turma.turma_nome " . "from afa.afa_conceito_aluno " . "inner join afa.afa_subtipo_anotacao on " . "pk_afa_subtipo_anotacao=fk_afa_subtipo_anotacao " . "inner join afa.afa_tipo_anotacao on " . "pk_afa_tipo_anotacao=fk_afa_tipo_anotacao " . "inner join public.aula on " . "public.aula.pk_aula=fk_aula " . "inner join public.usuario_professor on " . "pk_usuario_professor=public.aula.fk_usuario_professor " . "left join public.usuario_aluno on " . "pk_usuario_aluno=afa.afa_conceito_aluno.fk_usuario_aluno " . "left join public.usuario on " . "pk_usuario=public.usuario_aluno.fk_usuario " . "left join public.turma on " . "pk_turma=public.usuario_aluno.fk_turma " . "where public.usuario_professor.fk_usuario=" . $professor->getId() . " ";
     //Filtrando por tipo e subtipo
     if (is_int($tipo)) {
         $query .= "and pk_afa_tipo_anotacao={$tipo} ";
     } elseif (is_array($tipo)) {
         if (Arrays::checarValores($tipo, FILTER_VALIDATE_INT)) {
             $query .= "and (pk_afa_tipo_anotacao=" . implode(" or pk_afa_tipo_anotacao=", $tipo) . ") ";
         }
     }
     if (is_int($subTipo)) {
         $query .= "and pk_afa_subtipo_anotacao={$subTipo} ";
     } elseif (is_array($subTipo)) {
         if (Arrays::checarValores($subTipo, FILTER_VALIDATE_INT)) {
             $query .= "and (pk_afa_subtipo_anotacao=" . implode(" or pk_afa_subtipo_anotacao=", $subTipo) . ") ";
         }
     }
     //Aplicando os filtros
     if ($filtrosSistema instanceof FiltrosSistema) {
         if ($filtrosSistema->validar(array("de")) || $filtrosSistema->validar(array("ate"))) {
             $query .= $filtrosSistema->validar(array("de")) ? "and afa.afa_conceito_aluno.data_evento>='" . $filtrosSistema->getDe() . "' " : "";
             $query .= $filtrosSistema->validar(array("ate")) ? "and afa.afa_conceito_aluno.data_evento>='" . $filtrosSistema->getAte() . "' " : "";
         } else {
             $query .= "extract(year from afa.afa_conceito_aluno.data_evento)=" . Loader::data("config", "site", "ano_letivo") . " ";
         }
     }
     //Ordenando
     $query .= "order by(afa.afa_conceito_aluno.pk_afa_conceito_aluno) desc";
     return $this->queryStatement($query);
 }