コード例 #1
0
ファイル: parecer.php プロジェクト: andersongimino/area51
 public function cadastrar_parecer($limiteInicial = 0, $limiteFinal = 0, $qtdPorPagina = 1)
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 8;
     $data['abaAtivaMae'] = 1;
     $data['subAbaAtiva'] = 1;
     $data['abaPage'] = 'cadastrar_parecer';
     $data['alias'] = 'cadastrar_parecer';
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         try {
             // View::validarFormAntInjection($data['alias']);
             for ($i = 0; $i < $this->input->post('n_professores'); $i++) {
                 $i2 = $i + 1;
                 $variaveis = explode('#', $this->input->post('resposta' . $i2));
                 if (count($variaveis) > 1) {
                     $sqlParecer = new SqlParecer();
                     $sqlParecer->cadastrar_resposta_coordenador($variaveis[0], $variaveis[1], $variaveis[2], $variaveis[3], $variaveis[4]);
                 }
             }
             if ($this->input->post('processa') == 1) {
                 redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/processa_parecer/' . $this->input->post('pk_par_pesquisa') . '?coordenador=1');
             } else {
                 redirect(base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/' . $this->input->post('pagina') . '?pk_par_pesquisa=' . $this->input->post('pk_par_pesquisa'));
             }
             return false;
         } catch (Exception $e) {
             $msg = '<p class="alert erro">' . $e->getMessage() . '</p>';
         }
     }
     $sqlParecer = new SqlParecer();
     $result = $sqlParecer->listar_questoes($limiteInicial, $qtdPorPagina);
     $data['questao'] = $result['registros'];
     $total = $result['total'];
     $pagina = $this->uri->segment(4) != '' ? $this->uri->segment(4) + 1 : 1;
     if ($pagina < $total) {
         $data['pagina'] = $pagina;
     } else {
         $data['pagina'] = '';
     }
     $pk_par_questao = $data['questao'][0]['pk_par_questao'];
     if (empty($data['turmas'])) {
         $data['total'] = 0;
         $data['msg'] = '<div class="alert atencao">Ainda não constam turmas associadas ao coordenador logado. Verifique as grades das turmas vinculadas a coordenação atual.</div>';
     } else {
         $sqlGrade = new SqlGrade();
         $result = $sqlGrade->listar_professores_coordenacao($data['turmas'], $data['ano_letivo']);
         if ($result['total'] > 0) {
             $this->load->library('table');
             $arrHead[] = 'Professor';
             $arrHead[] = 'Disciplina';
             $arrHead[] = 'Parecer';
             $this->table->set_heading($arrHead);
             $count = 0;
             foreach ($result['registros'] as $row) {
                 $count++;
                 // Verifica se os registros de resposta já foram incluídos no sistema anteriormente.
                 $sqlParecer = new SqlParecer();
                 $respostas = $sqlParecer->checa_resposta_coordenador($row['fk_materia_vin'], $row['fk_usuario_professor'], $data['idUsuarioCoordenador']);
                 if ($respostas['total'] == 0) {
                     $data['msg'] = '<div class="alert informacao">Avalie sua equipe de professores seguindo os oito passos indicados abaixo:</div>';
                 }
                 // pega as alternativas da questão atual
                 $sqlParecer = new SqlParecer();
                 $alternativas = $sqlParecer->get_alternativas($pk_par_questao);
                 $select = '<select name="resposta' . $count . '" class="required">';
                 $select .= '<option value=""></option>';
                 foreach ($alternativas['registros'] as $alternativa) {
                     $selected = '';
                     foreach ($respostas['registros'] as $resposta) {
                         if ($resposta['fk_par_alternativa'] == $alternativa['pk_par_alternativa']) {
                             $selected = ' selected';
                             break;
                         } else {
                             $selected = '';
                         }
                     }
                     // $selected_final =  ($selected == '') &&  ?
                     $select .= '<option value="' . $row['fk_materia_vin'] . '#' . $row['fk_usuario_professor'] . '#' . $data['idUsuarioCoordenador'] . '#' . $pk_par_questao . '#' . $alternativa['pk_par_alternativa'] . '" ' . $selected . '>' . $alternativa['par_alternativa'] . '</option>';
                 }
                 $select .= '</select>';
                 $tmpl = Util::zebrar($count, count($result['registros']));
                 if ($row['fk_materia_vin'] != 0) {
                     $this->table->add_row($row['professor_nome'], $row['materia_nome'], $select);
                 }
             }
             $data['n_professores'] = $count;
             $this->table->set_template($tmpl);
         } else {
             $data['msg'] = '<div class="alert atencao">Nenhum registro encontrado</div>';
             $data['total'] = $result['total'];
         }
         $this->load->library('pagination');
         $querystring = $_SERVER['QUERY_STRING'] != '' ? '?' . $_SERVER['QUERY_STRING'] : '';
         $config['base_url'] = base_url() . $this->uri->segment(1) . '/' . $this->uri->segment(2) . '/' . $this->uri->segment(3) . '/';
         $config['total_rows'] = $total;
         $config['per_page'] = $qtdPorPagina;
         // $config['add_attr'] = 'class="carregarConteudo" data-content="inc"';
         $config['anchor_class'] = $querystring;
         $config['num_links'] = 10;
         $data['totalRegistros'] = View::paginacao($total);
         $data['total'] = $total;
         if ($limiteInicial + 1 == $total) {
             $data['processa'] = 1;
         } else {
             $data['processa'] = 0;
         }
         $this->pagination->initialize($config);
     }
     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);
     }
 }