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;
         }
     }
     $obrigatorio = TRUE;
     $desabilitado = TRUE;
     $get_escola = TRUE;
     $get_curso = TRUE;
     $get_escola_curso_serie = TRUE;
     $get_turma = TRUE;
     include 'include/pmieducar/educar_campo_lista.php';
     $this->campoQuebra();
     /**
      * Campos a serem preenchidos com os dados necessários para a inclusão de horários
      */
     // foreign keys
     $opcoes_disc = array('' => 'Selecione uma disciplina');
     // Componentes curriculares da série
     $componentesTurma = array();
     try {
         $componentesTurma = App_Model_IedFinder::getComponentesTurma($this->ref_ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     } catch (Exception $e) {
     }
     if (0 == count($componentesTurma)) {
         $opcoes_disc = array('NULL' => 'A série dessa escola não possui componentes cadastrados');
     } else {
         foreach ($componentesTurma as $componente) {
             $opcoes_disc[$componente->id] = $componente;
         }
     }
     $this->campoLista('ref_cod_disciplina', 'Componente curricular', $opcoes_disc, $this->ref_cod_disciplina, '', FALSE, '', '', FALSE, FALSE);
     $this->campoOculto('identificador', $this->identificador);
     $opcoesDias = array('' => 'Selecione um dia da semana', 1 => 'Domingo', 2 => 'Segunda-Feira', 3 => 'Terça-Feira', 4 => 'Quarta-Feira', 5 => 'Quinta-Feira', 6 => 'Sexta-Feira', 7 => 'Sábado');
     $this->campoOculto('dia_semana', $this->dia_semana);
     $this->campoLista('dia_semana_', 'Dia da Semana', $opcoesDias, $this->dia_semana, '', FALSE, '', '', TRUE, FALSE);
     $this->campoHora('hora_inicial', 'Hora Inicial', $this->hora_inicial, FALSE);
     $this->campoHora('hora_final', 'Hora Final', $this->hora_final, FALSE);
     $this->campoListaPesq('ref_cod_servidor', 'Servidor', array('' => 'Selecione um servidor'), $this->ref_cod_servidor, '', '', FALSE, '', '', NULL, NULL, '', TRUE, FALSE, FALSE);
     $this->campoRotulo('bt_incluir_horario', 'Hor&aacute;rio', "<a href='#' onclick=\"" . "if (document.getElementById('ref_cod_disciplina').value == '') {\n         alert('Você deve escolher a disciplina!');\n         return;\n       }\n       else if (document.getElementById('hora_inicial').value == '') {\n         alert('Você deve preencher o campo Hora Inicial!');\n         return;\n       }\n       else if (document.getElementById('hora_final').value == '') {\n         alert('Você deve preencher o campo Hora Final!');\n         return;\n       }\n       else if (document.getElementById('ref_cod_servidor').value == '') {\n         alert('Você deve selecionar um servidor no campo Servidor');\n         return;\n       }\n       else {\n         if (verificaQuadroHorario()) {\n           getElementById('incluir_horario').value = 'S';\n           getElementById('tipoacao').value = '';\n           {$this->__nome}.submit();\n         }\n       }\"><img src='imagens/nvp_bot_adiciona.gif' title='Incluir' border=0></a>");
     $this->campoOculto('incluir_horario', '');
     /**
      * Inclui horários
      */
     if ($_POST['quadro_horario']) {
         $this->quadro_horario = unserialize(urldecode($_POST['quadro_horario']));
     }
     $qtd_horario = count($this->quadro_horario) == 0 ? 1 : count($this->quadro_horario) + 1;
     // primary keys
     if ($this->incluir_horario) {
         if (is_numeric($_POST['ref_cod_servidor']) && is_string($_POST['hora_inicial']) && is_string($_POST['hora_final']) && is_numeric($_POST['dia_semana']) && is_numeric($_POST['ref_cod_disciplina'])) {
             $this->quadro_horario[$qtd_horario]['ref_cod_quadro_horario_'] = $this->ref_cod_quadro_horario;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_serie_'] = $this->ref_ref_cod_serie;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_escola_'] = $this->ref_cod_escola;
             $this->quadro_horario[$qtd_horario]['ref_ref_cod_disciplina_'] = $_POST['ref_cod_disciplina'];
             $this->quadro_horario[$qtd_horario]['ref_cod_instituicao_servidor_'] = $this->ref_cod_instituicao;
             $this->quadro_horario[$qtd_horario]['ref_servidor_'] = $_POST['ref_cod_servidor'];
             $this->quadro_horario[$qtd_horario]['ref_servidor_substituto_'] = $_POST['ref_servidor_substituto'];
             $this->quadro_horario[$qtd_horario]['hora_inicial_'] = $_POST['hora_inicial'];
             $this->quadro_horario[$qtd_horario]['hora_final_'] = $_POST['hora_final'];
             $this->quadro_horario[$qtd_horario]['ativo_'] = 1;
             $this->quadro_horario[$qtd_horario]['dia_semana_'] = $_POST['dia_semana'];
             $this->quadro_horario[$qtd_horario]['qtd_horario_'] = $qtd_horario;
             $qtd_horario++;
             /**
              * salva os dados em uma tabela temporaria
              * para realizar consulta na listagem
              */
             $obj_quadro_horario = new clsPmieducarQuadroHorarioHorariosAux($this->ref_cod_quadro_horario, NULL, $this->ref_cod_disciplina, $this->ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_instituicao, $this->ref_cod_servidor, $this->dia_semana, $this->hora_inicial, $this->hora_final, $this->identificador);
             $obj_quadro_horario->cadastra();
             unset($this->ref_cod_servidor);
             unset($this->ref_cod_disciplina);
             unset($this->hora_inicial);
             unset($this->hora_final);
             echo "\n          <script>\n            window.onload = function() {\n              document.getElementById('ref_cod_servidor').value   = '';\n              document.getElementById('ref_cod_disciplina').value = '';\n              document.getElementById('hora_inicial').value       = '';\n              document.getElementById('hora_final').value         = '';\n            }\n          </script>";
         }
     }
     echo "<script>\n            quadro_horario = " . count($this->quadro_horario) . ";\n        </script>";
     $this->campoOculto('excluir_horario', '');
     $qtd_horario = 1;
     $this->lst_matriculas = urldecode($this->lst_matriculas);
     $this->min_mat = $this->min_ves = $this->min_not = 0;
     if ($this->quadro_horario) {
         foreach ($this->quadro_horario as $campo) {
             if ($this->excluir_horario == $campo['qtd_horario_']) {
                 $obj_horario = new clsPmieducarQuadroHorarioHorarios();
                 $lst_horario = $obj_horario->lista($campo['ref_cod_quadro_horario_'], $campo['ref_ref_cod_serie_'], $campo['ref_ref_cod_escola_'], $campo['ref_ref_cod_disciplina_'], NULL, NULL, NULL, $campo['ref_cod_instituicao_servidor_'], NULL, $campo['ref_servidor_'], $campo['hora_inicial_'], NULL, $campo['hora_final_'], NULL, NULL, NULL, NULL, NULL, 1, $campo['dia_semana_']);
                 if (is_array($lst_horario)) {
                     $campo['ativo_'] = 0;
                     if (isset($this->lst_matriculas)) {
                         $this->lst_matriculas .= '' . $campo['ref_servidor_'] . '';
                     } else {
                         $this->lst_matriculas .= ', ' . $campo['ref_servidor_'] . '';
                     }
                 } else {
                     $campo['ativo_'] = 2;
                     if (isset($this->lst_matriculas)) {
                         $this->lst_matriculas .= '' . $campo['ref_servidor_'] . '';
                     } else {
                         $this->lst_matriculas .= ', ' . $campo['ref_servidor_'] . '';
                     }
                 }
                 $this->excluir_horario = NULL;
                 $obj_horario = new clsPmieducarQuadroHorarioHorariosAux();
                 $lst_horario = $obj_horario->excluiRegistro($campo['ref_cod_quadro_horario_'], $campo['ref_ref_cod_serie_'], $campo['ref_ref_cod_escola_'], $campo['ref_ref_cod_disciplina_'], $campo['ref_cod_instituicao_servidor_'], $campo['ref_servidor_'], $this->identificador);
             } else {
                 switch ($campo['dia_semana_']) {
                     case 1:
                         $campo['nm_dia_semana_'] = 'Domingo';
                         break;
                     case 2:
                         $campo['nm_dia_semana_'] = 'Segunda-Feira';
                         break;
                     case 3:
                         $campo['nm_dia_semana_'] = 'Terça-Feira';
                         break;
                     case 4:
                         $campo['nm_dia_semana_'] = 'Quarta-Feira';
                         break;
                     case 5:
                         $campo['nm_dia_semana_'] = 'Quinta-Feira';
                         break;
                     case 6:
                         $campo['nm_dia_semana_'] = 'Sexta-Feira';
                         break;
                     case 7:
                         $campo['nm_dia_semana_'] = 'S&aacute;bado';
                         break;
                 }
             }
             if ($campo['ativo_'] == 1) {
                 $this->campoTextoInv($campo['qtd_horario_'] . '_nm_dia_semana', '', $campo['nm_dia_semana_'], 13, 255, FALSE, FALSE, TRUE);
                 $this->campoOculto($campo['qtd_horario_'] . '_dia_semana', $campo['dia_semana_']);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_hora_inicial', '', $campo['hora_inicial_'], 5, 255, FALSE, FALSE, TRUE);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_hora_final', '', $campo['hora_final_'], 5, 255, FALSE, FALSE, TRUE);
                 $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper();
                 $componente = $componenteMapper->find($campo['ref_ref_cod_disciplina_']);
                 $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_disciplina', '', $componente->nome, 30, 255, FALSE, FALSE, TRUE);
                 $obj_pes = new clsPessoa_($campo['ref_servidor_']);
                 $det_pes = $obj_pes->detalhe();
                 if (is_numeric($campo['ref_servidor_substituto_'])) {
                     $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_servidor', '', $det_pes['nome'], 30, 255, FALSE, FALSE, FALSE, '', '');
                 } else {
                     $this->campoTextoInv($campo['qtd_horario_'] . '_ref_cod_servidor', '', $det_pes['nome'], 30, 255, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"getElementById('excluir_horario').value = '{$campo["qtd_horario_"]}'; getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>");
                 }
             }
             if ($campo['ativo_'] != 2) {
                 $horarios_incluidos[$qtd_horario]['ref_cod_quadro_horario_'] = $campo['ref_cod_quadro_horario_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_serie_'] = $campo['ref_ref_cod_serie_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_escola_'] = $campo['ref_ref_cod_escola_'];
                 $horarios_incluidos[$qtd_horario]['ref_ref_cod_disciplina_'] = $campo['ref_ref_cod_disciplina_'];
                 $horarios_incluidos[$qtd_horario]['sequencial_'] = $campo['sequencial_'];
                 $horarios_incluidos[$qtd_horario]['ref_cod_instituicao_servidor_'] = $campo['ref_cod_instituicao_servidor_'];
                 $horarios_incluidos[$qtd_horario]['ref_servidor_'] = $campo['ref_servidor_'];
                 $horarios_incluidos[$qtd_horario]['ref_servidor_substituto_'] = $campo['ref_servidor_substituto_'];
                 $horarios_incluidos[$qtd_horario]['hora_inicial_'] = $campo['hora_inicial_'];
                 $horarios_incluidos[$qtd_horario]['hora_final_'] = $campo['hora_final_'];
                 $horarios_incluidos[$qtd_horario]['ativo_'] = $campo['ativo_'];
                 $horarios_incluidos[$qtd_horario]['dia_semana_'] = $campo['dia_semana_'];
                 $horarios_incluidos[$qtd_horario]['qtd_horario_'] = $qtd_horario;
                 $qtd_horario++;
             }
         }
         unset($this->quadro_horario);
         $this->quadro_horario = $horarios_incluidos;
     }
     $this->campoOculto('ref_cod_turma', $this->ref_cod_turma);
     $this->campoOculto('quadro_horario', serialize($this->quadro_horario));
     $this->campoOculto('ref_cod_curso_', $this->ref_cod_curso);
     $this->campoOculto('lst_matriculas', urlencode($this->lst_matriculas));
     $this->campoOculto('min_mat', $this->min_mat);
     $this->campoOculto('min_ves', $this->min_ves);
     $this->campoOculto('min_not', $this->min_not);
     $this->campoQuebra();
 }
 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';
     if (empty($this->ref_cod_turma)) {
         echo '
     <script>
       alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     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($det_escola['ref_cod_instituicao']);
         $det_instituicao = $obj_instituicao->detalhe();
         $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     }
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']);
     $det = $obj_pessoa->detalhe();
     $this->nm_professor = $det['nome'];
     if (!$lista_calendario) {
         echo '
     <script>
       alert("Escola não possui calendário definido para este ano");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     $titulo = 'Diário de Classe - ' . $this->ano;
     $prox_mes = $this->mes + 1;
     $this->pdf = new clsPDF($titulo, $titulo, 'A4', '', FALSE, FALSE);
     $altura_linha = 15;
     $inicio_escrita_y = 175;
     $altura_pagina = 760;
     $obj = new clsPmieducarSerie();
     $obj->setOrderby('cod_serie, etapa_curso');
     $lista_serie_curso = $obj->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     // Recupera a lista de componentes curriculares da escola/série
     $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_cod_serie, $this->ref_cod_escola);
     if (0 == count($componentes)) {
         echo '
     <script>
       alert("Turma não possui matriculas");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return;
     } else {
         foreach ($componentes as $id => $componente) {
             $this->nm_disciplina = $componente->nome;
             $this->page_y = 139;
             // Número de semanas dos meses
             $obj_quadro = new clsPmieducarQuadroHorario();
             $obj_quadro->setCamposLista('cod_quadro_horario');
             $quadro_horario = $obj_quadro->lista(NULL, NULL, NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, 1);
             if (!$quadro_horario && $det_curso['avaliacao_globalizada'] == 't') {
                 echo '
         <script>
           alert("Turma não possui quadro de horários");
           window.location = "educar_relatorio_diario_classe.php";
         </script>';
                 break;
             }
             $obj_quadro_horarios = new clsPmieducarQuadroHorarioHorarios();
             $obj_quadro_horarios->setCamposLista('dia_semana');
             $obj_quadro_horarios->setOrderby('1 asc');
             $lista_quadro_horarios = $obj_quadro_horarios->lista($quadro_horario, $this->ref_cod_serie, $this->ref_cod_escola, $disciplina, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
             if (!$this->em_branco) {
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                 $obj_matricula_turma->setOrderby('nome_ascii');
                 $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, NULL, TRUE);
             }
             $num_aluno = 1;
             if ($lista_matricula || $this->em_branco) {
                 $this->pdf->OpenPage();
                 $this->addCabecalho();
                 if ($this->em_branco) {
                     $lista_matricula = array();
                     $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20;
                     for ($i = 0; $i < $this->numero_registros; $i++) {
                         $lista_matricula[] = '';
                     }
                 }
                 foreach ($lista_matricula as $matricula) {
                     if ($this->page_y > $altura_pagina) {
                         $this->desenhaLinhasVertical();
                         $this->pdf->ClosePage();
                         $this->pdf->OpenPage();
                         $this->page_y = 139;
                         $this->addCabecalho();
                     }
                     $this->pdf->quadrado_relativo(30, $this->page_y, 540, $altura_linha);
                     $this->pdf->escreve_relativo($num_aluno, 38, $this->page_y + 4, 30, 15, $fonte, 7, $corTexto, 'left');
                     $this->pdf->escreve_relativo($matricula['nome_aluno'], 55, $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left');
                     $num_aluno++;
                     $this->page_y += $altura_linha;
                 }
                 $this->desenhaLinhasVertical();
                 $this->rodape();
                 $this->pdf->ClosePage();
             }
         }
         $this->pdf->CloseFile();
         $this->get_link = $this->pdf->GetLink();
     }
     echo sprintf('
   <script>
     window.onload=function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br>
       <a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">
         Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <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>
       </span>
     </center>
   </html>', $this->get_link);
 }
 /**
  * Implementação do método clsCadastro::Gerar()
  * @see ieducar/intranet/include/clsCadastro#Gerar()
  */
 public function Gerar()
 {
     $this->campoOculto('ref_cod_servidor', $this->ref_cod_servidor);
     $this->campoOculto('sequencial', $this->sequencial);
     $this->campoOculto('ref_cod_instituicao', $this->ref_cod_instituicao);
     $opcoes = array('' => 'Selecione');
     $objTemp = new clsPmieducarMotivoAfastamento();
     $lista = $objTemp->lista();
     if (is_array($lista) && count($lista) > 0) {
         foreach ($lista as $registro) {
             $opcoes[$registro['cod_motivo_afastamento']] = $registro['nm_motivo'];
         }
     } else {
         $opcoes = array('' => 'Nenhum motivo de afastamento cadastrado');
     }
     if ($this->status == 'N') {
         $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', $opcoes, $this->ref_cod_motivo_afastamento);
     } elseif ($this->status == 'E') {
         $this->campoLista('ref_cod_motivo_afastamento', 'Motivo Afastamento', $opcoes, $this->ref_cod_motivo_afastamento, '', FALSE, '', '', TRUE);
     }
     // Datas para registro
     // Se novo registro
     if ($this->status == 'N') {
         $this->campoData('data_saida', 'Data de Afastamento', $this->data_saida, TRUE);
     } elseif ($this->status == 'E') {
         $this->campoRotulo('data_saida', 'Data de Afastamento', $this->data_saida);
     }
     // Se edição, mostra campo para entrar com data de retorno
     if ($this->status == 'E') {
         $this->campoData('data_retorno', 'Data de Retorno', $this->data_retorno, FALSE);
     }
     $obj_servidor = new clsPmieducarServidor($this->ref_cod_servidor, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $det_servidor = $obj_servidor->detalhe();
     if ($det_servidor) {
         $obj_funcao = new clsPmieducarFuncao($det_servidor['ref_cod_funcao'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         // Se for professor
         if (TRUE == $obj_servidor->isProfessor()) {
             $obj = new clsPmieducarQuadroHorarioHorarios();
             // Pega a lista de aulas alocadas para este servidor
             $lista = $obj->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_instituicao, NULL, $this->ref_cod_servidor, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
             if ($lista) {
                 // Passa todos os valores obtidos no registro para atributos do objeto
                 foreach ($lista as $campo => $val) {
                     $temp = array();
                     $temp['hora_inicial'] = $val['hora_inicial'];
                     $temp['hora_final'] = $val['hora_final'];
                     $temp['dia_semana'] = $val['dia_semana'];
                     $temp['ref_cod_escola'] = $val['ref_cod_escola'];
                     $temp['ref_cod_disciplina'] = $val['ref_cod_disciplina'];
                     $temp['ref_cod_substituto'] = $val['ref_servidor_substituto'];
                     $this->alocacao_array[] = $temp;
                 }
                 if ($this->alocacao_array) {
                     $tamanho = sizeof($alocacao);
                     $script = "<script>\nvar num_alocacao = {$tamanho};\n";
                     $script .= "var array_servidores = Array();\n";
                     foreach ($this->alocacao_array as $key => $alocacao) {
                         $script .= "array_servidores[{$key}] = new Array();\n";
                         $hora_ini = explode(":", $alocacao['hora_inicial']);
                         $hora_fim = explode(":", $alocacao['hora_final']);
                         $horas_utilizadas = $hora_fim[0] - $hora_ini[0];
                         $minutos_utilizados = $hora_fim[1] - $hora_ini[1];
                         $horas = sprintf('%02d', (int) $horas_utilizadas);
                         $minutos = sprintf('%02d', (int) $minutos_utilizados);
                         $str_horas_utilizadas = "{$horas}:{$minutos}";
                         $script .= "array_servidores[{$key}][0] = '{$str_horas_utilizadas}';\n";
                         $script .= "array_servidores[{$key}][1] = '';\n\n";
                         $obj_escola = new clsPmieducarEscola($alocacao['ref_cod_escola']);
                         $det_escola = $obj_escola->detalhe();
                         $det_escola = $det_escola['nome'];
                         $nm_dia_semana = $this->dias_da_semana[$alocacao['dia_semana']];
                         $obj_subst = new clsPessoa_($alocacao['ref_cod_substituto']);
                         $det_subst = $obj_subst->detalhe();
                         if ($this->status == 'N') {
                             $this->campoTextoInv("dia_semana_{$key}_", '', $nm_dia_semana, 8, 8, FALSE, FALSE, TRUE, '', '', '', '', 'dia_semana');
                             $this->campoTextoInv("hora_inicial_{$key}_", '', $alocacao['hora_inicial'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_inicial_');
                             $this->campoTextoInv("hora_final_{$key}_", '', $alocacao['hora_final'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_final_');
                             $this->campoTextoInv("ref_cod_escola_{$key}", '', $det_escola, 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_escola_');
                             $this->campoTextoInv("ref_cod_servidor_substituto_{$key}_", '', $det_subst['nome'], 30, 255, FALSE, FALSE, FALSE, '', "<span name=\"ref_cod_servidor_substituto\" id=\"ref_cod_servidor_substituicao_{$key}\"><img border='0'  onclick=\"pesquisa_valores_popless('educar_pesquisa_servidor_lst.php?campo1=ref_cod_servidor_substituto[{$key}]&campo2=ref_cod_servidor_substituto_{$key}_&ref_cod_instituicao={$this->ref_cod_instituicao}&dia_semana={$alocacao["dia_semana"]}&hora_inicial={$alocacao["hora_inicial"]}&hora_final={$alocacao["hora_final"]}&ref_cod_servidor={$this->ref_cod_servidor}&professor=1&ref_cod_escola={$alocacao['ref_cod_escola']}&horario=S&ref_cod_disciplina={$alocacao['ref_cod_disciplina']}', 'nome')\" src=\"imagens/lupa.png\" ></span>", '', '', 'ref_cod_servidor_substituto');
                         }
                         $this->campoOculto("dia_semana_{$key}", $alocacao['dia_semana']);
                         $this->campoOculto("hora_inicial_{$key}", $alocacao['hora_inicial']);
                         $this->campoOculto("hora_final_{$key}", $alocacao['hora_final']);
                         $this->campoOculto("ref_cod_escola_{$key}", $alocacao['ref_cod_escola']);
                         $this->campoOculto("ref_cod_servidor_substituto[{$key}]", $alocacao['ref_cod_substituto']);
                     }
                     $script .= "\n</script>";
                     // Print do Javascript
                     print $script;
                 }
             }
         }
     }
 }
 function renderHTML()
 {
     global $coreExt;
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     $this->temporario = isset($_POST['temporario']) ? TRUE : FALSE;
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '
     <script>
       alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     $modulo_sequencial = explode('-', $this->ref_cod_modulo);
     $this->ref_cod_modulo = $modulo_sequencial[0];
     $this->sequencial = $modulo_sequencial[1];
     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($det_escola['ref_cod_instituicao']);
         $det_instituicao = $obj_instituicao->detalhe();
         $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     }
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $regraId = $det_serie['regra_avaliacao_id'];
     $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']);
     $det = $obj_pessoa->detalhe();
     $this->nm_professor = $det['nome'];
     if (!$lista_calendario) {
         echo '
     <script>
       alert("Escola não possui calendário definido para este ano");
       window.parent.fechaExpansivel(\'div_dinamico_\' + (window.parent.DOM_divs.length - 1));
     </script>';
         return TRUE;
     }
     $altura_linha = 23;
     $inicio_escrita_y = 175;
     $obj = new clsPmieducarSerie();
     $obj->setOrderby('cod_serie, etapa_curso');
     $lista_serie_curso = $obj->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     // Seleciona a regra para verificar se a presença é geral
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $regra = $regraMapper->find($regraId);
     $presencaGeral = $regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL;
     // Seleciona o curso para ver se é padrão e decidir qual ano letivo pesquisar
     $db = new clsBanco();
     $consulta = sprintf('SELECT padrao_ano_escolar FROM pmieducar.curso WHERE cod_curso = \'%d\'', $this->ref_cod_curso);
     $padrao_ano_escolar = $db->CampoUnico($consulta);
     $total_semanas = 0;
     if ($padrao_ano_escolar) {
         // Seleciona o módulo do ano letivo da escola
         $data = $this->getDatasModulo($this->ref_cod_modulo, $this->sequencial, $this->ano, $this->ref_cod_escola);
     } else {
         // Seleciona o módulo do ano letivo da turma
         $data = $this->getDatasModulo($this->ref_cod_modulo, $this->sequencial, $this->ano, NULL, $this->ref_cod_turma);
     }
     $meses = $data['meses'];
     $dias = $data['dias'];
     if (!$this->data_ini) {
         $this->data_ini = $data['dataInicial'];
     }
     if (!$this->data_fim) {
         $this->data_fim = $data['dataFinal'];
     }
     $total_semanas = 0;
     for ($mes = $meses[0]; $mes <= $meses[1]; $mes++) {
         $mes_final = FALSE;
         if ($mes == $meses[0]) {
             $dia = $dias[0];
         } elseif ($mes == $meses[1]) {
             $dia = $dias[1];
             $mes_final = TRUE;
         } else {
             $dia = 1;
         }
         $total_semanas += $this->getNumeroDiasMes($this->ref_cod_turma, $dia, $mes, $this->ano, $mes_final);
         $total_semanas += $ndm;
     }
     $this->pdf = new clsPDF('Diário de Classe - ' . $this->ano, sprintf('Diário de Classe - %s até %s de %s', $this->data_ini, $this->data_fim, $this->ano), 'A4', '', FALSE, FALSE);
     $this->mes_inicial = (int) $meses[0];
     $this->mes_final = (int) $meses[1];
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->total = $total_semanas;
     if (!$this->em_branco) {
         $obj_matricula_turma = new clsPmieducarMatriculaTurma();
         $obj_matricula_turma->setOrderby('nome_ascii');
         $matriculaSituacao = array(App_Model_MatriculaSituacao::APROVADO, App_Model_MatriculaSituacao::REPROVADO, App_Model_MatriculaSituacao::EM_ANDAMENTO);
         $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, $matriculaSituacao, NULL, NULL, $this->ano, NULL, TRUE, NULL, NULL, TRUE);
     }
     if ($this->em_branco) {
         $lista_matricula = array();
         $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20;
         for ($i = 0; $i < $this->numero_registros; $i++) {
             $lista_matricula[] = '';
         }
     }
     // Seleciona os componentes da escola/série
     $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_cod_serie, $this->ref_cod_escola);
     if (0 < count($componentes) && FALSE == $presencaGeral) {
         $this->total = $total_semanas = 0;
         foreach ($componentes as $componente) {
             $this->nm_disciplina = $componente->nome;
             $this->page_y = 125;
             if (FALSE == $presencaGeral) {
                 // Número de semanas dos meses
                 $obj_quadro = new clsPmieducarQuadroHorario();
                 $obj_quadro->setCamposLista('cod_quadro_horario');
                 $quadro_horario = $obj_quadro->lista(NULL, NULL, NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, 1);
                 $total_semanas = 0;
                 $this->indefinido = FALSE;
                 if (!$quadro_horario) {
                     echo '
           <script>
             alert(\'Turma não possui quadro de horários\');
             window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
           </script>';
                     die;
                 }
                 $obj_quadro_horarios = new clsPmieducarQuadroHorarioHorarios();
                 $obj_quadro_horarios->setCamposLista('dia_semana');
                 $obj_quadro_horarios->setOrderby('1 asc');
                 $lista_quadro_horarios = $obj_quadro_horarios->lista($quadro_horario[0], $this->ref_cod_serie, $this->ref_cod_escola, $componente->id, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
                 // Se não for retornado horário e o diário não for temporário, gera
                 // a lista para o próximo componente
                 if (FALSE == $lista_quadro_horarios && FALSE == $this->temporario) {
                     continue;
                 }
                 // Caso o diário seja temporário, gera lista de alunos para 30 dias
                 // por padrão
                 if (FALSE == $lista_quadro_horarios && TRUE == $this->temporario) {
                     $this->indefinido = TRUE;
                     $total_semanas = $coreExt['Config']->get($coreExt['Config']->report->diario_classe->dias_temporarios, 30);
                 }
                 for ($mes_ = $meses[0]; $mes_ <= $meses[1] && FALSE != $lista_quadro_horarios; $mes_++) {
                     $mes_final = FALSE;
                     foreach ($lista_quadro_horarios as $dia_semana) {
                         if ($mes_ == $meses[0]) {
                             $dia = $dias[0];
                         } elseif ($mes_ == $meses[1]) {
                             $dia = $dias[1];
                             $mes_final = TRUE;
                         } else {
                             $dia = 1;
                         }
                         $total_semanas += $this->getDiasSemanaMes($this->ref_cod_turma, $dia, $mes_, $this->ano, $dia_semana, $mes_final);
                     }
                 }
                 $this->total = $total_semanas;
             }
             if (!$this->total) {
                 continue;
             }
             $this->gerarListaAlunos($lista_matricula);
         }
     } else {
         $this->gerarListaAlunos($lista_matricula);
     }
     if ($this->total) {
         $this->pdf->CloseFile();
         $this->get_link = $this->pdf->GetLink();
     } else {
         $this->mensagem = 'Não existem dias letivos cadastrados para esta turma';
         return;
     }
     echo sprintf('
   <script>
     window.onload = function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br /><a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <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>
       </span>
     </center>
   </html>', $this->get_link);
 }