public function sincronizacao4_atualiza_alunos($page = 'sincronizacao4_atualiza_alunos')
 {
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $this->getMsg();
     $data['abaAtiva'] = 3;
     $data['abaPage'] = $page;
     // Se a sessão de 'array_turmas' não estiver definida, reencaminha para o método de definição
     if (!is_array($_SESSION['array_turmas_atualiza'])) {
         $this->load->library('util');
         $data['redirect_delay'] = $this->util->redirect_delay(3, 'import/sincronizacao/sincronizacao2_array_turmas');
     } else {
         // Pega o total de turmas a serem processadas
         $total = count($_SESSION['array_turmas_atualiza']);
         $result = $_SESSION['array_turmas_atualiza'];
     }
     $data['total'] = $total;
     // Se já tiver ocorrido algum redirecionamento, faz um incremento. Caso contrário, inicia a contagem
     if (isset($_GET['counter'])) {
         $counter = $_GET['counter'] + 1;
     } else {
         $counter = 0;
     }
     // carrega a library e envia as variáveis a função "loop_refresh"
     $this->load->library('util');
     $data['redirect_delay'] = $this->util->loop_refresh('1', $this->uri->segment(3), $counter, $total);
     // Se o contador for menor que o total de registros da array, efetua o processamento com base na turma da vez
     if ($counter < $total) {
         // Cria o filtro da turma e o envia a model para listagem dos alunos da referida turma
         $tmacod = $result[$counter];
         $sqlSincronizacao = new SqlSincronizacao();
         $resultModel = $sqlSincronizacao->sincroniza_alunos_listagem($this->session->userdata('unidade'), $tmacod, $data['ano_letivo']);
         // conta quantos dados foram encontrados
         $countArray = count($resultModel);
         // Se houver registros (alunos) na turma da vez...
         if ($countArray > 0) {
             $seq = 0;
             // Cria o loop de atualização nos registros encontrados
             foreach ($resultModel as $row) {
                 // echo $row['alu_mat'].') '.$row['alu_nom'].'<br />';
                 $seq++;
                 $emailTemp = Util::getRandomString(60);
                 $matricula = $row['alu_mat'];
                 $nome = $row['alu_nom'];
                 $data_nasc = $row['alu_dtnasc'];
                 $logradouro = $row['alu_end'];
                 $numero = $row['alu_num'];
                 $complemento = $row['alu_compl'];
                 $bairro = $row['alu_bai'];
                 $cidade = $row['alu_cid'];
                 $uf = $row['alu_uf'];
                 $cep = $row['alu_cep'];
                 $sexo = $row['alu_sexo'];
                 $pai = $row['alu_pai'];
                 $mae = $row['alu_mae'];
                 $responsavel = $row['alu_resp'];
                 // verifica se o aluno já tem cadastro no site
                 $sqlSincronizacao = new SqlSincronizacao();
                 $resultModelAluno = $sqlSincronizacao->busca_aluno($nome, $data_nasc, $matricula, $this->session->userdata('unidade'));
                 $temCadastro = 0;
                 if (count($resultModelAluno) > 0) {
                     similar_text($resultModelAluno[0]['nome'], $nome, $percent);
                     // Se o percentual de similaridade encontrado no nome for superior a 90%, significa que o aluno já tem cadastro,
                     if ($percent > 90) {
                         $temCadastro = 1;
                     }
                 }
                 if ($temCadastro == 1) {
                     $pk_usuario = $resultModelAluno[0]['pk_usuario'];
                 } else {
                     // Inclui novo aluno
                     $sqlSincronizacao = new SqlSincronizacao();
                     $pk_usuario = $sqlSincronizacao->incluir_aluno($nome, $emailTemp, $data_nasc, $logradouro, $numero, $complemento, $bairro, $cidade, $uf, $cep, $sexo, $pai, $mae, $responsavel, $data['ano_letivo']);
                 }
                 //busca na tabela "ggeint_vinculos" a(s) turma(s) nas quais o aluno está matriculado
                 $sqlSincronizacao = new SqlSincronizacao();
                 $resultModel = $sqlSincronizacao->busca_turmas_vinculos($this->session->userdata('unidade'), $row['alu_mat'], $tmacod, $data['ano_letivo']);
                 $countArray = count($resultModel);
                 foreach ($resultModel as $row) {
                     $data_mat = $row['vin_data'];
                     if ($row['vin_tpdes'] == 'P') {
                         // se for percentual
                         $desconto = $row['vin_vldesm'];
                     } else {
                         if ($row['vin_tpdes'] == 'V') {
                             // se for um valor
                             $resultMensalidade = $sqlSincronizacao->get_mensalidade_serie($data['ano_letivo'], $tmacod, $this->session->userdata('unidade'));
                             $mensalidade = !empty($resultMensalidade) ? $resultMensalidade[0]['valor'] : 0;
                             $perc = Matematica::divisao($row['vin_vldesm'], $mensalidade);
                             $desconto = $perc > 0 ? $perc * 100 : 0;
                         } else {
                             $desconto = 0;
                         }
                     }
                     // Pega o id da turma, caso a mesma esteja habilitada
                     $sqlSincronizacao = new SqlSincronizacao();
                     $resultModelTurma = $sqlSincronizacao->busca_turma_id($this->session->userdata('unidade'), $tmacod, $data['ano_letivo']);
                     foreach ($resultModelTurma as $rowTurma) {
                         $pk_turma = $rowTurma['pk_turma'];
                         if ($countArray > 0 && $pk_turma != '') {
                             // Verifica se a turma já consta nos vínculos do aluno
                             $sqlSincronizacao = new SqlSincronizacao();
                             $resultModelBuscaTurma = $sqlSincronizacao->busca_turma_vinculo($pk_usuario, $pk_turma, $matricula, $data['ano_letivo']);
                             // se a turma já constar...
                             if (count($resultModelBuscaTurma) > 0) {
                                 // Atualiza a flag de atualização
                                 $sqlSincronizacao = new SqlSincronizacao();
                                 $sqlSincronizacao->atualiza_turma_vinculo($resultModelBuscaTurma[0]['pk_usuario_aluno'], $pk_usuario, $pk_turma, $matricula, $data['ano_letivo'], $desconto);
                                 // Se não constar...
                             } else {
                                 // Inclui a(s) turma(s) do aluno
                                 $sqlSincronizacao = new SqlSincronizacao();
                                 $sqlSincronizacao->inclui_aluno_turma($matricula, $pk_usuario, $pk_turma, $data_mat, $data['ano_letivo'], 0, $desconto);
                             }
                         }
                         // fim de "if ($countArray == 0){"
                     }
                     // fim de foreach ($resultModelTurma as $rowTurma){
                 }
                 // fim de foreach ($resultModel as $row){
             }
             // fim de 'foreach ($resultModel as $row){'
         }
         // fim de 'if ($countArray > 0){'
     } else {
         // Carrega a library "útil" e o método que redireciona a próxima página com um delay pré-definido
         $this->load->library('util');
         $data['redirect_delay'] = $this->util->redirect_delay(1, 'import/sincronizacao/desabilita_cancelados');
     }
     // fim de if ($counter < $total){
     $this->load->view($this->load->getUrlTema(), $data);
 }