function Gerar()
 {
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     //		 Carrega as informações necessárias do curso
     if ($det_curso) {
         $this->ref_cod_tipo_avaliacao = $det_curso["ref_cod_tipo_avaliacao"];
         $this->media = $det_curso["media"];
         $this->media_exame = $det_curso["media_exame"];
         $this->frequencia_minima = $det_curso["frequencia_minima"];
         $this->falta_ch_globalizada = $det_curso["falta_ch_globalizada"];
         $this->padrao_ano_escolar = $det_curso["padrao_ano_escolar"];
         $this->carga_horaria = $det_curso["carga_horaria"];
         $this->hora_falta = $det_curso["hora_falta"];
     }
     //		Verifica se vai seguir o padrão do ano escolar da escola
     if ($this->padrao_ano_escolar == 1) {
         $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
         $det_escola_ano_letivo = $obj_escola_ano_letivo->detalhe();
         //			Carrega o ano letivo
         if (is_array($det_escola_ano_letivo)) {
             $this->ano_letivo = $det_escola_ano_letivo["ano"];
         }
         $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
         $obj_ano_letivo_modulo->setOrderby("data_fim");
         $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($this->ano_letivo, $this->ref_ref_cod_escola);
         if (is_array($lst_ano_letivo_modulo)) {
             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
             //				Carrega a quantidade de disciplinas da turma
             $this->qtd_disciplinas = count($lst_turma_disciplina);
             //				echo "<pre>";
             //				print_r($lst_turma_disciplina);
             if ($lst_turma_disciplina) {
                 foreach ($lst_turma_disciplina as $disciplina) {
                     //						Carrega o código das disciplinas da turma
                     $this->cod_disciplinas[] = $disciplina["ref_cod_disciplina"];
                 }
                 //					Carrega a quantidade de módulos do ano letivo
                 $this->qtd_modulos = count($lst_ano_letivo_modulo);
                 $cont = 1;
                 if (is_array($lst_ano_letivo_modulo)) {
                     //						Busca em qual módulo a turma está
                     //$resultado = $obj_turma_modulo->numModulo( $cont, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_disciplinas, $this->ref_cod_turma, $this->ref_cod_turma );
                     $obj_matriculas = new clsPmieducarMatriculaTurma();
                     $lst_matriculas = $obj_matriculas->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_ref_cod_escola);
                     $resultado = 0;
                     if (is_array($lst_matriculas)) {
                         foreach ($lst_matriculas as $registro) {
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $aux_min = $obj_nota_aluno->retornaModuloAluno($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                             $aux_min = $aux_min + 1;
                             if ($resultado == 0) {
                                 $resultado = $aux_min;
                             } else {
                                 if ($resultado > $aux_min) {
                                     $resultado = $aux_min;
                                 }
                             }
                         }
                     }
                     $this->num_modulo = $resultado;
                     foreach ($lst_ano_letivo_modulo as $registro) {
                         //							Verifica se a turma está num módulo da turma
                         if ($resultado == $registro["sequencial"]) {
                             $obj_modulo = new clsPmieducarModulo($registro["ref_cod_modulo"]);
                             $det_modulo = $obj_modulo->detalhe();
                             //								Carrega o nome do módulo no qual a turma se encontra
                             $this->modulo = $det_modulo["nm_tipo"];
                             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
                             $obj_turma_disciplina->setOrderby("ref_cod_disciplina");
                             //								Carrega o código das disciplinas da turma
                             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
                             if (is_array($lst_turma_disciplina)) {
                                 $cont = 0;
                                 foreach ($lst_turma_disciplina as $valores) {
                                     $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
                                     $det_disciplina = $obj_disciplina->detalhe();
                                     if ($det_disciplina) {
                                         //											Carrega a informação se a disciplina apura falta ou não
                                         $this->lst_apura_falta["{$det_disciplina["cod_disciplina"]}"] = $det_disciplina["apura_falta"];
                                         $obj_notas = new clsPmieducarNotaAluno();
                                         //											Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                                         $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true);
                                         if ($cont == 0) {
                                             $num_aux = $lst_notas;
                                         } else {
                                             if ($lst_notas < $num_aux) {
                                                 $num_aux = $lst_notas;
                                             }
                                         }
                                     }
                                     $cont++;
                                 }
                                 /*if ( is_numeric( $lst_notas ) )
                                 		{
                                 			$this->num_modulo = $lst_notas + 1;
                                 		}
                                 		else
                                 		{
                                 			$this->num_modulo = 1;
                                 		}*/
                             }
                             //								Carrega o número do módulo em que a turma está
                             //								$this->num_modulo = ( $resultado + 1 );
                             break;
                         } else {
                             if ($resultado > $this->qtd_modulos) {
                                 //								Carrega o nome do módulo no qual a turma se encontra como "Exame"
                                 $this->modulo = "Exame";
                                 //								Carrega o número do módulo igual a quantidade de módulos da turma mais 1
                                 $this->num_modulo = $resultado + 1;
                                 break;
                             }
                         }
                         $cont++;
                     }
                 }
             }
         }
     } else {
         $obj_turma_modulo = new clsPmieducarTurmaModulo();
         $obj_turma_modulo->setOrderby("data_fim");
         $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma);
         $obj_matriculas = new clsPmieducarMatriculaTurma();
         $lst_matriculas = $obj_matriculas->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_ref_cod_escola);
         $resultado = 0;
         if (is_array($lst_matriculas)) {
             foreach ($lst_matriculas as $registro) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 $aux_min = $obj_nota_aluno->retornaModuloAluno($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                 $aux_min = $aux_min + 1;
                 if ($resultado == 0) {
                     $resultado = $aux_min;
                 } else {
                     if ($resultado > $aux_min) {
                         $resultado = $aux_min;
                     }
                 }
             }
         }
         $this->num_modulo = $resultado;
         if (is_array($lst_turma_modulo)) {
             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
             //				Carrega a quantidade de disciplinas da turma
             $this->qtd_disciplinas = count($lst_turma_disciplina);
             if ($lst_turma_disciplina) {
                 foreach ($lst_turma_disciplina as $disciplina) {
                     //						Carrega o código das disciplinas da turma
                     $this->cod_disciplinas[] = $disciplina["ref_cod_disciplina"];
                     $obj_notas = new clsPmieducarNotaAluno();
                     //						Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                     $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true);
                     if ($cont == 0) {
                         $num_aux = $lst_notas;
                     } else {
                         if ($lst_notas < $num_aux) {
                             $num_aux = $lst_notas;
                         }
                     }
                 }
                 //					Carrega a quantidade de módulos da turma
                 $this->qtd_modulos = count($lst_turma_modulo);
                 $cont = 1;
                 foreach ($lst_turma_modulo as $registro) {
                     $obj_turma_modulo = new clsPmieducarTurmaModulo();
                     //						Busca em qual módulo a turma está
                     //						$resultado = $obj_turma_modulo->numModulo( $cont, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_disciplinas, $this->ref_cod_turma, $this->ref_cod_turma );
                     //						Verifica se a turma está num módulo da turma
                     if ($resultado == $cont) {
                         $obj_modulo = new clsPmieducarModulo($registro["ref_cod_modulo"]);
                         $det_modulo = $obj_modulo->detalhe();
                         //							Carrega o nome do módulo no qual a turma se encontra
                         $this->modulo = $det_modulo["nm_tipo"];
                         //							Carrega o número do módulo no qual a turma se encontra
                         $this->num_modulo = $resultado;
                         break;
                     } else {
                         if ($resultado > $this->qtd_modulos) {
                             //							Carrega o nome do módulo no qual a turma se encontra como "Exame"
                             $this->modulo = "Exame";
                             //							Carrega o número do módulo no qual a turma se encontra igual ao número de módulos da turma mais 1
                             $this->num_modulo = $resultado + 1;
                             break;
                         }
                     }
                     $cont++;
                 }
             }
         }
     }
     //		echo "<pre>";
     //		print_r( $this->cod_disciplinas );
     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
     $lst_ano_letivo = $obj_ano_letivo->lista($this->ref_ref_cod_escola, null, null, null, 1, null, null, null, null, 1);
     if (is_array($lst_ano_letivo)) {
         $det_ano_letivo = array_shift($lst_ano_letivo);
         //			Carrega o ano letivo em que a turma se encontra
         $this->ano_letivo = $det_ano_letivo["ano"];
     }
     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao);
     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
     // 		Carrega o tipo de avaliação
     if ($det_tipo_avaliacao) {
         $this->conceitual = $det_tipo_avaliacao["conceitual"];
     }
     //		Carrega todos os valores do tipo de avaliação do curso
     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
     $obj_avaliacao_valores->setOrderby("valor ASC");
     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao);
     if (is_array($lst_avaliacao_valores)) {
         $opcoes_valores = array("" => "Selecione");
         foreach ($lst_avaliacao_valores as $valores) {
             $opcoes_valores[$valores['sequencial']] = $valores["nome"];
         }
     }
     $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
     $obj_turma_disciplina->setOrderby("ref_cod_disciplina");
     //		Carrega o código das disciplinas da turma
     $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
     //echo "<pre>";
     //print_r( $lst_turma_disciplina );
     if (is_array($lst_turma_disciplina)) {
         //			Carrega a quantidade de disciplinas da turma
         $this->qtd_disciplinas = count($lst_turma_disciplina);
         $opcoes_disciplinas = array("" => "Selecione");
         foreach ($lst_turma_disciplina as $valores) {
             $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
             $det_disciplina = $obj_disciplina->detalhe();
             if ($det_disciplina) {
                 //					Carrega a informação se a disciplina apura falta ou não
                 $this->lst_apura_falta["{$det_disciplina["cod_disciplina"]}"] = $det_disciplina["apura_falta"];
                 //$obj_notas = new clsPmieducarNotaAluno();
                 //					Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                 //$lst_notas = $obj_notas->retornaDiscMod( $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true );
                 //					Verifica se a quantidade de notas por aluno é diferente do número do módulo em que a turma se encontra
                 //echo "{$lst_notas} != {$this->num_modulo}<br>";
                 //if ( $lst_notas != $this->num_modulo )
                 //{
                 $opcoes_disciplinas[$det_disciplina["cod_disciplina"]] = $det_disciplina["nm_disciplina"];
                 //}
             }
         }
     }
     //echo "<pre>";
     //print_r( $opcoes_disciplinas );
     //		Verifica se deve ser exibida a página para classificar os alunos
     if ($this->classifica == "S") {
         //			Verifica se a turma terminou o último módulo ou se está no último módulo
         if ($this->num_modulo >= $this->qtd_modulos) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             //				Carrega as médias de cada disciplina de cada aluno
             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, true);
             if (is_array($lst_exame)) {
                 $lst_disciplina_aprovacao = array("" => "Selecione");
                 foreach ($lst_exame as $exame) {
                     //						Verifica se o aluno possui freqüência abaixo da freqüência mínima
                     if (100 - $exame["faltas"] < $this->frequencia_minima) {
                         $obj_disciplina = new clsPmieducarDisciplina($exame["disc_ref_ref_cod_disciplina"]);
                         $det_disciplina = $obj_disciplina->detalhe();
                         if ($det_disciplina) {
                             //								Carrega a disciplina que possui alunos com freqüência abaixo da freqüência mínima
                             $lst_disciplina_aprovacao["{$exame["disc_ref_ref_cod_disciplina"]}"] = $det_disciplina["nm_disciplina"];
                             //								Carrega as informações referentes a disciplina e ao aluno que possui freqüência abaixo da freqüência mínima
                             $lst_aprovacao[] = $exame;
                         }
                     }
                 }
                 foreach ($lst_aprovacao as $classificacao) {
                     if ($classificacao["media"] < $this->media) {
                         $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                         $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "S";
                     } else {
                         if ($lst_classificacao[$classificacao["ref_ref_cod_matricula"]]) {
                             if ($lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] != "S") {
                                 $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                                 $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "N";
                             }
                         } else {
                             $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                             $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "N";
                         }
                     }
                 }
                 foreach ($lst_classificacao as $registro) {
                     foreach ($lst_exame as $exame) {
                         if ($exame["ref_ref_cod_matricula"] == $registro["ref_ref_cod_matricula"]) {
                             if ($exame["media"] < $this->media) {
                                 if ($registro["exibe"] == "N") {
                                     $lst_classificacao[$registro["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $registro["ref_ref_cod_matricula"];
                                     $lst_classificacao[$registro["ref_ref_cod_matricula"]]["exibe"] = "S";
                                 }
                             }
                         }
                     }
                 }
                 $opcoes_disciplinas = array_unique($lst_disciplina_aprovacao);
             }
             //				Verifica se existem alunos com a freqüência abaixo da freqüência mínima
             if (is_array($lst_aprovacao)) {
                 foreach ($lst_classificacao as $registro) {
                     $obj_matricula = new clsPmieducarMatricula($registro["ref_ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                     $det_matricula = $obj_matricula->detalhe();
                     if ($det_matricula) {
                         $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                         $det_aluno = $obj_aluno->detalhe();
                         if ($det_aluno) {
                             $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                             $det_pessoa = $obj_pessoa->detalhe();
                             $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, 1);
                             $det_dispensa = $obj_dispensa->detalhe();
                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                 //									Verifica se o tipo de avaliação não é conceitual
                                 if ($det_tipo_avaliacao["conceitual"] == 0) {
                                     $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                     $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                     $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                     //										Verifica se a falta não é globalizada e se não está na última disciplina
                                     if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                         //$this->campoTextoInv( "faltas_{$det_pessoa["idpes"]}_", "Faltas", $registro["faltas"], 5, 5, false, false, true );
                                         //											Verifica se a média é maior ou igual a média mínima
                                         if ($registro["exibe"] == "N") {
                                             $this->campoCheck("aprovacao_{$det_pessoa["idpes"]}_", " ", 0, "Aprovado");
                                         } else {
                                             $this->campoCheck("aprovacao_{$det_pessoa["idpes"]}_", " ", 0, "Exame");
                                         }
                                     }
                                 } else {
                                     $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                 }
                             } else {
                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                             }
                         }
                     }
                 }
             }
         }
     } else {
         //			Verifica se a turma terminou o último módulo
         if ($this->num_modulo > $this->qtd_modulos) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             //				Carrega as médias de cada disciplina de cada aluno
             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true);
             if (is_array($lst_exame)) {
                 $lst_disciplina_aprovacao = array("" => "Selecione");
                 foreach ($lst_exame as $exame) {
                     $obj_notas = new clsPmieducarNotaAluno();
                     //						Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                     $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $exame["disc_ref_ref_cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, $exame["ref_ref_cod_matricula"]);
                     $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $exame["ref_ref_cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $exame["disc_ref_ref_cod_disciplina"], null, null, null, null, null, 1);
                     $det_dispensa = $obj_dispensa->detalhe();
                     //						Verifica se a quantiade de notas da disciplina é diferente da quantidade de módulos, se não foi dispensado da disciplina e se a média é menor que a média mínima
                     if ($lst_notas != $this->num_modulo && !is_array($det_dispensa) && $exame["media"] < $this->media) {
                         $obj_disciplina = new clsPmieducarDisciplina($exame["disc_ref_ref_cod_disciplina"]);
                         $det_disciplina = $obj_disciplina->detalhe();
                         if ($det_disciplina) {
                             //								Carrega a disciplina que possui alunos com média abaixo da média mínima
                             $lst_disciplina_aprovacao["{$exame["disc_ref_ref_cod_disciplina"]}"] = $det_disciplina["nm_disciplina"];
                         }
                     }
                 }
                 $opcoes_disciplinas = array_unique($lst_disciplina_aprovacao);
             }
         }
         $this->campoRotulo("tipo_modulo", "Módulo", $this->modulo);
         $this->campoRotulo("numero_modulo", "Número do Módulo", $this->num_modulo);
         //			$this->campoTexto( "tipo_modulo", "Módulo", $this->modulo, 30, 255, false, false, false, "", "", "", "onKeyUp", true );
         $this->campoLista("ref_cod_disciplina", "Disciplina", $opcoes_disciplinas, $this->ref_cod_disciplina);
         if (is_numeric($this->ref_cod_disciplina)) {
             $this->tipoacao = "Novo";
             //				Verifica se a turma terminou o último módulo
             if ($this->qtd_modulos < $this->num_modulo) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 //					Carrega as médias dos alunos por disciplina
                 $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true);
                 if (is_array($lst_exame)) {
                     foreach ($lst_exame as $registro) {
                         $obj_matricula = new clsPmieducarMatricula($registro["ref_ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                         $det_matricula = $obj_matricula->detalhe();
                         if ($registro["disc_ref_ref_cod_disciplina"] == $this->ref_cod_disciplina) {
                             //								Verifica se a média do aluno em uma disciplina está abaixo da média mínima
                             if ($registro["media"] < $this->media) {
                                 if ($det_matricula) {
                                     $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                                     $det_aluno = $obj_aluno->detalhe();
                                     if ($det_aluno) {
                                         $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                                         $det_pessoa = $obj_pessoa->detalhe();
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, 1);
                                         $det_dispensa = $obj_dispensa->detalhe();
                                         //											Verifica se o aluno não foi dispensado da disciplina
                                         if (!$det_dispensa) {
                                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                                 //													Verifica se o tipo de avaliação não é conceitual
                                                 if ($det_tipo_avaliacao["conceitual"] == 0) {
                                                     $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                                     $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                                     $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", true);
                                                     $this->exame = "S";
                                                     //														Verifica se a falta não é globalizada e se não está na última disciplina
                                                     if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                                         //															Verifica se a disciplina apura faltas
                                                         if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                                                             //																Verifica se o ano letivo ainda está em andamento
                                                             if (!($this->num_modulo > $this->qtd_modulos)) {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                             } else {
                                                                 $this->exame = "S";
                                                             }
                                                         } else {
                                                             $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                         }
                                                     }
                                                 } else {
                                                     $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                                 }
                                             } else {
                                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                 }
             } else {
                 if (is_array($this->lst_matricula_turma)) {
                     foreach ($this->lst_matricula_turma as $registro) {
                         $obj_notas = new clsPmieducarNotaAluno();
                         //							Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                         $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                         //echo "matrc.: {$registro["ref_cod_matricula"]}<br>";
                         //							echo "1 {$this->num_modulo} == ".( $lst_notas + 1 )."<br>";
                         if ($this->num_modulo == $lst_notas + 1) {
                             $obj_matricula = new clsPmieducarMatricula();
                             $modulo_matric = $obj_matricula->numModulo($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                             $obj_matricula = new clsPmieducarMatricula($registro["ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                             $det_matricula = $obj_matricula->detalhe();
                             if ($det_matricula) {
                                 //									echo "2 ".( $modulo_matric + 1 )." == {$this->num_modulo}<br>";
                                 if ($modulo_matric + 1 == $this->num_modulo) {
                                     $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                                     $det_aluno = $obj_aluno->detalhe();
                                     if ($det_aluno) {
                                         $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                                         $det_pessoa = $obj_pessoa->detalhe();
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina();
                                         $det_dispensa = $obj_dispensa->lista($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, null, null, 1);
                                         $det_disciplina = $det_disciplina[0];
                                         //										Verifica se o aluno não foi dispensado da disciplina
                                         if (!$det_dispensa) {
                                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                                 $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                                 $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                                 $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                                                 $disc_nota = $obj_nota_aluno->retornaDiscNota($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $det_matricula["cod_matricula"], $this->num_modulo);
                                                 $obj_disciplina_serie = new clsPmieducarDisciplinaSerie();
                                                 $qtd_disc = $obj_disciplina_serie->retornaQtdDiscMat($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $det_matricula["cod_matricula"]);
                                                 if ($this->falta_ch_globalizada == 1 && $disc_nota == $qtd_disc - 1) {
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", true);
                                                 } else {
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                 }
                                                 //												Verifica se a falta não é globalizada e se não está na última disciplina
                                                 if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                                     //													Verifica se a disciplina apura faltas
                                                     if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                                                         //														Verifica se o ano letivo ainda está em andamento
                                                         if (!($this->num_modulo > $this->qtd_modulos)) {
                                                             $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                         } else {
                                                             $this->exame = "S";
                                                         }
                                                     } else {
                                                         $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                     }
                                                 } else {
                                                     if ($this->falta_ch_globalizada == 1 && $disc_nota == $qtd_disc - 1) {
                                                         //													Verifica se o ano letivo ainda está em andamento
                                                         if (!($this->num_modulo > $this->qtd_modulos)) {
                                                             if ($this->num_modulo == $this->qtd_modulos) {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true, "", "", false, false, true);
                                                                 $this->campoLista("aprovacao_{$det_pessoa["idpes"]}", "", array("" => "Selecione", "S" => "Aprovado", "N" => "Reprovado"), "");
                                                             } else {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                             }
                                                         }
                                                     }
                                                 }
                                             } else {
                                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->lst_matriculas = serialize($this->lst_matriculas);
     $this->cod_disciplinas = serialize($this->cod_disciplinas);
     $this->lst_apura_falta = serialize($this->lst_apura_falta);
     $this->campoOculto("ref_cod_turma", $this->ref_cod_turma);
     $this->campoOculto("ref_ref_cod_escola", $this->ref_ref_cod_escola);
     $this->campoOculto("ref_ref_cod_serie", $this->ref_ref_cod_serie);
     $this->campoOculto("ref_cod_curso", $this->ref_cod_curso);
     $this->campoOculto("ref_cod_tipo_avaliacao", $this->ref_cod_tipo_avaliacao);
     $this->campoOculto("media", $this->media);
     $this->campoOculto("media_exame", $this->media_exame);
     $this->campoOculto("ano_letivo", $this->ano_letivo);
     $this->campoOculto("conceitual", $this->conceitual);
     $this->campoOculto("lst_matriculas", $this->lst_matriculas);
     $this->campoOculto("falta_ch_globalizada", $this->falta_ch_globalizada);
     $this->campoOculto("qtd_modulos", $this->qtd_modulos);
     $this->campoOculto("num_modulo", $this->num_modulo);
     $this->campoOculto("frequencia_minima", $this->frequencia_minima);
     $this->campoOculto("carga_horaria", $this->carga_horaria);
     $this->campoOculto("cod_disciplinas", $this->cod_disciplinas);
     $this->campoOculto("lst_apura_falta", $this->lst_apura_falta);
     $this->campoOculto("qtd_disciplinas", $this->qtd_disciplinas);
     $this->campoOculto("exame", $this->exame);
     $this->campoOculto("classifica", $this->classifica);
 }