/** * 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(); }
/** * 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; }
/** * 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); }
/** * 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(); }
/** * 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); }
/** * 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(); }
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); }
/** * 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); }