public function processar_medias($pk_exa_area, $pk_exa_prova) { $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['abaPage'] = __FUNCTION__; $data['abaAtiva'] = $this->AbaAtiva; if ($this->uri->segment(5) != '') { try { // pega as matérias da prova $sqlConcurso = new SqlConcurso(); $materias = $sqlConcurso->get_materias_prova($pk_exa_prova); // verifica se os pesos já foram definidos $soma_pesos = 0; foreach ($materias as $row) { $soma_pesos = $soma_pesos + $row['peso_prova']; } if ($soma_pesos == 0) { $this->session->set_flashdata('msg', '<div class="alert erro">Falta definir os pesos das matérias!</div>'); redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/listar_provas/' . $this->uri->segment(4) . '/' . $this->uri->segment(5)); } // pega os alunos que participaram da prova $result = $sqlConcurso->listar_alunos_prova($pk_exa_prova); foreach ($result['registros'] as $row) { echo $row['fk_usuario_aluno'] . ')<BR/>'; $media = 0; foreach ($materias as $materia) { echo '.... ' . $materia['fk_exa_materia'] . ' - ' . $materia['peso_prova'] . '<br />'; // pega a nota do aluno na materia atual $notas = $sqlConcurso->get_nota_aluno($row['fk_usuario_aluno'], $pk_exa_prova, $materia['fk_exa_materia']); $media_ponderada_materia = $notas[0]['media_prova'] * $materia['peso_prova']; $media = $media + $media_ponderada_materia; } echo '----------- ' . $media . '<br />'; // inclui média $sqlConcurso->insert_nota($media, $row['fk_usuario_aluno'], $pk_exa_prova, 1); } $this->session->set_flashdata('msg', '<div class="alert ok">Médias processadas com sucesso!</div>'); redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_ranking/' . $this->uri->segment(4) . '/' . $this->uri->segment(5)); return false; } catch (Exception $e) { $msg = '<p class="alert erro">' . $e->getMessage() . '</p>'; } } }