public function listar_concursos($pk_sim_concurso_tipo) { $msg = null; $data = $this->getParametroVisao(); $data['page'] = 'home'; $data['tema'] != '' ? $this->load->setTheme($data['tema']) : ''; $data['msg'] = $msg; $data['abaAtiva'] = 18; $data['abaPage'] = 'listar_concursos'; $data['alias'] = 'listar_concursos'; $data['query'] = isset($_GET['psi_prv_unidade']) ? '?psi_prv_unidade=' . $_GET['psi_prv_unidade'] : ''; $data['js'] = array('js/modules/simulado.js'); $psi_prv_unidade = isset($_GET['psi_prv_unidade']) != '' ? '?psi_prv_unidade=' . $_GET['psi_prv_unidade'] : ''; $sqlAdministracao = new SqlAdministracao(); $result = $sqlAdministracao->listar_concursos($pk_sim_concurso_tipo); $sqlProva = new SqlProva(); $data['titulo'] = $sqlProva->get_titulo_lista_concursos($pk_sim_concurso_tipo); $data['total'] = $result['total']; $heading_processar = 0; if ($result['total'] > 0) { $this->load->library('table'); $count = 0; $count_media_concurso = 0; foreach ($result['registros'] as $row) { $count++; $tmpl = Util::zebrar($count, count($result['registros'])); // checa se as médias já foram processadas $sqlAdministracao = new SqlAdministracao(); $medias = $sqlAdministracao->checa_medias_blocos($row['pk_sim_concurso']); $count_media = 0; foreach ($medias['registros'] as $media) { if ($media['media_bloco'] != null) { $count_media++; } } $blocos = array('data' => $row['blocos'], 'class' => 'tcenter'); // pega as pks das sequencias de materias $sqlAdministracao = new SqlAdministracao(); $gabaritos = $sqlAdministracao->listar_concursos_gabaritos($row['pk_sim_concurso']); // cria o menu de gabaritos, caso tenham sido incluídos anteriormente $html = '<ul class="square m0">'; $conta_pesos = 0; $soma_medias = 0; foreach ($gabaritos['registros'] as $gabarito) { if ($gabarito['pesos'] != 0) { $conta_pesos++; } // se o peso da matéria ja´tiver tido sido definido, coloca o ícone ok $peso_definido = $gabarito['pesos'] != 0 ? '<div class="icon_ok right ml"></div>' : ''; $html .= '<li>' . $peso_definido . '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/editar_pesos_concursos/' . $this->uri->segment(4) . '/' . $row['pk_sim_concurso'] . '/' . $gabarito['pk_sim_concurso_gabarito'] . '">' . $gabarito['descricao'] . '</a> (' . $gabarito['pesos'] . ' disciplinas) </li>'; } $html .= '</ul>'; // se todos os pesos tiverem sido definidos, seta o valor 1 a flag $flag_pesos_ok = $conta_pesos == $gabaritos['total'] && $gabaritos['total'] > 0 ? 1 : 0; // se as sequencias de matéria não foram incluídas if ($gabaritos['total'] == 0) { if ((int) $row['blocos'] > 0 && (int) $count_media == (int) $row['blocos']) { $pesos = '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/junta_provas/' . $this->uri->segment(4) . '/' . $row['pk_sim_concurso'] . '"><div class="tooltip icon_pesos" data-tooltip="Definir pesos"></div></a>'; } else { $pesos = ''; } } else { // se a fk do concurso estiver definida, exibe a lista já aberta, evitando que o usuário tenha que clicar no ícone de pesos if (isset($_GET['fk_sim_concurso']) && $_GET['fk_sim_concurso'] == $row['pk_sim_concurso']) { $pesos = $html; } else { // mostra o icone de pesos com e a lista oculta para ser exibida quando o ícone for clicado $pesos = array('data' => '<a data-id="' . $row['pk_sim_concurso'] . '" class="gabaritos"><div id="icone_' . $row['pk_sim_concurso'] . '" class="tooltip icon_pesos" data-tooltip="Editar pesos das matérias"></div></a> <div id="' . $row['pk_sim_concurso'] . '" class="DivOculta">' . $html . '</div>'); } } $pesos_final = $pesos; // // se as sequencias de materias forem incluídas // if ($gabaritos['total'] > 0) // { // if ($row['media_concurso'] != null) // { // // se os pesos já tiverem sido definidos, coloca o ícone com o link para processamento. Caso contrário, coloca o ícone sem o link, apenas com o aviso solicitando para incluir os pesoas antes // $processar_final = $checking_processar == 1 ? $processar : '<div class="tooltip icon_processar" data-tooltip="Antes de processar o concurso, defina antes os pesos de cada matéria de cada subgrupo ao lado."></div>'; // } // else // { // $processar_final = '<div class="tooltip icon_processar_cinza" data-tooltip="Antes de processar o concurso, defina antes os pesos de cada matéria de cada subgrupo ao lado."></div>'; // } // // if ($processar_final != '') // { // $heading_processar++; // } // } // else // { // $processar_final = '<div class="tooltip icon_processar_cinza" data-tooltip="Processamento dependendo de etapas anteriores"></div>'; // } if ($flag_pesos_ok == 1) { $processar = '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processar_concurso/' . $this->uri->segment(4) . '/' . $row['pk_sim_concurso'] . '"><div class="tooltip icon_processar" data-tooltip="Processar concurso"></div></a>'; } else { $processar = '<div class="tooltip icon_processar_cinza" data-tooltip="Processamento dependendo de etapas anteriores"></div>'; } // verifica o bloco já foi publicado $sqlAdministracao = new SqlAdministracao(); $publicacao = $sqlAdministracao->checa_publicacao_concurso($row['pk_sim_concurso']); // se ainda não foi publicado if ($publicacao['total'] == 0) { $msgPublicacao = 'Concurso não publicado'; $icone_publica = 'icon_publicaCinza'; } else { $icone_publica = 'icon_publica'; // se foi foi publicado em um nível if ($publicacao['total'] == 1) { $msgPublicacao = 'Publicado no dia ' . View::converteDataBr($publicacao['registros'][0]['data_process']) . ' como ' . View::nivelRanking($publicacao['registros'][0]['nivel_ranking']); } else { $msgPublicacao = ''; foreach ($publicacao['registros'] as $public) { $msgPublicacao .= ' * Publicado no dia ' . View::converteDataBr($public['data_process']) . ' como ' . View::nivelRanking($public['nivel_ranking']); } } } // se a média do concurso foi processada if ($row['media_concurso'] != '') { $count_media_concurso++; } if ($row['media_concurso'] != null) { $listagem = '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/listar_ranking_concurso/' . $this->uri->segment(4) . '/' . $row['pk_sim_concurso'] . '"><div class="tooltip icon_ranking" data-tooltip="Listar ranking do concurso"></div></a>'; $publicar = array('data' => '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/publicar_concurso/' . $this->uri->segment(4) . '/' . $row['pk_sim_concurso'] . '"><div class="tooltip ' . $icone_publica . '" data-tooltip="' . $msgPublicacao . '"></div></a>', 'class' => 'tcenter'); } else { $listagem = '<div class="tooltip icon_rankingCinza" data-tooltip="Ranking dependendo de etapas anteriores"></div>'; $publicar = '<div class="tooltip ' . $icone_publica . '" data-tooltip="' . $msgPublicacao . '"></div>'; } $inscritos = '<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/inscritos/' . $row['pk_sim_concurso'] . '"><div class="tooltip icon_ok" data-tooltip="Inscritos"></div></a>'; $this->table->add_row('<a class="link" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/listar_blocos/' . $row['pk_sim_concurso'] . $psi_prv_unidade . '">' . $row['concurso_nome'] . '</a>', $blocos, $inscritos, $pesos_final, $processar, $listagem, $publicar, $data['permissao']['excluir'] == 1 ? '<a href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/excluir_concurso" ' . View::getParamExcluirItemTabela($row['pk_sim_concurso'], 0, 0, '', 'Excluir concurso', 'Deseja excluir o concurso ' . $row['concurso_nome'] . '') . ' class="excluirItemTabela"><div class="tooltip icon_delete" data-tooltip="Exclusão"></div></a>' : ''); } $arrHead[] = 'Concursos'; $arrHead[] = 'Blocos'; $arrHead[] = ''; $arrHead[] = ''; $arrHead[] = ''; $arrHead[] = ''; $arrHead[] = ''; $arrHead[] = ''; $this->table->set_heading($arrHead); $this->table->set_template($tmpl); } else { $data['msg'] = '<div class="alert atencao">Nenhum concurso cadastrado. Para incluir, clique no botão acima.</div>'; } $this->load->view($this->load->getUrlTema(), $data); }