Esempio n. 1
0
 public function listar_ranking_faltas()
 {
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $this->getMsg();
     $data['abaAtiva'] = 8;
     $data['abaPage'] = 'listar_ranking_faltas';
     $data['alias'] = 'listar_ranking_faltas';
     $data['msg'] = !isset($_GET['print']) ? '<div class="alert informacao"><strong>Atenção</strong><br />Por padrão, o sistema exibe inicialmente as faltas não justificadas. Para incluir as faltas por licença e justificadas clique nos checkboxs correspondentes, um de cada vez.</div>' : '';
     $data['js'] = array('js/modules/fap/fap.js');
     $pk_unidade = isset($_GET['pk_unidade']) && $_GET['pk_unidade'] != '' ? $_GET['pk_unidade'] : 0;
     $pk_serie = isset($_GET['pk_serie']) && $_GET['pk_serie'] != '' ? $_GET['pk_serie'] : 0;
     // tipos de falta onde 5 = licença; 6 = justificada; e 7 = Não justificada
     $licenca = isset($_GET['licenca']) && $_GET['licenca'] != '' ? '5,' : '';
     $justificada = isset($_GET['justificada']) && $_GET['justificada'] != '' ? '6,' : '';
     $njustificada = isset($_GET['njustificada']) && $_GET['njustificada'] != '' ? '7,' : '';
     $data['licenca'] = substr($licenca, 0, -1);
     $data['justificada'] = substr($justificada, 0, -1);
     $data['njustificada'] = substr($njustificada, 0, -1);
     // concatena os tipos e retira a vírgula do final
     $tipos = substr($licenca . $justificada . $njustificada, 0, -1);
     $tipos_faltas = array($tipos);
     // cria a tabela temporária com os dados selecionados
     $sqlFap = new SqlFap();
     $result = $sqlFap->insert_temp_faltas($tipos_faltas, $data['ano_letivo']);
     $sqlFap = new SqlFap();
     $result = $sqlFap->listar_ranking_faltas($data['ano_letivo']);
     $array_result = array();
     foreach ($result['registros'] as $row) {
         if ($row['totalaulas'] > 0) {
             $percent = $row['totalfaltas'] / $row['totalaulas'] * 100;
         } else {
             $percent = 0;
         }
         $array_result[] = array('fk_usuario_professor' => $row['fk_usuario_professor'], 'professor_nome' => $row['professor_previsto'], 'totalaulas' => $row['totalaulas'], 'totalfaltas' => $row['totalfaltas'], 'percent' => $percent, 'fk_usuario' => $row['fk_usuario']);
     }
     foreach ($array_result as &$ma) {
         $tmp[] =& $ma["percent"];
     }
     if (count($array_result) > 0) {
         array_multisort($tmp, SORT_DESC, $array_result);
     }
     $result['registros'] = $array_result;
     if ($result['total'] > 0) {
         $this->load->library('table');
         $arrHead[] = 'Posição';
         $arrHead[] = 'Nome';
         $arrHead[] = 'Aulas';
         $arrHead[] = 'Faltas';
         $arrHead[] = '%';
         $this->table->set_heading($arrHead);
         $count = 0;
         $i = 0;
         $_SESSION['rankingAnterior'] = 0;
         $_SESSION['indicador'] = 0;
         $ranking = 1;
         foreach ($result['registros'] as $row) {
             $count++;
             $tmpl = Util::zebrar($count, count($result['registros']));
             $i++;
             if (round($row['percent']) == $_SESSION['indicador']) {
                 $ranking = $_SESSION['rankingAnterior'];
             } else {
                 $ranking = $i;
             }
             $cell_ranking = array('data' => $ranking, 'class' => 'tcenter');
             $cell_aulas = array('data' => $row['totalaulas'], 'class' => 'tcenter');
             $cell_faltas = array('data' => $row['totalfaltas'], 'class' => 'tcenter');
             $this->table->add_row($cell_ranking, '<a rel="shadowbox[Mixed]" href="' . base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/detalhe_fap/' . $row['fk_usuario'] . '/' . $row['fk_usuario_professor'] . '?shadowbox=1" class="link">' . $row['professor_nome'] . '</a>', $cell_aulas, $cell_faltas, round($row['percent']) . '%');
             $_SESSION['indicador'] = round($row['percent']);
             $_SESSION['rankingAnterior'] = $ranking;
         }
         $this->table->set_template($tmpl);
     } else {
         $data['msg'] = '<div class="alert atencao">Nenhum registro encontrado</div>';
         $data['total'] = $result['total'];
     }
     $data['total'] = $result['total'];
     $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/';
     // Select filtro de unidade
     $sqlFap = new SqlFap();
     $data['unidade'] = $sqlFap->listar_unidades_faltas($tipos_faltas, $data['ano_letivo']);
     $unidade = explode("&pk_unidade=", $_SERVER['QUERY_STRING']);
     $data['unidade_url'] = $config['base_url'] . '?' . $unidade[0];
     // Select filtro de serie
     $sqlFap = new SqlFap();
     $data['serie'] = $sqlFap->listar_series_faltas($pk_unidade, $tipos_faltas, $data['ano_letivo']);
     $serie = explode("&pk_serie=", $_SERVER['QUERY_STRING']);
     $data['serie_url'] = $config['base_url'] . '?' . $serie[0];
     // Select filtro de turmas
     $sqlFap = new SqlFap();
     $data['turma'] = $sqlFap->listar_turmas_faltas($pk_unidade, $pk_serie, $tipos_faltas, $data['ano_letivo']);
     $turma = explode("&pk_turma=", $_SERVER['QUERY_STRING']);
     $data['turma_url'] = $config['base_url'] . '?' . $turma[0];
     $tipo = explode("&licenca=", $_SERVER['QUERY_STRING']);
     $data['licenca_url'] = $config['base_url'] . '?' . $tipo[0];
     $tipo = explode("&justificada=", $_SERVER['QUERY_STRING']);
     $data['justificada_url'] = $config['base_url'] . '?' . $tipo[0];
     $tipo = explode("&njustificada=", $_SERVER['QUERY_STRING']);
     $data['njustificada_url'] = $config['base_url'] . '?' . $tipo[0];
     if ($this->input->is_ajax_request()) {
         echo json_encode(array('content' => $this->load->view($this->uri->segment(3), $data, true)));
     } else {
         $this->load->view($this->load->getUrlTema(), $data);
     }
 }