Пример #1
0
 public function processar_ranking_bloco($pk_exa_concurso, $pk_exa_bloco)
 {
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['abaPage'] = __FUNCTION__;
     $data['abaAtiva'] = $this->AbaAtiva;
     if ($this->uri->segment(5) != '') {
         try {
             // processa ranking geral
             $sqlConcurso = new SqlConcurso();
             $materias = $sqlConcurso->get_materias_bloco($pk_exa_bloco);
             array_push($materias, array('fk_exa_materia' => 1));
             foreach ($materias as $row) {
                 $result = $sqlConcurso->get_ranking_bloco($pk_exa_bloco, $row['fk_exa_materia']);
                 $_SESSION['nota'] = 0;
                 $ranking = 0;
                 foreach ($result as $item) {
                     if ($_SESSION['nota'] != $item['media_bloco']) {
                         $ranking++;
                     }
                     $sqlConcurso->update_ranking_bloco($pk_exa_bloco, $row['fk_exa_materia'], $item['fk_usuario_aluno'], $ranking);
                     $_SESSION['nota'] = $item['media_bloco'];
                 }
             }
             // Processa ranking por unidade
             $unidades = $sqlConcurso->get_unidades_bloco($pk_exa_bloco);
             foreach ($unidades as $uni) {
                 echo $uni['fk_unidade'] . ')<br />';
                 foreach ($materias as $row) {
                     echo '...........' . $row['fk_exa_materia'] . '<br />';
                     $result = $sqlConcurso->get_ranking_bloco_unidade($pk_exa_bloco, $row['fk_exa_materia'], $uni['fk_unidade']);
                     $_SESSION['nota'] = 0;
                     $ranking = 0;
                     foreach ($result as $item) {
                         if ($_SESSION['nota'] != $item['media_bloco']) {
                             $ranking++;
                         }
                         $sqlConcurso->update_ranking_bloco_unidade($pk_exa_bloco, $row['fk_exa_materia'], $item['fk_usuario_aluno'], $ranking);
                         $_SESSION['nota'] = $item['media_bloco'];
                     }
                 }
             }
             // Processa ranking por turma
             $turmas = $sqlConcurso->get_turmas_bloco($pk_exa_bloco);
             foreach ($turmas as $uni) {
                 echo $uni['fk_turma'] . ')<br />';
                 foreach ($materias as $row) {
                     echo '...........' . $row['fk_exa_materia'] . '<br />';
                     $result = $sqlConcurso->get_ranking_bloco_turma($pk_exa_bloco, $row['fk_exa_materia'], $uni['fk_turma']);
                     $_SESSION['nota'] = 0;
                     $ranking = 0;
                     foreach ($result as $item) {
                         if ($_SESSION['nota'] != $item['media_bloco']) {
                             $ranking++;
                         }
                         $sqlConcurso->update_ranking_bloco_turma($pk_exa_bloco, $row['fk_exa_materia'], $item['fk_usuario_aluno'], $ranking);
                         $_SESSION['nota'] = $item['media_bloco'];
                     }
                 }
             }
             $this->session->set_flashdata('msg', '<div class="alert ok">Ranking de área processado com sucesso</div>');
             redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_estatisticas_gerais_bloco/' . $pk_exa_concurso . '/' . $pk_exa_bloco);
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
 }