Example #1
0
 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);
 }
Example #2
0
 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));
     }
 }