public function evolucao() { $msg = null; $data = $this->getParametroVisao(); if ($data['mobile']) { $data['usuario'] = unserialize($_SESSION['usuario']); $data['page'] = __FUNCTION__; $data['tema'] = $this->load->setTheme('responsive'); } else { $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; } $data['msg'] = $msg; $data['abaAtiva'] = 18; $data['abaPage'] = 'evolucao'; $data['alias'] = 'evolucao'; if ($data['idTipoUsuario'] == 6 || $data['idTipoUsuario'] == 11) { $pk_usuario_aluno = $data['idUsuarioAluno']; } else { $pk_usuario_aluno = $this->uri->segment(4); } // pega os nomes do aluno e da turma $sqlUsuario = new SqlUsuario(); $result = $sqlUsuario->get_aluno($pk_usuario_aluno); $data['nome'] = $result['registros'][0]['nome']; $data['turma_nome'] = $result['registros'][0]['turma_nome']; $sqlProva = new SqlProva(); $result = $sqlProva->listar_relatorio($pk_usuario_aluno); $data['titulo'] = count($result) > 0 ? $result[0]['relatorio_nome'] : ''; $data['total'] = count($result); $html = ''; if ($data['total'] > 0) { $html .= '<script type="text/javascript" src="https://www.google.com/jsapi"></script>'; $count = 0; foreach ($result as $row) { $count++; $html .= '<script type="text/javascript">'; $html .= ' google.load("visualization", "1", {packages:["corechart"]});'; $html .= ' google.setOnLoadCallback(drawChart);'; $html .= ' function drawChart() {'; $html .= ' var data = google.visualization.arrayToDataTable(['; $html .= ' [\'Sequência\', \'Média geral\', \'Aluno\', \'link\'],'; $sqlProva = new SqlProva(); $dados = $sqlProva->get_prova_dados($row['fk_sim_concurso_tipo'], $pk_usuario_aluno); $total = count($dados); $registros = ''; $i = 0; foreach ($dados as $dado) { $i++; $explode = explode('/', $dado['relatorio_nome']); $n_partes = count($explode); if ($n_partes == 2) { $relatorio_nome = $explode[1]; } else { if ($n_partes == 3) { $relatorio_nome = $explode[1] . ' / ' . $explode[2]; } else { if ($n_partes == 4) { $relatorio_nome = $explode[1] . ' / ' . $explode[2] . ' / ' . $explode[3]; } else { if ($n_partes == 5) { $relatorio_nome = $explode[1] . ' / ' . $explode[2] . ' / ' . $explode[3] . ' / ' . $explode[4]; } } } } $registros .= ' [\'' . $relatorio_nome . '\', ' . number_format($dado['media'], 1) . ', ' . number_format($dado['media_aluno'], 1) . ', \'' . base_url() . 'simulado/prova/detalhe/' . $dado['pk_relatorio'] . '\'],'; } $html .= substr($registros, 0, -1); $html .= ' ]);'; $html .= ' var view = new google.visualization.DataView(data);'; $html .= ' view.setColumns([0, 1, 2]);'; $html .= ' var options = {'; $html .= ' title: \'' . $row['concurso_tipo_nome'] . '\''; $html .= ' };'; if ($total < 3) { $html .= ' var chart = new google.visualization.ColumnChart('; } else { $html .= ' var chart = new google.visualization.LineChart('; } $html .= ' document.getElementById(\'chart_div_' . $count . '\'));'; $html .= ' chart.draw(view, options);'; $html .= ' var selectHandler = function(e) {'; $html .= ' window.location = data.getValue(chart.getSelection()[0][\'row\'], 3 );'; $html .= ' };'; $html .= ' google.visualization.events.addListener(chart, \'select\', selectHandler);'; $html .= ' }'; $html .= '</script>'; if ($data['mobile']) { $html .= '<div id="chart_div_' . $count . '""></div>'; } else { $html .= '<div id="chart_div_' . $count . '" style="width: 800px; height: 300px;"></div>'; } } } else { if ($data['idTipoUsuario'] == 1) { if ($data['mobile']) { $data['msg'] = '<div class="alert alert-warning">Nenhuma área incluída. Para cadastrar, clique no botão acima.</div>'; } else { $data['msg'] = '<div class="alert atencao">Nenhuma área incluída. Para cadastrar, clique no botão acima.</div>'; } } } $data['html'] = $html; $this->load->view($this->load->getUrlTema(), $data); }
public function publicar_concurso($pk_sim_concurso_tipo, $pk_sim_concurso) { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; $data['msg'] = $this->getMsg(); $data['abaAtiva'] = 18; $data['abaPage'] = 'publicar_concurso'; $data['alias'] = 'publicar_concurso'; if ($this->uri->segment(5) != '') { // pega os dados descritivos da prova $sqlProva = new SqlProva(); $result = $sqlProva->get_concurso($pk_sim_concurso); $relatorio_nome = View::tituloProva($result[0]['concurso_tipo_nome'], $result[0]['concurso_nome'], 'geral', 'geral', 'geral'); // pega a data do último bloco $sqlAdministracao = new SqlAdministracao(); $data_bloco = array_pop(array_pop($sqlAdministracao->get_blocos_concurso($pk_sim_concurso))); // reseta os dados anteriores $sqlAdministracao = new SqlAdministracao(); $sqlAdministracao->excluir_relatorio_concurso($pk_sim_concurso); // inclui os dados da prova na tabela de relatório $sqlAdministracao = new SqlAdministracao(); $pk_relatorio = $sqlAdministracao->insert_relatorio_prova($relatorio_nome, $data_bloco['data_realizacao'], date('Y-m-d'), 3, $result[0]['fk_sim_concurso_tipo'], 0, 0, 0, $result[0]['pk_sim_concurso'], $result[0]['participantes'], $result[0]['media_concurso'], $result[0]['desvio_medio'], $result[0]['variancia'], $result[0]['desvio_padrao'], $result[0]['maior_media'], $result[0]['menor_media'], $result[0]['mediana'], $result[0]['quartil1'], $result[0]['quartil3']); // pega os dados dos alunos na prova $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->listar_ranking_concurso($pk_sim_concurso); foreach ($result['registros'] as $row) { echo $row['media_concurso'] . '<br />'; // inclui os dados dos alunos na prova na tabela de relatório $sqlAdministracao = new SqlAdministracao(); $sqlAdministracao->insert_relatorio_dados($pk_relatorio, $row['fk_usuario_aluno'], 1, $row['media_concurso'], $row['desvio_concurso'], $row['ranking_geral_concurso'], $row['ranking_unidade_concurso'], $row['ranking_turma_concurso']); } // PROCESSA MÉDIAS E DESVIOS DAS TURMAS // pega as turmas participantes $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->get_turmas_concurso($pk_relatorio); foreach ($result['registros'] as $row) { // procesa as médias e desvios padrão de cada turma $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->process_media_desvio_turma($pk_relatorio, $row['pk_turma']); foreach ($result['registros'] as $item) { var_dump($item['desvio_turma']); $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->insert_media_desvio_turma($pk_relatorio, $row['pk_turma'], $item['media_turma'], $item['desvio_turma']); } } $this->session->set_flashdata('msg', '<div class="alert ok">Concurso publicado com sucesso!</div>'); redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/listar_concursos/' . $this->uri->segment(4) . '/' . $this->uri->segment(5)); } }