function Gerar()
 {
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     // primary keys
     $this->campoOculto("cod_matricula", $this->cod_matricula);
     $this->campoOculto("ref_cod_aluno", $this->ref_cod_aluno);
     $this->campoOculto("ref_cod_escola", $this->ref_ref_cod_escola);
     $obj_aluno = new clsPmieducarAluno();
     $lst_aluno = $obj_aluno->lista($this->ref_cod_aluno, null, null, null, null, null, null, null, null, null, 1);
     if (is_array($lst_aluno)) {
         $det_aluno = array_shift($lst_aluno);
         $this->nm_aluno = $det_aluno["nome_aluno"];
         $this->campoRotulo("nm_aluno", "Aluno", $this->nm_aluno);
     }
     $array_inicio_sequencias = clsPmieducarMatricula::getInicioSequencia();
     $db = new clsBanco();
     $cursos = array();
     $sql_curso_aluno = "SELECT ref_cod_curso FROM pmieducar.serie WHERE cod_serie = {$this->ref_ref_cod_serie}";
     $this->ref_cod_curso = $db->CampoUnico($sql_curso_aluno);
     foreach ($array_inicio_sequencias as $serie_inicio) {
         $serie_inicio = $serie_inicio[0];
         $seq_ini = $serie_inicio;
         $seq_correta = false;
         do {
             $sql = "SELECT o.ref_serie_origem\n\t\t\t\t               ,s.nm_serie\n\t\t\t\t\t\t       ,o.ref_serie_destino\n\t\t\t\t\t\t       ,s.ref_cod_curso as ref_cod_curso_origem\n\t\t\t\t\t\t       ,sd.ref_cod_curso as ref_cod_curso_destino\n\t\t\t\t\t\t  FROM pmieducar.sequencia_serie o\n\t\t\t\t\t\t       ,pmieducar.serie s\n\t\t\t\t\t\t       ,pmieducar.serie sd\n\t\t\t\t\t\t WHERE s.cod_serie = o.ref_serie_origem\n\t\t\t\t\t\t   AND s.cod_serie = {$seq_ini}\n\t\t\t\t           AND sd.cod_serie = o.ref_serie_destino\n\t\t\t\t\t\t";
             //						   AND s.ref_cod_curso = $curso
             $db->Consulta($sql);
             $db->ProximoRegistro();
             $tupla = $db->Tupla();
             $serie_origem = $tupla['ref_serie_origem'];
             //$nm_serie_origem = $tupla['nm_serie'];
             $curso_origem = $tupla['ref_cod_curso_origem'];
             $curso_destino = $tupla['ref_cod_curso_destino'];
             $seq_ini = $serie_destino = $tupla['ref_serie_destino'];
             $obj_curso = new clsPmieducarCurso($curso_origem);
             $det_curso = $obj_curso->detalhe();
             $cursos[$curso_origem] = $det_curso['nm_curso'];
             $obj_curso = new clsPmieducarCurso($curso_destino);
             $det_curso = $obj_curso->detalhe();
             $cursos[$curso_destino] = $det_curso['nm_curso'];
             if ($this->ref_ref_cod_serie == $serie_origem) {
                 $seq_correta = true;
             }
             //$todas_sequencias .= "sequencia_serie[sequencia_serie.length] = new Array({$curso_origem},$serie_origem,'$nm_serie_origem');\n";
             $sql = "SELECT 1\n\t\t\t\t\t\t  FROM pmieducar.sequencia_serie s\n\t\t\t\t\t\t WHERE s.ref_serie_origem = {$seq_ini}\n\t\t\t\t\t    ";
             $true = $db->CampoUnico($sql);
         } while ($true);
         $obj_serie = new clsPmieducarSerie($serie_destino);
         $det_serie = $obj_serie->detalhe();
         //$todas_sequencias .= "sequencia_serie[sequencia_serie.length] = new Array({$curso_destino},$serie_destino,'{$det_serie['nm_serie']}');\n";
         if ($this->ref_ref_cod_serie == $serie_destino) {
             $seq_correta = true;
         }
         if ($seq_correta == false) {
             ///$todas_sequencias = "var sequencia_serie = new Array();\n";
             $cursos = array('' => 'Não existem cursos/séries para reclassificação');
         } else {
             break;
         }
     }
     $this->campoOculto("serie_matricula", $this->ref_ref_cod_serie);
     //echo "<script>\n{$todas_sequencias}var serie_matricula = {$this->ref_ref_cod_serie};\n</script>";
     // foreign keys
     //$obrigatorio = true;
     //$get_escola = false;
     //	$get_instituicao = false;
     //	$get_escola_curso = true;
     //$get_escola_curso_serie = true;
     //$get_matricula = true;
     //include("include/pmieducar/educar_campo_lista.php");
     $this->campoLista("ref_cod_curso", "Curso", $cursos, $this->ref_cod_curso, "getSerie();");
     $this->campoLista("ref_ref_cod_serie", "S&eacute;rie", array('' => 'Selecione uma série'), '');
     //$this->campoOculto("ref_ref_cod_serie_antiga",$this->ref_ref_cod_serie);
     $this->campoMemo("descricao_reclassificacao", "Descri&ccedil;&atilde;o", $this->descricao_reclassificacao, 100, 10, true);
     $this->acao_enviar = 'if(confirm("Deseja reclassificar está matrícula?"))acao();';
 }
 function getTotalAlunosIdadeSexoEscola($cod_escola, $cod_curso, $cod_serie, $ano = NULL, $semestre = NULL)
 {
     if (is_numeric($cod_escola) && is_numeric($cod_curso)) {
         if (!is_numeric($ano)) {
             $ano = date('Y');
         }
         if (is_numeric($cod_serie)) {
             $where = " AND ref_ref_cod_serie = {$cod_serie} ";
         }
         if (is_numeric($semestre)) {
             $where .= " AND m.semestre = {$semestre} ";
         }
         $select = "SELECT m.ref_ref_cod_serie as cod_serie\n                ,nm_serie\n                 ,COUNT(1) as total_alunos_serie\n                   , COALESCE ( EXTRACT ( YEAR FROM ( age(now(),data_nasc) ) )::text , '-' ) as idade\n                   ,f.sexo\n              FROM pmieducar.aluno a\n                   ,pmieducar.matricula m\n                   ,cadastro.fisica f\n                   ,pmieducar.serie\n             WHERE a.cod_aluno = m.ref_cod_aluno\n               AND a.ref_idpes = idpes\n               AND ref_ref_cod_serie = cod_serie\n               AND m.ref_ref_cod_escola = {$cod_escola}\n               AND ano = {$ano}\n               AND ultima_matricula = 1\n               AND aprovado IN ( 1,2,3)\n               AND m.ref_cod_curso = {$cod_curso}\n               {$where}\n            GROUP BY m.ref_ref_cod_serie\n                   ,nm_serie\n                     ,EXTRACT ( YEAR FROM ( age(now(),data_nasc) ) )\n                     ,f.sexo\n            ORDER BY EXTRACT ( YEAR FROM ( age(now(),data_nasc) ) )\n                     ,f.sexo";
         $db = new clsBanco();
         $db->Consulta($select);
         $total_registros = $db->Num_Linhas();
         if (!$total_registros) {
             return FALSE;
         }
         $resultados = array();
         $total = 0;
         while ($db->ProximoRegistro()) {
             $registro = $db->Tupla();
             $total += $registro['total_alunos_serie'];
             $resultados[] = $registro;
         }
         $array_inicio_sequencias = clsPmieducarMatricula::getInicioSequencia();
         $db = new clsBanco();
         foreach ($array_inicio_sequencias as $serie_inicio) {
             $serie_inicio = $serie_inicio[0];
             $seq_ini = $serie_inicio;
             $seq_correta = false;
             $series[$cod_serie] = $cod_serie;
             do {
                 $sql = "SELECT o.ref_serie_origem\n                         ,s.nm_serie\n                     ,o.ref_serie_destino\n                     ,s.ref_cod_curso as ref_cod_curso_origem\n                     ,sd.ref_cod_curso as ref_cod_curso_destino\n                FROM pmieducar.sequencia_serie o\n                     ,pmieducar.serie s\n                     ,pmieducar.serie sd\n               WHERE s.cod_serie = o.ref_serie_origem\n                 AND s.cod_serie = {$seq_ini}\n                     AND sd.cod_serie = o.ref_serie_destino\n              ";
                 $db->Consulta($sql);
                 $db->ProximoRegistro();
                 $tupla = $db->Tupla();
                 $serie_origem = $tupla['ref_serie_origem'];
                 $seq_ini = $serie_destino = $tupla['ref_serie_destino'];
                 $series[$tupla['ref_serie_destino']] = $tupla['ref_serie_destino'];
                 $sql = "SELECT 1\n                FROM pmieducar.sequencia_serie s\n               WHERE s.ref_serie_origem = {$seq_ini}\n                ";
                 $true = $db->CampoUnico($sql);
             } while ($true);
             $obj_serie = new clsPmieducarSerie($serie_destino);
             $det_serie = $obj_serie->detalhe();
             if ($cod_serie == $serie_destino) {
                 $seq_correta = TRUE;
             }
             if ($seq_correta == false) {
             } else {
             }
         }
         if ($series) {
             $resultados2 = array();
             foreach ($series as $key => $serie) {
                 foreach ($resultados as $key2 => $resultado) {
                     if ($key == $resultado['cod_serie']) {
                         $resultados[$key2]['_total'] = $total;
                         $resultados2[] = $resultados[$key2];
                         unset($resultados[$key2]);
                     }
                 }
             }
         }
         return $resultados2;
     }
     return FALSE;
 }