function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     $obj_escola_instituicao = new clsPmieducarEscola();
     $lst_escola_instituicao = $obj_escola_instituicao->lista($this->ref_cod_escola, null, null, $this->ref_cod_instituicao, null, null, null, null, null, null, 1);
     $this->pdf = new clsPDF("Registro de Matrículas - {$this->ano}", "Registro de Matrículas", "A4", "", false, false);
     foreach ($lst_escola_instituicao as $escola) {
         $this->ref_cod_escola = $escola['cod_escola'];
         if ($this->ref_cod_escola) {
             $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
             $det_escola = $obj_escola->detalhe();
             $this->nm_escola = $det_escola['nome'];
             $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
             $det_instituicao = $obj_instituicao->detalhe();
             $this->nm_instituicao = $det_instituicao['nm_instituicao'];
             if ($det_escola['ref_idpes']) {
                 $obj_endereco_escola = new clsEndereco($det_escola['ref_idpes']);
                 $det_enderedo_escola = $obj_endereco_escola->detalhe();
                 $this->nm_localidade = $this->nm_municipio = $det_enderedo_escola['cidade'];
                 if (!$det_enderedo_escola) {
                     $obj_endereco_externo_escola = new clsEnderecoExterno($det_escola['ref_idpes']);
                     $det_enderedo_externo_escola = $obj_endereco_externo_escola->detalhe();
                     $this->nm_localidade = $this->nm_municipio = $det_enderedo_externo_escola['cidade'];
                 }
             } else {
                 $obj_escola_complemento = new clsPmieducarEscolaComplemento($this->ref_cod_escola);
                 $det_escola_complemento = $obj_escola_complemento->detalhe();
                 $this->nm_localidade = $this->nm_municipio = $det_escola_complemento['municipio'];
             }
         }
         $obj_cursos = new clsPmieducarCurso();
         $lst_cursos = $obj_cursos->lista($this->ref_cod_curso, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
         if ($lst_cursos) {
             $x_quadrado = 30;
             $altura_caixa = 30;
             foreach ($lst_cursos as $curso) {
                 $this->buscaDiasLetivos();
                 $this->nm_curso = $curso['nm_curso'];
                 $obj_serie_curso = new clsPmieducarSerie();
                 $obj_serie_curso->setOrderby('etapa_curso asc');
                 $lst_serie_curso = $obj_serie_curso->lista(null, null, null, $curso['cod_curso'], null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao, null, null, null, $this->ref_cod_escola);
                 if ($lst_serie_curso) {
                     $this->page_y = 170;
                     $x_quadrado = 30;
                     if (!$page_open) {
                         $this->pdf->OpenPage();
                         $this->addCabecalho();
                         $page_open = true;
                     }
                     foreach ($lst_serie_curso as $serie) {
                         $obj_disc_serie = new clsPmieducarDisciplinaSerie();
                         $lst_disc_serie = $obj_disc_serie->lista(null, $serie['cod_serie'], 1);
                         if ($lst_disc_serie) {
                             $obj_turmas_serie = new clsPmieducarTurma();
                             $obj_turmas_serie->setOrderby("nm_turma");
                             $lst_turmas_serie = $obj_turmas_serie->lista(null, null, null, $serie['cod_serie'], $escola['cod_escola'], null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, $curso['cod_curso'], $this->ref_cod_instituicao, null, null);
                             if (!$lst_turmas_serie) {
                                 // verifica se a serie esta marcada em multiseriada
                                 $lst_turmas_serie = $obj_turmas_serie->lista(null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, $curso['cod_curso'], $this->ref_cod_instituicao, null, null, $escola['cod_escola'], $serie['cod_serie']);
                             }
                             if ($lst_turmas_serie) {
                                 foreach ($lst_turmas_serie as $turma) {
                                     $total_geral_horas = $total_geral_aulas_semana = 0;
                                     $x_quadrado = 30;
                                     $this->pdf->escreve_relativo("{$serie['nm_serie']} - Turma: {$turma['nm_turma']}", 40, $this->page_y + 4, 258, $altura_caixa, $fonte, 12, $corTexto, 'left');
                                     $this->page_y += $altura_caixa;
                                     $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 535, $altura_caixa);
                                     $this->pdf->escreve_relativo("Conteúdos Curriculares", 40, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                     $this->pdf->escreve_relativo("A.S", 470, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                     $this->pdf->escreve_relativo("H.R.", 525, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                     $this->page_y += $altura_caixa;
                                     if ($this->page_y + $altura_caixa >= 800) {
                                         $this->pdf->quadrado_relativo(30, $inicio_quadro, 70, $fim_quadro - $inicio_quadro);
                                         $this->pdf->escreve_relativo("Núcleo Comum \ne Artigo 7º\n(Lei 5692/71)", 30 + 4, $inicio_quadro + ($fim_quadro - $inicio_quadro) / 3 - (count($lst_disc_serie) == 1 ? 8 : 0), 80, $altura_caixa, $fonte, 8, $corTexto, 'left');
                                         $this->pdf->linha_relativa(450, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro, '0.1');
                                         $this->pdf->linha_relativa(505, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro, '0.1');
                                         $this->page_y = 170;
                                         $inicio_quadro = $this->page_y + $altura_caixa;
                                         $this->pdf->ClosePage();
                                         $this->pdf->OpenPage();
                                         $page_open = true;
                                         $this->addCabecalho();
                                         $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 535, $altura_caixa);
                                         $this->pdf->escreve_relativo("Conteúdos Curriculares", 40, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                         $this->pdf->escreve_relativo("A.S", 470, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                         $this->pdf->escreve_relativo("H.R.", 525, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                         $this->page_y += $altura_caixa;
                                     }
                                     $x_quadrado = 100;
                                     $obj_quadro_horario = new clsPmieducarQuadroHorario();
                                     $lst_quadro_horario = $obj_quadro_horario->lista(null, null, null, $turma['cod_turma'], null, null, null, null, 1);
                                     if (is_array($lst_quadro_horario)) {
                                         $lst_quadro_horario = array_shift($lst_quadro_horario);
                                     }
                                     $obj_disc_semana = new clsPmieducarQuadroHorarioHorarios();
                                     $obj_disc_semana->setOrderby("dia_semana asc");
                                     /*********************************************************************/
                                     //disciplinas que estâo sendo cursadas, eliminando as não cursadas
                                     $sql = "SELECT distinct(ref_cod_disciplina) FROM pmieducar.quadro_horario_horarios\n\t\t\t\t\t\t\t\t\t\t\t\tWHERE ref_cod_quadro_horario = {$lst_quadro_horario["cod_quadro_horario"]}";
                                     $disciplinas_cursadas = array();
                                     $db = new clsBanco();
                                     $db->Consulta($sql);
                                     while ($db->ProximoRegistro()) {
                                         list($ref_disciplina_cursada) = $db->Tupla();
                                         $disciplinas_cursadas[$ref_disciplina_cursada] = $ref_disciplina_cursada;
                                     }
                                     /*********************************************************************/
                                     $inicio_quadro = $this->page_y;
                                     foreach ($lst_disc_serie as $key => $disciplina) {
                                         if (array_search($disciplina["ref_cod_disciplina"], $disciplinas_cursadas)) {
                                             $obj_disc = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']);
                                             $det_disc = $obj_disc->detalhe();
                                             $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 465, $altura_caixa);
                                             $this->pdf->escreve_relativo("{$det_disc['nm_disciplina']}", $x_quadrado + 4, $this->page_y + 4, 350, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                             //-------
                                             unset($lst_disc_semana);
                                             if ($lst_quadro_horario) {
                                                 $lst_disc_semana = $obj_disc_semana->lista($lst_quadro_horario['cod_quadro_horario'], $serie['cod_serie'], $this->ref_cod_escola, $disciplina['ref_cod_disciplina'], null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1);
                                             }
                                             $total_dias_semana = 0;
                                             /**
                                              * Calcula o total de horas da semana
                                              */
                                             if ($lst_disc_semana) {
                                                 $total_semanas = $this->total_semanas;
                                                 $total_dias_semana = count($lst_disc_semana);
                                             }
                                             $total_geral_horas += $det_disc['carga_horaria'];
                                             $total_geral_aulas_semana += $total_dias_semana;
                                             $total_horas = sprintf("%02d:%02d", $det_disc['carga_horaria'], 0);
                                             $this->pdf->escreve_relativo(sprintf("%02d", "{$total_dias_semana}"), 451, $this->page_y + 10, 52, $altura_caixa, $fonte, 10, $corTexto, 'center');
                                             $this->pdf->escreve_relativo("{$total_horas}", 506, $this->page_y + 10, 65, $altura_caixa, $fonte, 10, $corTexto, 'center');
                                             $fim_quadro = $this->page_y += $altura_caixa;
                                             if ($this->page_y + $altura_caixa >= 800 && $key < count($lst_disc_serie) - 1) {
                                                 $x_quadrado = 30;
                                                 $this->pdf->quadrado_relativo(30, $inicio_quadro, 70, $fim_quadro - $inicio_quadro);
                                                 $this->pdf->escreve_relativo("Núcleo Comum \ne Artigo 7º\n(Lei 5692/71)", 30 + 4, $inicio_quadro + ($fim_quadro - $inicio_quadro) / 3 - ($key == 0 ? 8 : 0), 80, $altura_caixa, $fonte, 8, $corTexto, 'left');
                                                 $this->pdf->linha_relativa(450, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro + $altura_caixa, '0.1');
                                                 $this->pdf->linha_relativa(505, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro + $altura_caixa, '0.1');
                                                 $this->page_y = 170;
                                                 $inicio_quadro = $this->page_y + $altura_caixa;
                                                 $this->pdf->ClosePage();
                                                 $this->pdf->OpenPage();
                                                 $page_open = true;
                                                 $this->addCabecalho();
                                                 $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 535, $altura_caixa);
                                                 $this->pdf->escreve_relativo("Conteúdos Curriculares", 40, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                                 $this->pdf->escreve_relativo("A.S", 470, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                                 $this->pdf->escreve_relativo("H.R.", 525, $this->page_y + 10, 258, $altura_caixa, $fonte, 10, $corTexto, 'left');
                                                 $this->page_y += $altura_caixa;
                                                 $x_quadrado = 100;
                                             }
                                         }
                                     }
                                     $this->pdf->quadrado_relativo(30, $inicio_quadro, 70, $fim_quadro - $inicio_quadro);
                                     $this->pdf->linha_relativa(450, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro + $altura_caixa, '0.1');
                                     $this->pdf->linha_relativa(505, $inicio_quadro - $altura_caixa, 0, $fim_quadro - $inicio_quadro + $altura_caixa, '0.1');
                                     $this->pdf->escreve_relativo("Núcleo Comum \ne Artigo 7º\n(Lei 5692/71)", 30 + 4, $inicio_quadro + ($fim_quadro - $inicio_quadro) / 3 - 8, 80, $altura_caixa, $fonte, 8, $corTexto, 'left');
                                     $x_quadrado = 450;
                                     $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 115, $altura_caixa);
                                     $total_geral_horas = sprintf("%02d:%02d", $total_geral_horas, 0);
                                     $this->pdf->escreve_relativo(sprintf("%02d", "{$total_geral_aulas_semana}"), 451, $this->page_y + 10, 52, $altura_caixa, $fonte, 10, $corTexto, 'center');
                                     $this->pdf->escreve_relativo("{$total_geral_horas}", 506, $this->page_y + 10, 65, $altura_caixa, $fonte, 10, $corTexto, 'center');
                                     $this->pdf->linha_relativa(505, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->page_y += $altura_caixa;
                                 }
                             }
                             //-------
                         }
                     }
                 }
                 if ($page_open) {
                     $this->pdf->ClosePage();
                     $page_open = false;
                 }
             }
         }
         if ($page_open) {
             $this->pdf->ClosePage();
             $page_open = false;
         }
     }
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
     echo "<html><center>Se o download não iniciar automaticamente <br /><a target='_blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t</span>\n\t\t\t</center>";
 }
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     // primary keys
     $this->campoOculto("cod_serie", $this->cod_serie);
     if ($_GET['precisa_lista']) {
         $obrigatorio = true;
         $get_curso = true;
         include "include/pmieducar/educar_campo_lista.php";
     }
     // text
     $this->campoTexto("nm_serie", "S&eacute;rie", $this->nm_serie, 30, 255, true);
     $opcoes = array("" => "Selecione");
     if ($this->ref_cod_curso) {
         $objTemp = new clsPmieducarCurso();
         $lista = $objTemp->lista($this->ref_cod_curso, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes_["{$registro['cod_curso']}"] = "{$registro['qtd_etapas']}";
             }
         }
         for ($i = 1; $i <= $opcoes_["{$registro['cod_curso']}"]; $i++) {
             $opcoes[$i] = "Etapa {$i}";
         }
     }
     $this->campoLista("etapa_curso", "Etapa Curso", $opcoes, $this->etapa_curso);
     $opcoes = array("" => "Selecione", 1 => "n&atilde;o", 2 => "sim");
     $this->campoLista("concluinte", "Concluinte", $opcoes, $this->concluinte);
     $this->campoMonetario("carga_horaria", "Carga Hor&aacute;ria", $this->carga_horaria, 7, 7, true);
     $this->campoNumero("intervalo", "Intervalo", $this->intervalo, 2, 2, true);
     $this->media_especial = dbBool($this->media_especial) ? 'true' : '';
     $this->campoCheck('media_especial', 'M&eacute;dia Especial', $this->media_especial);
     $this->campoNumero("idade_inicial", "Faixa et&aacute;ria", $this->idade_inicial, 2, 2, false, "", "", false, false, true);
     $this->campoNumero("idade_final", "&nbsp;até", $this->idade_final, 2, 2, false);
     //-----------------------INCLUI DISCIPLINA------------------------//
     $this->campoQuebra();
     /*
     if ( $_POST["disciplina_serie"] )
     	$this->disciplina_serie = unserialize( urldecode( $_POST["disciplina_serie"] ) );
     */
     if (is_numeric($this->cod_serie)) {
         $obj = new clsPmieducarDisciplinaSerie();
         $registros = $obj->lista(null, $this->cod_serie, 1);
         if ($registros) {
             foreach ($registros as $campo) {
                 $this->disciplina_serie[$campo["ref_cod_disciplina"]] = $campo["ref_cod_disciplina"];
             }
         }
     }
     $disciplinas = "Nenhum curso selecionado";
     if ($this->ref_cod_curso) {
         $disciplinas = "";
         $conteudo = "";
         $objTemp = new clsPmieducarDisciplina();
         $objTemp->setOrderby("nm_disciplina");
         $lista = $objTemp->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_curso);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 //					$opcoes["{$registro['cod_disciplina']}"] = "{$registro['nm_disciplina']}";
                 $checked = "";
                 if ($this->disciplina_serie[$registro["cod_disciplina"]] == $registro["cod_disciplina"]) {
                     $checked = "checked=\"checked\"";
                 }
                 $conteudo .= "<input type=\"checkbox\" {$checked} name=\"disciplinas[]\" id=\"disciplinas[]\" value=\"{$registro["cod_disciplina"]}\"><label for=\"disciplinas[]\">{$registro["nm_disciplina"]}</label> <br />";
             }
         }
         $disciplinas = '<table cellspacing="0" cellpadding="0" border="0">';
         $disciplinas .= "<tr align=\"left\"><td> {$conteudo} </td></tr>";
         $disciplinas .= '</table>';
     }
     $this->campoRotulo("disciplinas_", "Disciplinas", "<div id='disciplinas'>{$disciplinas}</div>");
     $this->campoQuebra();
     //-----------------------FIM INCLUI DISCIPLINA------------------------//
 }
 function buscaDisciplinas($serie)
 {
     $this->array_disciplinas = array();
     $obj_disciplinas = new clsPmieducarDisciplinaSerie();
     $lista_disciplinas = $obj_disciplinas->lista(null, $serie, 1);
     //while(is_array($lista_disciplinas) && sizeof($lista_disciplinas) > 0)
     if (is_array($lista_disciplinas)) {
         foreach ($lista_disciplinas as $key => $disciplina) {
             //$disciplina = array_shift($lista_disciplinas);
             $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']);
             $det_disciplina = $obj_disciplina->detalhe();
             $this->array_disciplinas["{$det_disciplina["cod_disciplina"]}"] = array('ref_cod_disciplina' => $det_disciplina['cod_disciplina'], 'nm_disciplina' => substr($det_disciplina['abreviatura'], 0, 6), 'total_disciplina_abaixo_media_serie' => 0, 'total_disciplina_media_serie' => 0, 'total_geral_disciplina_abaixo_media_serie' => 0, 'total_geral_disciplina_media_serie' => 0);
         }
     }
 }
 function buscaDisciplinas($serie)
 {
     $this->array_disciplinas = array();
     $obj_disciplinas = new clsPmieducarDisciplinaSerie();
     $lista_disciplinas = $obj_disciplinas->lista(null, $serie);
     while (sizeof($lista_disciplinas)) {
         $disciplina = array_shift($lista_disciplinas);
         $obj_disciplina = new clsPmieducarDisciplina($disciplina['ref_cod_disciplina']);
         $det_disciplina = $obj_disciplina->detalhe();
         $this->array_disciplinas["{$det_disciplina["cod_disciplina"]}"] = array('ref_cod_disciplina' => $det_disciplina['cod_disciplina'], 'nm_disciplina' => $det_disciplina['abreviatura'], 'total_disciplina_abaixo_media_serie' => 0, 'total_disciplina_media_serie' => 0, 'total_geral_disciplina_abaixo_media' => 0, 'total_geral_disciplina_media' => 0);
     }
 }
 /**
  * Cria um boletim em HTML para a matricula $matricula
  *
  * @param int $matricula
  * @return array
  */
 function getBoletimAluno($matricula, $ano)
 {
     $media = false;
     $reprovado = 0;
     $falta_globalizada = 0;
     $array_status = array("Aprovado", "Reprovado", "Reprovado por faltas");
     $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
     $detalhe_curso = $objCurso->detalhe();
     // monta o boletim do aluno
     $cor = array("#ffffff", "#dce6f1");
     $corDest = array("#e1c9c9", "#efe7e7");
     $boletim = "\n\t\t<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" style=\"border-width:2px;color#00000;border-style:solid;\">\n\t\t\t<tr bgcolor=\"#ffffff\">\n\t\t\t\t<td rowspan=\"2\" class=\"cell_normal\" align=\"center\">Disciplina</td>\n\t\t";
     $linha2 = "<tr bgcolor=\"#ffffff\">";
     $objTurmaModulo = new clsPmieducarAnoLetivoModulo();
     $objTurmaModulo->setOrderby("sequencial ASC");
     $lista_modulos = $objTurmaModulo->lista($ano, $this->ref_ref_cod_escola);
     if (is_array($lista_modulos)) {
         foreach ($lista_modulos as $modulo) {
             $objModulo = new clsPmieducarModulo($modulo["ref_cod_modulo"]);
             $detModulo = $objModulo->detalhe();
             $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">{$detModulo["nm_tipo"]}</td>";
             $linha2 .= "\n\t\t\t\t<td class=\"cell_separa\" align=\"center\" width=\"40\">Nota</td>\n\t\t\t\t<td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td>\n\t\t\t\t";
         }
     }
     if (!is_null($detalhe_curso["media_exame"])) {
         $boletim .= "<td class=\"cell_separa\" align=\"center\">Exame</td>";
         $linha2 .= "<td class=\"cell_separa\" align=\"center\">Nota</td>";
     }
     $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">Resultado</td>\n\t\t</tr>\n\t\t";
     $linha2 .= "<td class=\"cell_separa\" align=\"center\" width=\"40\">Media</td><td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td></tr>";
     $boletim .= $linha2;
     $i = 0;
     $objDisciplinaSerie = new clsPmieducarDisciplinaSerie();
     $lstDisciplinas = $objDisciplinaSerie->lista(null, $this->ref_ref_cod_serie, 1);
     foreach ($lstDisciplinas as $disciplina) {
         $i++;
         $faltas_total = 0;
         $notas_total = 0;
         $objDispensa = new clsPmieducarDispensaDisciplina($matricula, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"]);
         $dispensa = $objDispensa->existe();
         $objDisciplina = new clsPmieducarDisciplina($disciplina["ref_cod_disciplina"]);
         $detDisciplina = $objDisciplina->detalhe();
         $boletim .= "\n\t\t\t<tr>\n\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\"  class=\"cell_normal\">{$detDisciplina["nm_disciplina"]}</td>\n\t\t\t";
         if (is_array($lista_modulos)) {
             reset($lista_modulos);
             foreach ($lista_modulos as $modulo) {
                 if ($dispensa) {
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t";
                 } else {
                     // pegando a falta desse modulo
                     $faltas = 0;
                     $objFaltaAluno = new clsPmieducarFaltaAluno();
                     $objFaltaAluno->setOrderby("data_cadastro DESC");
                     $objFaltaAluno->setLimite(1);
                     $lista_faltas = $objFaltaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1, $modulo["sequencial"]);
                     if (is_array($lista_faltas)) {
                         foreach ($lista_faltas as $falta_modulo) {
                             $faltas = $falta_modulo["faltas"];
                         }
                     }
                     $nota = null;
                     $objNotaAluno = new clsPmieducarNotaAluno();
                     $objNotaAluno->setOrderby("data_cadastro DESC");
                     $objNotaAluno->setLimite(1);
                     //						echo "<br><br><br>null,null,null,{$this->ref_ref_cod_serie},{$this->ref_ref_cod_escola},{$disciplina["ref_cod_disciplina"]},{$matricula},null,null,null,null,null,1,{$modulo["sequencial"]}\n<br>\n";
                     $lista_notas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1, $modulo["sequencial"]);
                     //						print_r($lista_notas);
                     //						echo "<br>";
                     if (is_array($lista_notas)) {
                         foreach ($lista_notas as $nota_modulo) {
                             $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_modulo["ref_ref_cod_tipo_avaliacao"], $nota_modulo["ref_sequencial"]);
                             //								echo "{$nota_modulo["ref_ref_cod_tipo_avaliacao"]},{$nota_modulo["ref_sequencial"]}\n<br>\n";
                             $det_nota_valor = $objNotaValor->detalhe();
                             $nota = $det_nota_valor["nome"];
                             $notas_total += $det_nota_valor["valor"];
                         }
                         unset($lista_notas);
                     }
                     $nota = $nota ? $nota : "&nbsp;";
                     $faltas = $faltas ? $faltas : 0;
                     $faltas_total += $faltas;
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota}</td>\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_normal\">{$faltas}</td>\n\t\t\t\t\t\t";
                 }
             }
             $media = $notas_total / count($lista_modulos);
             $media_aprovacao = $detalhe_curso["media"];
             if (!is_null($detalhe_curso["media_exame"])) {
                 // o curso tem exame
                 if ($dispensa) {
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t";
                 } else {
                     // echo count($lista_modulos);
                     $objNotaAluno = new clsPmieducarNotaAluno();
                     $objNotaAluno->setLimite(1);
                     $objNotaAluno->setOrderby("data_cadastro DESC");
                     $listaNotas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], null, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, null, count($lista_modulos) + 1);
                     if ($listaNotas) {
                         // ja recebeu a nota do exame
                         foreach ($listaNotas as $nota_exame) {
                             $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_exame["ref_ref_cod_tipo_avaliacao"], $nota_exame["ref_sequencial"]);
                             $detNotaValor = $objNotaValor->detalhe();
                             $nota_exame = $detNotaValor["nome"];
                             // print_r($detNotaValor);
                             $notas_total += $detNotaValor["valor"];
                             $nota_exame = $nota_exame ? $nota_exame : "-";
                             $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota_exame}</td>";
                         }
                         $media = $notas_total / (count($lista_modulos) + 1);
                         $media_aprovacao = $detalhe_curso["media_exame"];
                     } else {
                         $nota_exame = $nota_exame ? $nota_exame : "-";
                         $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">-</td>";
                     }
                 }
             }
             if ($media !== false) {
                 $objNotaValor = new clsPmieducarTipoAvaliacaoValores();
                 $objNotaValor->setLimite(1);
                 $objNotaValor->setOrderby("valor DESC");
                 $notas_media = $objNotaValor->lista($detalhe_curso["ref_cod_tipo_avaliacao"], null, null, null, $media, $media);
                 foreach ($notas_media as $nota_media) {
                     $media = $nota_media["nome"];
                     if ($nota_media["valor"] < $media_aprovacao) {
                         $reprovado = 1;
                     }
                 }
             } else {
                 $media = "&nbsp;";
             }
             if ($dispensa) {
                 $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t";
             } else {
                 $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$media}</td>\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\"  class=\"cell_normal\">{$faltas_total}</td>\n\t\t\t\t\t";
             }
         }
         if (!$detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") {
             if ($faltas_total > $maximo_faltas) {
                 $reprovado = 2;
             }
         }
         $falta_globalizada += $faltas_total;
     }
     if ($detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") {
         if ($falta_globalizada > $maximo_faltas) {
             $reprovado = 2;
         }
     }
     $boletim .= "</table>";
     return array("boletim" => $boletim, "automatico" => $array_status[$reprovado]);
 }