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); }