function Gerar()
 {
     $this->campoOculto("ref_cod_matricula", $this->ref_cod_matricula);
     $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_aluno", $this->ref_cod_aluno);
     $this->campoOculto("ref_sequencial_matricula_turma", $this->ref_sequencial_matricula_turma);
     $this->campoOculto("reprova_falta", $this->reprova_falta);
     $obj_matricula = new clsPmieducarMatricula($this->ref_cod_matricula);
     $det_matricula = $obj_matricula->detalhe();
     $this->mat_modulo = $det_matricula["modulo"];
     $this->situacao = $det_matricula["aprovado"];
     if ($this->ref_ref_cod_serie) {
         $ano_matricula = $det_matricula["ano"];
         // busca o ano em q a escola esta em andamento
         $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);
             $ano_letivo = $det_ano_letivo["ano"];
             if ($ano_letivo != $ano_matricula) {
                 header("Location: educar_falta_nota_aluno_lst.php");
                 die;
             }
         } else {
             $this->mensagem = "Não foi possível encontrar o Ano Letivo.";
             return false;
         }
     }
     $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);
     }
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $this->ref_cod_instituicao = $det_curso["ref_cod_instituicao"];
     $this->ref_cod_tipo_avaliacao = $det_curso["ref_cod_tipo_avaliacao"];
     $this->media = $det_curso["media"];
     $this->media_exame = $det_curso["media_exame"];
     $this->falta_ch_globalizada = $det_curso["falta_ch_globalizada"];
     $this->campoOculto("ref_cod_instituicao", $this->ref_cod_instituicao);
     $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("falta_ch_globalizada", $this->falta_ch_globalizada);
     // verifico qual o tipo de avaliacao usado no curso
     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao);
     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
     $this->conceitual = $det_tipo_avaliacao["conceitual"];
     $this->campoOculto("conceitual", $this->conceitual);
     // lista todos os valores do tipo de avaliacao 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");
         $opcoes_valores_remover = array("-1" => "Remover Nota");
         foreach ($lst_avaliacao_valores as $valores) {
             $opcoes_valores[$valores['sequencial']] = $valores["nome"];
             $opcoes_valores_remover[$valores['sequencial']] = $valores["nome"];
         }
         $opcoes_valores_ = $opcoes_valores;
     }
     //*************************************	MATRICULADO NUMA SERIE *************************************//
     if ($this->ref_ref_cod_serie) {
         // busca o ano em q a escola esta em andamento
         $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);
             $this->ano_letivo = $det_ano_letivo["ano"];
             $this->campoOculto("ano_letivo", $this->ano_letivo);
         }
         $this->padrao_ano_escolar = $det_curso["padrao_ano_escolar"];
         $this->campoOculto("padrao_ano_escolar", $this->padrao_ano_escolar);
         // Caso o curso siga o padrao da escola
         if ($this->padrao_ano_escolar) {
             $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
             $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($this->ano_letivo, $this->ref_ref_cod_escola);
             if (is_array($lst_ano_letivo_modulo)) {
                 // guarda a qtd de modulos a serem cursados
                 $this->qtd_modulos = count($lst_ano_letivo_modulo);
             }
         } else {
             $obj_turma_modulo = new clsPmieducarTurmaModulo();
             $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma);
             if (is_array($lst_turma_modulo)) {
                 // guarda a qtd de modulos a serem cursados
                 $this->qtd_modulos = count($lst_turma_modulo);
             }
         }
         // Armazena as disciplinas em que o aluno esta dispensado
         $obj_dispensa = new clsPmieducarDispensaDisciplina();
         $lst_dispensa = $obj_dispensa->lista($this->ref_cod_matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, null, null, null, null, null, null, null, 1);
         if (is_array($lst_dispensa)) {
             foreach ($lst_dispensa as $key => $disciplina) {
                 $dispensa[$disciplina["ref_cod_disciplina"]] = $disciplina["ref_cod_disciplina"];
             }
         }
         $obj_esd = new clsPmieducarEscolaSerieDisciplina();
         $obj_esd->setOrderby("nm_disciplina");
         $lst_disciplinas = $obj_esd->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1, true);
         //  CASO SEJA EDITAR
         if ($this->modulo) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, $this->ref_cod_matricula, null, null, null, null, null, null, 1, $this->modulo);
             if (is_array($lst_nota_aluno)) {
                 foreach ($lst_nota_aluno as $key => $campo) {
                     $lst_disciplina[$campo['ref_cod_disciplina']]['cod_nota_aluno'] = $campo['cod_nota_aluno'];
                     if ($campo['nota']) {
                         $lst_disciplina[$campo['ref_cod_disciplina']]['nota'] = $campo['nota'];
                     } else {
                         $lst_disciplina[$campo['ref_cod_disciplina']]['nota'] = $campo['ref_sequencial'];
                     }
                 }
             }
             if ($this->falta_ch_globalizada) {
                 $obj_faltas = new clsPmieducarFaltas();
                 $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula, $this->modulo);
                 if (is_array($lst_faltas)) {
                     $det_faltas = array_shift($lst_faltas);
                     $faltas = $det_faltas['falta'];
                 }
             } else {
                 $obj_falta_aluno = new clsPmieducarFaltaAluno();
                 $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, $this->ref_cod_matricula, null, null, null, null, null, 1, $this->modulo);
                 if (is_array($lst_falta_aluno)) {
                     foreach ($lst_falta_aluno as $key => $campo) {
                         $lst_disciplina[$campo['ref_cod_disciplina']]['cod_falta_aluno'] = $campo['cod_falta_aluno'];
                         $lst_disciplina[$campo['ref_cod_disciplina']]['faltas'] = $campo['faltas'];
                     }
                 }
             }
         } else {
             // Armazena as disciplinas que estao ainda sem nota no modulo
             $com_nota = array();
             if (is_array($lst_disciplinas)) {
                 foreach ($lst_disciplinas as $key => $disciplinas) {
                     if (!$dispensa[$disciplinas["ref_cod_disciplina"]]) {
                         $obj_nota_aluno = new clsPmieducarNotaAluno();
                         $qtd_notas = $obj_nota_aluno->getQtdNotas($this->ref_ref_cod_escola, $this->ref_ref_cod_serie, $disciplinas["ref_cod_disciplina"], $this->ref_cod_matricula);
                         if ($qtd_notas >= $this->mat_modulo) {
                             $com_nota[$disciplinas["ref_cod_disciplina"]] = $qtd_notas;
                         }
                     }
                 }
             }
             //				$this->mat_modulo++;
             $this->modulo = $this->mat_modulo;
         }
         $this->campoOculto("mat_modulo", $this->mat_modulo);
         $this->campoRotulo("modulo_", "Módulo", $this->modulo);
         $this->campoOculto("modulo", $this->modulo);
         // caso o aluno esteja de EXAME
         if ($this->qtd_modulos < $this->modulo) {
             if (is_array($lst_disciplinas)) {
                 foreach ($lst_disciplinas as $valor) {
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $obj_nota_aluno->setOrderby("modulo ASC");
                     // lista todas as notas do aluno em uma determinada disciplina
                     $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $valor["ref_cod_disciplina"], $this->ref_cod_matricula, null, null, null, null, null, null, 1);
                     if (is_array($lst_nota_aluno)) {
                         // guarda as notas do aluno
                         foreach ($lst_nota_aluno as $key => $nota_aluno) {
                             if ($this->qtd_modulos > $key) {
                                 $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                                 $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                                 $soma_notas[$valor["ref_cod_disciplina"]][$key] = $det_avaliacao_valores["valor"];
                             }
                         }
                     }
                 }
             }
             // calcula a nota media do aluno
             if (is_array($soma_notas)) {
                 foreach ($soma_notas as $disciplina => $notas) {
                     foreach ($notas as $nota) {
                         $nota_media_aluno[$disciplina] += $nota;
                     }
                     $nota_media_aluno[$disciplina] /= $this->modulo - 1;
                 }
                 // verifica se o aluno esta a baixo da media,
                 // caso positivo e o curso possua exame, dexa aluno em exame
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     /*
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista( $this->ref_cod_tipo_avaliacao,null,null,null,$nota,$nota );
                     if ( is_array($lst_avaliacao_valores) )
                     {
                     	$det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                     	$valor = $det_avaliacao_valores["valor"];
                     
                     	if ($valor < $this->media && $this->media_exame)
                     		$aluno_exame_disciplina[] = $disciplina;
                     }
                     */
                     if ($nota < $this->media && $this->media_exame) {
                         $aluno_exame_disciplina[] = $disciplina;
                     }
                 }
             }
         }
         // caso aluno esteja de EXAME e a avaliacao NAO eh conceitual
         if ($this->qtd_modulos < $this->modulo && !$this->conceitual) {
             $qtd_disciplinas_aluno_exame = 0;
             foreach ($aluno_exame_disciplina as $key => $disciplina) {
                 if (!$dispensa[$disciplina] && !$com_nota[$disciplina]) {
                     $qtd_disciplinas_aluno_exame++;
                     $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                     $det_disciplina = $obj_disciplina->detalhe();
                     $nm_disciplina = $det_disciplina["nm_disciplina"];
                     if ($lst_disciplina[$disciplina]['nota']) {
                         $lst_disciplina[$disciplina]['nota'] = number_format($lst_disciplina[$disciplina]['nota'], 2, ",", ".");
                     }
                     $this->campoTextoInv("nm_disciplina_{$det_disciplina["nm_disciplina"]}", "Disciplina", $nm_disciplina, 30, 255, false, false, true);
                     $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplina, "");
                     $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplina]['cod_nota_aluno']);
                     //						$this->campoLista( "disciplina_modulo[{$key}][nota]", " Nota Exame", $opcoes_valores, $lst_disciplina[$disciplina]['nota'] );
                     /**
                      * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                      * preenchidas
                      */
                     $prenche_edicao_obrigatorio = $lst_disciplina[$disciplina]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                     $this->campoMonetario("disciplina_modulo[{$key}][nota]", " Nota Exame", $lst_disciplina[$disciplina]['nota'], 5, 5, $prenche_edicao_obrigatorio);
                 }
                 $this->campoOculto("qtd_disciplinas_aluno_exame", $qtd_disciplinas_aluno_exame);
                 $this->campoOculto("aluno_esta_em_exame", 1);
             }
         } else {
             //			echo "<br> NORMAL";
             if (is_array($lst_disciplinas)) {
                 // falta na chamada EH globalizada
                 if ($this->falta_ch_globalizada) {
                     //					echo "<br> FALTA GLOBALIZADA";
                     foreach ($lst_disciplinas as $key => $disciplinas) {
                         if (!$dispensa[$disciplinas["ref_cod_disciplina"]] && !$com_nota[$disciplinas["ref_cod_disciplina"]]) {
                             $obj_disciplina = new clsPmieducarDisciplina($disciplinas["ref_cod_disciplina"]);
                             $det_disciplina = $obj_disciplina->detalhe();
                             $nm_disciplina = $det_disciplina["nm_disciplina"];
                             $this->campoTextoInv("nm_disciplina_{$nm_disciplina}", "Disciplina", $nm_disciplina, 30, 255, false, false, true);
                             $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplinas["ref_cod_disciplina"]);
                             $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['cod_nota_aluno']);
                             /**
                              * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                              * preenchidas
                              */
                             $prenche_edicao_obrigatorio = $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                             /**
                              * existe nota? mostra a opção para remove-la
                              */
                             if ($lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'] && $this->mat_modulo <= $this->modulo + 1) {
                                 $opcoes_valores = $opcoes_valores_remover;
                             }
                             $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'], "", false, "", "", false, $prenche_edicao_obrigatorio);
                             $opcoes_valores = $opcoes_valores_;
                         }
                     }
                     $this->campoNumero("total_faltas", " Faltas", $faltas, 2, 2, true);
                 } else {
                     //					echo "<br> FALTA NAO GLOBALIZADA";
                     foreach ($lst_disciplinas as $key => $disciplinas) {
                         if (!$dispensa[$disciplinas["ref_cod_disciplina"]] && !$com_nota[$disciplinas["ref_cod_disciplina"]]) {
                             $obj_disciplina = new clsPmieducarDisciplina($disciplinas["ref_cod_disciplina"]);
                             $det_disciplina = $obj_disciplina->detalhe();
                             $nm_disciplina = $det_disciplina["nm_disciplina"];
                             $apura_falta = $det_disciplina["apura_falta"];
                             $this->campoTextoInv("nm_disciplina_{$det_disciplina["nm_disciplina"]}", "Disciplina", $nm_disciplina, 30, 255, false, false, true);
                             $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplinas["ref_cod_disciplina"]);
                             $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['cod_nota_aluno']);
                             /**
                              * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                              * preenchidas
                              */
                             $prenche_edicao_obrigatorio = $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                             /**
                              * existe nota? mostra a opção para remove-la
                              */
                             if ($lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'] && $this->mat_modulo <= $this->modulo + 1) {
                                 $opcoes_valores = $opcoes_valores_remover;
                             }
                             if ($apura_falta) {
                                 $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'], "", true, "", "", false, $prenche_edicao_obrigatorio);
                                 $this->campoOculto("disciplina_modulo[{$key}][cod_falta_aluno]", $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['cod_falta_aluno']);
                                 $this->campoNumero("disciplina_modulo[{$key}][faltas]", " Faltas", $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['faltas'], 2, 2, $prenche_edicao_obrigatorio);
                             } else {
                                 $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["ref_cod_disciplina"]]['nota'], "", false, "", "", false, $prenche_edicao_obrigatorio);
                             }
                             $opcoes_valores = $opcoes_valores_;
                         }
                     }
                 }
             }
             // caso seja o ultimo modulo e a avaliacao seja conceitual
             if ($this->qtd_modulos == $this->modulo && $this->conceitual) {
                 $opcoes = array("" => "Selecione", 1 => "Aprovado", 2 => "Reprovado");
                 $this->campoLista("aprovado", "Situa&ccedil;&atilde;o", $opcoes, $this->situacao);
             }
         }
     } else {
         $obj_turma_modulo = new clsPmieducarTurmaModulo();
         $obj_turma_modulo->setOrderby("data_fim DESC");
         $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma);
         if (is_array($lst_turma_modulo)) {
             // guarda a qtd de modulos a serem cursados
             $this->qtd_modulos = count($lst_turma_modulo);
             // armazena o ano letivo pela maior data do modulo
             $det_turma_modulo = array_shift($lst_turma_modulo);
             $this->ano_letivo = dataFromPgToBr($det_turma_modulo["data_fim"], "Y");
             $this->campoOculto("ano_letivo", $this->ano_letivo);
         }
         $this->campoOculto("qtd_modulos", $this->qtd_modulos);
         $obj_disciplinas = new clsPmieducarDisciplina();
         $lst_disciplinas = $obj_disciplinas->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_curso);
         if ($this->modulo) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, null, 1, $this->modulo);
             if (is_array($lst_nota_aluno)) {
                 foreach ($lst_nota_aluno as $key => $campo) {
                     $lst_disciplina[$campo['ref_cod_curso_disciplina']]['cod_nota_aluno'] = $campo['cod_nota_aluno'];
                     if ($campo['nota']) {
                         $lst_disciplina[$campo['ref_cod_curso_disciplina']]['nota'] = $campo['nota'];
                     } else {
                         $lst_disciplina[$campo['ref_cod_curso_disciplina']]['nota'] = $campo['ref_sequencial'];
                     }
                 }
             }
             if ($this->falta_ch_globalizada) {
                 $obj_faltas = new clsPmieducarFaltas();
                 $lst_faltas = $obj_faltas->lista($this->ref_cod_matricula, $this->modulo);
                 if (is_array($lst_faltas)) {
                     $det_faltas = array_shift($lst_faltas);
                     $faltas = $det_faltas['falta'];
                 }
             } else {
                 $obj_falta_aluno = new clsPmieducarFaltaAluno();
                 $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, 1, $this->modulo);
                 if (is_array($lst_falta_aluno)) {
                     foreach ($lst_falta_aluno as $key => $campo) {
                         $lst_disciplina[$campo['ref_cod_curso_disciplina']]['cod_falta_aluno'] = $campo['cod_falta_aluno'];
                         $lst_disciplina[$campo['ref_cod_curso_disciplina']]['faltas'] = $campo['faltas'];
                     }
                 }
             }
         } else {
             // Armazena as disciplinas que estao ainda sem nota no modulo
             $com_nota = array();
             if (is_array($lst_disciplinas)) {
                 foreach ($lst_disciplinas as $key => $disciplinas) {
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $qtd_notas = $obj_nota_aluno->getQtdNotas(null, null, null, $this->ref_cod_matricula, $disciplinas["cod_disciplina"]);
                     if ($qtd_notas >= $this->mat_modulo) {
                         $com_nota[$disciplinas["cod_disciplina"]] = $qtd_notas;
                     }
                 }
             }
             //				$this->mat_modulo++;
             $this->modulo = $this->mat_modulo;
         }
         $this->campoOculto("mat_modulo", $this->mat_modulo);
         $this->campoRotulo("modulo_", "M&oacute;dulo", $this->modulo);
         $this->campoOculto("modulo", $this->modulo);
         // caso o aluno esteja de EXAME
         if ($this->qtd_modulos < $this->modulo) {
             if (is_array($lst_disciplinas)) {
                 foreach ($lst_disciplinas as $valor) {
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $obj_nota_aluno->setOrderby("modulo ASC");
                     // lista todas as notas do aluno em uma determinada disciplina
                     $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, null, null, null, $this->ref_cod_matricula, null, null, null, null, null, null, 1, null, $valor["cod_disciplina"]);
                     if (is_array($lst_nota_aluno)) {
                         // guarda as notas do aluno
                         foreach ($lst_nota_aluno as $key => $nota_aluno) {
                             if ($this->qtd_modulos > $key) {
                                 $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                                 $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                                 $soma_notas[$valor["cod_disciplina"]][$key] = $det_avaliacao_valores["valor"];
                             }
                         }
                     }
                 }
             }
             // calcula a nota media do aluno
             if (is_array($soma_notas)) {
                 foreach ($soma_notas as $disciplina => $notas) {
                     foreach ($notas as $nota) {
                         $nota_media_aluno[$disciplina] += $nota;
                     }
                     $nota_media_aluno[$disciplina] /= $this->modulo - 1;
                 }
                 // verifica se o aluno esta a baixo da media,
                 // caso positivo e o curso possua exame, dexa aluno em exame
                 foreach ($nota_media_aluno as $disciplina => $nota) {
                     /*
                     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                     $lst_avaliacao_valores = $obj_avaliacao_valores->lista( $this->ref_cod_tipo_avaliacao,null,null,null,$nota,$nota );
                     if ( is_array($lst_avaliacao_valores) )
                     {
                     	$det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                     	$valor = $det_avaliacao_valores["valor"];
                     
                     	if ($valor < $this->media && $this->media_exame)
                     		$aluno_exame_disciplina[] = $disciplina;
                     }
                     */
                     if ($nota < $this->media && $this->media_exame) {
                         $aluno_exame_disciplina[] = $disciplina;
                     }
                 }
             }
         }
         // caso aluno esteja de EXAME e a avaliacao NAO eh conceitual
         if ($this->qtd_modulos < $this->modulo && !$this->conceitual) {
             //			echo "<br> EXAME CONCEITUAL";
             foreach ($aluno_exame_disciplina as $key => $disciplina) {
                 if (!$com_nota[$disciplina]) {
                     $obj_disciplina = new clsPmieducarDisciplina($disciplina);
                     $det_disciplina = $obj_disciplina->detalhe();
                     $nm_disciplina = $det_disciplina["nm_disciplina"];
                     if ($lst_disciplina[$disciplina]['nota']) {
                         $lst_disciplina[$disciplina]['nota'] = number_format($lst_disciplina[$disciplina]['nota'], 2, ",", ".");
                     }
                     $this->campoTextoInv("nm_disciplina_{$det_disciplina["nm_disciplina"]}", "Disciplina", $nm_disciplina, 30, 255, false, false, true);
                     $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplina, "");
                     $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplina]['cod_nota_aluno']);
                     //						$this->campoLista( "disciplina_modulo[{$key}][nota]", " Nota Exame", $opcoes_valores, $lst_disciplina[$disciplina]['nota'] );
                     /**
                      * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                      * preenchidas
                      */
                     $prenche_edicao_obrigatorio = $lst_disciplina[$disciplina]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                     /**
                      * existe nota? mostra a opção para remove-la
                      */
                     if ($lst_disciplina[$disciplina]['nota'] && $this->mat_modulo <= $this->modulo + 1) {
                         $opcoes_valores = $opcoes_valores_remover;
                     }
                     $this->campoMonetario("disciplina_modulo[{$key}][nota]", " Nota Exame", $lst_disciplina[$disciplina]['nota'], 5, 5, $prenche_edicao_obrigatorio);
                     $opcoes_valores = $opcoes_valores_;
                 }
             }
         } else {
             if (is_array($lst_disciplinas)) {
                 // falta na chamada EH globalizada
                 if ($this->falta_ch_globalizada) {
                     foreach ($lst_disciplinas as $key => $disciplinas) {
                         if (!$com_nota[$disciplinas["cod_disciplina"]]) {
                             $this->campoTextoInv("nm_disciplina_{$disciplinas["nm_disciplina"]}", "Disciplina", $disciplinas["nm_disciplina"], 30, 255, false, false, true);
                             $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplinas["cod_disciplina"]);
                             $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplinas["cod_disciplina"]]['cod_nota_aluno']);
                             /**
                              * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                              * preenchidas
                              */
                             $prenche_edicao_obrigatorio = $lst_disciplina[$disciplinas["cod_disciplina"]]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                             /**
                              * existe nota? mostra a opção para remove-la
                              */
                             if ($lst_disciplina[$disciplinas["cod_disciplina"]]['nota'] && $this->mat_modulo <= $this->modulo + 1) {
                                 $opcoes_valores = $opcoes_valores_remover;
                             }
                             $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["cod_disciplina"]]['nota'], "", false, "", "", false, $prenche_edicao_obrigatorio);
                             $opcoes_valores = $opcoes_valores_;
                         }
                     }
                     $this->campoNumero("total_faltas", " Faltas", $faltas, 2, 2, true);
                 } else {
                     foreach ($lst_disciplinas as $key => $disciplinas) {
                         if (!$com_nota[$disciplinas["cod_disciplina"]]) {
                             $this->campoTextoInv("nm_disciplina_{$disciplinas["nm_disciplina"]}", "Disciplina", $disciplinas["nm_disciplina"], 30, 255, false, false, true);
                             $this->campoOculto("disciplina_modulo[{$key}][ref_cod_disciplina]", $disciplinas["cod_disciplina"]);
                             $this->campoOculto("disciplina_modulo[{$key}][cod_nota_aluno]", $lst_disciplina[$disciplinas["cod_disciplina"]]['cod_nota_aluno']);
                             /**
                              * deixa obrigatorio em caso de edicao somente as notas que ja tinham sido
                              * preenchidas
                              */
                             $prenche_edicao_obrigatorio = $lst_disciplina[$disciplinas["cod_disciplina"]]['nota'] || strtolower($this->tipoacao) == 'novo' ? true : false;
                             /**
                              * existe nota? mostra a opção para remove-la
                              */
                             if ($lst_disciplina[$disciplinas["cod_disciplina"]]['nota'] && $this->mat_modulo <= $this->modulo + 1) {
                                 $opcoes_valores = $opcoes_valores_remover;
                             }
                             if ($disciplinas["apura_falta"]) {
                                 $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["cod_disciplina"]]['nota'], "", true, "", "", false, $prenche_edicao_obrigatorio);
                                 $this->campoOculto("disciplina_modulo[{$key}][cod_falta_aluno]", $lst_disciplina[$disciplinas["cod_disciplina"]]['cod_falta_aluno']);
                                 $this->campoNumero("disciplina_modulo[{$key}][faltas]", " Faltas", $lst_disciplina[$disciplinas["cod_disciplina"]]['faltas'], 2, 2, $prenche_edicao_obrigatorio);
                             } else {
                                 $this->campoLista("disciplina_modulo[{$key}][nota]", " Nota", $opcoes_valores, $lst_disciplina[$disciplinas["cod_disciplina"]]['nota'], "", false, "", "", false, $prenche_edicao_obrigatorio);
                             }
                             $opcoes_valores = $opcoes_valores_;
                         }
                     }
                 }
             }
             // caso seja o ultimo modulo e a avaliacao seja conceitual
             if ($this->qtd_modulos == $this->modulo && $this->conceitual) {
                 $opcoes = array("" => "Selecione", 1 => "Aprovado", 2 => "Reprovado");
                 $this->campoLista("aprovado", "Situa&ccedil;&atilde;o", $opcoes, $this->situacao);
             }
         }
     }
     $this->campoOculto("qtd_modulos", $this->qtd_modulos);
 }
Ejemplo n.º 2
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = 'Turma - Detalhe';
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->cod_turma = $_GET['cod_turma'];
     $tmp_obj = new clsPmieducarTurma();
     $lst_obj = $tmp_obj->lista($this->cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, array('true', 'false'));
     $registro = array_shift($lst_obj);
     foreach ($registro as $key => $value) {
         $this->{$key} = $value;
     }
     if (!$registro) {
         header('Location: educar_turma_lst.php');
         die;
     }
     if (class_exists('clsPmieducarTurmaTipo')) {
         $obj_ref_cod_turma_tipo = new clsPmieducarTurmaTipo($registro['ref_cod_turma_tipo']);
         $det_ref_cod_turma_tipo = $obj_ref_cod_turma_tipo->detalhe();
         $registro['ref_cod_turma_tipo'] = $det_ref_cod_turma_tipo['nm_tipo'];
     } else {
         $registro['ref_cod_turma_tipo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInfraPredioComodo')) {
         $obj_ref_cod_infra_predio_comodo = new clsPmieducarInfraPredioComodo($registro['ref_cod_infra_predio_comodo']);
         $det_ref_cod_infra_predio_comodo = $obj_ref_cod_infra_predio_comodo->detalhe();
         $registro['ref_cod_infra_predio_comodo'] = $det_ref_cod_infra_predio_comodo['nm_comodo'];
     } else {
         $registro['ref_cod_infra_predio_comodo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInstituicao')) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($registro['ref_cod_instituicao']);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $registro['ref_cod_instituicao'] = $obj_cod_instituicao_det['nm_instituicao'];
     } else {
         $registro['ref_cod_instituicao'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarEscola')) {
         $this->ref_ref_cod_escola = $registro['ref_ref_cod_escola'];
         $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_ref_cod_escola']);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $registro['ref_ref_cod_escola'] = $det_ref_cod_escola['nome'];
     } else {
         $registro['ref_cod_escola'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarCurso')) {
         $obj_ref_cod_curso = new clsPmieducarCurso($registro['ref_cod_curso']);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $registro['ref_cod_curso'] = $det_ref_cod_curso['nm_curso'];
         $padrao_ano_escolar = $det_ref_cod_curso['padrao_ano_escolar'];
     } else {
         $registro['ref_cod_curso'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarSerie')) {
         $this->ref_ref_cod_serie = $registro['ref_ref_cod_serie'];
         $obj_ser = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
         $det_ser = $obj_ser->detalhe();
         $registro['ref_ref_cod_serie'] = $det_ser['nm_serie'];
     } else {
         $registro['ref_ref_cod_serie'] = 'Erro na geração';
     }
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         if ($registro['ref_cod_instituicao']) {
             $this->addDetalhe(array('Instituição', $registro['ref_cod_instituicao']));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($registro['ref_ref_cod_escola']) {
             $this->addDetalhe(array('Escola', $registro['ref_ref_cod_escola']));
         }
     }
     if ($registro['ref_cod_curso']) {
         $this->addDetalhe(array('Curso', $registro['ref_cod_curso']));
     }
     if ($registro['ref_ref_cod_serie']) {
         $this->addDetalhe(array('Série', $registro['ref_ref_cod_serie']));
     }
     if ($registro['ref_cod_regente']) {
         $obj_pessoa = new clsPessoa_($registro['ref_cod_regente']);
         $det = $obj_pessoa->detalhe();
         $this->addDetalhe(array('Professor/Regente', $det['nome']));
     }
     if ($registro['ref_cod_infra_predio_comodo']) {
         $this->addDetalhe(array('Sala', $registro['ref_cod_infra_predio_comodo']));
     }
     if ($registro['ref_cod_turma_tipo']) {
         $this->addDetalhe(array('Tipo de Turma', $registro['ref_cod_turma_tipo']));
     }
     if ($registro['nm_turma']) {
         $this->addDetalhe(array('Turma', $registro['nm_turma']));
     }
     if ($registro['sgl_turma']) {
         $this->addDetalhe(array('Sigla', $registro['sgl_turma']));
     }
     if ($registro['max_aluno']) {
         $this->addDetalhe(array('Máximo de Alunos', $registro['max_aluno']));
     }
     $this->addDetalhe(array('Situação', dbBool($registro['visivel']) ? 'Ativo' : 'Desativo'));
     if ($registro['multiseriada'] == 1) {
         if ($registro['multiseriada'] == 1) {
             $registro['multiseriada'] = 'sim';
         } else {
             $registro['multiseriada'] = 'não';
         }
         $this->addDetalhe(array('Multi-Seriada', $registro['multiseriada']));
         $obj_serie_mult = new clsPmieducarSerie($registro['ref_ref_cod_serie_mult']);
         $det_serie_mult = $obj_serie_mult->detalhe();
         $this->addDetalhe(array('Série Multi-Seriada', $det_serie_mult['nm_serie']));
     }
     if ($padrao_ano_escolar == 1) {
         if ($registro['hora_inicial']) {
             $registro['hora_inicial'] = date('H:i', strtotime($registro['hora_inicial']));
             $this->addDetalhe(array('Hora Inicial', $registro['hora_inicial']));
         }
         if ($registro['hora_final']) {
             $registro['hora_final'] = date('H:i', strtotime($registro['hora_final']));
             $this->addDetalhe(array('Hora Final', $registro['hora_final']));
         }
         if ($registro['hora_inicio_intervalo']) {
             $registro['hora_inicio_intervalo'] = date('H:i', strtotime($registro['hora_inicio_intervalo']));
             $this->addDetalhe(array('Hora Início Intervalo', $registro['hora_inicio_intervalo']));
         }
         if ($registro['hora_fim_intervalo']) {
             $registro['hora_fim_intervalo'] = date('H:i', strtotime($registro['hora_fim_intervalo']));
             $this->addDetalhe(array('Hora Fim Intervalo', $registro['hora_fim_intervalo']));
         }
     } elseif ($padrao_ano_escolar == 0) {
         $obj = new clsPmieducarTurmaModulo();
         $obj->setOrderby('data_inicio ASC');
         $lst = $obj->lista($this->cod_turma);
         if ($lst) {
             $tabela = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Data Início</b></td>
           <td bgcolor="#A1B3BD"><b>Data Fim</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $obj_modulo = new clsPmieducarModulo($valor['ref_cod_modulo']);
                 $det_modulo = $obj_modulo->detalhe();
                 $nm_modulo = $det_modulo['nm_tipo'];
                 $valor['data_inicio'] = dataFromPgToBr($valor['data_inicio']);
                 $valor['data_fim'] = dataFromPgToBr($valor['data_fim']);
                 $tabela .= sprintf('
         <tr>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
         </tr>', $color, $nm_modulo, $color, $valor['data_inicio'], $color, $valor['data_fim']);
                 $cont++;
             }
             $tabela .= '</table>';
         }
         if ($tabela) {
             $this->addDetalhe(array('Módulo', $tabela));
         }
         $dias_da_semana = array('' => 'Selecione', 1 => 'Domingo', 2 => 'Segunda', 3 => 'Terça', 4 => 'Quarta', 5 => 'Quinta', 6 => 'Sexta', 7 => 'Sábado');
         $obj = new clsPmieducarTurmaDiaSemana();
         $lst = $obj->lista(NULL, $this->cod_turma);
         if ($lst) {
             $tabela1 = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Inicial</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Final</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $valor['hora_inicial'] = date('H:i', strtotime($valor['hora_inicial']));
                 $valor['hora_final'] = date('H:i', strtotime($valor['hora_final']));
                 $tabela1 .= sprintf("\n            <tr>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n            </tr>", $color, $dias_da_semana[$valor['dia_semana']], $color, $valor['hora_inicial'], $color, $valor['hora_final']);
                 $cont++;
             }
             $tabela1 .= '</table>';
         }
         if ($tabela1) {
             $this->addDetalhe(array('Dia da Semana', $tabela1));
         }
     }
     // Recupera os componentes curriculares da turma
     $componentes = array();
     try {
         $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_turma);
     } catch (Exception $e) {
     }
     $tabela3 = '
   <table>
     <tr align="center">
       <td bgcolor="#A1B3BD"><b>Nome</b></td>
       <td bgcolor="#A1B3BD"><b>Carga horária</b></td>
     </tr>';
     $cont = 0;
     foreach ($componentes as $componente) {
         $color = $cont++ % 2 == 0 ? ' bgcolor="#E4E9ED" ' : ' bgcolor="#FFFFFF" ';
         $tabela3 .= sprintf('
     <tr>
       <td %s align="left">%s</td>
       <td %s align="center">%.0f h</td>
     </tr>', $color, $componente, $color, $componente->cargaHoraria);
     }
     $tabela3 .= '</table>';
     $this->addDetalhe(array('Componentes curriculares', $tabela3));
     if ($obj_permissoes->permissao_cadastra(586, $this->pessoa_logada, 7)) {
         $this->url_novo = 'educar_turma_cad.php';
         $this->url_editar = 'educar_turma_cad.php?cod_turma=' . $registro['cod_turma'];
     }
     $this->url_cancelar = 'educar_turma_lst.php';
     $this->largura = '100%';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Detalhe da turma"));
     $this->enviaLocalizacao($localizacao->montar());
     $this->array_botao[] = 'Reclassificar alunos alfabeticamente';
     $this->array_botao_url_script[] = "if(confirm(\"Deseja realmente reclassificar os alunos alfabeticamente?\\nAo utilizar esta opção para esta turma, a ordenação dos alunos no diário e em relatórios que é controlada por ordem de chegada após a data de fechamento da turma (campo Data de fechamento), passará a ter o controle novamente alfabético, desconsiderando a data de fechamento.\"))reclassifica_matriculas({$registro['cod_turma']})";
     Portabilis_View_Helper_Application::loadJQueryLib($this);
     $scripts = array('/modules/Portabilis/Assets/Javascripts/Utils.js', '/modules/Portabilis/Assets/Javascripts/ClientApi.js', '/modules/Cadastro/Assets/Javascripts/TurmaDet.js');
     Portabilis_View_Helper_Application::loadJavascript($this, $scripts);
 }
Ejemplo n.º 3
0
 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);
 }
Ejemplo n.º 4
0
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = 'Turma - Detalhe';
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->cod_turma = $_GET['cod_turma'];
     $tmp_obj = new clsPmieducarTurma();
     $lst_obj = $tmp_obj->lista($this->cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, array('true', 'false'));
     $registro = array_shift($lst_obj);
     foreach ($registro as $key => $value) {
         $this->{$key} = $value;
     }
     if (!$registro) {
         header('Location: educar_turma_lst.php');
         die;
     }
     if (class_exists('clsPmieducarTurmaTipo')) {
         $obj_ref_cod_turma_tipo = new clsPmieducarTurmaTipo($registro['ref_cod_turma_tipo']);
         $det_ref_cod_turma_tipo = $obj_ref_cod_turma_tipo->detalhe();
         $registro['ref_cod_turma_tipo'] = $det_ref_cod_turma_tipo['nm_tipo'];
     } else {
         $registro['ref_cod_turma_tipo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInfraPredioComodo')) {
         $obj_ref_cod_infra_predio_comodo = new clsPmieducarInfraPredioComodo($registro['ref_cod_infra_predio_comodo']);
         $det_ref_cod_infra_predio_comodo = $obj_ref_cod_infra_predio_comodo->detalhe();
         $registro['ref_cod_infra_predio_comodo'] = $det_ref_cod_infra_predio_comodo['nm_comodo'];
     } else {
         $registro['ref_cod_infra_predio_comodo'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarInstituicao')) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($registro['ref_cod_instituicao']);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $registro['ref_cod_instituicao'] = $obj_cod_instituicao_det['nm_instituicao'];
     } else {
         $registro['ref_cod_instituicao'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarEscola')) {
         $this->ref_ref_cod_escola = $registro['ref_ref_cod_escola'];
         $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_ref_cod_escola']);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $registro['ref_ref_cod_escola'] = $det_ref_cod_escola['nome'];
     } else {
         $registro['ref_cod_escola'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarCurso')) {
         $obj_ref_cod_curso = new clsPmieducarCurso($registro['ref_cod_curso']);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $registro['ref_cod_curso'] = $det_ref_cod_curso['nm_curso'];
         $padrao_ano_escolar = $det_ref_cod_curso['padrao_ano_escolar'];
     } else {
         $registro['ref_cod_curso'] = 'Erro na geração';
     }
     if (class_exists('clsPmieducarSerie')) {
         $this->ref_ref_cod_serie = $registro['ref_ref_cod_serie'];
         $obj_ser = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
         $det_ser = $obj_ser->detalhe();
         $registro['ref_ref_cod_serie'] = $det_ser['nm_serie'];
     } else {
         $registro['ref_ref_cod_serie'] = 'Erro na geração';
     }
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         if ($registro['ref_cod_instituicao']) {
             $this->addDetalhe(array('Instituição', $registro['ref_cod_instituicao']));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($registro['ref_ref_cod_escola']) {
             $this->addDetalhe(array('Escola', $registro['ref_ref_cod_escola']));
         }
     }
     if ($registro['ref_cod_curso']) {
         $this->addDetalhe(array('Curso', $registro['ref_cod_curso']));
     }
     if ($registro['ref_ref_cod_serie']) {
         $this->addDetalhe(array('Série', $registro['ref_ref_cod_serie']));
     }
     if ($registro['ref_cod_regente']) {
         $obj_pessoa = new clsPessoa_($registro['ref_cod_regente']);
         $det = $obj_pessoa->detalhe();
         $this->addDetalhe(array('Professor/Regente', $det['nome']));
     }
     if ($registro['ref_cod_infra_predio_comodo']) {
         $this->addDetalhe(array('Sala', $registro['ref_cod_infra_predio_comodo']));
     }
     if ($registro['ref_cod_turma_tipo']) {
         $this->addDetalhe(array('Tipo de Turma', $registro['ref_cod_turma_tipo']));
     }
     if ($registro['nm_turma']) {
         $this->addDetalhe(array('Turma', $registro['nm_turma']));
     }
     if ($registro['sgl_turma']) {
         $this->addDetalhe(array('Sigla', $registro['sgl_turma']));
     }
     if ($registro['max_aluno']) {
         $this->addDetalhe(array('Máximo de Alunos', $registro['max_aluno']));
     }
     $this->addDetalhe(array('Situação', dbBool($registro['visivel']) ? 'Ativo' : 'Desativo'));
     if ($registro['multiseriada'] == 1) {
         if ($registro['multiseriada'] == 1) {
             $registro['multiseriada'] = 'sim';
         } else {
             $registro['multiseriada'] = 'não';
         }
         $this->addDetalhe(array('Multi-Seriada', $registro['multiseriada']));
         $obj_serie_mult = new clsPmieducarSerie($registro['ref_ref_cod_serie_mult']);
         $det_serie_mult = $obj_serie_mult->detalhe();
         $this->addDetalhe(array('Série Multi-Seriada', $det_serie_mult['nm_serie']));
     }
     if ($padrao_ano_escolar == 1) {
         if ($registro['hora_inicial']) {
             $registro['hora_inicial'] = date('H:i', strtotime($registro['hora_inicial']));
             $this->addDetalhe(array('Hora Inicial', $registro['hora_inicial']));
         }
         if ($registro['hora_final']) {
             $registro['hora_final'] = date('H:i', strtotime($registro['hora_final']));
             $this->addDetalhe(array('Hora Final', $registro['hora_final']));
         }
         if ($registro['hora_inicio_intervalo']) {
             $registro['hora_inicio_intervalo'] = date('H:i', strtotime($registro['hora_inicio_intervalo']));
             $this->addDetalhe(array('Hora Início Intervalo', $registro['hora_inicio_intervalo']));
         }
         if ($registro['hora_fim_intervalo']) {
             $registro['hora_fim_intervalo'] = date('H:i', strtotime($registro['hora_fim_intervalo']));
             $this->addDetalhe(array('Hora Fim Intervalo', $registro['hora_fim_intervalo']));
         }
     } elseif ($padrao_ano_escolar == 0) {
         $obj = new clsPmieducarTurmaModulo();
         $obj->setOrderby('data_inicio ASC');
         $lst = $obj->lista($this->cod_turma);
         if ($lst) {
             $tabela = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Data Início</b></td>
           <td bgcolor="#A1B3BD"><b>Data Fim</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $obj_modulo = new clsPmieducarModulo($valor['ref_cod_modulo']);
                 $det_modulo = $obj_modulo->detalhe();
                 $nm_modulo = $det_modulo['nm_tipo'];
                 $valor['data_inicio'] = dataFromPgToBr($valor['data_inicio']);
                 $valor['data_fim'] = dataFromPgToBr($valor['data_fim']);
                 $tabela .= sprintf('
         <tr>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
           <td %s align=left>%s</td>
         </tr>', $color, $nm_modulo, $color, $valor['data_inicio'], $color, $valor['data_fim']);
                 $cont++;
             }
             $tabela .= '</table>';
         }
         if ($tabela) {
             $this->addDetalhe(array('Módulo', $tabela));
         }
         $dias_da_semana = array('' => 'Selecione', 1 => 'Domingo', 2 => 'Segunda', 3 => 'Terça', 4 => 'Quarta', 5 => 'Quinta', 6 => 'Sexta', 7 => 'Sábado');
         $obj = new clsPmieducarTurmaDiaSemana();
         $lst = $obj->lista(NULL, $this->cod_turma);
         if ($lst) {
             $tabela1 = '
       <table>
         <tr align="center">
           <td bgcolor="#A1B3BD"><b>Nome</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Inicial</b></td>
           <td bgcolor="#A1B3BD"><b>Hora Final</b></td>
         </tr>';
             $cont = 0;
             foreach ($lst as $valor) {
                 if ($cont % 2 == 0) {
                     $color = ' bgcolor="#E4E9ED" ';
                 } else {
                     $color = ' bgcolor="#FFFFFF" ';
                 }
                 $valor['hora_inicial'] = date('H:i', strtotime($valor['hora_inicial']));
                 $valor['hora_final'] = date('H:i', strtotime($valor['hora_final']));
                 $tabela1 .= sprintf("\n            <tr>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n              <td %s align=left>%s</td>\n            </tr>", $color, $dias_da_semana[$valor['dia_semana']], $color, $valor['hora_inicial'], $color, $valor['hora_final']);
                 $cont++;
             }
             $tabela1 .= '</table>';
         }
         if ($tabela1) {
             $this->addDetalhe(array('Dia da Semana', $tabela1));
         }
     }
     // Recupera os componentes curriculares da turma
     $componentes = array();
     try {
         $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_turma);
     } catch (Exception $e) {
     }
     $tabela3 = '
   <table>
     <tr align="center">
       <td bgcolor="#A1B3BD"><b>Nome</b></td>
       <td bgcolor="#A1B3BD"><b>Carga horária</b></td>
     </tr>';
     $cont = 0;
     foreach ($componentes as $componente) {
         $color = $cont++ % 2 == 0 ? ' bgcolor="#E4E9ED" ' : ' bgcolor="#FFFFFF" ';
         $tabela3 .= sprintf('
     <tr>
       <td %s align="left">%s</td>
       <td %s align="center">%.0f h</td>
     </tr>', $color, $componente, $color, $componente->cargaHoraria);
     }
     $tabela3 .= '</table>';
     $this->addDetalhe(array('Componentes curriculares', $tabela3));
     if ($obj_permissoes->permissao_cadastra(586, $this->pessoa_logada, 7)) {
         $this->url_novo = 'educar_turma_cad.php';
         $this->url_editar = 'educar_turma_cad.php?cod_turma=' . $registro['cod_turma'];
     }
     $this->url_cancelar = 'educar_turma_lst.php';
     $this->largura = '100%';
 }