<meta name='Description' content='Portal da Prefeitura de Itajaí' />
		<meta name='Keywords' content='portal, prefeitura, itajaí, serviço, cidadão' />

		<link rel="icon" href="imagens/logo_itajai.ico" type="image/x-icon">
	</head>
	<body onload="parent.EscondeDiv('LoadImprimir');">
<?php 
require_once "include/clsBase.inc.php";
require_once "include/clsCadastro.inc.php";
require_once "include/relatorio.inc.php";
require_once "include/pmieducar/geral.inc.php";
$ref_cod_escola = $_GET['ref_cod_escola'];
$ref_cod_curso = $_GET['ref_cod_curso'];
$ref_ref_cod_serie = $_GET['ref_ref_cod_serie'];
$ref_cod_turma = $_GET['ref_cod_turma'];
$obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($ref_cod_escola, null, null, null, 1, null, null, null, null, 1);
if (is_array($lst_escola_ano_letivo)) {
    $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo);
    $ano = $det_escola_ano_letivo['ano'];
    $obj_matricula_turma = new clsPmieducarMatricula();
    $lst_total_series = $obj_matricula_turma->getTotalAlunosEscola($ref_cod_escola, $ref_cod_curso, $ref_ref_cod_serie);
    if (is_array($lst_total_series)) {
        $relatorio = new relatorios("QUADRO ALUNOS SINTÉTICO   -   Ano {$ano}                                    Total de Alunos = {$lst_total_series[0]['_total']}", 120, false, "i-Educar", "A4", "Prefeitura COBRA Tecnologia\n\nSecretaria da Educação", "#515151");
        $relatorio->exibe_produzido_por = false;
        $obj_curso = new clsPmieducarCurso($ref_cod_curso);
        $det_curso = $obj_curso->detalhe();
        $relatorio->novalinha(array($det_curso['nm_curso']), 0, 16, true, "arial", array(), "#515151", "#d3d3d3", "#FFFFFF", false, true);
        $relatorio->novalinha(array("Série", "Total Alunos"), 0, 16, true, "arial", array(70), "#515151", "#d3d3d3", "#FFFFFF", false, true);
        foreach ($lst_total_series as $serie) {
            $relatorio->novalinha(array($serie['nm_serie'], $serie['total_alunos_serie']), 5, 17, false, "arial", array(85));
Beispiel #2
0
 function listaAnos()
 {
     if (!$this->cod_escola) {
         return false;
     }
     $existe = false;
     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
     $obj_ano_letivo->setOrderby("ano");
     $lista_ano_letivo = $obj_ano_letivo->lista($this->cod_escola, null, null, null, null, null, null, null, null, 1);
     $tabela = "<table border=0 cellpadding=2 width='100%'>";
     if ($lista_ano_letivo) {
         //echo'<pre>';
         //print_r($lista_ano_letivo);
         $existe = true;
         $tabela .= "<tr bgcolor={$cor}><td colspan='2'><b>Anos letivos</b></td></tr><tr><td>";
         $tabela .= "<table cellpadding=\"2\" cellspacing=\"2\" border=\"0\" align=\"left\" width='60%'>";
         $tabela .= "<tr bgcolor='#A1B3BD'><th width='90'>Ano<a name='ano_letivo'/></th><th width='70'>Iniciar</th><th width='70'>Finalizar</th><th width='150'>Editar</th></tr>";
         $cor = $cor == "#FFFFFF" ? "#E4E9ED" : "#FFFFFF";
         $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
         $existe_ano_andamento = $obj_ano_letivo->lista($this->cod_escola, null, null, null, 1, null, null, null, null, 1);
         foreach ($lista_ano_letivo as $ano) {
             $incluir = $excluir = "";
             //se nao existe ano em andamento permite inicializar um ano letivo
             if (!$existe_ano_andamento && $ano['andamento'] != 2) {
                 $incluir = "<td><a href='#' onclick=\"preencheForm('{$ano['ano']}','{$ano['ref_cod_escola']}','iniciar');\"><img src=\"imagens/i-educar/nvp_bot_iniciar_ano.gif\" border=0 style='padding-left:10px;'></a></td>";
             } else {
                 $incluir = "<td width='130'>&nbsp;</td>";
             }
             //verifica se o ano nao possui matricula em andamento para permitir finalizar o ano
             $obj_matricula_ano = new clsPmieducarMatricula();
             $matricula_em_andamento = $obj_matricula_ano->lista(null, null, $this->cod_escola, null, null, null, null, 3, null, null, null, null, 1, $ano['ano'], null, null, 1, null, 1, null, null, null, null, null, null, false);
             if (!$matricula_em_andamento && $existe_ano_andamento && $ano['andamento'] == 1) {
                 $excluir = "<td><a href='#' onclick=\"preencheForm('{$ano['ano']}','{$ano['ref_cod_escola']}','finalizar');\" ><img src=\"imagens/i-educar/nvp_bot_finalizar_ano.gif\" border=0 style='padding-left:10px;'></a></td>";
             } else {
                 $excluir = "<td width='130'>&nbsp;</td>";
             }
             $editar = "";
             //"<td align='center'> - </td>";
             if ($ano['andamento'] == 2) {
                 $incluir = "<td colspan='3' align='center'><span class='formlttd'><b>--- Ano Finalizado ---</b></span></td>";
             } else {
                 $editar = "<td><a href='#' onclick=\"preencheForm('{$ano['ano']}','{$ano['ref_cod_escola']}','editar');\" ><img src=\"imagens/i-educar/nvp_bot_editar_ano.gif\" alt=\"Editar Ano Letivo\" border=0 style='padding-left:10px;'></a></td>";
             }
             $tabela .= "<tr bgcolor='{$cor}'><td style='padding-left:20px'><img src=\"imagens/noticia.jpg\" border='0'> {$ano['ano']}</td>{$incluir}{$excluir}{$editar}</tr>";
         }
         $tabela .= "</table></td></tr>";
         $tabela .= "<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<span class='formlttd'><b>*Somente &eacute; poss&iacute;vel finalizar um ano letivo ap&oacute;s n&atilde;o existir mais nenhuma matr&iacute;cula em andamento.</b></span>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>";
         $tabela .= "<tr>\n\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t<form name='acao_ano_letivo' action='educar_iniciar_ano_letivo.php' method='post'>\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='ano' id='ano'>\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='ref_cod_escola' id='ref_cod_escola'>\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='tipo_acao' id='tipo_acao'>\n\t\t\t\t\t\t\t\t</form>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>";
     }
     $tabela .= "</table>";
     return $existe == true ? $tabela : false;
 }
 function Gerar()
 {
     // Primary keys
     $this->campoOculto('ref_cod_escola', $this->ref_cod_escola);
     $this->campoOculto('ano', $this->ano);
     $obj_anos = new clsPmieducarEscolaAnoLetivo();
     $lista_ano = $obj_anos->lista($this->ref_cod_escola, NULL, NULL, NULL, 2, NULL, NULL, NULL, NULL, 1);
     $ano_array = array();
     if ($lista_ano) {
         foreach ($lista_ano as $ano) {
             $ano_array[$ano['ano']] = $ano['ano'];
         }
     }
     $ano_atual = date('Y');
     // Foreign keys
     $opcoes = array('' => 'Selecione');
     $lim = 5;
     for ($i = 0; $i < $lim; $i++) {
         $ano = $ano_atual + $i;
         if (!key_exists($ano, $ano_array)) {
             $opcoes[$ano] = $ano;
         } else {
             $lim++;
         }
     }
     $this->campoLista('ano', 'Ano', $opcoes, $this->ano);
 }
 function finalizarAnoLetivo()
 {
     /**
      * VERIFICA se n�o existem matriculas em andamento
      */
     $obj_matriculas = new clsPmieducarMatricula();
     $existe_matricula_andamento_com_curso = $obj_matriculas->lista(null, null, $this->ref_cod_escola, null, null, null, null, 3, null, null, null, null, 1, $this->ano, null, null, 1, null, null, null, null, null, null, null, null, false);
     if ($existe_matricula_andamento_com_curso) {
         echo "<script>\n\t\t\t\t\talert('Não foi possível finalizar o ano letivo existem matrículas em andamento!');\n\t\t\t\t\twindow.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}';\n\t\t\t\t  </script>";
     }
     $obj_matriculas = new clsPmieducarMatricula(null, null, $this->ref_cod_escola, null, $this->pessoa_logada, null, null, null, null, null, 1, $this->ano);
     $existe_matricula_andamento = $obj_matriculas->lista(null, null, $this->ref_cod_escola, null, null, null, null, 3, null, null, null, null, 1, $this->ano, null, null, 1, null, null, null, null, null, null, null, null, true);
     if ($existe_matricula_andamento) {
         $editou = $obj_matriculas->aprova_matricula_andamento_curso_sem_avaliacao();
         if (!editou) {
             echo "<script>\n\t\t\t\t\t\talert('Não foi possível finalizar o ano letivo.\\nErro ao editar matriculas de curso sem avaliação!');\n\t\t\t\t\t\twindow.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}';\n\t\t\t\t\t  </script>";
         }
     }
     /**
      *  FINALIZA ano letivo
      */
     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_cod_escola, $this->ano, $this->pessoa_logada, $this->pessoa_logada, 2, null, null, 1);
     if (!$obj_ano_letivo->edita()) {
         echo "<script>\n\t\t\t\t\talert('Erro ao finalizar o ano letivo!');\n\t\t\t\t\twindow.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';\n\t\t\t\t  </script>";
     } else {
         echo "<script>\n\t\t\t\t\talert('Ano letivo finalizado com sucesso!');\n\t\t\t\t\twindow.location = 'educar_escola_det.php?cod_escola={$this->ref_cod_escola}#ano_letivo';\n\t\t\t\t  </script>";
     }
 }
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     $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);
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $nm_instituicao = $obj_cod_instituicao_det['nm_instituicao'];
         $this->campoRotulo('nm_instituicao', 'Institui&ccedil;&atilde;o', $nm_instituicao);
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($this->ref_ref_cod_escola) {
             $obj_ref_cod_escola = new clsPmieducarEscola($this->ref_ref_cod_escola);
             $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
             $nm_escola = $det_ref_cod_escola['nome'];
             $this->campoRotulo('nm_escola', 'Escola', $nm_escola);
         }
     }
     if ($this->ref_cod_curso) {
         $obj_ref_cod_curso = new clsPmieducarCurso($this->ref_cod_curso);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $nm_curso = $det_ref_cod_curso['nm_curso'];
         $this->campoRotulo('nm_curso', 'Curso', $nm_curso);
     }
     if ($this->ref_ref_cod_serie) {
         $obj_ref_cod_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
         $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
         $nm_serie = $det_ref_cod_serie["nm_serie"];
         $this->campoRotulo('nm_serie', 'S&eacute;rie', $nm_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);
             $ano_letivo = $det_ano_letivo['ano'];
         } else {
             $this->mensagem = 'Não foi possível encontrar o ano letivo em andamento da escola.';
             return FALSE;
         }
     }
     if ($this->ref_cod_turma) {
         $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
         $det_turma = $obj_turma->detalhe();
         $nm_turma = $det_turma['nm_turma'];
         $this->campoRotulo('nm_turma', 'Turma', $nm_turma);
     }
     // Inlui o aluno
     $this->campoQuebra();
     if ($_POST['matriculas_turma']) {
         $this->matriculas_turma = unserialize(urldecode($_POST['matriculas_turma']));
     }
     if (is_numeric($this->ref_cod_turma) && !$_POST) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
         $obj_matriculas_turma->setOrderby('nome_aluno');
         $lst_matriculas_turma = $obj_matriculas_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, array(1, 2, 3), NULL, NULL, $ano_letivo, NULL, TRUE, NULL, 1, TRUE);
         if (is_array($lst_matriculas_turma)) {
             foreach ($lst_matriculas_turma as $key => $campo) {
                 $this->matriculas_turma[$campo['ref_cod_matricula']]['sequencial_'] = $campo['sequencial'];
             }
         }
     }
     if ($_POST['ref_cod_matricula']) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma($_POST['ref_cod_matricula'], $this->ref_cod_turma);
         $sequencial = $obj_matriculas_turma->buscaSequencialMax();
         $this->matriculas_turma[$_POST['ref_cod_matricula']]['sequencial_'] = $sequencial;
         unset($this->ref_cod_matricula);
     }
     if ($this->matriculas_turma) {
         foreach ($this->matriculas_turma as $matricula => $campo) {
             $obj_matricula = new clsPmieducarMatricula($matricula);
             $det_matricula = $obj_matricula->detalhe();
             $obj_aluno = new clsPmieducarAluno();
             $lst_aluno = $obj_aluno->lista($det_matricula['ref_cod_aluno']);
             $det_aluno = array_shift($lst_aluno);
             $nm_aluno = $det_aluno['nome_aluno'];
             $this->campoTextoInv('ref_cod_matricula_' . $matricula, '', $nm_aluno, 30, 255, FALSE, FALSE, FALSE, '', '', '', '', 'ref_cod_matricula');
         }
     }
     $this->campoOculto('matriculas_turma', serialize($this->matriculas_turma));
     // Aluno
     $opcoes = array();
     $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
     $alunos = $obj_matriculas_turma->alunosNaoEnturmados($this->ref_ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_curso, $ano_letivo);
     if (is_array($alunos)) {
         for ($i = 0; $i < count($alunos); $i++) {
             $obj_matricula = new clsPmieducarMatricula($alunos[$i]);
             $det_matricula = $obj_matricula->detalhe();
             $obj_aluno = new clsPmieducarAluno();
             $lst_aluno = $obj_aluno->lista($det_matricula['ref_cod_aluno']);
             $det_aluno = array_shift($lst_aluno);
             $opcoes[$alunos[$i]] = $det_aluno['nome_aluno'];
         }
     }
     if (count($opcoes)) {
         asort($opcoes);
         foreach ($opcoes as $key => $aluno) {
             $this->campoCheck('ref_cod_matricula[' . $key . ']', 'Aluno', $key, $aluno, NULL, NULL, NULL);
         }
     } else {
         $this->campoRotulo('rotulo_1', '-', 'Todos os alunos matriculados na série já se encontram enturmados.');
     }
     $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;
     }
     $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_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_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
     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;
     }
     $calendario = array_shift($lista_calendario);
     //Dias previstos do mes
     // Qual o primeiro dia do mes
     $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
     // Quantos dias tem o mes
     $NumeroDiasMes = date('t', $primeiroDiaDoMes);
     $qtd_dias = $NumeroDiasMes;
     $this->pdf = new clsPDF("Acompanhamento Mensal - {$this->ano}", "Acompanhamento Mensal - {$this->meses_do_ano[$this->mes]}", "A4", "", false, false);
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->pdf->OpenPage();
     $this->addCabecalho();
     $this->pdf->linha_relativa(30, 140, 780, 0);
     $this->pdf->linha_relativa(30, 140, 0, 180);
     $imagem = girarTextoImagem("Total", 8);
     $this->pdf->InsertJpng('png', $imagem, 754, 270, 1);
     $imagem = girarTextoImagem("Casa não feito", 8);
     $this->pdf->InsertJpng('png', $imagem, 769, 270, 1);
     $imagem = girarTextoImagem("Justificadas", 8);
     $this->pdf->InsertJpng('png', $imagem, 784, 270, 1);
     $imagem = girarTextoImagem("Não justificadas", 8);
     $this->pdf->InsertJpng('png', $imagem, 798, 270, 1);
     $this->pdf->escreve_relativo("Faltas", 773, 142, 45, 15);
     $this->pdf->escreve_relativo("Dia do mês", 40, 265, 60, 15, null, 8);
     for ($i = 0; $i < 31; $i++) {
         $this->pdf->linha_relativa(285 + $i * 15, 140, 0, 180);
         if ($i + 1 <= $qtd_dias) {
             $this->pdf->escreve_relativo($i + 1, 287 + $i * 15, 265, 15, 15, null, 8);
         }
     }
     $this->pdf->linha_relativa(750, 140, 0, 180);
     //total
     $this->pdf->linha_relativa(765, 140, 0, 180);
     $this->pdf->linha_relativa(780, 155, 0, 165);
     $this->pdf->linha_relativa(795, 155, 0, 165);
     $this->pdf->linha_relativa(810, 140, 0, 180);
     //fim
     $this->pdf->escreve_relativo("Nº do dia letivo", 40, 280, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Nº da aula", 40, 295, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Ord", 40, 310, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Nome do aluno", 65, 310, 60, 15, null, 8);
     $this->pdf->linha_relativa(765, 155, 45, 0);
     $this->pdf->linha_relativa(30, 275, 780, 0);
     $this->pdf->linha_relativa(30, 290, 780, 0);
     $this->pdf->linha_relativa(30, 305, 780, 0);
     $this->pdf->linha_relativa(30, 320, 780, 0);
     $this->pdf->linha_relativa(60, 305, 0, 15);
     if ($this->is_padrao || $this->ano == 2007) {
         $this->semestre = null;
     }
     $obj_matricula = new clsPmieducarMatriculaTurma();
     $obj_matricula->setOrderby('nome_ascii');
     $lst_matricula = $obj_matricula->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, null, null, null, null, $this->semestre);
     //$total_alunos = 100;
     $qtd_quebra = 17;
     $base = 305;
     $linha = 1;
     if ($lst_matricula) {
         foreach ($lst_matricula as $ordem => $matricula) {
             $ordem++;
             $ordem = sprintf("%02d", $ordem);
             //for ($ordem = 1; $ordem <= $total_alunos; $ordem++)//foreach de alunos
             //{
             if ($linha % $qtd_quebra == 0) {
                 //nova pagina
                 $this->pdf->ClosePage();
                 $this->pdf->OpenPage();
                 $base = 30;
                 $linha = 0;
                 $this->pdf->linha_relativa(30, 30, 780, 0);
                 $qtd_quebra = 35;
             }
             $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(30, $base + 15 + $linha * 15, 780, 0);
             $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 15, 15, 15, null, 8);
             $this->pdf->escreve_relativo($matricula['nome'], 65, $base + 3 + $linha * 15, 215, 15, null, 8);
             for ($i = 0; $i < 31; $i++) {
                 $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
             }
             $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
             //total
             $this->pdf->linha_relativa(765, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(780, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(795, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
             //fim
             $linha++;
             //}
         }
     }
     //escrever total
     $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
     $this->pdf->escreve_relativo("Total", 35, $base + 3 + $linha * 15, 20, 15, null, 8);
     for ($i = 0; $i < 31; $i++) {
         $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
     }
     $this->pdf->linha_relativa(765, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(780, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(795, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
     //total
     $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
     //fim
     $this->pdf->linha_relativa(30, $base + ($linha + 1) * 15, 780, 0);
     $this->pdf->ClosePage();
     $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      <span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n      Clique na Imagem para Baixar o instalador<br><br>\n      <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      </span>\n      </center>";
 }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if (empty($this->cursos)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhum curso selecionado!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        //Dias previstos do mes
        // Qual o primeiro dia do mes
        $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
        // Quantos dias tem o mes
        $NumeroDiasMes = date('t', $primeiroDiaDoMes);
        //informacoes primeiro dia do mes
        $dateComponents = getdate($primeiroDiaDoMes);
        // What is the name of the month in question?
        $NomeMes = $mesesDoAno[$dateComponents['mon']];
        // What is the index value (0-6) of the first day of the
        // month in question.
        $DiaSemana = $dateComponents['wday'];
        $cursos_in = '';
        $conc = '';
        foreach ($this->cursos as $curso) {
            $cursos_in .= "{$conc}{$curso}";
            $conc = ",";
        }
        $db = new clsbanco();
        $consulta = "SELECT (SELECT coalesce(min(s.idade_inicial),0) as min\n\t\t\t\t\t\t\t\t  FROM pmieducar.serie  s\n\t\t\t\t\t\t\t\t       ,pmieducar.turma t\n\t\t\t\t\t\t\t\t WHERE s.cod_serie     = t.ref_ref_cod_serie\n\t\t\t\t\t\t\t\t   AND s.ref_cod_curso in ({$cursos_in} )) as min\n\t\t\t\t\t\t\t\t,\n\t\t\t\t\t\t\t\t(SELECT coalesce(max(s.idade_final),0)  as max\n\t\t\t\t\t\t\t\t  FROM pmieducar.serie  s\n\t\t\t\t\t\t\t\t WHERE s.ref_cod_curso in ( {$cursos_in})) as max";
        $db->Consulta($consulta);
        $db->ProximoRegistro();
        $max_min = $db->Tupla();
        $consulta = "SELECT distinct\n\t\t\t\t\t       coalesce(s.idade_inicial,0) as min\n\t\t\t\t\t       ,coalesce(s.idade_final,0)  as max\n\t\t\t\t\t  FROM pmieducar.serie  s\n\t\t\t\t\t WHERE  s.ref_cod_curso in ( {$cursos_in} )";
        $faixa_min_max = array();
        $db->Consulta($consulta);
        while ($db->ProximoRegistro()) {
            $numeros[] = $db->Tupla();
        }
        $faixa_min_max = array($numeros[0][0], $numeros[count($numeros) - 1][1]);
        $consulta2 = "SELECT distinct\n\t\t\t\t\t         s.idade_inicial\n\t\t\t\t\t    FROM pmieducar.serie  s\n\t\t\t\t\t   WHERE  s.ref_cod_curso in ( {$cursos_in} )\n\n\t\t\t   \t\t   UNION\n\n\t\t\t\t\t  SELECT distinct\n\t\t\t\t\t         s.idade_final\n\t\t\t\t\t    FROM pmieducar.serie  s\n\t\t\t\t\t   WHERE s.ref_cod_curso in ( {$cursos_in} ) ";
        $idades = array();
        $db->Consulta($consulta2);
        while ($db->ProximoRegistro()) {
            $idades[] = array_shift($db->Tupla());
        }
        $consulta3 = "SELECT distinct\n\t\t\t\t\t         s.idade_inicial\n\t\t\t\t\t    FROM pmieducar.serie  s\n\t\t\t\t\t   WHERE s.ref_cod_curso in ( {$cursos_in} )";
        $db->Consulta($consulta3);
        while ($db->ProximoRegistro()) {
            $faixa[] = $db->Tupla();
        }
        $ultima_idade = null;
        while (sizeof($idades)) {
            $idade = array_shift($idades);
            if ($idade == $faixa_min_max[0]) {
                $ultima_idade = array_shift($idades);
                $this->array_ano_idade[] = array('ano' => $this->ano - $idade . " - " . ($this->ano - $ultima_idade), 'idade' => $idade . " - " . $ultima_idade, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                if (!empty($idades)) {
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 1, 'idade' => $ultima_idade + 1, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 2, 'idade' => $ultima_idade + 2, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 3, 'idade' => $ultima_idade + 3, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $ultima_idade = $ultima_idade + 3;
                    while ($ultima_idade > $idades[0] + 3) {
                        $ultima_idade = array_shift($idades);
                    }
                } elseif (sizeof($this->array_ano_idade) == 1) {
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 1, 'idade' => $ultima_idade + 1, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 2, 'idade' => $ultima_idade + 2, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ultima_idade - 3, 'idade' => $ultima_idade + 3, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $ultima_idade = $ultima_idade + 3;
                }
            }
            foreach ($faixa as $key => $value) {
                for ($ct = $ultima_idade + 1; $ct <= $idade + 3; $ct++) {
                    $this->array_ano_idade[] = array('ano' => $this->ano - $ct, 'idade' => (sizeof($idades) === 0 && $ct == $idade + 3 ? "" : "") . $ct, 'total_serie' => 0, 'total_geral' => 0, 'total_geral_ambos' => 0);
                    $ultima_idade = $ct;
                }
                break;
            }
            $ultima_idade = idade > $ultima_idade ? $idade : $ultima_idade;
        }
        $altura2 = 300;
        $altura = 50;
        $expande = 24;
        $flag_defasado = 1;
        $fonte = 'arial';
        $corTexto = '#000000';
        $obj_lst_escola = new clsPmieducarEscola();
        $lst_escola = $obj_lst_escola->lista($this->ref_cod_escola, null, null, $this->ref_cod_instituicao, null, null, null, null, null, null, 1);
        if ($lst_escola) {
            $this->pdf = new clsPDF("Demonstrativo de Alunos Defasados Idade/Série - {$this->ano}", "Demonstrativo de Alunos Defasados Idade/Série - {$this->ano}", "A4", "", false, false);
            $this->pdf->largura = 842.0;
            $this->pdf->altura = 595.0;
            $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
            $det_instituicao = $obj_instituicao->detalhe();
            $this->nm_instituicao = $det_instituicao['nm_instituicao'];
            for ($ct_analfabeto = 0; $ct_analfabeto <= 2; $ct_analfabeto++) {
                //	$total_geral_alunos = 0;
                //	$total_geral_turmas = 0;
                //				$total_turmas_serie = 0;
                //				$total_alunos_serie = 0;
                $this->pdf->OpenPage();
                $this->addCabecalho();
                $this->novaPagina($ct_analfabeto);
                if ($ct_analfabeto <= 1) {
                    $total_geral_alunos = 0;
                    $total_geral_turmas = 0;
                }
                foreach ($this->array_ano_idade as $key => $value) {
                    $this->array_ano_idade[$key]['total_geral'] = 0;
                    $this->array_ano_idade[$key]['total_serie'] = 0;
                }
                $altura_linha = 23;
                $inicio_escrita_y = 175;
                foreach ($this->cursos as $curso) {
                    $obj = new clsPmieducarSerie();
                    $obj->setOrderby("idade_inicial,idade_final");
                    $lista_serie_curso = $obj->lista(null, null, null, $curso, null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao);
                    //$obj_curso = new clsPmieducarCurso($curso);
                    //$det_curso = $obj_curso->detalhe();
                    if ($lista_serie_curso) {
                        foreach ($lista_serie_curso as $serie) {
                            foreach ($this->array_ano_idade as $key => $value) {
                                $this->array_ano_idade[$key]['total_serie'] = 0;
                            }
                            $total_turmas_serie = 0;
                            //$total_alunos_serie = 0;
                            $flagTurmas = 0;
                            $flagAlunos = 0;
                            foreach ($lst_escola as $escola) {
                                $this->ref_cod_escola = $escola['cod_escola'];
                                $obj_calendario = new clsPmieducarEscolaAnoLetivo();
                                $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
                                if (!$lista_calendario) {
                                    continue;
                                }
                                /**
                                 * busca todas as matriculas de cada curso
                                 */
                                if (empty($serie['idade_inicial']) || empty($serie['idade_final'])) {
                                    continue;
                                }
                                //$subtotal_serie = 0;
                                $total_turmas_serie = 0;
                                //	$total_alunos_serie = 0;
                                if ($ct_analfabeto <= 1) {
                                    $obj_turma = new clsPmieducarTurma();
                                    if (!empty($_POST["ref_cod_escola"])) {
                                        $turmas = count($obj_turma->lista(null, null, null, $serie['cod_serie'], $this->ref_cod_escola, null, null, null, null, null, null, null, null, null, 1));
                                        $total_geral_turmas = $total_geral_turmas + $turmas;
                                    } else {
                                        if ($flagTurmas == 0) {
                                            $turmas = count($obj_turma->lista(null, null, null, $serie['cod_serie'], null, null, null, null, null, null, null, null, null, null, 1));
                                            $total_geral_turmas = $total_geral_turmas + $turmas;
                                        }
                                        $flagTurmas++;
                                    }
                                    //$total_geral_turmas = $total_geral_turmas +  $turmas;
                                    $total_turmas_serie = $turmas;
                                    $total_geral_turmas_ambos = $total_geral_turmas;
                                    $obj_matricula = new clsPmieducarMatricula();
                                    $lista_matricula_serie = $obj_matricula->lista(null, null, $this->ref_cod_escola, $serie['cod_serie'], null, null, null, array(1, 2, 3), null, null, null, null, 1, $this->ano, $curso, $this->ref_cod_instituicao, null, null, null, $ct_analfabeto, null, null, null, null, null, null, null, $this->mes, true);
                                    $total_geral_alunos += $obj_matricula->_total;
                                    $total_alunos_serie = $obj_matricula->_total;
                                    $total_geral_alunos_ambos = (int) $total_geral_alunos_ambos + $obj_matricula->_total;
                                    if ($ct_analfabeto == 1) {
                                        $analfabetos[$serie['cod_serie']] = $analfabetos[$serie['cod_serie']] + $total_alunos_serie;
                                    }
                                    $total_alunos_serie_ambos[$serie['cod_serie']] = (int) $total_alunos_serie_ambos[$serie['cod_serie']] + $obj_matricula->_total;
                                    $total_turmas_serie_ambos[$serie['cod_serie']] = $turmas;
                                }
                                if ($lista_matricula_serie && $ct_analfabeto <= 1) {
                                    /**
                                     * busca dados da matricula de um aluno de uma turma de uma serie =p
                                     */
                                    foreach ($lista_matricula_serie as $matricula) {
                                        //$obj_aluno = new clsPmieducarAluno();
                                        //$det_aluno = array_shift($obj_aluno->lista($matricula['ref_cod_aluno'],null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true ));
                                        //$obj_fisica = new clsFisica($det_aluno['ref_idpes']);
                                        //$det_fisica = $obj_fisica->detalhe();
                                        if ($matricula['data_nasc']) {
                                            $ano_nasc = explode("-", $matricula['data_nasc']);
                                            //											$idade_aluno = date("Y") - $ano_nasc[0]; // <-- modificado
                                            $idade_aluno = $this->ano - $ano_nasc[0];
                                        }
                                        //$obj_matricula_turma = new clsPmieducarMatriculaTurma();
                                        //$det_matricula_turma = $obj_matricula_turma->lista($matricula['cod_matricula'],null,null,null,null,null,null,null,1,$serie['cod_serie'],$curso,$this->ref_cod_escola,$this->ref_cod_instituicao);
                                        foreach ($this->array_ano_idade as $key => $value) {
                                            if (strpos($value['idade'], "-") && is_numeric($idade_aluno)) {
                                                $idade = explode("-", $value['idade']);
                                                if ($idade_aluno > $serie['idade_final'] + $flag_defasado && $idade_aluno >= $idade[0] && $idade_aluno <= $idade[1] || $idade_aluno > $serie['idade_final'] + $flag_defasado && $key == count($this->array_ano_idade) - 1) {
                                                    $this->array_ano_idade[$key]['total_serie'] += 1;
                                                    $this->array_ano_idade[$key]['total_geral'] += 1;
                                                    $this->array_ano_idade[$key]['total_geral_ambos'] += 1;
                                                    break;
                                                }
                                            } elseif (is_numeric($idade_aluno)) {
                                                $idade = $value['idade'];
                                                if ($idade_aluno > $serie['idade_final'] + $flag_defasado && $idade_aluno == $idade || $idade_aluno >= $idade && $key == count($this->array_ano_idade) - 1) {
                                                    $this->array_ano_idade[$key]['total_serie'] += 1;
                                                    $this->array_ano_idade[$key]['total_geral'] += 1;
                                                    $this->array_ano_idade[$key]['total_geral_ambos'] += 1;
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            /**
                             *  linha
                             */
                            $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 782, $altura_linha);
                            //linha alfabetizados
                            $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 695 + $expande, $altura_linha);
                            //linha numero de alunos
                            $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 90 + $expande, $altura_linha);
                            //linha numero de turmas
                            $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 60 + $expande, $altura_linha);
                            //$this->pdf->quadrado_relativo( 30, 125, 170 + $expande + 30, $altura);
                            //linha serie
                            $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 55, $altura_linha);
                            //posicao serie
                            $serie_x = 35;
                            $this->pdf->escreve_relativo($serie['nm_serie'], $serie_x, $inicio_escrita_y + 5, 50, 50, $fonte, 6, $corTexto, 'left');
                            //posicao numero turmas
                            $turma_x = 30 + $expande;
                            $total = $ct_analfabeto <= 1 ? $total_turmas_serie : $total_turmas_serie_ambos[$serie['cod_serie']];
                            $this->pdf->escreve_relativo($total, $turma_x - 5, $inicio_escrita_y + 5, 100, 50, $fonte, 10, $corTexto, 'center');
                            //posicao numero alunos
                            $alunos_x = 40 + $expande;
                            if (empty($_POST["ref_cod_escola"])) {
                                $total = $total_alunos_serie_ambos[$serie['cod_serie']];
                                $total_alunos_serie = $total_alunos_serie_ambos[$serie['cod_serie']];
                                if ($ct_analfabeto == 1) {
                                    $total = $analfabetos[$serie['cod_serie']];
                                }
                            } else {
                                $total = $ct_analfabeto <= 1 ? $total_alunos_serie : $total_alunos_serie_ambos[$serie['cod_serie']];
                            }
                            $this->pdf->escreve_relativo($total, $alunos_x + 15, $inicio_escrita_y + 5, 100, 40, $fonte, 10, $corTexto, 'center');
                            //	$largura_quadrado = $incremental-5;
                            //$this->qt_anos = 1;
                            $largura_anos = 615;
                            //$this->idade_inicial = 6;
                            $array_ano_idade = array();
                            //$incremental = (int)($largura_anos/ $this->qt_anos);
                            if (sizeof($this->array_ano_idade)) {
                                $incremental = (int) ($largura_anos / sizeof($this->array_ano_idade));
                            } else {
                                $incremental = 0;
                            }
                            $reta_ano_x = $alunos_x + 80;
                            $largura_quadrado = $incremental - 5;
                            //$incremental = (int)($largura_anos/ $this->qt_anos);
                            //	$reta_ano_x = $alunos_x + 85;
                            $ajuste = 0;
                            //for($ct = $this->ano - $this->idade_inicial ;$ct > $this->ano - $this->idade_inicial - $this->qt_anos;$ct--)
                            foreach ($this->array_ano_idade as $key => $ano) {
                                //ajuste2
                                $ajuste = 5;
                                $total_valor = $ct_analfabeto <= 1 ? $ano["total_serie"] : $total_serie_ano["{$serie['cod_serie']}"][$key];
                                if ($ano['idade'] <= $serie['idade_final'] + $flag_defasado && $key < sizeof($this->array_ano_idade) - 1) {
                                    $this->pdf->quadrado_relativo($reta_ano_x, $inicio_escrita_y, $largura_quadrado + $ajuste + ($key == sizeof($this->array_ano_idade) - 1 ? -5 : 0), $altura_linha, 0.5, "#A1B3BD", "");
                                } else {
                                    $this->pdf->escreve_relativo($total_valor, $reta_ano_x + 1, $inicio_escrita_y + 5, $incremental, $altura_linha, $fonte, 10, $corTexto, 'center');
                                }
                                $total_serie_ano["{$serie['cod_serie']}"][$key] = (int) $total_serie_ano["{$serie['cod_serie']}"][$key] + $ano["total_serie"];
                                //$anos_x += $incremental;
                                $reta_ano_x += $incremental;
                                //reta
                                if ($key < sizeof($this->array_ano_idade) - 1) {
                                    $this->pdf->linha_relativa($reta_ano_x, $inicio_escrita_y, 0, $altura_linha);
                                } else {
                                    $largura_quadrado += 4.5;
                                }
                            }
                            $total_defasado_serie = 0;
                            foreach ($this->array_ano_idade as $key => $value) {
                                $total_defasado_serie += $this->array_ano_idade[$key]['total_serie'];
                            }
                            $total_alunos_serie = $total_alunos_serie == 0 ? 1 : $total_alunos_serie;
                            if ($ct_analfabeto <= 1) {
                                $total_serie_ano["{$serie['cod_serie']}"]["total_defasado_serie"] = (int) $total_serie_ano["{$serie['cod_serie']}"]["total_defasado_serie"] + $total_defasado_serie;
                                $total_defasado_serie_ambos = (int) $total_defasado_serie_ambos + $total_defasado_serie;
                            }
                            $total_defasado_serie = $ct_analfabeto <= 1 ? $total_defasado_serie : $total_serie_ano["{$serie['cod_serie']}"]["total_defasado_serie"];
                            //escreve total defasado serie
                            $this->pdf->escreve_relativo($total_defasado_serie, 750, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                            if (empty($_POST["ref_cod_escola"])) {
                                if ($ct_analfabeto < 1) {
                                    $this->pdf->escreve_relativo(round($total_defasado_serie / $total_alunos_serie * 100) . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                } elseif ($ct_analfabeto == 1) {
                                    $total_alunos_serie = $analfabetos[$serie['cod_serie']];
                                    $this->pdf->escreve_relativo(round($total_defasado_serie / $total_alunos_serie * 100) . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                } else {
                                    $this->pdf->escreve_relativo(round($total_serie_ano["{$serie['cod_serie']}"]["total_defasado_serie"] / $total_alunos_serie_ambos[$serie['cod_serie']] * 100) . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                }
                            } else {
                                //escreve porcentagem
                                if ($ct_analfabeto <= 1) {
                                    if ($total_alunos_serie) {
                                        $this->pdf->escreve_relativo(round($total_defasado_serie / $total_alunos_serie * 100) . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                    } else {
                                        $this->pdf->escreve_relativo(0 . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                    }
                                } else {
                                    if ($total_alunos_serie_ambos[$serie['cod_serie']]) {
                                        $this->pdf->escreve_relativo(round($total_serie_ano["{$serie['cod_serie']}"]["total_defasado_serie"] / $total_alunos_serie_ambos[$serie['cod_serie']] * 100) . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                    } else {
                                        $this->pdf->escreve_relativo(0 . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                                    }
                                }
                            }
                            $this->pdf->linha_relativa(780, $inicio_escrita_y, 0, 23);
                            $inicio_escrita_y += 20;
                            /**
                             *
                             */
                        }
                    }
                }
                /**
                 *  TOTAL
                 */
                $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 782, $altura_linha);
                //linha alfabetizados
                $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 695 + $expande, $altura_linha);
                //linha numero de alunos
                $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 90 + $expande, $altura_linha);
                //linha numero de turmas
                $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 60 + $expande, $altura_linha);
                //$this->pdf->quadrado_relativo( 30, 125, 170 + $expande + 30, $altura);
                //linha serie
                $this->pdf->quadrado_relativo(30, $inicio_escrita_y, 55, $altura_linha);
                //posicao serie
                $serie_x = 35;
                if ($ct_analfabeto <= 1) {
                    $texto = $ct_analfabeto == 0 ? "Total\nAlfabetizado" : "Total\nNão-Alfabetizado";
                } else {
                    $texto = "Total Geral";
                }
                $this->pdf->escreve_relativo($texto, $serie_x, $inicio_escrita_y + 5, 50, 50, $fonte, 6, $corTexto, 'left');
                //posicao numero turmas
                $turma_x = 25 + $expande;
                $this->pdf->escreve_relativo($total_geral_turmas, $turma_x, $inicio_escrita_y + 5, 100, 50, $fonte, 10, $corTexto, 'center');
                //posicao numero alunos
                $alunos_x = 40 + $expande;
                $total_geral_alunos = $ct_analfabeto <= 1 ? $total_geral_alunos : $total_geral_alunos_ambos;
                $this->pdf->escreve_relativo($total_geral_alunos, $alunos_x + 15, $inicio_escrita_y + 5, 100, 40, $fonte, 10, $corTexto, 'center');
                $total_defasados = 0;
                $campo_total = $ct_analfabeto <= 1 ? "total_geral" : "total_geral_ambos";
                foreach ($this->array_ano_idade as $key => $value) {
                    $total_defasados += $this->array_ano_idade[$key]["{$campo_total}"];
                }
                if ($total_geral_alunos > 0) {
                    $media = $total_defasados / $total_geral_alunos * 100;
                } else {
                    $media = 0;
                }
                $this->pdf->escreve_relativo($total_defasados, 750, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                $this->pdf->escreve_relativo($media . "%", 780, $inicio_escrita_y + 5, 30, $altura, $fonte, 10, $corTexto, 'center');
                //$this->qt_anos = 1;
                $largura_anos = 615;
                //$this->idade_inicial = 6;
                $array_ano_idade = array();
                //$incremental = (int)($largura_anos/ $this->qt_anos);
                if (sizeof($this->array_ano_idade) > 0) {
                    $incremental = (int) ($largura_anos / sizeof($this->array_ano_idade));
                } else {
                    $incremental = 0;
                }
                $reta_ano_x = $alunos_x + 80;
                $largura_quadrado = $incremental - 5;
                //$incremental = (int)($largura_anos/ $this->qt_anos);
                $reta_ano_x = $alunos_x + 85;
                $ajuste = 0;
                //for($ct = $this->ano - $this->idade_inicial ;$ct > $this->ano - $this->idade_inicial - $this->qt_anos;$ct--)
                $campo_total = $ct_analfabeto <= 1 ? "total_geral" : "total_geral_ambos";
                foreach ($this->array_ano_idade as $key => $ano) {
                    //ajuste2
                    $this->pdf->escreve_relativo($ano["{$campo_total}"], $reta_ano_x - 5, $inicio_escrita_y + 5, $incremental, $altura_linha, $fonte, 10, $corTexto, 'center');
                    //$this->pdf->quadrado_relativo( $reta_ano_x - $ajuste,$inicio_escrita_y, $largura_quadrado + $ajuste + ($key == sizeof($array_ano_idade)-1? 5 : 0), $altura_linha,0.5,"#A1B3BD","");
                    $ajuste = 5;
                    //$anos_x += $incremental;
                    $reta_ano_x += $incremental;
                    //reta
                    if ($key < sizeof($this->array_ano_idade) - 1) {
                        $this->pdf->linha_relativa($reta_ano_x - 5, $inicio_escrita_y, 0, $altura_linha);
                    } else {
                        $largura_quadrado += 4.5;
                    }
                }
                $this->pdf->linha_relativa(780, $inicio_escrita_y, 0, 23);
                $inicio_escrita_y += 20;
                /**
                 *
                 */
                //	}//* *akiii
                if ($ct_analfabeto == 1) {
                    $this->rodape();
                }
                $this->pdf->ClosePage();
                /**
                 *
                 */
            }
        }
        $this->get_link = $this->pdf->GetLink();
        //header( "location: " . $this->pdf->GetLink() );
        $this->pdf->CloseFile();
        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 renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if (!$_POST) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNão existem dados!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
        $det_instituicao = $obj_instituicao->detalhe();
        $this->nm_instituicao = $det_instituicao["nm_instituicao"];
        $this->preencheu_qtd = false;
        $this->qtd_alunos_def = array();
        if (is_numeric($this->ref_cod_escola)) {
            $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
            //			$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista( $this->ref_cod_escola, $this->ano,null,null,1,null,null,null,null,1 );
            $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1);
            if (!is_array($lst_escola_ano_letivo)) {
                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>';
                die;
            }
            $esquerda = 30;
            $cima = 125;
            $direita = 535;
            $baixo = 627;
            $controle_pox_Y = $cima + 102;
            $fonte = 'arial';
            $corTexto = '#000000';
            $tamTexto = 8;
            $sql = "SELECT cod_deficiencia, count(0) as quantidade,\n\t\t\t\t\t\t\t(SELECT fantasia WHERE es.ref_idpes = idpes\n\t\t\t\t\t\t\t\tUNION\n\t\t\t\t\t\t\t SELECT nm_escola FROM pmieducar.escola_complemento ec\n\t\t\t\t\t\t\t \tWHERE cod_escola = ref_cod_escola) as nome_escola\n\t\t\t\t\t\tFROM pmieducar.matricula m, pmieducar.aluno a,\n\t\t\t\t\t\tcadastro.fisica_deficiencia fd, cadastro.deficiencia d, pmieducar.escola es, cadastro.juridica j\n\t\t\t\t\t\tWHERE a.cod_aluno = m.ref_cod_aluno AND a.ref_idpes = fd.ref_idpes\n\t\t\t\t\t\tAND cod_deficiencia = ref_cod_deficiencia AND ano = {$this->ano}\n\t\t\t\t\t\tAND m.ativo = 1 AND m.aprovado IN (1, 2, 3) AND a.ativo = 1\n\t\t\t\t\t\tAND es.cod_escola = ref_ref_cod_escola\n\t\t\t\t\t\tAND ref_cod_instituicao = {$this->ref_cod_instituicao}\n\t\t\t\t\t\tAND ref_ref_cod_escola = {$this->ref_cod_escola}\n\t\t\t\t\t\tAND j.idpes = es.ref_idpes\n\t\t\t\t\t\tGROUP BY cod_deficiencia, nome_escola ORDER BY cod_deficiencia";
            $db = new clsBanco();
            $db->Consulta($sql);
            $nome_colocado = false;
            if ($db->Num_Linhas()) {
                $this->pdf = new clsPDF("Relação de Alunos ANEEs", "Relação de Alunos ANEEs", "A4", "", false, false);
                $this->pdf->OpenPage();
                $this->necessidades = array();
                $this->addCabecalho();
                $this->novaPagina();
                $qtd_mostrar = 0;
                while ($db->ProximoRegistro()) {
                    list($cod_deficiencia, $quantidade, $nome_escola) = $db->Tupla();
                    if (!$nome_colocado) {
                        $nome_colocado = true;
                        $this->pdf->escreve_relativo($nome_escola, $esquerda + 1, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    }
                    $qtd_mostrar += $quantidade;
                    $this->qtd_alunos_def[$cod_deficiencia] += $quantidade;
                    if ($quantidade < 100) {
                        $this->pdf->escreve_relativo($quantidade < 10 ? "0{$quantidade}" : $quantidade, $this->necessidades[$cod_deficiencia] + 45, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    } else {
                        $this->pdf->escreve_relativo($quantidade, $this->necessidades[$cod_deficiencia] + 43, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    }
                }
                if ($qtd_mostrar < 100) {
                    $this->pdf->escreve_relativo($qtd_mostrar < 10 ? "0{$qtd_mostrar}" : $qtd_mostrar, max($this->necessidades) + 45 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                } else {
                    $this->pdf->escreve_relativo($qtd_mostrar, max($this->necessidades) + 43 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                }
                $this->pdf->linha_relativa($esquerda, $controle_pox_Y + 4, $direita, 0);
                $controle_pox_Y += 15;
                $this->pdf->escreve_relativo("TOTAL GERAL", $esquerda + 230, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                $qtd_mostrar = 0;
                foreach ($this->qtd_alunos_def as $cod_deficiencia => $total) {
                    $qtd_mostrar += $total;
                    if ($total < 100) {
                        $this->pdf->escreve_relativo($total < 10 ? "0{$total}" : $total, $this->necessidades[$cod_deficiencia] + 45, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    } else {
                        $this->pdf->escreve_relativo($total, $this->necessidades[$cod_deficiencia] + 43, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    }
                }
                if ($qtd_mostrar < 100) {
                    $this->pdf->escreve_relativo($qtd_mostrar < 10 ? "0{$qtd_mostrar}" : $qtd_mostrar, max($this->necessidades) + 45 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                } else {
                    $this->pdf->escreve_relativo($qtd_mostrar, max($this->necessidades) + 43 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                }
                $this->pdf->linha_relativa($esquerda, $controle_pox_Y + 4, $direita, 0);
                $this->rodape();
                $this->pdf->ClosePage();
                $this->get_link = $this->pdf->GetLink();
                $this->pdf->CloseFile();
                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\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\t\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t\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\t\t\t</span>\n\t\t\t\t\t\t</center>";
            } else {
                echo '<script>
	     			alert("A escola não possui nenhum aluno com deficiência!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
                die;
                return true;
            }
        } else {
            $sql = "SELECT\n\t\t\t\t\t\tcod_escola\n\t\t\t\t\t\t, fantasia as nome\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\tpmieducar.escola\n\t\t\t\t\t\t\t, cadastro.juridica\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tref_cod_instituicao = {$this->ref_cod_instituicao}\n\t\t\t\t\t\t\tAND idpes = ref_idpes\n\t\t\t\t\t\t\tAND ativo = 1\n\t\t\t\t\tUNION\n\t\t\t\t\t\tSELECT\n\t\t\t\t\t\t\tcod_escola\n\t\t\t\t\t\t\t, nm_escola\n\t\t\t\t\t\tFROM\n\t\t\t\t\t\t\tpmieducar.escola\n\t\t\t\t\t\t\t, pmieducar.escola_complemento\n\t\t\t\t\t\tWHERE\n\t\t\t\t\t\t\tref_cod_instituicao = {$this->ref_cod_instituicao}\n\t\t\t\t\t\t\tAND cod_escola = ref_cod_escola\n\t\t\t\t\t\t\tAND escola.ativo = 1\n\t\t\t\t\t\tORDER BY 2 ASC";
            $db = new clsBanco();
            $db->Consulta($sql);
            $esquerda = 30;
            $cima = 125;
            $direita = 535;
            $baixo = 627;
            $controle_pox_Y = $cima + 102;
            if ($db->Num_Linhas()) {
                $this->pdf = new clsPDF("Relação de Alunos ANEEs", "Relação de Alunos ANEEs", "A4", "", false, false);
                $this->pdf->OpenPage();
                $this->necessidades = array();
                $this->addCabecalho();
                $this->novaPagina();
                $possui_registro = false;
                while ($db->ProximoRegistro()) {
                    list($ref_cod_escola, $nome_escola) = $db->Tupla();
                    if (is_numeric($ref_cod_escola)) {
                        $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
                        //			$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista( $this->ref_cod_escola, $this->ano,null,null,1,null,null,null,null,1 );
                        $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1);
                        if (is_array($lst_escola_ano_letivo)) {
                            $fonte = 'arial';
                            $corTexto = '#000000';
                            $tamTexto = 8;
                            $sql = "SELECT cod_deficiencia, count(0) as quantidade\n\t\t\t\t\t\t\t\t\t\tFROM pmieducar.matricula m, pmieducar.aluno a,\n\t\t\t\t\t\t\t\t\t\tcadastro.fisica_deficiencia fd, cadastro.deficiencia d, pmieducar.escola es\n\t\t\t\t\t\t\t\t\t\tWHERE a.cod_aluno = m.ref_cod_aluno AND a.ref_idpes = fd.ref_idpes\n\t\t\t\t\t\t\t\t\t\tAND cod_deficiencia = ref_cod_deficiencia AND ano = {$this->ano}\n\t\t\t\t\t\t\t\t\t\tAND m.ativo = 1 AND m.aprovado IN (1, 2, 3) AND a.ativo = 1\n\t\t\t\t\t\t\t\t\t\tAND es.cod_escola = ref_ref_cod_escola\n\t\t\t\t\t\t\t\t\t\tAND ref_cod_instituicao = {$this->ref_cod_instituicao}\n\t\t\t\t\t\t\t\t\t\tAND ref_ref_cod_escola = {$ref_cod_escola}\n\t\t\t\t\t\t\t\t\t\tGROUP BY cod_deficiencia ORDER BY cod_deficiencia";
                            $db2 = new clsBanco();
                            $db2->Consulta($sql);
                            if ($db2->Num_Linhas()) {
                                $possui_registro = true;
                                $nome_colocado = false;
                                $this->pdf->escreve_relativo($nome_escola, $esquerda + 1, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                                $qtd_mostrar = 0;
                                while ($db2->ProximoRegistro()) {
                                    list($cod_deficiencia, $quantidade) = $db2->Tupla();
                                    $qtd_mostrar += $quantidade;
                                    $this->qtd_alunos_def[$cod_deficiencia] += $quantidade;
                                    if ($quantidade < 100) {
                                        $this->pdf->escreve_relativo($quantidade < 10 ? "0{$quantidade}" : $quantidade, $this->necessidades[$cod_deficiencia] + 45, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                                    } else {
                                        $this->pdf->escreve_relativo($quantidade, $this->necessidades[$cod_deficiencia] + 43, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                                    }
                                }
                                if ($qtd_mostrar < 100) {
                                    $this->pdf->escreve_relativo($qtd_mostrar < 10 ? "0{$qtd_mostrar}" : $qtd_mostrar, max($this->necessidades) + 45 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                                } else {
                                    $this->pdf->escreve_relativo($qtd_mostrar, max($this->necessidades) + 43 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                                }
                                $controle_pox_Y += 15;
                                if ($controle_pox_Y >= $this->pdf->altura - 80) {
                                    $this->pdf->ClosePage();
                                    $this->pdf->OpenPage();
                                    $this->addCabecalho();
                                    $this->novaPagina();
                                    $controle_pox_Y = $cima + 102;
                                } else {
                                    $this->pdf->linha_relativa($esquerda, $controle_pox_Y - 11, $direita, 0);
                                }
                            }
                        }
                    }
                }
                if ($possui_registro) {
                    $this->pdf->escreve_relativo("TOTAL GERAL", $esquerda + 230, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    $qtd_mostrar = 0;
                    foreach ($this->qtd_alunos_def as $cod_deficiencia => $total) {
                        $qtd_mostrar += $total;
                        if ($total < 100) {
                            $this->pdf->escreve_relativo($total < 10 ? "0{$total}" : $total, $this->necessidades[$cod_deficiencia] + 45, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                        } else {
                            $this->pdf->escreve_relativo($total, $this->necessidades[$cod_deficiencia] + 43, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                        }
                    }
                    if ($qtd_mostrar < 100) {
                        $this->pdf->escreve_relativo($qtd_mostrar < 10 ? "0{$qtd_mostrar}" : $qtd_mostrar, max($this->necessidades) + 45 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    } else {
                        $this->pdf->escreve_relativo($qtd_mostrar, max($this->necessidades) + 43 + 15, $controle_pox_Y, 0, 0, $fonte, $tamTexto, $corTexto);
                    }
                    $this->pdf->linha_relativa($esquerda, $controle_pox_Y + 4, $direita, 0);
                    $this->rodape();
                    $this->pdf->ClosePage();
                    $this->get_link = $this->pdf->GetLink();
                    $this->pdf->CloseFile();
                    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\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\t\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t\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\t\t\t</span>\n\t\t\t\t\t\t</center>";
                } else {
                    echo '<script>
		     				alert("Nenhum aluno com deficiência está matriculado em alguma escola!");
			     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
			     		  </script>';
                    die;
                    return true;
                }
            }
        }
    }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if (!$_POST) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNão existem dados!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        if (empty($this->cursos)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhum curso selecionado!");
	     			window.location = window.location;
	     		</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);
        if (!$lista_calendario) {
            echo '<script>
	     			alert("Escola não possui calendário definido para este ano");
	     			window.location = window.location;
	     		</script>';
            return true;
        }
        //$calendario = array_shift($lista_calendario);
        $obj_cal_ano_letivo = new clsPmieducarCalendarioAnoLetivo();
        $lst_cal_ano_letivo = $obj_cal_ano_letivo->lista(null, $this->ref_cod_escola, null, null, $this->ano, null, null, null, null, 1, null, $this->ref_cod_instituicao);
        $calendario = array_shift($lst_cal_ano_letivo);
        $obj_calendario_dia = new clsPmieducarCalendarioDia();
        $lista_dias = $obj_calendario_dia->lista($calendario['cod_calendario_ano_letivo'], $this->mes, null, null, null, null, null, null, null, 1);
        $dias_mes = array();
        if ($lista_dias) {
            foreach ($lista_dias as $dia) {
                $obj_motivo = new clsPmieducarCalendarioDiaMotivo($dia['ref_cod_calendario_dia_motivo']);
                $det_motivo = $obj_motivo->detalhe();
                $dias_mes[$dia['dia']] = strtolower($det_motivo['tipo']);
            }
        }
        //Dias previstos do mes
        // Qual o primeiro dia do mes
        $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
        // Quantos dias tem o mes
        $NumeroDiasMes = date('t', $primeiroDiaDoMes);
        //informacoes primeiro dia do mes
        $dateComponents = getdate($primeiroDiaDoMes);
        // What is the name of the month in question?
        $NomeMes = $mesesDoAno[$dateComponents['mon']];
        // What is the index value (0-6) of the first day of the
        // month in question.
        $DiaSemana = $dateComponents['wday'];
        //total de dias uteis + dias extra-letivos - dia nao letivo - fim de semana
        $this->totalDiasUteis = 0;
        $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
        $inicio_ano = $obj_ano_letivo_modulo->menorData($this->ano, $this->ref_cod_escola);
        $inicio_ano = explode("-", $inicio_ano);
        for ($dia = 1; $dia <= $NumeroDiasMes; $dia++) {
            if ($DiaSemana >= 7) {
                $DiaSemana = 0;
            }
            if ($this->mes == $inicio_ano[1]) {
                if ($dia >= $inicio_ano[2]) {
                    if ($DiaSemana != 0 && $DiaSemana != 6) {
                        if (!(key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('n'))) {
                            $this->totalDiasUteis++;
                        }
                    } elseif (key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('e')) {
                        $this->totalDiasUteis++;
                    }
                }
            } else {
                if ($DiaSemana != 0 && $DiaSemana != 6) {
                    if (!(key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('n'))) {
                        $this->totalDiasUteis++;
                    }
                } elseif (key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('e')) {
                    $this->totalDiasUteis++;
                }
            }
            $DiaSemana++;
        }
        $cursos_in = '';
        $conc = '';
        foreach ($this->cursos as $curso) {
            $cursos_in .= "{$conc}{$curso}";
            $conc = ",";
        }
        $this->pdf = new clsPDF("Movimentação Mensal de Alunos - {$this->ano}", "Movimentação Mensal de Alunos - {$this->ano}", "A4", "", false, false);
        $this->pdf->largura = 842.0;
        $this->pdf->altura = 595.0;
        $fonte = 'arial';
        $corTexto = '#000000';
        $altura_linha = 23;
        $inicio_escrita_y = 175;
        $this->pdf->OpenPage();
        $this->addCabecalho();
        $this->novoCabecalho();
        $quantidade_total = array();
        foreach ($this->cursos as $curso) {
            //busca todas as series de um curso
            $obj_serie_cursos = new clsPmieducarSerie();
            $lista_serie_cursos = $obj_serie_cursos->lista(null, null, null, $curso, null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao);
            $total_turmas_curso = 0;
            $total_curso = array();
            for ($a = 0; $a < 30; $a++) {
                $total_curso[$a] = 0;
            }
            if ($lista_serie_cursos) {
                for ($a = 0; $a < 30; $a++) {
                    $total_serie[$a] = 0;
                }
                foreach ($lista_serie_cursos as $serie) {
                    $total_serie = array();
                    //nome da serie
                    $nm_serie = $serie['nm_serie'];
                    //MATRICULA INICIAL
                    //busca todas turmas de cada serie
                    $obj_serie_turmas = new clsPmieducarTurma();
                    $obj_serie_turmas->setOrderby("nm_turma");
                    $lista_serie_turmas = $obj_serie_turmas->lista(null, null, null, $serie['cod_serie'], $this->ref_cod_escola, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null);
                    //total de turmas de uma serie
                    $total_turmas_curso += $total_turmas_serie = $obj_serie_turmas->_total;
                    if ($lista_serie_turmas) {
                        $quantidades = array();
                        foreach ($lista_serie_turmas as $turma) {
                            //professor regente da turma
                            $obj_servidor = new clsPessoa_($turma['ref_cod_regente']);
                            $det_sevidor = $obj_servidor->detalhe();
                            $nm_servidor = $det_sevidor['nome'];
                            //nome da turma de uma serie
                            $nm_turma = $turma['nm_turma'];
                            if ($turma['hora_inicial'] <= '12:00') {
                                $turno = 'M';
                            } elseif ($turma['hora_inicial'] > '12:00' && $turma['hora_inicial'] <= '18:00') {
                                $turno = 'V';
                            } else {
                                $turno = 'N';
                            }
                            $depurar = false;
                            if (trim($turma["nm_turma"]) == "202") {
                                //								$depurar=true;
                            }
                            /**
                             * busca todos os alunos que foram matriculados nos meses anteriores ao atual
                             */
                            $obj_matriculas = new clsPmieducarMatriculaTurma();
                            //$lista_matriculas = $obj_matriculas->lista(null,$turma['cod_turma'],null,null,null,null,null,null,1,$serie['cod_serie'],$curso,$this->ref_cod_escola,$this->ref_cod_instituicao,null,null,array( 1, 2, 3 ),((int)$this->mes === 1 ) ? $this->mes + 1: $this->mes,null,$this->ano );
                            //$lista_matriculas = $obj_matriculas->lista(null,$turma['cod_turma'],null,null,null,null,null,null,null,$serie['cod_serie'],$curso,$this->ref_cod_escola,$this->ref_cod_instituicao,null,null,null,((int)$this->mes === 1 ) ? $this->mes + 1: $this->mes,null,$this->ano );
                            $lista_matriculas = $obj_matriculas->lista(null, $turma['cod_turma'], null, null, null, null, null, null, null, $serie['cod_serie'], $curso, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, null, null, null, $this->ano, null, null, null, null, true, null, $this->mes, null, null, null, null, $depurar);
                            $total_matriculas_turma = $obj_matriculas->_total;
                            $total_matriculas_turma_masculino = 0;
                            $total_matriculas_turma_feminino = 0;
                            if ($lista_matriculas) {
                                foreach ($lista_matriculas as $matricula) {
                                    $obj_matricula = new clsPmieducarMatricula($matricula['ref_cod_matricula']);
                                    $det_matricula = $obj_matricula->detalhe();
                                    $obj_aluno = new clsPmieducarAluno($det_matricula['ref_cod_aluno']);
                                    $det_aluno = $obj_aluno->detalhe();
                                    $obj_pessoa = new clsFisica($det_aluno['ref_idpes']);
                                    $det_pessoa = $obj_pessoa->detalhe();
                                    if (strtoupper($det_pessoa['sexo']) == 'M') {
                                        $total_matriculas_turma_masculino++;
                                    } else {
                                        $total_matriculas_turma_feminino++;
                                    }
                                }
                            }
                            //quantidades matricula inicial
                            //							M
                            $quantidades[0] = $total_matriculas_turma_masculino;
                            //							F
                            $quantidades[1] = $total_matriculas_turma_feminino;
                            //							T
                            $quantidades[2] = $total_matriculas_turma;
                            $db3 = new clsBanco();
                            if (trim($turma["nm_turma"]) == "304") {
                                //								echo "<pre>"; print_r($quantidades);// die();
                            }
                            /*Array
                            (
                                [0] => 15
                                [1] => 14
                                [2] => 29
                            )
                            EL. ENTURMACAO 48743          2
                            EL. TRANSFERENCIA 48775                    1
                            AD ENTURMACAO 48816       4
                            EL. TRANSFERENCIA 54097                    1
                            AD ENTURMACAO 54962       4
                            AD ENTURMACAO 55101       4
                            AD TRANSFERENCIA 57059          3
                            AD TRANSFERENCIA 57070          3*/
                            //							echo $turma["cod_turma"]."<br>";
                            //sql para pegar o numero de alunos que
                            // abandonaram e diminuir da soma final
                            /*$sql = "SELECT COUNT(0) FROM
                            					pmieducar.matricula m,
                            					pmieducar.matricula_turma mt,
                            					pmieducar.aluno a,
                            					cadastro.fisica f
                            				WHERE
                            					mt.ref_cod_turma = {$turma["cod_turma"]}
                            					AND mt.ativo = 1
                            					AND mt.ref_cod_matricula = m.cod_matricula
                            					AND m.ref_cod_aluno = a.cod_aluno
                            					AND a.ref_idpes = f.idpes
                            					AND sexo = 'M'
                            					AND ano = {$this->ano}
                            					AND m.aprovado not in(1,2,3)
                            					AND ( to_char(mt.data_cadastro,'MM')::int = '{$this->mes}'
                            						  OR to_char(mt.data_exclusao,'MM')::int = '{$this->mes}')";
                            		$diminui_masc = (int)$db3->CampoUnico($sql);
                            		if ($depurar) {
                            			echo $sql."<br>";
                            		}
                            		$sql = "SELECT COUNT(0) FROM
                            					pmieducar.matricula m,
                            					pmieducar.matricula_turma mt,
                            					pmieducar.aluno a,
                            					cadastro.fisica f
                            				WHERE
                            					mt.ref_cod_turma = {$turma["cod_turma"]}
                            					AND mt.ativo = 1
                            					AND mt.ref_cod_matricula = m.cod_matricula
                            					AND m.ref_cod_aluno = a.cod_aluno
                            					AND a.ref_idpes = f.idpes
                            					AND sexo = 'F'
                            					AND ano = {$this->ano}
                            					AND m.aprovado not in(1,2,3)
                            					AND ( to_char(mt.data_cadastro,'MM')::int = '{$this->mes}'
                            							OR to_char(mt.data_exclusao,'MM')::int = '{$this->mes}')";
                            		$diminui_fem = (int)$db3->CampoUnico($sql);			*/
                            //							$depurar = false;
                            if ($depurar || $turma["nm_turma"] == "304") {
                                //								die($sql);
                                //								$depurar = true;
                            }
                            //							$diminui_fem = $diminui_masc = 0;
                            //							ENTURMACAO
                            /**
                             * seleciona todas as matriculas com data_* no mes atual
                             */
                            $sql_complemento = "OR (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tEXISTS (\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSELECT 1 FROM pmieducar.transferencia_solicitacao ts WHERE ts.ativo = 1 AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t to_char(ts.data_transferencia,'MM')::int = {$this->mes} AND\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ts.ref_cod_matricula_saida = m.cod_matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)";
                            $sql_complemento = "";
                            if ($depurar) {
                                //								$sql_complemento1 = "AND m.cod_matricula NOT IN (48743, 48775, 48816, 54097, 54962, 55101, 57059, 57070)";
                                //								$sql_complemento1 = "AND m.cod_matricula NOT IN (48743, 48775, 48816, 54097, 54962, 55101, 57059)";
                            }
                            $db = new clsBanco();
                            $consulta = "SELECT\n\t\t\t\t\t\t\t\t\t\t\tDISTINCT mt.ref_cod_matricula, mt.sequencial, mt.ativo\n\t\t\t\t\t\t\t\t\t\t FROM\n\t\t\t\t\t\t\t\t\t\t \tpmieducar.matricula_turma mt\n\t\t\t\t\t\t\t\t\t\t \t,pmieducar.matricula m\n\t\t\t\t\t\t\t\t\t\t WHERE\n\t\t\t\t\t\t\t\t\t\t \tmt.ref_cod_matricula = m.cod_matricula\n\t\t\t\t\t\t\t\t\t\t \tAND m.ano = {$this->ano}\n\t\t\t\t\t\t\t\t\t\t \tAND m.ativo = 1\n\t\t\t\t\t\t\t\t\t\t \tAND mt.ref_cod_turma = {$turma["cod_turma"]}\n\t\t\t\t\t\t\t\t\t\t \tAND (\tto_char(mt.data_cadastro,'MM')::int = {$this->mes}\n\t\t\t\t\t\t\t\t\t\t \t\tOR\n\t\t\t\t\t\t\t\t\t\t \t\t\tto_char(mt.data_exclusao,'MM')::int = {$this->mes}\n\t\t\t\t\t\t\t\t\t\t \t\t\t{$sql_complemento}\n\t\t\t\t\t\t\t\t\t\t \t\t)\n\t\t\t\t\t\t\t\t\t\t \tORDER BY\n\t\t\t\t\t\t\t\t\t\t \t\t1, 2, ativo";
                            $depurar = false;
                            if ($depurar || trim($turma["nm_turma"]) == "202") {
                                //								$depurar = true;
                            }
                            $db->Consulta($consulta);
                            $total_admitido_enturmacao = 0;
                            $total_admitido_enturmacao_masc = 0;
                            $total_admitido_enturmacao_fem = 0;
                            $total_eliminado_enturmacao = 0;
                            $total_eliminado_enturmacao_masc = 0;
                            $total_eliminado_enturmacao_fem = 0;
                            $total_reclassificacao = 0;
                            $total_admitido_reclassificao = 0;
                            $total_admitido_reclassificao_masc = 0;
                            $total_admitido_reclassificao_fem = 0;
                            $total_eliminado_reclassificacao = 0;
                            $total_eliminado_reclassificacao_masc = 0;
                            $total_eliminado_reclassificacao_fem = 0;
                            $total_transferencia = 0;
                            $total_admitido_transferencia = 0;
                            $total_admitido_transferencia_masc = 0;
                            $total_admitido_transferencia_fem = 0;
                            $total_eliminado_transferencia = 0;
                            $total_eliminado_transferencia_masc = 0;
                            $total_eliminado_transferencia_fem = 0;
                            $total_abandono = 0;
                            //$diminui_fem + $diminui_masc;
                            $total_abandono_masc = 0;
                            //$diminui_masc;
                            $total_abandono_fem = 0;
                            //$diminui_fem;
                            $diminui_fem = $diminui_masc = 0;
                            $total_aprovado = 0;
                            $total_aprovado_masc = 0;
                            $total_aprovado_fem = 0;
                            $matriculas_transferencia = array();
                            if ($db->Num_Linhas()) {
                                $db2 = new clsBanco();
                                while ($db->ProximoRegistro()) {
                                    list($cod_matricula, $sequencial, $ativo) = $db->Tupla();
                                    //									$depurar=false;
                                    if ($cod_matricula == 48743) {
                                        //										die("<br><br><br><br><br><br>".$ativo." ,______");
                                        //										$depurar=true;
                                    }
                                    $obj_matricula = new clsPmieducarMatricula($cod_matricula);
                                    $det_matricula = $obj_matricula->detalhe();
                                    $obj_aluno = new clsPmieducarAluno($det_matricula['ref_cod_aluno']);
                                    $det_aluno = $obj_aluno->detalhe();
                                    $obj_pessoa = new clsFisica($det_aluno['ref_idpes']);
                                    $det_pessoa = $obj_pessoa->detalhe();
                                    $sexo = strtoupper($det_pessoa['sexo']);
                                    $consulta = "SELECT ativo\n\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt1\n\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = '{$cod_matricula}'\n\t\t\t\t\t\t\t\t\t\t\t\t    AND sequencial = {$sequencial}\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_cod_turma = '{$turma['cod_turma']}'\n\t\t\t\t\t\t\t\t\t\t\t\t    AND (data_cadastro, COALESCE(data_exclusao,now())) = ( SELECT data_cadastro, COALESCE(data_exclusao,now())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t FROM pmieducar.matricula_turma mt2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE ref_cod_matricula IN ( SELECT cod_matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \t\t\t\t\t\t\t   FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \t\t\t\t\t\t\t  WHERE ano = '{$this->ano}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \t\t\t\t\t\t\t    AND ref_cod_aluno = ( SELECT DISTINCT ref_cod_aluno\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \t\t\t\t\t\t\t  \t\t\t\t\t        FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \t\t\t\t\t\t\t  \t\t\t\t\t       WHERE cod_matricula = '{$cod_matricula}' ) )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro desc,data_exclusao desc\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 1 )\n\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t   )\n\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro desc,data_exclusao desc,ativo ";
                                    /*OR to_char( data_exclusao,'MM')::int = '{$this->mes}'*/
                                    $eh_ultima_matricula = $db2->CampoUnico($consulta);
                                    /**
                                     * nao eh a ultima matricula
                                     */
                                    //02-07-07
                                    //f(!is_numeric($eh_ultima_matricula) || $eh_ultima_matricula == 0 /*&& $eh_ultima_matricula != 0 && $eh_ultima_matricula != 1*/)
                                    if (!is_numeric($eh_ultima_matricula)) {
                                        $foi_admitido_transferencia = false;
                                        $foi_eliminado_transferencia = false;
                                        if ($cod_matricula == 48743) {
                                            //											die("<br><br><br><br><br><br>".$ativo." ,______");
                                            //											$depurar=true;
                                        }
                                        /**
                                         * verifica se for a primeira enturmacao
                                         * se ela esta marcada como reclassificacao
                                         */
                                        //echo "$cod_matricula-$sequencial<br>";
                                        $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt1\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND sequencial = {$sequencial}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_cod_turma = {$turma['cod_turma']}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND (data_cadastro, COALESCE(data_exclusao,now())) = ( SELECT data_cadastro, COALESCE(data_exclusao,now())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t FROM pmieducar.matricula_turma mt2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_cod_turma = {$turma['cod_turma']}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro asc,data_exclusao asc\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 1 )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro asc,data_exclusao asc,ativo ";
                                        /*OR to_char( data_exclusao,'MM')::int = '{$this->mes}' */
                                        $eh_primeira_enturmacao_desta_matricula = $db2->CampoUnico($consulta);
                                        $consulta = "SELECT matricula_reclassificacao\n\t\t\t\t\t\t\t\t\t\t               FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t              WHERE cod_matricula = {$cod_matricula}";
                                        $matricula_reclassificacao = $db2->CampoUnico($consulta);
                                        //ref_cod_matricula_saida
                                        $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula_entrada = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND ativo = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t      OR to_char( data_exclusao,'MM')::int = '{$this->mes}' )";
                                        $existe_transferencia = $db2->CampoUnico($consulta);
                                        /**
                                         * verifica se eh a primeira matricula do aluno
                                         */
                                        $obj_matricula_aluno = new clsPmieducarMatricula();
                                        $lst_matricula_aluno = $obj_matricula_aluno->lista(null, null, null, null, null, null, $det_aluno['cod_aluno'], null, null, null, null, null, $this->ano);
                                        $eh_primeira_matricula_do_aluno = count($lst_matricula_aluno) == 1 ? 1 : 0;
                                        $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND matricula_transferencia = true AND to_char(data_cadastro,'MM')::int = {$this->mes}";
                                        $primeira_matricula_eh_transferencia = $db2->CampoUnico($consulta);
                                        $consulta = "SELECT max(sequencial)\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula}";
                                        $max_sequencial = $db2->CampoUnico($consulta);
                                        if (is_numeric($primeira_matricula_eh_transferencia)) {
                                            $matriculas_transferencia[$cod_matricula] = $cod_matricula;
                                            $total_admitido_transferencia++;
                                            if ($depurar) {
                                                echo "AD TRANSFERENCIA {$cod_matricula}  aquiiii<br>";
                                                $matriculas[] = $cod_matricula;
                                            }
                                            if ($sexo == 'M') {
                                                $total_admitido_transferencia_masc++;
                                            } else {
                                                $total_admitido_transferencia_fem++;
                                            }
                                        }
                                        if ($eh_primeira_enturmacao_desta_matricula && $matricula_reclassificacao) {
                                            if ($depurar) {
                                                $matriculas[] = $cod_matricula;
                                            }
                                            $total_admitido_reclassificao++;
                                            if ($sexo == 'M') {
                                                $total_admitido_reclassificao_masc++;
                                            } else {
                                                $total_admitido_reclassificao_fem++;
                                            }
                                        } elseif ($eh_primeira_enturmacao_desta_matricula && $existe_transferencia || $eh_primeira_enturmacao_desta_matricula && $eh_primeira_matricula_do_aluno && $primeira_matricula_eh_transferencia) {
                                            if (is_numeric($existe_transferencia) && $existe_transferencia == 1) {
                                                if ($depurar) {
                                                    echo "AD TRANSFERENCIA {$cod_matricula}  1<br>";
                                                    $matriculas[] = $cod_matricula;
                                                }
                                                if (!is_numeric(array_search($cod_matricula, $matriculas_transferencia))) {
                                                    $total_admitido_transferencia++;
                                                    if ($sexo == 'M') {
                                                        $total_admitido_transferencia_masc++;
                                                    } else {
                                                        $total_admitido_transferencia_fem++;
                                                    }
                                                    $foi_admitido_transferencia = true;
                                                }
                                            }
                                        } else {
                                            if (!is_numeric($primeira_matricula_eh_transferencia) && $ativo == 1) {
                                                if ($depurar) {
                                                    echo "AD ENTURMACAO {$cod_matricula}             1<br>";
                                                    $matriculas[] = $cod_matricula;
                                                }
                                                $total_admitido_enturmacao++;
                                                if ($sexo == 'M') {
                                                    $total_admitido_enturmacao_masc++;
                                                } else {
                                                    $total_admitido_enturmacao_fem++;
                                                }
                                            }
                                        }
                                        /**
                                         * verifica se eh a ultima enturmacao desta matricula
                                         */
                                        $consulta = "SELECT ref_cod_turma\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt1\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND sequencial = {$sequencial}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t AND (ref_cod_turma,sequencial) = (SELECT ref_cod_turma, max(sequencial)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t FROM pmieducar.matricula_turma mt2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tgroup by ref_cod_turma,data_cadastro\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\torder by data_cadastro desc limit 1)";
                                        $ultima_turma_enturmacao = $db2->CampoUnico($consulta);
                                        if ($ultima_turma_enturmacao == $turma['cod_turma']) {
                                            $consulta = "SELECT aprovado\n\t\t\t\t\t\t\t\t\t\t\t               FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t              WHERE cod_matricula = {$cod_matricula}";
                                            $situacao = $db2->CampoUnico($consulta);
                                            $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula_saida = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t    AND (ativo = 1 OR data_transferencia IS NOT NULL)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t      OR to_char( data_exclusao,'MM')::int = '{$this->mes}' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND(to_char(data_transferencia,'MM')::int = '{$this->mes}' OR data_transferencia IS NULL)";
                                            $existe_transferencia = $db2->CampoUnico($consulta);
                                            if ($situacao <= 3 && is_numeric($existe_transferencia)) {
                                                //if($turma['cod_turma'] == 757)
                                                //	echo "1-$cod_matricula-$matricula_reclassificacao<br>";
                                                if ($ativo == 0) {
                                                    $total_eliminado_enturmacao++;
                                                    if ($depurar) {
                                                        echo "EL. ENTURMACAO {$cod_matricula}           1<br>";
                                                    }
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_enturmacao_masc++;
                                                    } else {
                                                        $total_eliminado_enturmacao_fem++;
                                                    }
                                                }
                                            } else {
                                                if ($situacao == 5) {
                                                    $total_eliminado_reclassificacao++;
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_reclassificacao_masc++;
                                                    } else {
                                                        $total_eliminado_reclassificacao_fem++;
                                                    }
                                                }
                                                if ($situacao == 4 && is_numeric($existe_transferencia)) {
                                                    $total_eliminado_transferencia++;
                                                    if ($depurar) {
                                                        echo "EL. TRANSFERENCIA " . $cod_matricula . "                    1<br>";
                                                    }
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_transferencia_masc++;
                                                    } else {
                                                        $total_eliminado_transferencia_fem++;
                                                    }
                                                    /**
                                                     * se for a primeira enturmacao mesmo que tenha
                                                     * sido eliminado deve contabilizar uma
                                                     * admissao por enturmacao
                                                     */
                                                    if ($eh_primeira_enturmacao_desta_matricula && !$primeira_matricula_eh_transferencia && !$foi_admitido_transferencia) {
                                                        //if($turma['cod_turma'] == 40)
                                                        //echo "1-$cod_matricula<br>";
                                                        echo "AD ENTURMACAO {$cod_matricula}             aaaaaaaaaaaaaa<br>";
                                                        $total_admitido_enturmacao++;
                                                        if ($sexo == 'M') {
                                                            $total_admitido_enturmacao_masc++;
                                                        } else {
                                                            $total_admitido_enturmacao_fem++;
                                                        }
                                                    }
                                                } elseif ($situacao == 6) {
                                                    $total_abandono++;
                                                    if ($sexo == 'M') {
                                                        $total_abandono_masc++;
                                                    } else {
                                                        $total_abandono_fem++;
                                                    }
                                                } elseif ($situacao == 1) {
                                                    $total_aprovado++;
                                                    if ($sexo == 'M') {
                                                        $total_aprovado_masc++;
                                                    } else {
                                                        $total_aprovado_fem++;
                                                    }
                                                } elseif ($situacao == 4 && !is_numeric($existe_transferencia) && is_numeric($eh_primeira_enturmacao_desta_matricula) && !$primeira_matricula_eh_transferencia) {
                                                    //if($turma['cod_turma'] == 450)
                                                    //	echo "1-$cod_matricula<br>";
                                                    if ($depurar) {
                                                        echo "AD ENTURMACAO {$cod_matricula}       2<br>";
                                                        $matriculas[] = $cod_matricula;
                                                    }
                                                    $total_admitido_enturmacao++;
                                                    if ($sexo == 'M') {
                                                        $total_admitido_enturmacao_masc++;
                                                    } else {
                                                        $total_admitido_enturmacao_fem++;
                                                    }
                                                }
                                            }
                                        } else {
                                            if ($ativo == 0) {
                                                if ($sequencial <= $max_sequencial) {
                                                    //if($turma['cod_turma'] == 757)
                                                    //echo "2-$cod_matricula-$matricula_reclassificacao<br>";
                                                    $total_eliminado_enturmacao++;
                                                    if ($depurar) {
                                                        echo "EL. ENTURMACAO {$cod_matricula}          2<br>";
                                                    }
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_enturmacao_masc++;
                                                    } else {
                                                        $total_eliminado_enturmacao_fem++;
                                                    }
                                                    if (is_numeric($eh_primeira_enturmacao_desta_matricula) && !$existe_transferencia && !$matricula_reclassificacao) {
                                                        if ($depurar) {
                                                            echo "AD ENTURMACAO {$cod_matricula}       3<br>";
                                                            $matriculas[] = $cod_matricula;
                                                        }
                                                        $total_admitido_enturmacao++;
                                                        if ($sexo == 'M') {
                                                            $total_admitido_enturmacao_masc++;
                                                        } else {
                                                            $total_admitido_enturmacao_fem++;
                                                        }
                                                    }
                                                } elseif (is_numeric($eh_primeira_enturmacao_desta_matricula)) {
                                                    if ($primeira_matricula_eh_transferencia) {
                                                        if ($depurar) {
                                                            echo "AD TRANSFERENCIAAA {$cod_matricula}            2<BR>";
                                                            $matriculas[] = $cod_matricula;
                                                        }
                                                        if (!is_numeric(array_search($cod_matricula, $matriculas_transferencia))) {
                                                            $total_admitido_transferencia++;
                                                            if ($sexo == 'M') {
                                                                $total_admitido_transferencia_masc++;
                                                            } else {
                                                                $total_admitido_transferencia_fem++;
                                                            }
                                                        }
                                                    } elseif (!$existe_transferencia && !$matricula_reclassificacao) {
                                                        if ($depurar) {
                                                            echo "AD ENTURMACAO {$cod_matricula}       3<br>";
                                                            $matriculas[] = $cod_matricula;
                                                        }
                                                        $total_admitido_enturmacao++;
                                                        if ($sexo == 'M') {
                                                            $total_admitido_enturmacao_masc++;
                                                        } else {
                                                            $total_admitido_enturmacao_fem++;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    } else {
                                        //echo "ref_cod_matricula = $cod_matricula
                                        //AND sequencial = $sequencial";
                                        $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt1\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND sequencial = {$sequencial}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_cod_turma = {$turma['cod_turma']}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND (data_cadastro, COALESCE(data_exclusao,now())) = ( SELECT data_cadastro, COALESCE(data_exclusao,now())\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t FROM pmieducar.matricula_turma mt2\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro asc,data_exclusao asc\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tLIMIT 1 )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tORDER BY data_cadastro asc,data_exclusao asc,ativo ";
                                        /*OR to_char( data_exclusao,'MM')::int = '{$this->mes}'*/
                                        $eh_primeira_enturmacao_desta_matricula = $db2->CampoUnico($consulta);
                                        $consulta = "SELECT matricula_reclassificacao\n\t\t\t\t\t\t\t\t\t\t               FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t              WHERE cod_matricula = {$cod_matricula}";
                                        $matricula_reclassificacao = $db2->CampoUnico($consulta);
                                        /**
                                         * verifica se eh a primeira matricula do aluno
                                         */
                                        $obj_matricula_aluno = new clsPmieducarMatricula();
                                        $lst_matricula_aluno = $obj_matricula_aluno->lista(null, null, null, null, null, null, $det_aluno['cod_aluno']);
                                        $eh_primeira_matricula_do_aluno = count($lst_matricula_aluno) == 1 ? 1 : 0;
                                        $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND matricula_transferencia = true";
                                        $primeira_matricula_eh_transferencia = $db2->CampoUnico($consulta);
                                        if (is_numeric($primeira_matricula_eh_transferencia)) {
                                            $matriculas_transferencia[$cod_matricula] = $cod_matricula;
                                            $total_admitido_transferencia++;
                                            if ($sexo == 'M') {
                                                $total_admitido_transferencia_masc++;
                                            } else {
                                                $total_admitido_transferencia_fem++;
                                            }
                                        }
                                        if ($eh_primeira_enturmacao_desta_matricula && $matricula_reclassificacao) {
                                            $total_admitido_reclassificao++;
                                            if ($depurar) {
                                                $matriculas[] = $cod_matricula;
                                            }
                                            if ($sexo == 'M') {
                                                $total_admitido_reclassificao_masc++;
                                            } else {
                                                $total_admitido_reclassificao_fem++;
                                            }
                                        } else {
                                            $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula_entrada = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t    AND ativo = 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t      OR to_char( data_exclusao,'MM')::int = '{$this->mes}' )";
                                            $existe_transferencia = (int) $db2->CampoUnico($consulta);
                                            //if($turma['cod_turma'] == 33 && $existe_transferencia)
                                            //	echo "$cod_matricula<br>";
                                            if (is_numeric($eh_primeira_enturmacao_desta_matricula) && $existe_transferencia && $existe_transferencia == 1 || is_numeric($eh_primeira_enturmacao_desta_matricula) && $eh_primeira_matricula_do_aluno && $primeira_matricula_eh_transferencia) {
                                                if ($depurar) {
                                                    echo "AD TRANSFERENCIA {$cod_matricula}          3<br>";
                                                    $matriculas[] = $cod_matricula;
                                                }
                                                if (!is_numeric(array_search($cod_matricula, $matriculas_transferencia))) {
                                                    $total_admitido_transferencia++;
                                                    if ($sexo == 'M') {
                                                        $total_admitido_transferencia_masc++;
                                                    } else {
                                                        $total_admitido_transferencia_fem++;
                                                    }
                                                }
                                            } else {
                                                //if($det_matricula['aprovado'] != 4)
                                                //												{
                                                //if($turma['cod_turma'] == 450)
                                                //echo "2-$cod_matricula<br>";
                                                if (!is_numeric($primeira_matricula_eh_transferencia)) {
                                                    $total_admitido_enturmacao++;
                                                    if ($depurar) {
                                                        echo "AD ENTURMACAO {$cod_matricula}       4<br>";
                                                        $matriculas[] = $cod_matricula;
                                                    }
                                                    if ($sexo == 'M') {
                                                        $total_admitido_enturmacao_masc++;
                                                    } else {
                                                        $total_admitido_enturmacao_fem++;
                                                    }
                                                }
                                            }
                                        }
                                        /**
                                         * verifica se eh a ultima enturmacao desta matricula
                                         */
                                        $consulta = "SELECT ref_cod_turma\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt1\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND sequencial = {$sequencial}\n\t\t\t\t\t\t\t\t\t\t\t\t\t    AND sequencial = (SELECT max(sequencial)\n\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.matricula_turma mt2\n\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula = {$cod_matricula})\n\t\t\t\t\t\t\t\t\t\t\t\t\torder by data_cadastro desc limit 1";
                                        $ultima_turma_enturmacao = $db2->CampoUnico($consulta);
                                        //echo "$cod_matricula - $ultima_turma_enturmacao == {$turma['cod_turma']}";
                                        if ($ultima_turma_enturmacao == $turma['cod_turma']) {
                                            $consulta = "SELECT aprovado\n\t\t\t\t\t\t\t\t\t\t\t               FROM pmieducar.matricula\n\t\t\t\t\t\t\t\t\t\t\t              WHERE cod_matricula = {$cod_matricula}";
                                            $situacao = $db2->CampoUnico($consulta);
                                            if ($situacao <= 3) {
                                                if ($ativo == 0) {
                                                    //if($turma['cod_turma'] == 757)
                                                    //echo "3-$cod_matricula-$matricula_reclassificacao<br>";
                                                    $total_eliminado_enturmacao++;
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_enturmacao_masc++;
                                                    } else {
                                                        $total_eliminado_enturmacao_fem++;
                                                    }
                                                } else {
                                                    $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula_saida = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t    AND (ativo = 1 OR data_transferencia IS NOT NULL)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t      OR to_char( data_exclusao,'MM')::int = '{$this->mes}' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND(to_char(data_transferencia,'MM')::int = '{$this->mes}' OR data_transferencia IS NULL)";
                                                    $existe_transferencia = $db2->CampoUnico($consulta);
                                                    if (is_numeric($existe_transferencia) && $existe_transferencia == 1) {
                                                        $total_eliminado_transferencia++;
                                                        if ($depurar) {
                                                            echo "EL TRANSFERENCIA " . $cod_matricula . "              2<br>";
                                                        }
                                                        if ($sexo == 'M') {
                                                            $total_eliminado_transferencia_masc++;
                                                        } else {
                                                            $total_eliminado_transferencia_fem++;
                                                        }
                                                    }
                                                    //echo '<br>->'.$existe_transferencia = $db->CampoUnico($consulta);
                                                    //echo '<-<br>';
                                                }
                                            } else {
                                                //echo $turma['cod_turma'].'b';
                                                //echo "enter.$cod_matricula";
                                                $consulta = "SELECT 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   FROM pmieducar.transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  WHERE ref_cod_matricula_saida = {$cod_matricula}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND (ativo = 1 OR data_transferencia IS NOT NULL)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ( to_char(data_cadastro,'MM')::int = '{$this->mes}'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t      OR to_char( data_exclusao,'MM')::int = '{$this->mes}' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND(to_char(data_transferencia,'MM')::int = '{$this->mes}' OR data_transferencia IS NULL)";
                                                $existe_transferencia = $db2->CampoUnico($consulta);
                                                //echo $situacao.'<br>';
                                                //if($turma['cod_turma'] == 33)
                                                //echo "$cod_matricula<br>";
                                                if ($situacao == 5) {
                                                    $total_eliminado_reclassificacao++;
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_reclassificacao_masc++;
                                                    } else {
                                                        $total_eliminado_reclassificacao_fem++;
                                                    }
                                                } elseif (is_numeric($existe_transferencia) && $existe_transferencia == 1) {
                                                    $total_eliminado_transferencia++;
                                                    if ($depurar) {
                                                        echo "EL TRANSFERENCIA " . $cod_matricula . "           3<br>";
                                                    }
                                                    if ($sexo == 'M') {
                                                        $total_eliminado_transferencia_masc++;
                                                    } else {
                                                        $total_eliminado_transferencia_fem++;
                                                    }
                                                } elseif ($situacao == 6) {
                                                    $total_abandono++;
                                                    if ($sexo == 'M') {
                                                        $total_abandono_masc++;
                                                    } else {
                                                        $total_abandono_fem++;
                                                    }
                                                } elseif ($situacao == 1 || $situacao == 2) {
                                                    $total_aprovado++;
                                                    if ($sexo == 'M') {
                                                        $total_aprovado_masc++;
                                                    } else {
                                                        $total_aprovado_fem++;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                            //							die(implode(",",$matriculas));
                            //ADMITIDOS ativo = 1
                            //admitido por enturmacao no mes atual
                            //QUANTIDADES ENTURMACAO ADMITIDOS
                            //M
                            $quantidades[3] = $total_admitido_enturmacao_masc;
                            //F
                            $quantidades[4] = $total_admitido_enturmacao_fem;
                            //T
                            $quantidades[5] = $total_admitido_enturmacao;
                            //ELIMINADOS ativo = 0
                            //QUANTIDADES ENTURMACAO ELIMINADOS
                            //M
                            $quantidades[6] = $total_eliminado_enturmacao_masc;
                            //F
                            $quantidades[7] = $total_eliminado_enturmacao_fem;
                            //T
                            $quantidades[8] = $total_eliminado_enturmacao;
                            //RECLASSIFICACAO
                            //ADMITIDOS
                            //$obj_matriculas->_total = 0;
                            //$primeiroDiaDoMes = mktime(0,0,0,9,1,2006);
                            //   $NumeroDiasMes = date('t',$primeiroDiaDoMes);
                            //   $ultimoDiaMes =date('d/m/Y',mktime(0,0,0,9,$NumeroDiasMes,2006));
                            /**
                             * busca todas as matriculas marcadas como matricula_reclassificacao de uma serie de um curso
                             * em seguida busca todas as matriculas_turma da matricula_turma ordenado por data e pegando a primeira matricula de reclassificacao
                             * se essa matricula for igual a matricula atual do loop entao esta matricula
                             * é uma reclassificacao
                             */
                            //QUANTIDADES RECLASSIFICACAO ADMITIDOS
                            //M
                            $quantidades[9] = $total_admitido_reclassificao_masc;
                            //F
                            $quantidades[10] = $total_admitido_reclassificao_fem;
                            //T
                            $quantidades[11] = $total_admitido_reclassificao;
                            //ELIMINADOS
                            $obj_matriculas->_total = 0;
                            //QUANTIDADES RECLASSIFICACAO ELIMINADOS
                            //M
                            $quantidades[12] = $total_eliminado_reclassificacao_masc;
                            //F
                            $quantidades[13] = $total_eliminado_reclassificacao_fem;
                            //T
                            $quantidades[14] = $total_eliminado_reclassificacao;
                            //TRANSFERENCIA
                            //ADMITIDOS ativo = 1
                            //QUANTIDADES TRASNFERENCIA ADMITIDOS
                            //M
                            $quantidades[15] = $total_admitido_transferencia_masc;
                            //F
                            $quantidades[16] = $total_admitido_transferencia_fem;
                            //T
                            $quantidades[17] = $total_admitido_transferencia;
                            //ELIMINADOS aprovado = 4
                            //TRANSFERENCIA EXTERNA
                            //QUANTIDADES TRANFERENCIA EXTERNO ELIMINADOS
                            //M
                            $quantidades[18] = $total_eliminado_transferencia_masc;
                            //F
                            $quantidades[19] = $total_eliminado_transferencia_fem;
                            //T
                            $quantidades[20] = $total_eliminado_transferencia;
                            //ABANDONO
                            /*$db2 = new clsBanco();
                            							$consulta = "
                            										SELECT count(1)
                            											   FROM pmieducar.matricula_turma
                            												,pmieducar.matricula
                            											  WHERE cod_matricula = ref_cod_matricula
                            											    AND ref_cod_turma = {$turma['cod_turma']}
                            											    AND aprovado = 6
                            											    AND matricula_turma.ativo = 1
                            										            AND matricula.ativo = 1
                            												AND ( to_char( matricula_turma.data_cadastro,'MM')::int = {$this->mes}
                            												      OR to_char(  matricula_turma.data_exclusao,'MM')::int = {$this->mes} )
                            										";
                            
                            							$total_transf = $db2->CampoUnico($consulta)	;*/
                            //QUANTIDADES ABANDONO
                            //M
                            $quantidades[21] = $total_abandono_masc;
                            //F
                            $quantidades[22] = $total_abandono_fem;
                            //T
                            $quantidades[23] = $total_abandono;
                            //APROVADOS
                            //QUANTIDADES APROVADOS
                            //M
                            $quantidades[24] = $total_aprovado_masc;
                            //F
                            $quantidades[25] = $total_aprovado_fem;
                            //T
                            $quantidades[26] = $total_aprovado;
                            /**
                             * Inicio linha
                             */
                            $altura_linha = 18;
                            $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
                            $largura_linha = 18;
                            for ($ct = 294; $ct < 294 + 30 * 17; $ct += $largura_linha) {
                                //159
                                $this->pdf->linha_relativa($ct, $this->page_y, 0, 18);
                            }
                            //n
                            $this->pdf->linha_relativa(50, $this->page_y, 0, 18);
                            //ciclo
                            $this->pdf->linha_relativa(134, $this->page_y, 0, 18);
                            //turno
                            $this->pdf->linha_relativa(149, $this->page_y, 0, 18);
                            //professor
                            $this->pdf->linha_relativa(275, $this->page_y, 0, 18);
                            $largura_linha = 18;
                            $index = 0;
                            for ($ct = 260; $ct < 260 + 26 * 18; $ct += $largura_linha * 3) {
                                $this->pdf->escreve_relativo($quantidades[$index] == 0 ? '' : $quantidades[$index], $ct, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                                $this->pdf->escreve_relativo($quantidades[$index + 1] == 0 ? '' : $quantidades[$index + 1], $ct + $largura_linha, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                                $this->pdf->escreve_relativo($quantidades[$index + 2], $ct + $largura_linha * 2, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                                $total_serie[$index] += $quantidades[$index];
                                $total_serie[$index + 1] += $quantidades[$index + 1];
                                $total_serie[$index + 2] += $quantidades[$index + 2];
                                $total_curso[$index] += $quantidades[$index];
                                $total_curso[$index + 1] += $quantidades[$index + 1];
                                $total_curso[$index + 2] += $quantidades[$index + 2];
                                $index += 3;
                            }
                            //							echo '<pre>';print_r($total_curso);
                            //matricula final
                            // ( MI + Adm.Entur + Adm.Recla + Adm1.Transf ) - ( Elim.Entur + Elim.Recla + Elim.Transf + Abandono )
                            $quantidades[27] = $quantidades[0] + $quantidades[3] + $quantidades[9] + $quantidades[15] - ($quantidades[6] + $quantidades[12] + $quantidades[18] + $quantidades[21]);
                            // - $diminui_masc;
                            //F
                            $quantidades[28] = $quantidades[1] + $quantidades[4] + $quantidades[10] + $quantidades[16] - ($quantidades[7] + $quantidades[13] + $quantidades[19] + $quantidades[22]);
                            // - $diminui_fem;
                            //T
                            $quantidades[29] = $quantidades[2] + $quantidades[5] + $quantidades[11] + $quantidades[17] - ($quantidades[8] + $quantidades[14] + $quantidades[20] + $quantidades[23]);
                            // - $diminui_fem - $diminui_masc;
                            $this->pdf->escreve_relativo($quantidades[$index], $ct, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $this->pdf->escreve_relativo($quantidades[$index + 1], $ct + $largura_linha, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $this->pdf->escreve_relativo($quantidades[$index + 2], $ct + $largura_linha * 2, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $total_serie[$index] += $quantidades[$index];
                            $total_serie[$index + 1] += $quantidades[$index + 1];
                            $total_serie[$index + 2] += $quantidades[$index + 2];
                            $total_curso[$index] += $quantidades[$index];
                            $total_curso[$index + 1] += $quantidades[$index + 1];
                            $total_curso[$index + 2] += $quantidades[$index + 2];
                            $expande = 24;
                            $numero_x = 12 + $expande;
                            $this->pdf->escreve_relativo("", $numero_x, $this->page_y + 3, 50, 50, $fonte, 7, $corTexto, 'left');
                            //posicao ciclo
                            $ciclo_x = $expande + 15;
                            $this->pdf->escreve_relativo("{$turma['nm_turma']}", $ciclo_x, $this->page_y + 3, 100, 50, $fonte, 7, $corTexto, 'center');
                            //posicao turno
                            $turno_x = $ciclo_x + $expande + 28;
                            $this->pdf->escreve_relativo("{$turno}", $turno_x, $this->page_y + 3, 100, 40, $fonte, 7, $corTexto, 'center');
                            $professor_x = 125 + $expande;
                            $this->pdf->escreve_relativo("{$nm_servidor}", $professor_x + 5, $this->page_y + 5, 100, 40, $fonte, 6, $corTexto, 'center');
                            $this->page_y += 18;
                            /**
                             * Fim linha
                             */
                            if ($this->page_y + $altura_linha > 498) {
                                $this->pdf->ClosePage();
                                $this->pdf->OpenPage();
                                $this->addCabecalho();
                                $this->novoCabecalho();
                            }
                        }
                    }
                    /**
                     * subtototal
                     */
                    $index = 0;
                    $altura_linha = 18;
                    $largura_linha = 18;
                    if ($lista_serie_turmas) {
                        $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
                        for ($ct = 294; $ct < 294 + 30 * 17; $ct += $largura_linha) {
                            $this->pdf->linha_relativa($ct, $this->page_y, 0, 18);
                        }
                        $this->pdf->linha_relativa(50, $this->page_y, 0, 18);
                        $this->pdf->linha_relativa(275, $this->page_y, 0, 18);
                        for ($ct = 260; $ct < 260 + 30 * 18; $ct += $largura_linha * 3) {
                            $this->pdf->escreve_relativo($total_serie[$index], $ct, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $this->pdf->escreve_relativo($total_serie[$index + 1], $ct + $largura_linha, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $this->pdf->escreve_relativo($total_serie[$index + 2], $ct + $largura_linha * 2, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                            $index += 3;
                        }
                        $expande = 24;
                        $numero_x = 12 + $expande;
                        $this->pdf->escreve_relativo("{$total_turmas_serie}", $numero_x, $this->page_y + 3, 50, 50, $fonte, 7, $corTexto, 'left');
                        $professor_x = 40 + $expande;
                        $this->pdf->escreve_relativo("Subtotal {$nm_serie}", $professor_x + 5, $this->page_y + 3, 150, 40, $fonte, 7, $corTexto, 'center');
                        $this->page_y += 18;
                    }
                    /**
                     *
                     */
                    if ($this->page_y + $altura_linha > 498) {
                        $this->pdf->ClosePage();
                        $this->pdf->OpenPage();
                        $this->addCabecalho();
                        $this->novoCabecalho();
                    }
                }
                if ($total_curso[0] > 0) {
                    /**
                     * TOTAL CURSO
                     */
                    $altura_linha = 18;
                    $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
                    for ($ct = 294; $ct < 294 + 30 * 17; $ct += $largura_linha) {
                        $this->pdf->linha_relativa($ct, $this->page_y, 0, 18);
                    }
                    //n
                    $this->pdf->linha_relativa(50, $this->page_y, 0, 18);
                    $this->pdf->linha_relativa(275, $this->page_y, 0, 18);
                    $index = 0;
                    for ($ct = 260; $ct < 260 + 30 * 18; $ct += $largura_linha * 3) {
                        $this->pdf->escreve_relativo($total_curso[$index], $ct, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                        $this->pdf->escreve_relativo($total_curso[$index + 1], $ct + $largura_linha, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                        $this->pdf->escreve_relativo($total_curso[$index + 2], $ct + $largura_linha * 2, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
                        $index += 3;
                    }
                    $expande = 24;
                    $numero_x = 12 + $expande;
                    $this->pdf->escreve_relativo("{$total_turmas_curso}", $numero_x, $this->page_y + 3, 50, 50, $fonte, 7, $corTexto, 'left');
                    $obj_curso = new clsPmieducarCurso($curso);
                    $det_curso = $obj_curso->detalhe();
                    $nm_curso = $det_curso['nm_curso'];
                    $professor_x = 40 + $expande;
                    $this->pdf->escreve_relativo("Total {$nm_curso}", $professor_x + 5, $this->page_y + 3, 150, 40, $fonte, 7, $corTexto, 'center');
                    $this->page_y += 18;
                }
                foreach ($total_curso as $key => $valor) {
                    $quantidade_total[$key] += $valor;
                }
                /**
                 *
                 */
                if ($this->page_y > 498) {
                    $this->pdf->ClosePage();
                    $this->pdf->OpenPage();
                    $this->addCabecalho();
                    $this->novoCabecalho();
                }
            }
        }
        $altura_linha = 18;
        $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
        for ($ct = 294; $ct < 294 + 30 * 17; $ct += $largura_linha) {
            $this->pdf->linha_relativa($ct, $this->page_y, 0, 18);
        }
        //n
        $this->pdf->linha_relativa(50, $this->page_y, 0, 18);
        $this->pdf->linha_relativa(275, $this->page_y, 0, 18);
        $index = 0;
        for ($ct = 260; $ct < 260 + 30 * 18; $ct += $largura_linha * 3) {
            $this->pdf->escreve_relativo($quantidade_total[$index], $ct, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
            $this->pdf->escreve_relativo($quantidade_total[$index + 1], $ct + $largura_linha, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
            $this->pdf->escreve_relativo($quantidade_total[$index + 2], $ct + $largura_linha * 2, $this->page_y + 3, 50, 40, $fonte, 7, $corTexto, 'center');
            $index += 3;
        }
        $expande = 24;
        $numero_x = 12 + $expande;
        $this->pdf->escreve_relativo("{$total_turmas_curso}", $numero_x, $this->page_y + 3, 50, 50, $fonte, 7, $corTexto, 'left');
        $obj_curso = new clsPmieducarCurso($curso);
        $det_curso = $obj_curso->detalhe();
        $nm_curso = $det_curso['nm_curso'];
        $professor_x = 40 + $expande;
        $this->pdf->escreve_relativo("Total Geral", $professor_x + 20, $this->page_y + 3, 150, 40, $fonte, 7, $corTexto, 'center');
        $this->page_y += 18;
        $this->rodape();
        $this->pdf->ClosePage();
        //header( "location: " . $this->pdf->GetLink() );
        $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 renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        //		echo "<pre>"; print_r($_POST); die();
        if (!$_POST) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNão existem dados!");
	     			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 (empty($this->ref_cod_curso)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhum curso selecionado!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        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);
        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;
        }
        $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, null, null, null, $this->ref_cod_escola);
        $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
        $det_curso = $obj_curso->detalhe();
        $media_curso = $det_curso['media'];
        if ($lista_serie_curso) {
            $this->pdf = new clsPDF("Controle Bimestral de Desempenho de Alunos - {$this->ano}", "Controle Bimestral de Desempenho de Alunos - {$this->ano}", "A4", "", false, false);
            $this->pdf->largura = 842.0;
            $this->pdf->altura = 595.0;
            $fonte = 'arial';
            $corTexto = '#000000';
            $this->pdf->OpenPage();
            $this->addCabecalho();
            $altura_linha = 23;
            $inicio_escrita_y = 175;
            $serie_ini = $lista_serie_curso[0];
            $serie_fim = $lista_serie_curso[count($lista_serie_curso) - 1];
            $total_geral_alunos = 0;
            $db = new clsBanco();
            foreach ($lista_serie_curso as $key => $serie) {
                $total_geral_alunos_turma = 0;
                $this->buscaDisciplinas($serie['cod_serie']);
                $this->novoCabecalho($serie['nm_serie']);
                $obj_turmas = new clsPmieducarTurma();
                $obj_turmas->setOrderby("nm_turma");
                $lista_turmas = $obj_turmas->lista(null, null, null, $serie['cod_serie'], $this->ref_cod_escola);
                if ($lista_turmas) {
                    foreach ($lista_turmas as $turma) {
                        foreach ($this->array_disciplinas as $key => $value) {
                            $this->array_disciplinas[$key]['total_disciplina_abaixo_media_serie'] = 0;
                            $this->array_disciplinas[$key]['total_disciplina_media_serie'] = 0;
                        }
                        if ($turma['hora_inicial'] <= '12:00') {
                            $turno = 'M';
                        } elseif ($turma['hora_inicial'] > '12:00' && $turma['hora_inicial'] <= '18:00') {
                            $turno = 'V';
                        } else {
                            $turno = 'N';
                        }
                        $obj_servidor = new clsPessoa_($turma['ref_cod_regente']);
                        $det_sevidor = $obj_servidor->detalhe();
                        //						$obj_mat_turma = new clsPmieducarMatriculaTurma();
                        //						$lista_matricula = $obj_mat_turma->lista(null,$turma['cod_turma']);
                        if (is_numeric($this->semestre) && $this->ano != 2007 && !$this->is_padrao) {
                            $sql = " AND m.semestre = {$this->semestre} ";
                        }
                        $select = "SELECT na.ref_cod_disciplina\n\t\t\t\t\t\t\t\t\t       ,na.ref_cod_serie\n\t\t\t\t\t\t\t\t\t       ,tav.valor\n\t\t\t\t\t\t\t\t\t       ,na.ref_cod_escola\n\t\t\t\t\t\t\t\t\t       ,na.ref_cod_matricula\n\t\t\t\t\t\t\t\t\t   \t   ,cod_transferencia_solicitacao\n\t\t\t\t\t\t\t\t\t  FROM pmieducar.nota_aluno \t\t na\n\t\t\t\t\t\t\t\t\t       ,pmieducar.tipo_avaliacao_valores tav\n\t\t\t\t\t\t\t\t\t       ,pmieducar.matricula_turma\t mt\n\t\t\t\t\t\t\t\t\t       ,pmieducar.matricula\t\t\t m\n\t\t\t\t\t\t\t\t\t      \tLEFT OUTER JOIN pmieducar.transferencia_solicitacao ts ON\n\t\t\t\t\t\t\t\t\t       \t\t(ref_cod_matricula_saida = m.cod_matricula AND\n\t\t\t\t\t\t\t\t\t       \t\t(data_transferencia >= (SELECT data_inicio FROM pmieducar.ano_letivo_modulo an, pmieducar.modulo m\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE m.cod_modulo = an.ref_cod_modulo AND m.ativo = 1 and ref_ano = {$this->ano}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_ref_cod_escola = {$this->ref_cod_escola} AND sequencial = {$this->sequencial}) AND\n\t\t\t\t\t\t\t\t\t\t\t\t data_transferencia <= (SELECT data_fim FROM pmieducar.ano_letivo_modulo an, pmieducar.modulo m\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tWHERE m.cod_modulo = an.ref_cod_modulo\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND m.ativo = 1 AND ref_ano = {$this->ano}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAND ref_ref_cod_escola = {$this->ref_cod_escola} AND sequencial = {$this->sequencial})\n\t\t\t\t\t\t\t\t\t\t\t\t))\n\t\t\t\t\t\t\t\t\t WHERE na.ref_cod_serie \t= {$serie['cod_serie']}\n\t\t\t\t\t\t\t\t\t   AND na.ref_cod_escola \t= {$this->ref_cod_escola}\n\t\t\t\t\t\t\t\t\t   AND mt.ref_cod_turma = {$turma['cod_turma']}\n\t\t\t\t\t\t\t\t\t   AND na.ativo \t\t= 1\n\t\t\t\t\t\t\t\t\t   AND na.modulo = {$this->sequencial}\n\t\t\t\t\t\t\t\t\t   AND na.ref_ref_cod_tipo_avaliacao = tav.ref_cod_tipo_avaliacao\n\t\t\t\t\t\t\t\t\t   AND na.ref_sequencial     \t     = tav.sequencial\n\t\t\t\t\t\t\t\t\t   AND na.ref_cod_matricula\t         = mt.ref_cod_matricula\n\t\t\t\t\t\t\t\t\t   AND m.cod_matricula        \t\t = mt.ref_cod_matricula\n\t\t\t\t\t\t\t\t\t   AND m.ano     = {$this->ano}\n\t\t\t\t\t\t\t\t\t   AND cod_transferencia_solicitacao IS NULL\n\t\t\t\t\t\t\t\t\t   {$sql}\n\t\t\t\t\t\t\t\t\t   AND mt.ativo  = 1 ORDER BY na.ref_cod_disciplina, na.ref_cod_matricula";
                        $db->Consulta($select);
                        $alunos = null;
                        $media_turma = array(array());
                        while ($db->ProximoRegistro()) {
                            $alunos[$tupla['ref_cod_matricula']] = $tupla['ref_cod_matricula'];
                            $tupla = $db->Tupla();
                            if ($tupla['valor'] < $media_curso) {
                                $this->array_disciplinas[$tupla['ref_cod_disciplina']]['total_disciplina_abaixo_media_serie']++;
                                $this->array_disciplinas[$tupla['ref_cod_disciplina']]['total_geral_disciplina_abaixo_media_serie']++;
                            } else {
                                $this->array_disciplinas[$tupla['ref_cod_disciplina']]['total_disciplina_media_serie']++;
                                $this->array_disciplinas[$tupla['ref_cod_disciplina']]['total_geral_disciplina_media_serie']++;
                            }
                            $media_turma[$tupla['ref_cod_disciplina']]['media'] = $media_turma[$tupla['ref_cod_disciplina']]['media'] + $tupla['valor'];
                            $media_turma[$tupla['ref_cod_disciplina']]['total'] = $media_turma[$tupla['ref_cod_disciplina']]['total'] + 1;
                        }
                        //$media_turma = $media_turma / $total;
                        //$media_turma = number_format($media_turma,2,'.','');
                        if (is_array($alunos)) {
                            $alunos = count($alunos) - 1;
                        } else {
                            $alunos = 0;
                        }
                        foreach ($media_turma as $key => $media) {
                            if ($media_turma[$key]['total']) {
                                $media_turma[$key]['media'] = $media_turma[$key]['media'] / $media_turma[$key]['total'];
                            }
                            $media_turma[$key]['media'] = number_format($media_turma[$key]['media'], 2, '.', '');
                        }
                        //echo '<pre>';print_r($alunos);die;
                        $total_alunos_turma = $alunos;
                        //$obj_mat_turma->_total;
                        $total_geral_alunos_turma += $alunos;
                        //$obj_mat_turma->_total;
                        $total_geral_alunos += $alunos;
                        //$obj_mat_turma->_total;
                        $expande = 24;
                        //linha
                        $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
                        //linha aluno
                        $this->pdf->quadrado_relativo(30, $this->page_y, 150 + $expande, $altura_linha);
                        //linha serie
                        $this->pdf->quadrado_relativo(30, $this->page_y, 120 + $expande, $altura_linha);
                        //linha professor regente
                        $this->pdf->quadrado_relativo(30, $this->page_y, 90 + $expande, $altura_linha);
                        //$this->pdf->quadrado_relativo( 30, 125, 170 + $expande + 30, $altura);
                        //linha turno
                        $this->pdf->quadrado_relativo(30, $this->page_y, 20, $altura_linha);
                        $centralizado = abs(($altura - 12) / 2) + $this->page_y;
                        //posicao serie
                        $serie_x = 38;
                        $this->pdf->escreve_relativo("{$turno}", $serie_x, $centralizado, 50, 50, $fonte, 7, $corTexto, 'left');
                        //regente
                        $turma_x = 30 + $expande;
                        $this->pdf->escreve_relativo($det_sevidor['nome'], $turma_x - 5, $centralizado, 100, 50, $fonte, 7, $corTexto, 'center');
                        //serie
                        $alunos_x = 80 + $expande;
                        //$this->pdf->escreve_relativo( $this->array_serie_abr["{$serie['cod_serie']}"], $alunos_x + 5,$centralizado , 100, 40, $fonte, 7, $corTexto, 'center' );
                        $this->pdf->escreve_relativo($turma['nm_turma'], $alunos_x + 5, $centralizado, 100, 40, $fonte, 7, $corTexto, 'center');
                        $n_alunos_x = 110 + $expande;
                        $this->pdf->escreve_relativo("{$total_alunos_turma}", $n_alunos_x + 5, $centralizado, 100, 40, $fonte, 8, $corTexto, 'center');
                        $inicio_escrita_y = $this->page_y + 5;
                        $largura_anos = 590;
                        if (sizeof($this->array_disciplinas) >= 1) {
                            $incremental = (int) ceil($largura_anos / sizeof($this->array_disciplinas));
                        } else {
                            $incremental = 1;
                        }
                        $reta_ano_x = 209;
                        $anos_x = 209;
                        $ct = 0;
                        foreach ($this->array_disciplinas as $key => $disciplina) {
                            //medias
                            //$this->pdf->escreve_relativo( $disciplina['total_disciplina_media_serie'] == 0 ?  '' : $disciplina['total_disciplina_media_serie'] , $anos_x ,$inicio_escrita_y, ($incremental/3), $altura_linha, $fonte, 8, $corTexto, 'center' );
                            $this->pdf->escreve_relativo($media_turma[$disciplina['ref_cod_disciplina']]['media'] == 0 ? '' : $media_turma[$disciplina['ref_cod_disciplina']]['media'], $anos_x, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                            $this->pdf->linha_relativa($reta_ano_x + $incremental / 3, $inicio_escrita_y - 5, 0, 23);
                            $this->pdf->escreve_relativo($disciplina['total_disciplina_abaixo_media_serie'] == 0 ? '' : $disciplina['total_disciplina_abaixo_media_serie'], $anos_x + $incremental / 3, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                            $this->pdf->linha_relativa($reta_ano_x + $incremental * 2 / 3, $inicio_escrita_y - 5, 0, 23);
                            $this->pdf->escreve_relativo($disciplina['total_disciplina_media_serie'] + $disciplina['total_disciplina_abaixo_media_serie'] > 0 ? ceil($disciplina['total_disciplina_abaixo_media_serie'] / ($disciplina['total_disciplina_media_serie'] + $disciplina['total_disciplina_abaixo_media_serie']) * 100) : '-', $anos_x + $incremental * 2 / 3, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                            $anos_x += $incremental;
                            $reta_ano_x += $incremental;
                            if ($ct + 1 < sizeof($this->array_disciplinas)) {
                                $this->pdf->linha_relativa($reta_ano_x, $inicio_escrita_y - 5, 0, 23);
                            }
                            $ct++;
                        }
                        $this->page_y += $altura_linha;
                        //						echo '<pre>';print_r($total_alunos_turma);die;
                    }
                }
                $expande = 24;
                //linha
                $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_linha);
                //linha aluno
                $this->pdf->quadrado_relativo(30, $this->page_y, 150 + $expande, $altura_linha);
                //linha serie
                $this->pdf->quadrado_relativo(30, $this->page_y, 120 + $expande, $altura_linha);
                $centralizado = abs(($altura - 6) / 2) + $this->page_y;
                //posicao numero turmas
                $turma_x = 38;
                $this->pdf->escreve_relativo("Subtotal " . $serie['nm_serie'], $turma_x - 5, $centralizado, 120, 50, $fonte, 7, $corTexto, 'center');
                $n_alunos_x = 110 + $expande;
                $this->pdf->escreve_relativo("{$total_geral_alunos_turma}", $n_alunos_x + 5, $centralizado + 2, 100, 40, $fonte, 8, $corTexto, 'center');
                $inicio_escrita_y = $this->page_y + 5;
                $largura_anos = 590;
                if (sizeof($this->array_disciplinas) >= 1) {
                    $incremental = (int) ceil($largura_anos / sizeof($this->array_disciplinas));
                } else {
                    $incremental = 1;
                }
                $reta_ano_x = 209;
                $anos_x = 209;
                $ct = 0;
                foreach ($this->array_disciplinas as $key => $disciplina) {
                    //medias
                    //	$this->pdf->escreve_relativo( $disciplina['total_geral_disciplina_media_serie'] == 0 ? '' : $disciplina['total_geral_disciplina_media_serie'], $anos_x ,$inicio_escrita_y, ($incremental/3), $altura_linha, $fonte, 8, $corTexto, 'center' );
                    $this->pdf->escreve_relativo('-', $anos_x, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                    $this->pdf->linha_relativa($reta_ano_x + $incremental / 3, $inicio_escrita_y - 5, 0, 23);
                    $this->pdf->escreve_relativo($disciplina['total_geral_disciplina_abaixo_media_serie'] == 0 ? '' : $disciplina['total_geral_disciplina_abaixo_media_serie'], $anos_x + $incremental / 3, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                    $this->pdf->linha_relativa($reta_ano_x + $incremental * 2 / 3, $inicio_escrita_y - 5, 0, 23);
                    //$this->pdf->escreve_relativo( ($disciplina['total_geral_disciplina_abaixo_media_serie'] + $disciplina['total_geral_disciplina_media_serie']) == 0 ? '' : ceil(($disciplina['total_geral_disciplina_abaixo_media_serie'] / ($disciplina['total_geral_disciplina_abaixo_media_serie'] + $disciplina['total_geral_disciplina_media_serie']))*100)."%", $anos_x +($incremental*2/3),$inicio_escrita_y, ($incremental/3), $altura_linha, $fonte, 8, $corTexto, 'center' );
                    $this->pdf->escreve_relativo('-', $anos_x + $incremental * 2 / 3, $inicio_escrita_y, $incremental / 3, $altura_linha, $fonte, 8, $corTexto, 'center');
                    $anos_x += $incremental;
                    $reta_ano_x += $incremental;
                    if ($ct + 1 < sizeof($this->array_disciplinas)) {
                        $this->pdf->linha_relativa($reta_ano_x, $inicio_escrita_y - 5, 0, 23);
                    }
                    $ct++;
                }
                $this->page_y += $altura_linha;
                if ($this->page_y + $altura_linha > 510) {
                    $this->pdf->ClosePage();
                    $this->pdf->OpenPage();
                    $this->addCabecalho();
                    $this->page_y = 125;
                    $this->novoCabecalho($serie['nm_serie']);
                }
                //				echo "uiauiaaiuauaiuaiuiuiauiuaiuaiuaiuiui";
            }
            //			die('lllllllllllllllllllllllllllllllllllllllll!!!!!!!!!!!');
            $this->rodape();
            $this->pdf->ClosePage();
            //header( "location: " . $this->pdf->GetLink() );
            $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\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\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\t</span>\n\t\t\t\t</center>";
        } else {
            echo "<center> Não existem dados a serem exibidos! </center>";
        }
    }
 function Gerar()
 {
     // primary keys
     $this->campoOculto("cod_calendario_ano_letivo", $this->cod_calendario_ano_letivo);
     /*$obj_anos = new clsPmieducarEscolaAnoLetivo();
     		$lista_ano = $obj_anos->lista(null,null,null,null,2,null,null,null,null,1);
     		if($lista_ano)
     		{
     			$script = "<script>
     					  var ar_anos = new Array();
     						";
     
     			foreach ($lista_ano as $ano) {
     
     				$script .= "ar_anos[ar_anos.length] = new Array('{$ano['ref_cod_escola']}','{$ano['ano']}');\n";
     			}
     
     			echo $script .= "</script>";
     		}*/
     if ($_GET) {
         $this->ref_cod_escola = $_GET["ref_cod_escola"];
         $this->ref_cod_instituicao = $_GET["ref_cod_instituicao"];
     }
     $get_escola = 1;
     $obrigatorio = true;
     include "include/pmieducar/educar_campo_lista.php";
     $this->url_cancelar = $retorno == "Editar" ? "educar_calendario_ano_letivo_det.php?cod_calendario_ano_letivo={$registro["cod_calendario_ano_letivo"]}" : "educar_calendario_ano_letivo_lst.php";
     //		$ano_array = array();
     $ano_array = array("" => "Selecione um ano");
     if ($this->ref_cod_escola) {
         $obj_anos = new clsPmieducarEscolaAnoLetivo();
         $lista_ano = $obj_anos->lista($this->ref_cod_escola, null, null, null, 2, null, null, null, null, 1);
         if ($lista_ano) {
             foreach ($lista_ano as $ano) {
                 $ano_array["{$ano['ano']}"] = $ano['ano'];
             }
         }
     } else {
         $ano_array = array("" => "Selecione uma escola");
     }
     // text
     //		$conc = ",";
     //		$anos = array( "" => "Selecione" );
     //		$ano_atual = date("Y");
     //		$lim = 5;
     //		for($a = date('Y') ; $a < $ano_atual + $lim ; $a++ )
     //			if(!key_exists($a,$ano_array))
     //				$anos["{$a}"] = "{$a}";
     //			else
     //				$lim++;
     $this->campoLista("ano", "Ano", $ano_array, $this->ano, "", false);
     //	if($this->ref_cod_escola)
     //		$this->campoOculto("ref_cod_escola",$this->ref_cod_escola);
     //if($this->ref_cod_instituicao)
     //	$this->campoOculto("ref_cod_instituicao",$this->ref_cod_instituicao);
     // data
     //		$this->campoData( "inicio_ano_letivo", "Inicio Ano Letivo", $this->inicio_ano_letivo, true );
     //		$this->campoData( "termino_ano_letivo", "Termino Ano Letivo", $this->termino_ano_letivo, true );
 }
 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);
 }
 function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php");
     if ($this->passo == 1) {
         // selecionou o curso, nao cadastra nada
         return true;
     } else {
         if ($this->passo == 2) {
             // deu notas e faltas aos alunos
             $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
             $detalhe_curso = $objCurso->detalhe();
             $db = new clsBanco();
             $qtd_disciplinas = $db->CampoUnico("SELECT COUNT(0) FROM pmieducar.escola_serie_disciplina WHERE ref_ref_cod_serie = '{$this->ref_cod_serie_disciplina}' AND ref_ref_cod_escola = '{$this->ref_ref_cod_escola}' AND ativo = 1");
             foreach ($this->nota as $matricula => $sequencial) {
                 // cadastra a nota
                 if ($this->is_nota_exame) {
                     $nota = str_replace(",", ".", $sequencial);
                     $objNotaAluno = new clsPmieducarNotaAluno(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null, $nota);
                 } else {
                     $objNotaAluno = new clsPmieducarNotaAluno(null, $sequencial, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, null);
                 }
                 $existe_nota = $objNotaAluno->lista(null, null, $detalhe_curso["ref_cod_tipo_avaliacao"], $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, null, 1, $this->num_modulo, null, null);
                 /**
                  * somente cadastra
                  * se nao tiver nenhuma nota
                  * cadastrada para a disciplina
                  */
                 if ($existe_nota) {
                     $cadastrado = $objNotaAluno->edita();
                 } else {
                     $cadastrado = $objNotaAluno->cadastra();
                 }
                 $existe_nota = null;
                 $ultima_nota = false;
                 if ($cadastrado) {
                     // nota cadastrada com sucesso
                     // verifica se essa eh a ultima nota desse modulo. Se for passa o aluno pro proximo modulo
                     $qtd_dispensas = (int) $db->CampoUnico("SELECT COUNT(0) AS dispensas FROM pmieducar.dispensa_disciplina WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1");
                     $qtd_notas = (int) $db->CampoUnico("SELECT COUNT(0) AS notas FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1 AND modulo = '{$this->num_modulo}'");
                     if ($qtd_dispensas + $qtd_notas >= $qtd_disciplinas) {
                         // eh a ultima nota do modulo, vamos passar o aluno adiante
                         $ultima_nota = true;
                         $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada);
                         $det_matricula = $objMatricula->detalhe();
                         $max_modulo_nota = (int) $db->CampoUnico("SELECT max(modulo) FROM pmieducar.nota_aluno WHERE ref_cod_matricula = '{$matricula}' AND ativo = 1");
                         /**
                          * so avança o modulo
                          * caso ele seja igual ao da maior nota
                          * e que seja a ultima disciplina
                          */
                         if ($det_matricula['modulo'] <= $max_modulo_nota) {
                             $objMatricula->avancaModulo();
                         }
                     }
                     // tratamento para faltas
                     if (!$this->falta_ch_globalizada) {
                         // se a falta nao for globalizada adiciona falta
                         $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0;
                         $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                         $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->num_modulo);
                         /**
                          * somente cadastra se
                          * jah nao tiver sido cadastrado
                          */
                         if ($existe_falta) {
                             $objFaltaAluno->edita();
                         } else {
                             $objFaltaAluno->cadastra();
                         }
                     } else {
                         // falta eh globalizada
                         if ($this->ultima_nota[$matricula]) {
                             // essa eh a ultima nota do aluno nesse modulo, vamos adicionar a falta globalizada dele
                             $this->falta[$matricula] = $this->falta[$matricula] ? $this->falta[$matricula] : 0;
                             $objFaltas = new clsPmieducarFaltas($matricula, $this->num_modulo, $this->pessoa_logada, $this->falta[$matricula]);
                             if ($objFaltas->existe()) {
                                 $objFaltas->edita();
                             } else {
                                 $objFaltas->cadastra();
                             }
                         }
                     }
                     // quando for o ultimo modulo o aluno deve ser aprovado, reprovado, marcado como excessao, ou colocado em exame
                     if ($ultima_nota && $this->num_modulo == $this->max_modulos) {
                         // esta na ultima nota do ultimo modulo
                         $objEscolaSerieDisciplina = new clsPmieducarEscolaSerieDisciplina();
                         $listaEscolaSerieDisciplina = $objEscolaSerieDisciplina->lista($this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, null, 1);
                         //$this->ref_cod_serie_disciplina $this->ref_ref_cod_serie
                         $reprovado_por_nota = false;
                         $existiu_excessao = false;
                         $obj_serie = new clsPmieducarSerie($this->ref_cod_serie_disciplina);
                         $det_serie = $obj_serie->detalhe();
                         $media_especial = dbBool($det_serie['media_especial']);
                         if (is_array($listaEscolaSerieDisciplina)) {
                             // percorre todas as disciplinas
                             $reprovou_ultima_nota = false;
                             $foi_aprovado = null;
                             foreach ($listaEscolaSerieDisciplina as $value) {
                                 $excessao = false;
                                 $nota = false;
                                 //  ve as faltas
                                 if (!$this->falta_ch_globalizada) {
                                     $objFaltaAluno = new clsPmieducarFaltaAluno();
                                     $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"]);
                                     if ($reprovou) {
                                         // se reprovou cria uma excessao
                                         $existiu_excessao = true;
                                         $excessao = true;
                                     }
                                 }
                                 /**
                                  * se a media for especial somente
                                  * verifica se nao esta reprovado por falta
                                  */
                                 if ($media_especial) {
                                     continue;
                                 }
                                 if (!dbBool($det_serie["ultima_nota_define"])) {
                                     //  ve a media
                                     /**
                                      * @author HY 15-12-2006
                                      * @see quando for dar as notas e for calcular a ultima
                                      * ao fazer a media e essa nota estiver abaixo nao
                                      * pode ser feito o arredondamento, somente se estiver
                                      *  acima da media deixando o aluno em exame
                                      */
                                     $objNotaAluno = new clsPmieducarNotaAluno();
                                     $media = $objNotaAluno->getMediaAluno($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->max_modulos, $detalhe_curso["media"]);
                                     if ($media < $detalhe_curso["media"]) {
                                         //  se reprovar em alguma marca uma flag de reprovado por nota (nao edita o aluno porque ele ainda vai fazer exame)
                                         $reprovado_por_nota = true;
                                         $nota = true;
                                     }
                                 } else {
                                     //									echo "<pre>"; print_r($detalhe_curso); die();
                                     $objNotaAluno = new clsPmieducarNotaAluno();
                                     $ultima_nota_modulo = $objNotaAluno->getUltimaNotaModulo($matricula, $value["ref_cod_disciplina"], $value["ref_ref_cod_serie"], $this->num_modulo);
                                     if ($ultima_nota_modulo < $detalhe_curso["media"]) {
                                         $foi_aprovado = 2;
                                         $reprovou_ultima_nota = true;
                                     }
                                 }
                                 if ($excessao) {
                                     // existiu uma excessao entao cria um registro de excessao no banco
                                     $objExcessao = new clsPmieducarMatriculaExcessao(null, $matricula, $this->ref_cod_turma, 1, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $value["ref_cod_disciplina"], true, $nota);
                                     $objExcessao->cadastra();
                                 }
                             }
                             if (dbBool($det_serie["ultima_nota_define"])) {
                                 if ($reprovou_ultima_nota) {
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                     $objMatricula->edita();
                                 } else {
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                     $foi_aprovado = 1;
                                 }
                             }
                             /**
                              * calcula outro modo de média se for especial
                              */
                             if ($media_especial) {
                                 $objNotaAluno = new clsPmieducarNotaAluno();
                                 $media = $objNotaAluno->getMediaEspecialAluno($matricula, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->max_modulos, $detalhe_curso["media"]);
                                 if ($media < $detalhe_curso["media"]) {
                                     //  se reprovar marca uma flag de reprovado por nota (
                                     $reprovado_por_nota = true;
                                     $nota = true;
                                 }
                             }
                         }
                         if (!$reprovado_por_nota && !$existiu_excessao && !dbBool($det_serie["ultima_nota_define"])) {
                             // nao foi reprovado em nenhuma disciplina e nao teve nenhuma excessao
                             //marca como aprovado
                             $foi_aprovado = 1;
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                             $objMatricula->edita();
                         }
                         /**
                          * media especial e reprovado por falta.. marca aluno como reprovado se nao marca como aprovado
                          */
                         if ($media_especial) {
                             $aprovado = $reprovado_por_nota ? '2' : '1';
                             $foi_aprovado = $aprovado;
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, $aprovado);
                             $objMatricula->edita();
                         }
                     } else {
                         if ($this->num_modulo - 1 == $this->max_modulos) {
                             // se estiver recebendo nota do exame temos que ver se eh a ultima, se for temos que aprovar/reprovar o aluno
                             // num_modulo == max_modulo = ultimo modulo
                             // num_modulo - 1 == max_modulo = exame
                             // esta no exame
                             $objNotaAluno = new clsPmieducarNotaAluno();
                             $qtd_exames = $objNotaAluno->getQtdMateriasExame($matricula, $this->max_modulos, $detalhe_curso["media"], true);
                             $qtd_notas_exame = $objNotaAluno->getQtdNotasExame($matricula, $this->max_modulos);
                             //die("recebendo nota de exame!!!! [{$qtd_exames}] [{$qtd_notas_exame}]");
                             if ($qtd_exames == $qtd_notas_exame) {
                                 // eh a ultima disciplina do exame
                                 $reprovado = false;
                                 $disciplinas_exame = $objNotaAluno->getDisciplinasExameDoAluno($matricula, $this->max_modulos, $detalhe_curso["media"], true);
                                 if (is_array($disciplinas_exame)) {
                                     foreach ($disciplinas_exame as $disciplina) {
                                         $media_exame = $objNotaAluno->getMediaAlunoExame($matricula, $disciplina["cod_disciplina"], $disciplina["cod_serie"], $this->max_modulos);
                                         // se reprovou marca como reprovado e sai do loop (break)
                                         //abaixo original
                                         //									$media_exame = $objNotaAluno->getMediaAluno($matricula,$disciplina["cod_disciplina"],$disciplina["cod_serie"],$this->max_modulos + 1, false, true);
                                         if ($media_exame < $detalhe_curso["media_exame"]) {
                                             // reprovou
                                             //remove possiveis excessoes
                                             $objExcessoes = new clsPmieducarMatriculaExcessao();
                                             $objExcessoes->excluirPorMatricula($matricula);
                                             // marca como reprovado
                                             $foi_aprovado = 2;
                                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                             $objMatricula->edita();
                                             $reprovado = true;
                                             break;
                                         }
                                     }
                                 }
                                 if (!$reprovado) {
                                     // se chegar aqui sem ter sido reprovado, marca como aprovado
                                     //remove possiveis excessoes
                                     $objExcessoes = new clsPmieducarMatriculaExcessao();
                                     $objExcessoes->excluirPorMatricula($matricula);
                                     // aprova
                                     $foi_aprovado = 1;
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                 } else {
                                     // se chegar aqui sem ter sido reprovado, marca como aprovado
                                     //remove possiveis excessoes
                                     $objExcessoes = new clsPmieducarMatriculaExcessao();
                                     $objExcessoes->excluirPorMatricula($matricula);
                                     // reprova
                                     $foi_aprovado = 2;
                                     $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                     $objMatricula->edita();
                                 }
                             }
                         }
                     }
                 }
                 /**************HISTORICO ESCOLAR****************************/
                 if ($foi_aprovado == 1 || $foi_aprovado == 2) {
                     $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
                     $det_serie = $obj_serie->detalhe();
                     $carga_horaria_serie = $det_serie["carga_horaria"];
                     $obj_escola = new clsPmieducarEscola($this->ref_ref_cod_escola);
                     $det_escola = $obj_escola->detalhe();
                     $ref_idpes = $det_escola["ref_idpes"];
                     $this->ref_cod_instituicao = $det_escola["ref_cod_instituicao"];
                     $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"];
                     }
                     // busca informacoes da escola
                     if ($ref_idpes) {
                         $obj_escola = new clsPessoaJuridica($ref_idpes);
                         $det_escola = $obj_escola->detalhe();
                         $nm_escola = $det_escola["fantasia"];
                         if ($det_escola) {
                             $cidade = $det_escola["cidade"];
                             $uf = $det_escola["sigla_uf"];
                         }
                     } else {
                         if (class_exists("clsPmieducarEscolaComplemento")) {
                             $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                             $det_escola = $obj_escola->detalhe();
                             $nm_escola = $det_escola["nm_escola"];
                             $cidade = $det_escola["municipio"];
                         }
                     }
                     $this->padrao_ano_escolar = $detalhe_curso["padrao_ano_escolar"];
                     if ($this->padrao_ano_escolar) {
                         $extra_curricular = 0;
                     } else {
                         $extra_curricular = 1;
                     }
                     $sql = "SELECT SUM(falta) FROM pmieducar.faltas WHERE ref_cod_matricula = {$matricula}";
                     $db5 = new clsBanco();
                     $total_faltas = $db5->CampoUnico($sql);
                     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($detalhe_curso["ref_cod_tipo_avaliacao"]);
                     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                     $this->conceitual = $det_tipo_avaliacao["conceitual"];
                     $obj_aluno = new clsPmieducarMatricula($matricula);
                     $det_aluno = $obj_aluno->detalhe();
                     $this->ref_cod_aluno = $det_aluno["ref_cod_aluno"];
                     $obj = new clsPmieducarHistoricoEscolar($this->ref_cod_aluno, null, null, $this->pessoa_logada, $det_serie['nm_serie'], $this->ano_letivo, $carga_horaria_serie, null, $nm_escola, $cidade, $uf, null, $foi_aprovado, null, null, 1, $total_faltas, $this->ref_cod_instituicao, 0, $extra_curricular, $matricula);
                     $cadastrou2 = $obj->cadastra();
                     if ($cadastrou2 && !$this->conceitual) {
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                         $historico_disciplina = array();
                         $obj_disciplina_hist = new clsPmieducarEscolaSerieDisciplina();
                         $lst_disciplina_hist = $obj_disciplina_hist->lista($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, null, 1);
                         foreach ($lst_disciplina_hist as $disciplina_hist) {
                             $objFaltaAluno = new clsPmieducarFaltaAluno();
                             $faltas = $objFaltaAluno->total_faltas_disciplina($matricula, $disciplina_hist["ref_cod_disciplina"], $this->ref_ref_cod_serie);
                             $historico_disciplina[$disciplina_hist["ref_cod_disciplina"]] = $faltas;
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $obj_nota_aluno->setOrderby("modulo ASC");
                             $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1);
                             $possui_nota_exame = false;
                             foreach ($lst_nota_aluno as $nota_aluno) {
                                 if (dbBool($det_serie["ultima_nota_define"])) {
                                     $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1);
                                     $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe();
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] = $det_tipo_avaliacao_valores["valor"];
                                 } else {
                                     if ($nota_aluno["nota"]) {
                                         $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $nota_aluno["nota"] * 2;
                                         $possui_nota_exame = true;
                                     } else {
                                         $obj_tipo_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"], null, null, null, null, 1);
                                         $det_tipo_avaliacao_valores = $obj_tipo_avaliacao_valores->detalhe();
                                         $soma_notas[$disciplina_hist["ref_cod_disciplina"]] += $det_tipo_avaliacao_valores["valor"];
                                     }
                                 }
                             }
                             if (!dbBool($det_serie["ultima_nota_define"])) {
                                 if ($possui_nota_exame) {
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->num_modulo + 1;
                                 } else {
                                     $soma_notas[$disciplina_hist["ref_cod_disciplina"]] /= $this->max_modulos;
                                 }
                             }
                             /*************FALTAS******************/
                             //											$this->falta_ch_globalizada = $detalhe_curso["falta_ch_globalizada"];
                             $this->ref_cod_tipo_avaliacao = $detalhe_curso["ref_cod_tipo_avaliacao"];
                             if (!$detalhe_curso["falta_ch_globalizada"]) {
                                 $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, $disciplina_hist["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1);
                                 if (is_array($lst_falta_aluno)) {
                                     foreach ($lst_falta_aluno as $key => $falta_aluno) {
                                         $soma_faltas[$disciplina_hist["ref_cod_disciplina"]][$key] = $falta_aluno["faltas"];
                                     }
                                 }
                             }
                         }
                         $faltas_media_aluno = array();
                         if (is_array($soma_faltas)) {
                             foreach ($soma_faltas as $cod_disciplina => $faltas) {
                                 foreach ($array_faltas as $falta) {
                                     $faltas_media_aluno[$disciplina] += $falta;
                                 }
                             }
                         }
                         $obj_historico = new clsPmieducarHistoricoEscolar();
                         $sequencial = $obj_historico->getMaxSequencial($this->ref_cod_aluno);
                         $historico_disciplina = array();
                         foreach ($soma_notas as $key => $nota) {
                             $historico_disciplina[$key] = array($nota, $faltas_media_aluno[$key]);
                         }
                         foreach ($historico_disciplina as $cod_disciplina => $campo) {
                             $obj_disciplina_cad = new clsPmieducarDisciplina($cod_disciplina);
                             $det_disciplina_cad = $obj_disciplina_cad->detalhe();
                             $nm_disciplina = $det_disciplina_cad["nm_disciplina"];
                             $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
                             $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao, null, null, null, $campo[0], $campo[0]);
                             if (is_array($lst_avaliacao_valores)) {
                                 $det_avaliacao_valores = array_shift($lst_avaliacao_valores);
                                 $nm_nota = $det_avaliacao_valores["nome"];
                                 $obj = new clsPmieducarHistoricoDisciplinas(null, $this->ref_cod_aluno, $sequencial, $nm_disciplina, $nm_nota, $campo[1]);
                                 $cadastrou3 = $obj->cadastra();
                                 if (!$cadastrou3) {
                                     die("nao cadastrou");
                                 }
                             }
                         }
                     } else {
                         if (!$cadastrou2) {
                             $this->mensagem = "Cadastro do Hist&oacute;rico Escolar n&atilde;o realizado.<br>";
                             return false;
                         }
                     }
                 }
                 /**************HISTORICO ESCOLAR****************************/
             }
             $this->ref_cod_disciplina = null;
             $this->passo = 0;
             return true;
         } else {
             if ($this->passo == 3) {
                 if ($this->pula_passo) {
                     $this->pula_passo = false;
                     if (is_array($this->nota) && is_array($this->resultado_final) && is_array($this->falta)) {
                         foreach ($this->nota as $matricula => $value) {
                             $objTpAvalValores = new clsPmieducarTipoAvaliacaoValores($this->ref_cod_tipo_avaliacao, $value, null, null, null, null, 1);
                             $valorNota = $objTpAvalValores->detalhe();
                             $objNotaAluno = new clsPmieducarNotaAluno(null, $value, $this->ref_cod_tipo_avaliacao, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, $this->pessoa_logada, null, null, null, $this->num_modulo, $this->ref_cod_curso, $valorNota["valor"]);
                             if (!$objNotaAluno->cadastra()) {
                                 die("não cadastrou (nota)");
                             }
                             $objMatricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, $this->pessoa_logada, null, $this->resultado_final[$matricula]);
                             if (!$objMatricula->edita()) {
                                 die("não cadastrou (resultado final)");
                             }
                             $objFaltaAluno = new clsPmieducarFaltaAluno();
                             $existe_falta = $objFaltaAluno->lista(null, null, null, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, null, null, null, null, null, 1, $this->modulo, $this->ref_cod_disciplina);
                             if ($existe_falta) {
                                 $objFaltaAluno = new clsPmieducarFaltaAluno($existe_falta[0]['cod_falta_aluno'], $this->pessoa_logada, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                                 if (!$objFaltaAluno->edita()) {
                                     die("não editou (falta)");
                                 }
                             } else {
                                 $objFaltaAluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_cod_serie_disciplina, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $matricula, $this->falta[$matricula], null, null, null, $this->num_modulo);
                                 if (!$objFaltaAluno->cadastra()) {
                                     die("não cadastrou (falta)");
                                 }
                             }
                         }
                     } else {
                         die("falto parâmetros");
                     }
                 }
                 //			die("nao");
                 // o professor decidiu sobre as excessoes
                 foreach ($this->excessao as $cod_excessao => $sentenca) {
                     $objExcessao = new clsPmieducarMatriculaExcessao($cod_excessao);
                     $detalhe_excessao = $objExcessao->detalhe();
                     // verifica se ela ainda existe porque se houve uma sentenca anterior para o mesmo aluno reprovando ele, todas as outras sentencas sao removidas
                     if ($detalhe_excessao) {
                         if ($sentenca == 0) {
                             // aluno reprovado
                             // reprova aluno
                             $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                             $objMatricula->edita();
                             // remove excessoes
                             $objExcessao->excluirPorMatricula($detalhe_excessao["ref_cod_matricula"]);
                             $this->passo = 0;
                             return true;
                         } else {
                             if ($sentenca == 1) {
                                 // aluno podera fazer exame
                                 // remove excessao
                                 $objExcessao->excluir();
                                 $this->passo = 0;
                                 return true;
                             } else {
                                 if ($sentenca == 2) {
                                     // aluno aprovado
                                     // aprova aluno
                                     $objMatricula = new clsPmieducarMatricula($detalhe_excessao["ref_cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                     $objMatricula->edita();
                                     // remove excessao
                                     $objExcessao->excluir();
                                     $this->passo = 0;
                                     return true;
                                 }
                             }
                         }
                     }
                 }
             } else {
                 if ($this->passo == 4) {
                     //			echo "<pre>"; print_r($this->resultado_final); die();
                     // aprovou/reprovou alunos manualmente
                     $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
                     foreach ($this->resultado_final as $key => $value) {
                         if ($value) {
                             // remove excessoes
                             $objExcessao = new clsPmieducarMatriculaExcessao();
                             $objExcessao->excluirPorMatricula($key);
                             // aprova/reprova
                             $objMatricula = new clsPmieducarMatricula($key, null, null, null, $this->pessoa_logada, null, null, $value);
                             $objMatricula->edita();
                         }
                     }
                     $this->passo = 0;
                     return true;
                 }
             }
         }
     }
     return false;
 }
    function Novo()
    {
        @session_start();
        $this->pessoa_logada = $_SESSION['id_pessoa'];
        @session_write_close();
        $obj_permissoes = new clsPermissoes();
        $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, 'educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno);
        $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
        $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($this->ref_cod_escola, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 1);
        if (is_array($lst_escola_ano_letivo)) {
            $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo);
            $this->ano = $det_escola_ano_letivo['ano'];
            $obj_reserva_vaga = new clsPmieducarReservaVaga();
            $lst_reserva_vaga = $obj_reserva_vaga->lista(NULL, $this->ref_cod_escola, $this->ref_ref_cod_serie, NULL, NULL, $this->ref_cod_aluno, NULL, NULL, NULL, NULL, 1);
            // Verifica se existe reserva de vaga para o aluno
            if (is_array($lst_reserva_vaga)) {
                $det_reserva_vaga = array_shift($lst_reserva_vaga);
                $this->ref_cod_reserva_vaga = $det_reserva_vaga['cod_reserva_vaga'];
                $obj_reserva_vaga = new clsPmieducarReservaVaga($this->ref_cod_reserva_vaga, NULL, NULL, $this->pessoa_logada, NULL, NULL, NULL, NULL, 0);
                $editou = $obj_reserva_vaga->edita();
                if (!$editou) {
                    $this->mensagem = 'Edição não realizada.<br />';
                    return FALSE;
                }
            }
            $vagas_restantes = 1;
            if (!$this->ref_cod_reserva_vaga) {
                $obj_turmas = new clsPmieducarTurma();
                $lst_turmas = $obj_turmas->lista(NULL, NULL, NULL, $this->ref_ref_cod_serie, $this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, TRUE);
                if (is_array($lst_turmas)) {
                    $total_vagas = 0;
                    foreach ($lst_turmas as $turmas) {
                        $total_vagas += $turmas['max_aluno'];
                    }
                } else {
                    $this->mensagem = 'Série não possui turmas cadastradas.<br />';
                    return FALSE;
                }
                $obj_matricula = new clsPmieducarMatricula();
                $lst_matricula = $obj_matricula->lista(NULL, NULL, $this->ref_cod_escola, $this->ref_ref_cod_serie, NULL, NULL, NULL, 3, NULL, NULL, NULL, NULL, 1, $this->ano, $this->ref_cod_curso, $this->ref_cod_instituicao, 1);
                if (is_array($lst_matricula)) {
                    $matriculados = count($lst_matricula);
                }
                $obj_reserva_vaga = new clsPmieducarReservaVaga();
                $lst_reserva_vaga = $obj_reserva_vaga->lista(NULL, $this->ref_cod_escola, $this->ref_ref_cod_serie, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao, $this->ref_cod_curso);
                if (is_array($lst_reserva_vaga)) {
                    $reservados = count($lst_reserva_vaga);
                }
                $vagas_restantes = $total_vagas - ($matriculados + $reservados);
            }
            if ($vagas_restantes <= 0) {
                echo sprintf('
          <script>
            var msg = \'\';
            msg += \'Excedido o número de total de vagas para Matricula!\\n\';
            msg += \'Número total de matriculados: %d\\n\';
            msg += \'Número total de vagas reservadas: %d\\n\';
            msg += \'Número total de vagas: %d\\n\';
            msg += \'Deseja mesmo assim realizar a Matrícula?\';

            if (! confirm(msg)) {
              window.location = \'educar_matricula_lst.php?ref_cod_aluno=%d\';
            }
          </script>', $matriculados, $reservados, $total_vagas, $this->ref_cod_aluno);
            }
            $obj_matricula_aluno = new clsPmieducarMatricula();
            $lst_matricula_aluno = $obj_matricula_aluno->lista(NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_aluno);
            if (!$lst_matricula_aluno) {
                // Primeira matrícula do sistema, consistência (?)
                $this->matricula_transferencia = $this->matricula_transferencia == 'on' ? TRUE : FALSE;
            } else {
                $this->matricula_transferencia = FALSE;
            }
            if ($this->is_padrao == 1) {
                $this->semestre = NULL;
            }
            $obj = new clsPmieducarMatricula(NULL, $this->ref_cod_reserva_vaga, $this->ref_cod_escola, $this->ref_ref_cod_serie, NULL, $this->pessoa_logada, $this->ref_cod_aluno, 3, NULL, NULL, 1, $this->ano, 1, NULL, NULL, NULL, NULL, $this->ref_cod_curso, $this->matricula_transferencia, $this->semestre);
            $cadastrou = $obj->cadastra();
            if ($cadastrou) {
                $obj_transferencia = new clsPmieducarTransferenciaSolicitacao();
                $lst_transferencia = $obj_transferencia->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, $this->ref_cod_aluno, FALSE, NULL, NULL, NULL, TRUE, FALSE);
                // Verifica se existe solicitação de transferência de aluno
                if (is_array($lst_transferencia)) {
                    $det_transferencia = array_shift($lst_transferencia);
                    $obj_transferencia = new clsPmieducarTransferenciaSolicitacao($det_transferencia['cod_transferencia_solicitacao'], NULL, $this->pessoa_logada, NULL, NULL, NULL, NULL, NULL, NULL, 0);
                    $editou2 = $obj_transferencia->edita();
                    if ($editou2) {
                        $obj = new clsPmieducarMatricula($det_transferencia['ref_cod_matricula_saida'], NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, 4, NULL, NULL, 1, NULL, 0);
                        $editou3 = $obj->edita();
                        if (!$editou3) {
                            $this->mensagem = 'Edição não realizada.<br />';
                            return FALSE;
                        }
                    } else {
                        $this->mensagem = 'Edição não realizada.<br />';
                        return FALSE;
                    }
                } else {
                    $obj_transferencia = new clsPmieducarTransferenciaSolicitacao();
                    $lst_transferencia = $obj_transferencia->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, $this->ref_cod_aluno, FALSE, NULL, NULL, NULL, FALSE, FALSE);
                    // Verifica se existe solicitação de transferência do aluno
                    if (is_array($lst_transferencia)) {
                        // Verifica cada solicitação de transferência do aluno
                        foreach ($lst_transferencia as $transferencia) {
                            $obj_matricula = new clsPmieducarMatricula($transferencia['ref_cod_matricula_saida']);
                            $det_matricula = $obj_matricula->detalhe();
                            // Caso a solicitação seja para uma mesma série
                            if ($det_matricula['ref_ref_cod_serie'] == $this->ref_ref_cod_serie) {
                                $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao'];
                                break;
                            } else {
                                $obj_sequencia = new clsPmieducarSequenciaSerie($det_matricula['ref_ref_cod_serie'], $this->ref_ref_cod_serie, NULL, NULL, NULL, NULL, 1);
                                if ($obj_sequencia->existe()) {
                                    $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao'];
                                    break;
                                }
                            }
                            $ref_cod_transferencia = $transferencia['cod_transferencia_solicitacao'];
                        }
                        if ($ref_cod_transferencia) {
                            $obj_transferencia = new clsPmieducarTransferenciaSolicitacao($ref_cod_transferencia, NULL, $this->pessoa_logada, NULL, $cadastrou, NULL, NULL, NULL, NULL, 1, date('Y-m-d'));
                            $editou2 = $obj_transferencia->edita();
                            if ($editou2) {
                                $obj_transferencia = new clsPmieducarTransferenciaSolicitacao($ref_cod_transferencia);
                                $det_transferencia = $obj_transferencia->detalhe();
                                $matricula_saida = $det_transferencia['ref_cod_matricula_saida'];
                                $obj_matricula = new clsPmieducarMatricula($matricula_saida);
                                $det_matricula = $obj_matricula->detalhe();
                                // Caso a situação da matrícula do aluno esteja em andamento
                                if ($det_matricula['aprovado'] == 3) {
                                    $obj_matricula = new clsPmieducarMatricula($cadastrou, NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, $det_matricula['modulo']);
                                    $editou_mat = $obj_matricula->edita();
                                    if ($editou_mat) {
                                        $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                                        $lst_matricula_turma = $obj_matricula_turma->lista($matricula_saida, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
                                        if (is_array($lst_matricula_turma)) {
                                            $det_matricula_turma = array_shift($lst_matricula_turma);
                                            $obj_matricula_turma = new clsPmieducarMatriculaTurma($matricula_saida, $det_matricula_turma['ref_cod_turma'], $this->pessoa_logada, NULL, NULL, NULL, 0, NULL, $det_matricula_turma['sequencial']);
                                            $editou_mat_turma = $obj_matricula_turma->edita();
                                            if (!$editou_mat_turma) {
                                                $this->mensagem = 'Não foi possível editar a Matrícula Turma.<br />';
                                                return FALSE;
                                            }
                                        }
                                    }
                                }
                                $obj = new clsPmieducarMatricula($matricula_saida, NULL, NULL, NULL, $this->pessoa_logada, NULL, NULL, 4, NULL, NULL, 1, NULL, 0);
                                $editou3 = $obj->edita();
                                if (!$editou3) {
                                    $this->mensagem = 'Edição não realizada.<br />';
                                    return FALSE;
                                }
                            } else {
                                $this->mensagem = 'Edição não realizada.<br />';
                                return FALSE;
                            }
                        }
                    }
                }
                $this->mensagem .= 'Cadastro efetuado com sucesso.<br />';
                header('Location: educar_matricula_lst.php?ref_cod_aluno=' . $this->ref_cod_aluno);
                die;
            }
            $this->mensagem = 'Cadastro não realizado.<br />';
            return FALSE;
        } else {
            $this->mensagem = 'Não foi possível encontrar o "Ano Letivo" em andamento da Escola.<br />';
            return FALSE;
        }
    }
 function Excluir()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_excluir(561, $this->pessoa_logada, 7, 'educar_escola_lst.php');
     $obj = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, $this->ref_ano, NULL, $this->pessoa_logada, NULL, NULL, NULL, 0);
     $excluiu = $obj->excluir();
     if ($excluiu) {
         $obj = new clsPmieducarAnoLetivoModulo($this->ref_ano, $this->ref_ref_cod_escola);
         $excluiu1 = $obj->excluirTodos();
         if ($excluiu1) {
             $this->mensagem .= 'Exclusão efetuada com sucesso.<br />';
             header('Location: educar_escola_lst.php');
             die;
         }
         $this->mensagem = 'Exclusão não realizada.<br />';
         return FALSE;
     }
     $this->mensagem = 'Exclusão não realizada.<br />';
     return FALSE;
 }
 function renderHTML()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     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'];
     // Regra da série
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $this->regra = $regraMapper->find($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;
     }
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $this->nm_curso = $det_curso['nm_curso'];
     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($det_curso['ref_cod_tipo_avaliacao']);
     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
     $conceitual = $det_tipo_avaliacao['conceitual'];
     $obj_matricula_turma = new clsPmieducarMatriculaTurma();
     $obj_matricula_turma->setOrderby('nome_ascii');
     $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, $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, NULL, NULL, NULL, TRUE);
     // Recupera os componentes curriculares da turma
     $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     // Recupera a quantidade de módulos e o nome do módulo da escola/turma
     $modulo = App_Model_IedFinder::getModulo($this->ref_cod_escola, $this->ref_cod_curso, $this->ref_cod_turma, $this->ano);
     $nomeModulo = $modulo['nome'][0];
     $modulos = $modulo['total'];
     if ($lst_matricula_turma) {
         $relatorio = new relatorios('Espelho de Notas Ano - ' . $this->ano, 210, FALSE, 'Espelho de Notas', 'A4', "{$this->nm_instituicao}\n{$this->nm_escola}\n{$this->nm_curso}\n{$this->nm_serie} -  Turma: {$this->nm_turma}         " . date('d/m/Y'));
         $relatorio->setMargem(20, 20, 20, 20);
         $relatorio->exibe_produzido_por = FALSE;
         $array_val = array(array(40, 'Cód.'), array(160, 'Nome do Aluno'));
         foreach (range(1, $modulos) as $num) {
             $array_val[] = array(30, $num . $nomeModulo);
         }
         $array_val[] = array(55, 'M.Parcial');
         $array_val[] = array(50, 'Exame');
         $array_val[] = array(50, 'M.Final');
         $array_val[] = array(38, 'Faltas');
         $arrFuncBody = '
     $values = array();
     foreach ($data as $d) {
       $values[] = $d[$index];
     }
     return $values;
   ';
         $arrFunc = create_function('$data, $index', $arrFuncBody);
         foreach ($componentes as $componente) {
             $relatorio->novalinha(array($componente->nome), 0, 16, TRUE, 'arial', array(400), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE);
             $relatorio->novalinha($arrFunc($array_val, 1), 0, 16, TRUE, 'arial', $arrFunc($array_val, 0), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE);
             foreach ($lst_matricula_turma as $matricula) {
                 $codMatricula = $matricula['ref_cod_matricula'];
                 if (!isset($this->boletim[$codMatricula])) {
                     $boletim = new Avaliacao_Service_Boletim(array('matricula' => $codMatricula, 'RegraDataMapper' => $regraMapper));
                 } else {
                     $boletim = $this->boletim[$codMatricula];
                 }
                 $media_final = $media_parcial = $nota_exame = '';
                 $medias = $boletim->getMediasComponentes();
                 $notas = $boletim->getNotasComponentes();
                 if ($boletim->getRegra()->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) {
                     $faltas = array_sum(CoreExt_Entity::entityFilterAttr($boletim->getFaltasGerais(), 'id', 'quantidade'));
                 } else {
                     $faltas = $boletim->getFaltasComponentes();
                     if (isset($faltas[$componente->id])) {
                         $faltas = array_sum(CoreExt_Entity::entityFilterAttr($faltas[$componente->id], 'id', 'quantidade'));
                     } else {
                         $faltas = '';
                     }
                 }
                 $etapas = range(1, count($notas[$componente->id]));
                 // Se tiver mais etapas nas notas lançadas, significa que prestou exame
                 if (count($etapas) > $modulos) {
                     array_pop($etapas);
                 }
                 $data = array(array(40, $matricula['ref_cod_aluno']), array(160, $matricula['nome']));
                 foreach ($etapas as $i) {
                     $data[] = array(30, $boletim->getNotaComponente($componente->id, $i)->notaArredondada);
                     $media_parcial = $medias[$componente->id][0]->mediaArredondada;
                     if ($i == $modulos) {
                         $media_final = $media_parcial;
                         $media_parcial = '';
                         $nota_exame = $boletim->getNotaComponente($componente->id, 'Rc')->notaArredondada;
                     }
                 }
                 // Adiciona entradas em branco no array de dados
                 for ($i = 0, $loop = $modulos - count($etapas); $i < $loop; $i++) {
                     $data[] = array(30, '');
                 }
                 $data[] = array(55, $media_parcial);
                 $data[] = array(50, $nota_exame);
                 $data[] = array(50, $media_final);
                 $data[] = array(38, $faltas);
                 $relatorio->novalinha($arrFunc($data, 1), 0, 12, FALSE, 'arial', $arrFunc($data, 0), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE);
             }
             $relatorio->quebraPagina();
         }
         $this->get_link = $relatorio->fechaPdf();
     }
     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);
 }
 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);
 }
} elseif (is_numeric($_GET["sem2"]) && $ano_requisitado != 2007 && !$is_padrao) {
    $semestre = $_GET["sem2"];
} else {
    $semestre = null;
}
@session_start();
$pessoa_logada = $_SESSION['id_pessoa'];
session_write_close();
$obj_escolas = new clsPmieducarEscola();
$lst_escolas = $obj_escolas->lista($ref_cod_escola, null, null, $ref_cod_instituicao, null, null, null, null, null, null, 1);
if ($lst_escolas) {
    //$relatorio = new relatorios("RELAÇÃO DOS ALUNOS ENTURMADOS   -   Ano {$ano}                                    Total de Alunos = {$lst_matricula_turma[0]['_total']}",120,false, "i-Educar", "A4", "Prefeitura COBRA Tecnologia\n\nSecretaria da Educação", "#515151");
    $relatorio_criado = false;
    //$relatorio->novaPagina();
    foreach ($lst_escolas as $key => $escola) {
        $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
        $lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($escola['cod_escola'], $ano_requisitado, null, null, 1, null, null, null, null, 1);
        if (is_array($lst_escola_ano_letivo)) {
            $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo);
            $ano = $det_escola_ano_letivo['ano'];
            $obj_matricula_turma = new clsPmieducarMatriculaTurma();
            $obj_matricula_turma->setOrderby("nm_curso, nm_serie, nm_turma, to_ascii(p.nome) ASC");
            $lst_matricula_turma = $obj_matricula_turma->lista3(null, $ref_cod_turma, null, null, null, null, null, null, 1, $ref_ref_cod_serie, $ref_cod_curso, $escola['cod_escola'], null, array(1, 2, 3), null, $ano, 1, true, $semestre);
            if (is_array($lst_matricula_turma)) {
                if (!$relatorio_criado) {
                    $relatorio = new relatorios("RELAÇÃO DOS ALUNOS ENTURMADOS ANO - {$ano}    ", 120, false, "i-Educar", "A4", "Prefeitura COBRA Tecnologia\nSecretaria da Educação\n\n" . date("d/m/Y"), "#515151");
                    $relatorio->setMargem(20, 20, 50, 50);
                    $relatorio->exibe_produzido_por = false;
                    $relatorio_criado = true;
                }
                $relatorio->novalinha(array("{$escola['nome']}"), 0, 16, true, "arial", array(400), "#515151", "#d3d3d3", "#FFFFFF", false, true);
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Faltas/Notas Aluno - Detalhe";
     $this->addBanner("imagens/nvp_top_intranet.jpg", "imagens/nvp_vert_intranet.jpg", "Intranet");
     $this->ref_cod_matricula = $_GET["ref_cod_matricula"];
     $this->ref_cod_turma = $_GET["ref_cod_turma"];
     $this->ref_sequencial_matricula_turma = $_GET["sequencial"];
     $obj_matricula_turma = new clsPmieducarMatriculaTurma();
     //		echo $this->ref_cod_matricula." ".$this->ref_cod_turma;
     $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, $this->ref_cod_turma, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, $this->ref_sequencial_matricula_turma);
     if (is_array($lst_matricula_turma)) {
         $registro = array_shift($lst_matricula_turma);
     }
     if (!$registro) {
         header("location: educar_falta_nota_aluno_lst.php");
         die;
     }
     if (class_exists("clsPmieducarTurma")) {
         $obj_ref_ref_cod_turma = new clsPmieducarTurma($registro["ref_cod_turma"]);
         $det_ref_ref_cod_turma = $obj_ref_ref_cod_turma->detalhe();
         $nm_turma = $det_ref_ref_cod_turma["nm_turma"];
     } else {
         $registro["ref_cod_turma"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarTurma\n-->";
     }
     if (class_exists("clsPmieducarSerie")) {
         $obj_ref_cod_serie = new clsPmieducarSerie($registro["ref_ref_cod_serie"]);
         $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
         $nm_serie = $det_ref_cod_serie["nm_serie"];
     } else {
         $registro["ref_cod_serie"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarSerie\n-->";
     }
     if (class_exists("clsPmieducarCurso")) {
         $obj_ref_cod_curso = new clsPmieducarCurso($registro["ref_cod_curso"]);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $nm_curso = $det_ref_cod_curso["nm_curso"];
         $padrao_ano_escolar = $det_ref_cod_curso["padrao_ano_escolar"];
         $falta_ch_globalizada = $det_ref_cod_curso["falta_ch_globalizada"];
         if ($padrao_ano_escolar) {
             $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
             $lst_ano_letivo = $obj_ano_letivo->lista($registro["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"];
                 $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
                 $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($ano_letivo, $registro["ref_ref_cod_escola"]);
                 if (is_array($lst_ano_letivo_modulo)) {
                     $qtd_modulos = count($lst_ano_letivo_modulo);
                 }
             }
         } else {
             $obj_turma_modulo = new clsPmieducarTurmaModulo();
             $lst_turma_modulo = $obj_turma_modulo->lista($registro["ref_cod_turma"]);
             if (is_array($lst_turma_modulo)) {
                 $qtd_modulos = count($lst_turma_modulo);
             }
         }
     } else {
         $registro["ref_cod_curso"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarCurso\n-->";
     }
     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&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarInstituicao\n-->";
     }
     if (class_exists("clsPmieducarEscola")) {
         $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_ref_cod_escola"]);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $nm_escola = $det_ref_cod_escola["nome"];
     } else {
         $registro["ref_ref_cod_escola"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarEscola\n-->";
     }
     if (class_exists("clsPmieducarAluno")) {
         $obj_aluno = new clsPmieducarAluno();
         $lst_aluno = $obj_aluno->lista($registro["ref_cod_aluno"], null, null, null, null, null, null, null, null, null, 1);
         if (is_array($lst_aluno)) {
             $det_aluno = array_shift($lst_aluno);
             $registro["ref_cod_aluno"] = $det_aluno["nome_aluno"];
         }
     } else {
         $registro["ref_cod_aluno"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarAluno\n-->";
     }
     if ($registro["ref_cod_aluno"]) {
         $this->addDetalhe(array("Aluno", "{$registro["ref_cod_aluno"]}"));
     }
     if ($registro["ref_cod_matricula"]) {
         $this->addDetalhe(array("Matr&iacute;cula", "{$registro["ref_cod_matricula"]}"));
     }
     $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&ccedil;&atilde;o", "{$registro["ref_cod_instituicao"]}"));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($nm_escola) {
             $this->addDetalhe(array("Escola", "{$nm_escola}"));
         }
     }
     if ($nm_curso) {
         $this->addDetalhe(array("Curso", "{$nm_curso}"));
     }
     if ($nm_serie) {
         $this->addDetalhe(array("S&eacute;rie", "{$nm_serie}"));
     }
     if ($nm_turma) {
         $this->addDetalhe(array("Turma", "{$nm_turma}"));
     }
     if ($qtd_modulos) {
         $this->addDetalhe(array("Quantidade de M&oacute;dulos", "{$qtd_modulos}"));
     }
     $obj_matricula = new clsPmieducarMatricula($registro["ref_cod_matricula"]);
     $det_matricula = $obj_matricula->detalhe();
     $modulo = $det_matricula["modulo"];
     $aprovado = $det_matricula["aprovado"];
     $ano_matricula = $det_matricula["ano"];
     $max_qtd_nota = 0;
     $min_qtd_nota = 10;
     //************************************* DETALHE - MATRICULADO NUMA SERIE *************************************//
     if ($registro["ref_ref_cod_serie"]) {
         $obj_dispensa = new clsPmieducarDispensaDisciplina();
         $lst_dispensa = $obj_dispensa->lista($registro["ref_cod_matricula"], $registro["ref_ref_cod_serie"], $registro["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($registro["ref_ref_cod_serie"], $registro["ref_ref_cod_escola"], null, 1, true);
         if ($lst_disciplinas) {
             foreach ($lst_disciplinas as $disciplinas) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 $qtd_notas = $obj_nota_aluno->getQtdNotas(null, null, $disciplinas["ref_cod_disciplina"], $this->ref_cod_matricula);
                 if ($max_qtd_nota < $qtd_notas) {
                     $max_qtd_nota = $qtd_notas;
                 }
                 if ($min_qtd_nota > $qtd_notas) {
                     $min_qtd_nota = $qtd_notas;
                 }
             }
         }
         if (is_array($lst_disciplinas)) {
             $tabela = "<table>\n\t\t\t\t\t\t       <tr align='center'>\n\t\t\t\t\t\t           <td rowspan='2' bgcolor='#a1b3bd'><b>Nome</b></td>";
             for ($i = 1; $i <= $max_qtd_nota; $i++) {
                 if ($qtd_modulos < $i) {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>Exame</b></td>";
                 } else {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>M&oacute;dulo {$i}</b></td>";
                 }
             }
             $tabela .= "</tr>";
             $tabela .= "<tr align=center>";
             for ($i = 1; $i <= $max_qtd_nota; $i++) {
                 if ($qtd_modulos < $i) {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>Nota</b></td>";
                 } else {
                     $tabela .= "<td bgcolor='#a1b3bd'><b>Nota</b></td><td bgcolor='#a1b3bd'><b>Faltas</b></td>";
                 }
             }
             $tabela .= "</tr>";
             $cont = 0;
             $qtd_disciplinas = count($lst_disciplinas);
             $prim_disciplina = false;
             foreach ($lst_disciplinas as $valor) {
                 //					echo "<pre>"; print_r($lst_disciplinas); die();
                 $parar = false;
                 if (!strcmp($valor["nm_disciplina"], "Matemática")) {
                     $parar = true;
                 }
                 if (!$dispensa[$valor["ref_cod_disciplina"]]) {
                     if ($cont % 2 == 0) {
                         $color = " bgcolor='#E4E9ED' ";
                     } else {
                         $color = " bgcolor='#FFFFFF' ";
                     }
                     unset($notas_aluno);
                     $obj_nota_aluno = new clsPmieducarNotaAluno();
                     $obj_nota_aluno->setOrderby("modulo ASC");
                     $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, $registro["ref_ref_cod_serie"], $registro["ref_ref_cod_escola"], $valor["ref_cod_disciplina"], $registro["ref_cod_matricula"], null, null, null, null, null, null, 1);
                     if (is_array($lst_nota_aluno)) {
                         foreach ($lst_nota_aluno as $key => $nota_aluno) {
                             if ($nota_aluno['nota']) {
                                 $notas_aluno[] = $nota_aluno["nota"];
                             } else {
                                 $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                                 $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                                 $notas_aluno[] = $det_avaliacao_valores["nome"];
                             }
                         }
                     }
                     unset($faltas_aluno);
                     if ($falta_ch_globalizada) {
                         $obj_faltas = new clsPmieducarFaltas();
                         $obj_faltas->setOrderby("sequencial asc");
                         $lst_faltas = $obj_faltas->lista($registro["ref_cod_matricula"]);
                         if (is_array($lst_faltas)) {
                             foreach ($lst_faltas as $key => $faltas) {
                                 $faltas_aluno[] = $faltas['falta'];
                             }
                         }
                     } else {
                         $obj_falta_aluno = new clsPmieducarFaltaAluno();
                         $obj_falta_aluno->setOrderby("cod_falta_aluno ASC");
                         $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, $registro["ref_ref_cod_serie"], $registro["ref_ref_cod_escola"], $valor["ref_cod_disciplina"], $registro["ref_cod_matricula"], null, null, null, null, null, 1);
                         if (is_array($lst_falta_aluno)) {
                             foreach ($lst_falta_aluno as $key => $falta_aluno) {
                                 $faltas_aluno[] = $falta_aluno["faltas"];
                             }
                         }
                     }
                     $obj_disciplina = new clsPmieducarDisciplina($valor["ref_cod_disciplina"]);
                     $det_disciplina = $obj_disciplina->detalhe();
                     $nm_disciplina = $det_disciplina["nm_disciplina"];
                     $apura_falta = $det_disciplina["apura_falta"];
                     $tabela .= "<tr align='left'>\n\t\t\t\t\t\t\t\t\t    <td {$color} align='left'>{$nm_disciplina}</td>";
                     for ($i = 0; $i < $max_qtd_nota; $i++) {
                         if ($qtd_modulos - 1 < $i) {
                             if ($notas_aluno[$i]) {
                                 $notas_aluno[$i] = number_format($notas_aluno[$i], 2, ",", ".");
                                 $tabela .= "<td align='center' colspan='2' {$color} align='left'>{$notas_aluno[$i]}</td>";
                             } else {
                                 $tabela .= "<td align='center' colspan='2' {$color} align='left'>-</td>";
                             }
                         } else {
                             if ($notas_aluno[$i]) {
                                 $tabela .= "<td align='center' {$color} align='left'>{$notas_aluno[$i]}</td>";
                             } else {
                                 $tabela .= "<td align='center' {$color} align='left'>-</td>";
                             }
                             if ($falta_ch_globalizada && !$prim_disciplina) {
                                 $tabela .= "<td align='center' rowspan='{$qtd_disciplinas}' {$color} align='left'>{$faltas_aluno[$i]}</td>";
                             } else {
                                 if (!$falta_ch_globalizada) {
                                     if (is_numeric($faltas_aluno[$i])) {
                                         $tabela .= "<td align='center' {$color} align='left'>{$faltas_aluno[$i]}</td>";
                                     } else {
                                         $tabela .= "<td align='center' {$color} align='left'>-</td>";
                                     }
                                 }
                             }
                         }
                     }
                     $prim_disciplina = true;
                     $tabela .= "</tr>";
                     $cont++;
                 }
             }
             if (!$ano_letivo || $ano_letivo == $ano_matricula) {
                 if ($max_qtd_nota > 0) {
                     $tabela .= "<tr align='center'>\n\t\t\t\t\t\t\t\t\t    <td align='center'></td>";
                     for ($i = 1; $i <= $max_qtd_nota; $i++) {
                         //if ( ($max_qtd_nota != $min_qtd_nota) && ($min_qtd_nota < $i) && ($qtd_modulos >= $modulo) && false)
                         if (!$det_ref_cod_curso['edicao_final']) {
                             $tabela .= "<td colspan='2'></td>";
                         } else {
                             $tabela .= "<td align='center' colspan='2' bgcolor='#a1b3bd' align='center'><a href='educar_falta_nota_aluno_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&ref_sequencial_matricula_turma={$registro["sequencial"]}&modulo={$i}'>Editar</a></td>";
                         }
                     }
                     $tabela .= "</tr>";
                 }
             }
             $tabela .= "</table>";
         }
     } else {
         $obj_disciplinas = new clsPmieducarDisciplina();
         $obj_disciplina->setOrderby("nm_disciplina");
         $lst_disciplinas = $obj_disciplinas->lista(null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $registro["ref_cod_curso"]);
         foreach ($lst_disciplinas as $disciplinas) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             $qtd_notas = $obj_nota_aluno->getQtdNotas(null, null, null, $this->ref_cod_matricula, $disciplinas["cod_disciplina"]);
             if ($max_qtd_nota < $qtd_notas) {
                 $max_qtd_nota = $qtd_notas;
             }
         }
         if (is_array($lst_disciplinas)) {
             $tabela = "<table>\n\t\t\t\t\t\t       <tr align='center'>\n\t\t\t\t\t\t           <td rowspan='2' bgcolor='#a1b3bd'><b>Nome</b></td>";
             for ($i = 1; $i <= $max_qtd_nota; $i++) {
                 if ($qtd_modulos < $i) {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>Exame</b></td>";
                 } else {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>M&oacute;dulo {$i}</b></td>";
                 }
             }
             $tabela .= "</tr>";
             $tabela .= "<tr align=center>";
             for ($i = 1; $i <= $max_qtd_nota; $i++) {
                 if ($qtd_modulos < $i) {
                     $tabela .= "<td colspan='2' bgcolor='#a1b3bd'><b>Nota</b></td>";
                 } else {
                     $tabela .= "<td bgcolor='#a1b3bd'><b>Nota</b></td><td bgcolor='#a1b3bd'><b>Faltas</b></td>";
                 }
             }
             $tabela .= "</tr>";
             $cont = 0;
             $qtd_disciplinas = count($lst_disciplinas);
             $prim_disciplina = false;
             foreach ($lst_disciplinas as $valor) {
                 if ($cont % 2 == 0) {
                     $color = " bgcolor='#E4E9ED' ";
                 } else {
                     $color = " bgcolor='#FFFFFF' ";
                 }
                 unset($notas_aluno);
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 $obj_nota_aluno->setOrderby("modulo ASC");
                 $lst_nota_aluno = $obj_nota_aluno->lista(null, null, null, null, null, null, $registro["ref_cod_matricula"], null, null, null, null, null, null, 1, null, $valor["cod_disciplina"]);
                 if (is_array($lst_nota_aluno)) {
                     foreach ($lst_nota_aluno as $key => $nota_aluno) {
                         if ($nota_aluno['nota']) {
                             $notas_aluno[] = $nota_aluno["nota"];
                         } else {
                             $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores($nota_aluno["ref_ref_cod_tipo_avaliacao"], $nota_aluno["ref_sequencial"]);
                             $det_avaliacao_valores = $obj_avaliacao_valores->detalhe();
                             $notas_aluno[] = $det_avaliacao_valores["nome"];
                         }
                     }
                 }
                 unset($faltas_aluno);
                 if ($falta_ch_globalizada) {
                     $obj_faltas = new clsPmieducarFaltas();
                     $lst_faltas = $obj_faltas->lista($registro["ref_cod_matricula"]);
                     if (is_array($lst_faltas)) {
                         foreach ($lst_faltas as $key => $faltas) {
                             $faltas_aluno[] = $faltas['falta'];
                         }
                     }
                 } else {
                     $obj_falta_aluno = new clsPmieducarFaltaAluno();
                     $obj_falta_aluno->setOrderby("cod_falta_aluno ASC");
                     $lst_falta_aluno = $obj_falta_aluno->lista(null, null, null, null, null, null, $registro["ref_cod_matricula"], null, null, null, null, null, 1, null, $valor["cod_disciplina"]);
                     if (is_array($lst_falta_aluno)) {
                         foreach ($lst_falta_aluno as $key => $falta_aluno) {
                             $faltas_aluno[] = $falta_aluno["faltas"];
                         }
                     }
                 }
                 $nm_disciplina = $valor["nm_disciplina"];
                 $apura_falta = $valor["apura_falta"];
                 $tabela .= "<tr align='center'>\n\t\t\t\t\t\t\t\t    <td {$color} align='center'>{$nm_disciplina}</td>";
                 for ($i = 0; $i < $max_qtd_nota; $i++) {
                     if ($qtd_modulos - 1 < $i) {
                         if ($notas_aluno[$i]) {
                             $notas_aluno[$i] = number_format($notas_aluno[$i], 2, ",", ".");
                             $tabela .= "<td align='center' colspan='2' {$color} align='left'>{$notas_aluno[$i]}</td>";
                         } else {
                             $tabela .= "<td align='center' colspan='2' {$color} align='left'>-</td>";
                         }
                     } else {
                         if ($notas_aluno[$i]) {
                             $tabela .= "<td align='center' {$color} align='left'>{$notas_aluno[$i]}</td>";
                         } else {
                             $tabela .= "<td align='center' {$color} align='left'>-</td>";
                         }
                         if ($falta_ch_globalizada && !$prim_disciplina) {
                             $tabela .= "<td align='center' rowspan='{$qtd_disciplinas}' {$color} align='left'>{$faltas_aluno[$i]}</td>";
                         } else {
                             if (!$falta_ch_globalizada) {
                                 if (is_numeric($faltas_aluno[$i])) {
                                     $tabela .= "<td align='center' {$color} align='left'>{$faltas_aluno[$i]}</td>";
                                 } else {
                                     $tabela .= "<td align='center' {$color} align='left'>-</td>";
                                 }
                             }
                         }
                     }
                 }
                 $prim_disciplina = true;
                 $tabela .= "</tr>";
                 $cont++;
             }
             if ($max_qtd_nota > 0) {
                 $tabela .= "<tr align='center'>\n\t\t\t\t\t\t\t\t    <td align='center'></td>";
                 for ($i = 1; $i <= $max_qtd_nota; $i++) {
                     //if ( ($max_qtd_nota != $min_qtd_nota) && ($min_qtd_nota < $i) && ($qtd_modulos <= $modulo) )
                     if (!$det_ref_cod_curso['edicao_final']) {
                         $tabela .= "<td colspan='2'></td>";
                     } else {
                         $tabela .= "<td align='center' colspan='2' bgcolor='#a1b3bd' align='center'><a href='educar_falta_nota_aluno_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&ref_sequencial_matricula_turma={$registro["sequencial"]}&modulo={$i}'>Editar</a></td>";
                     }
                 }
                 $tabela .= "</tr>";
             }
             $tabela .= "</table>";
         }
     }
     if ($tabela) {
         $this->addDetalhe(array("Disciplina", "{$tabela}"));
     }
     if ($aprovado) {
         if ($aprovado == 1) {
             $aprovado_ = "Aprovado";
         } elseif ($aprovado == 2) {
             $aprovado_ = "Reprovado";
         } elseif ($aprovado == 3) {
             if ($qtd_modulos < $modulo) {
                 $aprovado_ = "Em Exame";
             } else {
                 $aprovado_ = "Em Andamento";
             }
         }
         $this->addDetalhe(array("Situa&ccedil;&atilde;o", "{$aprovado_}"));
     }
     if ($obj_permissoes->permissao_cadastra(642, $this->pessoa_logada, 7)) {
         if ($qtd_modulos >= $modulo && $aprovado == 3) {
             $this->array_botao = array("Nova Nota/Falta");
             $this->array_botao_url = array("educar_falta_nota_aluno_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&ref_sequencial_matricula_turma={$registro["sequencial"]}");
         } elseif ($qtd_modulos < $modulo && $aprovado == 3) {
             $this->array_botao = array("Nota Exame");
             if ($qtd_modulos < $max_qtd_nota) {
                 $this->array_botao_url = array("educar_falta_nota_aluno_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&ref_sequencial_matricula_turma={$registro["sequencial"]}&modulo={$max_qtd_nota}");
             } else {
                 $this->array_botao_url = array("educar_falta_nota_aluno_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&ref_sequencial_matricula_turma={$registro["sequencial"]}");
             }
         }
     }
     $this->url_cancelar = "educar_falta_nota_aluno_lst.php";
     $this->largura = "100%";
 }
 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;
     }
     $this->ref_cod_modulo = explode('-', $this->ref_cod_modulo);
     $this->ref_cod_modulo = array_pop($this->ref_cod_modulo);
     $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'];
     //
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']);
     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;
     }
     $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();
     $this->nm_curso = $det_curso['nm_curso'];
     // Seleciona os alunos da turma
     $obj_matricula_turma = new clsPmieducarMatriculaTurma();
     $obj_matricula_turma->setOrderby('nome_ascii');
     $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, $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, NULL, NULL, NULL, TRUE, NULL, NULL, TRUE, NULL, $this->semestre);
     $componentes = $array_disc = $array_cab = array();
     if ('f' == $this->tipo && $this->regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) {
         $array_disc = $array_cab = array("FALTAS");
     } else {
         try {
             $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
         } catch (App_Model_Exception $e) {
         }
     }
     if ($lst_matricula_turma) {
         $titulo = sprintf('Espelho de Notas Bimestral %dº Bimestre Ano %d', $this->ref_cod_modulo, $this->ano);
         $subtitulo = sprintf("%s\n%s\n%s\n%s -  Turma: %s             %s", $this->nm_instituicao, $this->nm_escola, $this->nm_curso, $this->nm_serie, $this->nm_turma, date('d/m/Y'));
         $relatorio = new relatorios($titulo, 210, FALSE, 'Espelho de Notas Bimestral', 'A4', $subtitulo);
         $relatorio->setMargem(20, 20, 50, 50);
         $relatorio->exibe_produzido_por = FALSE;
         if (0 == count($array_disc) && 0 < count($componentes)) {
             foreach ($componentes as $componente) {
                 $array_disc[$componente->id] = $componente;
                 $array_cab[] = str2upper($componente->abreviatura);
             }
             asort($array_disc);
             sort($array_cab);
         }
         $array_cab = array_merge(array('Cód.', 'Nome do Aluno'), $array_cab);
         $divisoes = array(40, 165);
         $divisoes_texto = array(40, 165);
         $tamanho_divisao = 32 + (10 - count($array_disc)) * 5;
         for ($ct = 0; $ct < 20; $ct++) {
             $divisoes[] = $tamanho_divisao;
             $divisoes_texto[] = $tamanho_divisao;
         }
         $relatorio->novalinha($array_cab, 0, 16, TRUE, 'arial', $divisoes, '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE);
         foreach ($lst_matricula_turma as $matricula) {
             $boletim = new Avaliacao_Service_Boletim(array('matricula' => $matricula['ref_cod_matricula'], 'RegraDataMapper' => $regraMapper));
             $tam_fonte = NULL;
             $tam_linha = 16;
             $componentes = $boletim->getComponentes();
             foreach ($array_disc as $cid => $componente) {
                 // Presença geral, seleciona apenas a quantidade de faltas da etapa
                 if (0 == $cid) {
                     $faltas[$cid] = $boletim->getFalta($this->ref_cod_modulo);
                     break;
                 }
                 if (!in_array($cid, array_keys($componentes))) {
                     $notas[$cid] = 'D';
                     $faltas[$cid] = 'D';
                     continue;
                 }
                 $notas[$cid] = $boletim->getNotaComponente($cid, $this->ref_cod_modulo);
                 $faltas[$cid] = $boletim->getFalta($this->ref_cod_modulo, $cid);
             }
             // @todo WTF?!
             if (strlen($matricula['nome']) > 24) {
                 $matricula['nome'] = explode(' ', $matricula['nome']);
                 if (is_array($matricula['nome'])) {
                     $nome_aluno = array_shift($matricula['nome']);
                 }
                 if (is_array($matricula['nome'])) {
                     $nome_aluno .= ' ' . array_shift($matricula['nome']);
                 }
                 if (is_array($matricula['nome'])) {
                     $nome_aluno .= ' ' . array_pop($matricula['nome']);
                 }
                 $matricula['nome'] = $nome_aluno;
             }
             unset($array_val);
             $array_val = array();
             $array_val[] = $matricula['ref_cod_aluno'];
             $array_val[] = $matricula['nome'];
             foreach ($array_disc as $cid => $disc) {
                 if ($this->tipo == 'n') {
                     $array_val[] = $notas[$cid]->notaArredondada;
                     continue;
                 } else {
                     $array_val[] = $faltas[$cid]->quantidade;
                     continue;
                 }
                 $array_val[] = '';
             }
             $relatorio->novalinha($array_val, 0, $tam_linha, FALSE, 'arial', $divisoes_texto, '#515151', '#d3d3d3', '#FFFFFF', FALSE, TRUE, NULL, $tam_fonte);
         }
         $this->get_link = $relatorio->fechaPdf();
     }
     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);
 }
 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&atilde;o foi poss&iacute;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&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, $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);
 }
 /**
  * Cria um novo registro
  *
  * @return bool
  */
 function cadastra()
 {
     if (is_numeric($this->ref_ano) && is_numeric($this->ref_ref_cod_escola) && is_numeric($this->sequencial) && is_numeric($this->ref_cod_modulo) && is_string($this->data_inicio) && is_string($this->data_fim)) {
         $db = new clsBanco();
         $campos = "";
         $valores = "";
         $gruda = "";
         if (is_numeric($this->ref_ano)) {
             $campos .= "{$gruda}ref_ano";
             $valores .= "{$gruda}'{$this->ref_ano}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_ref_cod_escola)) {
             $campos .= "{$gruda}ref_ref_cod_escola";
             $valores .= "{$gruda}'{$this->ref_ref_cod_escola}'";
             $gruda = ", ";
         }
         if (is_numeric($this->sequencial)) {
             $campos .= "{$gruda}sequencial";
             $valores .= "{$gruda}'{$this->sequencial}'";
             $gruda = ", ";
         }
         if (is_numeric($this->ref_cod_modulo)) {
             $campos .= "{$gruda}ref_cod_modulo";
             $valores .= "{$gruda}'{$this->ref_cod_modulo}'";
             $gruda = ", ";
         }
         if (is_string($this->data_inicio)) {
             $campos .= "{$gruda}data_inicio";
             $valores .= "{$gruda}'{$this->data_inicio}'";
             $gruda = ", ";
         }
         if (is_string($this->data_fim)) {
             $campos .= "{$gruda}data_fim";
             $valores .= "{$gruda}'{$this->data_fim}'";
             $gruda = ", ";
         }
         // ativa escolaAnoLetivo se estiver desativado
         // (quando o escolaAnoLetivo é 'excluido' o registro não é removido)
         $escolaAnoLetivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, $this->ref_ano, null, $_SESSION['id_pessoa'], null, null, null, 1);
         $escolaAnoLetivoDetalhe = $escolaAnoLetivo->detalhe();
         if (isset($escolaAnoLetivoDetalhe['ativo']) and $escolaAnoLetivoDetalhe['ativo'] != '1') {
             $escolaAnoLetivo->edita();
         }
         $db->Consulta("INSERT INTO {$this->_tabela} ( {$campos} ) VALUES( {$valores} )");
         return true;
     }
     return false;
 }
require_once "include/clsBase.inc.php";
require_once "include/clsCadastro.inc.php";
require_once "include/relatorio.inc.php";
require_once "include/pmieducar/geral.inc.php";
$ref_cod_escola = $_GET['ref_cod_escola'];
$ref_cod_curso = $_GET['ref_cod_curso'];
$ref_ref_cod_serie = $_GET['ref_ref_cod_serie'];
$ano_requisitado = $_GET["ano"];
if (is_numeric($_GET["sem1"]) && $ano_requisitado != 2007 && !$is_padrao) {
    $semestre = $_GET["sem1"];
} elseif (is_numeric($_GET["sem2"]) && $ano_requisitado != 2007 && !$is_padrao) {
    $semestre = $_GET["sem2"];
} else {
    $semestre = null;
}
$obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
//		$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista( $ref_cod_escola,$ano_requisitado,null,null,1,null,null,null,null,1 );
$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($ref_cod_escola, $ano_requisitado, null, null, null, null, null, null, null, 1);
if (is_array($lst_escola_ano_letivo)) {
    $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo);
    $ano = $det_escola_ano_letivo['ano'];
    $obj_matricula_turma = new clsPmieducarMatriculaTurma();
    $obj_matricula_turma->setOrderby("nm_curso, nm_serie, to_ascii(nome) ASC");
    $lst_matricula_turma = $obj_matricula_turma->dadosAlunosNaoEnturmados($ref_cod_escola, $ref_ref_cod_serie, $ref_cod_curso, $ano, true, $semestre);
    if (is_array($lst_matricula_turma)) {
        $total = count($lst_matricula_turma);
        $relatorio = new relatorios("RELAÇÃO DOS ALUNOS NÃO ENTURMADOS   -   Ano {$ano}                                    Total de Alunos = {$total}", 120, false, "i-Educar", "A4", "Prefeitura COBRA Tecnologia\nSecretaria da Educação\n\n" . date("d/m/Y"), "#515151");
        $relatorio->setMargem(20, 20, 50, 50);
        $relatorio->exibe_produzido_por = false;
        $relatorio->novalinha(array("Cód. Aluno", "Nome do Aluno", "Data Nascimento", "Nome do Responsável"), 0, 16, true, "arial", array(75, 175, 100), "#515151", "#d3d3d3", "#FFFFFF", false, true);
        $cod_curso = 0;
 function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php");
     $this->lst_matriculas = unserialize(urldecode($_POST["lst_matriculas"]));
     $this->cod_disciplinas = unserialize(urldecode($_POST["cod_disciplinas"]));
     $this->lst_apura_falta = unserialize(urldecode($_POST["lst_apura_falta"]));
     if (is_array($this->lst_matriculas)) {
         //			Verifica se o professor aprovou ou reprovou algum aluno
         if ($this->classifica == "S") {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             $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 ($lst_exame) {
                 foreach ($lst_exame as $exame) {
                     $obj_matricula = new clsPmieducarMatricula($exame["ref_ref_cod_matricula"]);
                     $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) {
                             $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}_";
                             $campo_aluno = "nm_aluno_{$det_aluno["ref_idpes"]}";
                         }
                     }
                     if (isset($this->{$campo_aluno})) {
                         //							Verifica se a média é maior ou igual a média mínima e se foi aprovado pelo professor
                         if ($exame["media"] >= $this->media && $this->{$campo_aprovacao} == "on") {
                             //								Verifica se o aluno não foi reprovado ou deixado em exame
                             if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") {
                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                             }
                         } else {
                             if ($exame["media"] < $this->media && $this->{$campo_aprovacao} == "on") {
                                 //								Verifica se o aluno não foi reprovado
                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "R";
                                 }
                             } else {
                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                             }
                         }
                     }
                 }
                 if (is_array($aprovado)) {
                     foreach ($aprovado as $matricula => $verificador) {
                         //							Verifica se o aluno foi aprovado ou deixado em exame
                         if ($verificador == "S" || $verificador == "R") {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matrícula aida está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi aprovado
                                 if ($verificador == "S") {
                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1);
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                         $obj_matricula->edita();
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 } else {
                                     if ($verificador == "R") {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     }
                                 }
                             }
                         } else {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matricula ainda está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi reprovado
                                 if ($verificador == "N") {
                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1);
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao alterar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}");
             die;
         } else {
             foreach ($this->lst_matriculas as $matriculas) {
                 //					Verifica se o ano letivo ainda está em andamento
                 if ($this->num_modulo <= $this->qtd_modulos) {
                     //						Verifica se a disciplina apura falta
                     if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                         $campo_falta = "faltas_{$matriculas[1]}";
                     } else {
                         if ($this->falta_ch_globalizada == 1) {
                             $campo_falta = "faltas_{$matriculas[1]}";
                         }
                     }
                     $campo_nota = "nota_{$matriculas[1]}";
                     $obj_mat_tur = new clsPmieducarMatriculaTurma();
                     $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1);
                     $sequencial = 0;
                     //echo "<pre>";
                     //print_r( $lst_mat_tur );
                     if (is_array($lst_mat_tur)) {
                         foreach ($lst_mat_tur as $registro) {
                             if ($sequencial == 0) {
                                 $sequencial = $registro["sequencial"];
                             } else {
                                 if ($sequencial < $registro["sequencial"]) {
                                     $sequencial = $registro["sequencial"];
                                 }
                             }
                         }
                         //$sequencial = ( count( $lst_mat_tur ) );
                         //$sequencial = $lst_mat_tur["sequencial"];
                     } else {
                         $this->mensagem = "Erro no cadastro de nota!<br>";
                     }
                     $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial);
                     if (!$obj_nota_aluno->cadastra()) {
                         $this->mensagem = "Erro no cadastro de nota!<br>";
                     }
                     //						Verifica se a falta não é globalizada
                     if ($this->falta_ch_globalizada == 0) {
                         //							Verifica se a disciplina apura falta
                         if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                             //								Verifica se o aluno possui alguma falta
                             if ($this->{$campo_falta} > 0) {
                                 $obj_falta_aluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $this->ref_cod_turma, $matriculas[2], $this->{$campo_falta}, null, null, 1, $sequencial);
                                 if (!$obj_falta_aluno->cadastra()) {
                                     $this->mensagem = "Erro no cadastro de falta!<br>";
                                 }
                             }
                         }
                     } else {
                         if ($this->falta_ch_globalizada == 1) {
                             //							Verifica se o aluno possui alguma falta
                             if ($this->{$campo_falta} > 0) {
                                 $obj_faltas = new clsPmieducarFaltas();
                                 $lst_faltas = $obj_faltas->lista($matriculas[2]);
                                 $sequencial = count($lst_faltas) + 1;
                                 $obj_faltas = new clsPmieducarFaltas($matriculas[2], $sequencial, $this->pessoa_logada, $this->{$campo_falta});
                                 if (!$obj_faltas->cadastra()) {
                                     $this->mensagem = "Erro no cadastro de falta!<br>";
                                 }
                             }
                         }
                     }
                 }
             }
             //				Verifica se a turma está no último módulo
             if ($this->qtd_modulos == $this->num_modulo) {
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                 $lst_matricula_turma = $obj_matricula_turma->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1);
                 if ($lst_matricula_turma) {
                     foreach ($lst_matricula_turma as $matricula) {
                         $obj_nota_aluno = new clsPmieducarNotaAluno();
                         //							Busca se todas as notas já foram dadas para o aluno
                         $todas_notas = $obj_nota_aluno->todasNotas($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->num_modulo, $matricula["ref_cod_matricula"]);
                         //							Verifica se todas as notas já foram dadas para o aluno
                         if ($todas_notas == 'S') {
                             if ($this->conceitual == 0) {
                                 //									Carrega as médias de cada disciplina do 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);
                                 if ($lst_exame) {
                                     foreach ($lst_exame as $exame) {
                                         if ($exame["ref_ref_cod_matricula"] == $matricula["ref_cod_matricula"]) {
                                             //												Verifica se a média do aluno é igual ou superior a média mínima e se a freqüência do aluno é igual ou maior que a freqüência mínima
                                             if ($exame["media"] >= $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) {
                                                 //													Verifica se o aluno não foi reprovado ou deixado de recuperação
                                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                                                 }
                                             } else {
                                                 if ($exame["media"] < $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) {
                                                     //													Verifica se o aluno não foi reprovado
                                                     if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                                         $aprovado[$exame["ref_ref_cod_matricula"]] = "R";
                                                     }
                                                 } else {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                             if ($this->conceitual == 1) {
                                 $obj_aluno = new clsPmieducarAluno($matricula["ref_cod_aluno"]);
                                 $det_aluno = $obj_aluno->detalhe();
                                 $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}";
                                 if ($this->{$campo_aprovacao} == "S") {
                                     $aprovado[$matricula["ref_cod_matricula"]] = "S";
                                 } elseif ($this->{$campo_aprovacao} == "N") {
                                     $aprovado[$matricula["ref_cod_matricula"]] = "N";
                                 }
                             }
                         }
                     }
                 }
                 if (is_array($aprovado)) {
                     foreach ($aprovado as $matricula => $verificador) {
                         //							Verifica se o aluno foi aprovado ou deixado em exame
                         if ($verificador == "S" || $verificador == "R") {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matrícula está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi aprovado
                                 if ($verificador == "S") {
                                     if ($this->falta_ch_globalizada == 1) {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1);
                                     } else {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0);
                                     }
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                         if ($obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 } else {
                                     if ($verificador == "R") {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     }
                                 }
                             }
                         } else {
                             if ($verificador == "N" && $this->conceitual == 1) {
                                 $obj_matricula = new clsPmieducarMatricula($matricula);
                                 $det_matricula = $obj_matricula->detalhe();
                                 if ($det_matricula["aprovado"] == 3) {
                                     $obj_historico = new clsPmieducarHistoricoEscolar();
                                     $lst_historico = $obj_historico->lista($matricula);
                                     $seq = count($lst_historico) + 1;
                                     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                     $det_ano_letivo = $obj_ano_letivo->detalhe();
                                     $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                     $det_escola = $obj_escola->detalhe();
                                     if ($this->falta_ch_globalizada == 1) {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1);
                                     } else {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0);
                                     }
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                                         if ($obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 }
                             }
                         }
                     }
                 }
                 $obj_turma_modulo = new clsPmieducarTurmaModulo();
                 $fimAnoLetivo = $obj_turma_modulo->fimAno($this->ref_cod_turma, $this->qtd_modulos);
                 //					$total_notas = $obj_nota_aluno->retornaTotalNotas( $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma );
                 //					if ( $total_notas == ( $this->qtd_modulos * $this->qtd_disciplinas ) )
                 if ($fimAnoLetivo == "S") {
                     header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}");
                     die;
                 } else {
                     header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
                     die;
                 }
             } else {
                 if ($this->exame == "S") {
                     foreach ($this->lst_matriculas as $matriculas) {
                         //						Verifica se todos os módulos já terminaram
                         if ($this->num_modulo > $this->qtd_modulos) {
                             $campo_nota = "nota_{$matriculas[1]}";
                             $obj_mat_tur = new clsPmieducarMatriculaTurma();
                             $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1);
                             if (is_array($lst_mat_tur)) {
                                 //$sequencial = ( count( $lst_mat_tur ) );
                                 $sequencial = $lst_mat_tur["sequencial"];
                             } else {
                                 $this->mensagem = "Erro no cadastro de nota!<br>";
                             }
                             $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial);
                             if (!$obj_nota_aluno->cadastra()) {
                                 $this->mensagem = "Erro no cadastro de nota!<br>";
                             }
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $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);
                             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
                             //							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)) {
                                 //								Carrega a quantidade de disciplinas da turma
                                 $this->qtd_disciplinas = count($lst_turma_disciplina);
                                 foreach ($lst_turma_disciplina as $valores) {
                                     $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
                                     $det_disciplina = $obj_disciplina->detalhe();
                                     if ($det_disciplina) {
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina();
                                         $det_dispensa = $obj_dispensa->lista($this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], null, null, null, null, null, null, null, 1);
                                         //										Verifica se o aluno não foi dispensado da disciplina
                                         if (!is_array($det_dispensa)) {
                                             $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, $matriculas[2]);
                                             //											Carrega a média da disciplina
                                             if ($lst_exame) {
                                                 foreach ($lst_exame as $exame) {
                                                     if ($exame["disc_ref_ref_cod_disciplina"] == $det_disciplina["cod_disciplina"] && $exame["ref_ref_cod_matricula"] == $matriculas[2]) {
                                                         $media_disciplina = $exame["media"];
                                                     }
                                                 }
                                             }
                                             if ($lst_notas == $this->qtd_modulos) {
                                                 if ($media_disciplina >= $this->media) {
                                                     $pula_disciplina = false;
                                                 } else {
                                                     $pula_disciplina = true;
                                                 }
                                             } else {
                                                 $pula_disciplina = true;
                                             }
                                             if ($pula_disciplina) {
                                                 if (!is_array($det_dispensa)) {
                                                     //													Verifica se a quantidade de notas por aluno é diferente do número do módulo em que a turma se encontra
                                                     if ($lst_notas == $this->qtd_modulos + 1) {
                                                         if ($salva_historico != "N") {
                                                             $lst_disc_exame[$det_disciplina["cod_disciplina"]] = "S";
                                                             $salva_historico = "S";
                                                         }
                                                     } else {
                                                         $salva_historico = "N";
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                             if ($salva_historico == "S") {
                                 $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 + 1, $this->ref_cod_curso, true, true, false, true);
                                 if ($lst_exame) {
                                     foreach ($lst_exame as $exame) {
                                         if ($exame["ref_ref_cod_matricula"] == $matriculas[2] && $lst_disc_exame[$exame["disc_ref_ref_cod_disciplina"]] == "S") {
                                             //											Verifica se a média do aluno é igual ou superior a média mínima
                                             if ($exame["media"] >= $this->media_exame) {
                                                 //												Verifica se o aluno não foi reprovado
                                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                                                 }
                                             } else {
                                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                                             }
                                         }
                                     }
                                 }
                             }
                             if (is_array($aprovado)) {
                                 foreach ($aprovado as $matricula => $verificador) {
                                     //									Verifica se o aluno foi aprovado
                                     if ($verificador == "S") {
                                         $obj_matricula = new clsPmieducarMatricula($matricula);
                                         $det_matricula = $obj_matricula->detalhe();
                                         //										Verifica se a matrícula está em exame
                                         if ($det_matricula["aprovado"] == 7) {
                                             $obj_historico = new clsPmieducarHistoricoEscolar();
                                             $lst_historico = $obj_historico->lista($matricula);
                                             $seq = count($lst_historico) + 1;
                                             $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                             $det_ano_letivo = $obj_ano_letivo->detalhe();
                                             $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                             $det_escola = $obj_escola->detalhe();
                                             //											Verifica se o aluno foi aprovado
                                             if ($verificador == "S") {
                                                 if ($this->falta_ch_globalizada == 1) {
                                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1);
                                                 } else {
                                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0);
                                                 }
                                                 if ($obj_historico->cadastra()) {
                                                     $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                                     if ($obj_matricula->edita()) {
                                                         $this->mensagem = "Falha ao editar a matricula!<br>";
                                                     }
                                                 } else {
                                                     $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                                 }
                                             }
                                         }
                                     }
                                     //									Verifica se o aluno foi reprovado
                                     if ($verificador == "N") {
                                         $obj_historico = new clsPmieducarHistoricoEscolar();
                                         $lst_historico = $obj_historico->lista($matriculas[0]);
                                         $seq = count($lst_historico) + 1;
                                         $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                         $det_ano_letivo = $obj_ano_letivo->detalhe();
                                         $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                         $det_escola = $obj_escola->detalhe();
                                         if ($this->falta_ch_globalizada == 1) {
                                             $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1);
                                         } else {
                                             $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0);
                                         }
                                         if ($obj_historico->cadastra()) {
                                             $obj_matricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                             if (!$obj_matricula->edita()) {
                                                 $this->mensagem = "Falha ao alterar a matricula!<br>";
                                             }
                                         } else {
                                             $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                         }
                                     }
                                 }
                             }
                             header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
                             die;
                         }
                     }
                 }
             }
             header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
             die;
         }
     }
 }
 function buscaDiasLetivos()
 {
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
     $totalDiasUteis = 0;
     $total_semanas = 0;
     $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
     $obj_ano_letivo_modulo->setOrderby("data_inicio asc");
     $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($this->ano, $this->ref_cod_escola, null, null);
     if ($lst_ano_letivo_modulo) {
         $inicio = $lst_ano_letivo_modulo['0'];
         $fim = $lst_ano_letivo_modulo[count($lst_ano_letivo_modulo) - 1];
         $mes_inicial = explode("-", $inicio['data_inicio']);
         $mes_inicial = $mes_inicial[1];
         $dia_inicial = $mes_inicial[2];
         $mes_final = explode("-", $fim['data_fim']);
         $mes_final = $mes_final[1];
         $dia_final = $mes_final[2];
     }
     for ($mes = $mes_inicial; $mes <= $mes_final; $mes++) {
         $obj_calendario_dia = new clsPmieducarCalendarioDia();
         $lista_dias = $obj_calendario_dia->lista($calendario['cod_calendario_ano_letivo'], $mes, null, null, null, null, null, null, null, 1);
         $dias_mes = array();
         if ($lista_dias) {
             foreach ($lista_dias as $dia) {
                 $obj_motivo = new clsPmieducarCalendarioDiaMotivo($dia['ref_cod_calendario_dia_motivo']);
                 $det_motivo = $obj_motivo->detalhe();
                 $dias_mes[$dia['dia']] = strtolower($det_motivo['tipo']);
             }
         }
         //Dias previstos do mes
         // Qual o primeiro dia do mes
         $primeiroDiaDoMes = mktime(0, 0, 0, $mes, 1, $this->ano);
         // Quantos dias tem o mes
         $NumeroDiasMes = date('t', $primeiroDiaDoMes);
         //informacoes primeiro dia do mes
         $dateComponents = getdate($primeiroDiaDoMes);
         // What is the name of the month in question?
         $NomeMes = $mesesDoAno[$dateComponents['mon']];
         // What is the index value (0-6) of the first day of the
         // month in question.
         $DiaSemana = $dateComponents['wday'];
         //total de dias uteis + dias extra-letivos - dia nao letivo - fim de semana
         $DiaSemana = 0;
         if ($mes == $mes_inicial) {
             $dia_ini = $dia_inicial;
         } elseif ($mes == $mes_final) {
             $dia_ini = $dia_final;
         } else {
             $dia_ini = 1;
         }
         for ($dia = $dia_ini; $dia <= $NumeroDiasMes; $dia++) {
             if ($DiaSemana >= 7) {
                 $DiaSemana = 0;
                 $total_semanas++;
             }
             if ($DiaSemana != 0 && $DiaSemana != 6) {
                 if (!(key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('n'))) {
                     $totalDiasUteis++;
                 }
             } elseif (key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('e')) {
                 $totalDiasUteis++;
             }
             $DiaSemana++;
         }
     }
     $this->total_dias_uteis = $totalDiasUteis;
     $this->total_semanas = $total_semanas;
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Matriculas Turma - Detalhe";
     $this->ref_cod_turma = $_GET["ref_cod_turma"];
     if (class_exists("clsPmieducarTurma")) {
         $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
         $det_turma = $obj_turma->detalhe();
         $nm_turma = $det_turma["nm_turma"];
         $ref_ref_cod_serie = $det_turma["ref_ref_cod_serie"];
         $ref_ref_cod_escola = $det_turma["ref_ref_cod_escola"];
         $ref_cod_curso = $det_turma["ref_cod_curso"];
     } else {
         $registro["ref_cod_turma"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarTurma\n-->";
     }
     if ($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($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"];
         } else {
             $this->mensagem = "N&atilde;o foi poss&iacute;vel encontrar o Ano Letivo.";
             return false;
         }
     }
     if ($ano_letivo || !$ref_ref_cod_serie) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
         $lst_matriculas_turma = $obj_matriculas_turma->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, null, null, null, null, null, false, null, array(1, 2, 3), null, null, $ano_letivo, null, false, null, 1, true);
         if (is_array($lst_matriculas_turma)) {
             $qtd_alunos = count($lst_matriculas_turma);
             foreach ($lst_matriculas_turma as $key => $matricula) {
                 $obj_matricula = new clsPmieducarMatricula($matricula["ref_cod_matricula"]);
                 $det_matricula = $obj_matricula->detalhe();
                 $obj_aluno = new clsPmieducarAluno();
                 $lst_aluno = $obj_aluno->lista($det_matricula["ref_cod_aluno"]);
                 $det_aluno = array_shift($lst_aluno);
                 $nm_alunos[] = $det_aluno["nome_aluno"];
             }
             $registro = array_shift($lst_matriculas_turma);
         } else {
             $obj_turma = new clsPmieducarTurma();
             $lst_turma = $obj_turma->lista($this->ref_cod_turma);
             if (is_array($lst_turma)) {
                 $registro = array_shift($lst_turma);
             }
         }
     } else {
         $obj_turma = new clsPmieducarTurma();
         $lst_turma = $obj_turma->lista($this->ref_cod_turma);
         if (is_array($lst_turma)) {
             $registro = array_shift($lst_turma);
         }
     }
     if (!$registro) {
         header("location: educar_matriculas_turma_lst.php");
         die;
     }
     if (class_exists("clsPmieducarSerie")) {
         $obj_ref_cod_serie = new clsPmieducarSerie($registro["ref_ref_cod_serie"]);
         $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
         $nm_serie = $det_ref_cod_serie["nm_serie"];
     } else {
         $registro["ref_ref_cod_serie"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarSerie\n-->";
     }
     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"];
     } else {
         $registro["ref_cod_curso"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarCurso\n-->";
     }
     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&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarInstituicao\n-->";
     }
     if (class_exists("clsPmieducarEscola")) {
         $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_ref_cod_escola"]);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $nm_escola = $det_ref_cod_escola["nome"];
     } else {
         $registro["ref_ref_cod_escola"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarEscola\n-->";
     }
     $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&ccedil;&atilde;o", "{$registro["ref_cod_instituicao"]}"));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($nm_escola) {
             $this->addDetalhe(array("Escola", "{$nm_escola}"));
         }
     }
     if ($registro["ref_cod_curso"]) {
         $this->addDetalhe(array("Curso", "{$registro["ref_cod_curso"]}"));
     }
     if ($nm_serie) {
         $this->addDetalhe(array("S&eacute;rie", "{$nm_serie}"));
     }
     if ($nm_turma) {
         $this->addDetalhe(array("Turma", "{$nm_turma}"));
     }
     if ($max_aluno) {
         $this->addDetalhe(array("M&aacute;ximo de Alunos", "{$max_aluno}"));
     }
     if ($qtd_alunos) {
         $this->addDetalhe(array("Qtd Alunos Matriculados", "{$qtd_alunos}"));
     }
     if ($max_aluno && $qtd_alunos) {
         $vagas = $max_aluno - $qtd_alunos;
         $this->addDetalhe(array("Vagas Restantes", "{$vagas}"));
     }
     if (is_array($nm_alunos)) {
         sort($nm_alunos);
         $tabela = "<table>\n\t\t\t\t\t       <tr align=center>\n\t\t\t\t\t           <td bgcolor=#a1b3bd><b>Nome</b></td>\n\t\t\t\t\t       </tr>";
         reset($nm_alunos);
         for ($i = 0; $i < count($nm_alunos); $i++) {
             if ($i % 2 == 0) {
                 $color = " bgcolor=#E4E9ED ";
             } else {
                 $color = " bgcolor=#FFFFFF ";
             }
             $tabela .= "<tr>\n\t\t\t\t\t\t\t\t<td align=center {$color} align=left>{$nm_alunos[$i]}</td>\n\t\t\t\t\t\t\t</tr>";
         }
         $tabela .= "</table>";
     }
     if ($tabela) {
         $this->addDetalhe(array("Alunos Matriculados", "{$tabela}"));
     }
     if ($obj_permissoes->permissao_cadastra(659, $this->pessoa_logada, 7)) {
         $this->url_editar = "educar_matriculas_turma_cad.php?ref_cod_turma={$this->ref_cod_turma}";
     }
     $this->url_cancelar = "educar_matriculas_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 das matr&iacute;culas da turma"));
     $this->enviaLocalizacao($localizacao->montar());
 }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        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;
        }
        $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_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_calendario = new clsPmieducarEscolaAnoLetivo();
        $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
        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;
        }
        $calendario = array_shift($lista_calendario);
        //Dias previstos do mes
        // Qual o primeiro dia do mes
        $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
        // Quantos dias tem o mes
        $NumeroDiasMes = date('t', $primeiroDiaDoMes);
        $qtd_dias = $NumeroDiasMes;
        $this->pdf = new clsPDF("Acompanhamento Mensal - {$this->ano}", "Acompanhamento Mensal - {$this->meses_do_ano[$this->mes]}", "A4", "", false, false);
        $this->pdf->largura = 842.0;
        $this->pdf->altura = 595.0;
        $this->pdf->OpenPage();
        $this->addCabecalho();
        $this->pdf->linha_relativa(30, 120, 780, 0);
        $this->pdf->linha_relativa(30, 120, 0, 135);
        $this->pdf->linha_relativa(30, 120, 255, 135);
        $this->pdf->escreve_relativo("Livros", 40, 245, 60, 15, null, 8);
        $this->pdf->escreve_relativo("Professor(a) / Aluno", 200, 125, 80, 13, null, 8);
        $obj_matricula = new clsPmieducarMatriculaTurma();
        $obj_matricula->setOrderby('nome_ascii');
        $lst_matricula = $obj_matricula->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, 1, null, null, null, null, $this->semestre);
        if ($lst_matricula) {
            foreach ($lst_matricula as $ordem => $matricula) {
                $this->pdf->linha_relativa(285 + $ordem * 13, 120, 0, 135);
                $nome = $matricula['nome'];
                $nome = explode(" ", $nome);
                if (strlen($nome[0]) + strlen($nome[1]) < 13) {
                    $nome = $nome[0] . " " . $nome[1];
                } else {
                    $nome = $nome[0];
                }
                //$nome = str_replace(" ","|",$nome);
                $nome = str2upper(substr($nome, 0, 16));
                //$nome = wordwrap(str2upper(substr($nome,0,16)),1,"\n",true);
                //$nome = str_replace("|","",$nome);
                //$nome = str_replace("|","",$nome);
                //$nome = wordwrap($nome,1,"\n",true);
                //$nome = substr($nome,0,20);
                //$this->pdf->escreve_relativo($nome, 287+($ordem*13), 125, 130, 135, null, 8);
                $imagem = girarTextoImagem("{$nome}", 8, 125);
                $this->pdf->InsertJpng('png', $imagem, 287 + $ordem * 13, 250, 1);
                ////die("$ this->pdf->escreve_relativo(\"{$nome}\", 287+($ordem*13), 145, 13, 135, null, 8);");
                //$this->pdf->escreve_relativo("A\nl\ne\nx\ns\na\nn\nd\nr\no\nP\na\nc\nh\ne\nc\no", 287+($ordem*13), 145, 13, 135, null, 8);
            }
        }
        for ($i = 0; $i < 40; $i++) {
            $this->pdf->linha_relativa(285 + $i * 13, 120, 0, 135);
            /*if($i+1 <= $qtd_dias)
            		{
            			$this->pdf->escreve_relativo("", 287+($i*13), 145, 13, 135, null, 8);
            		}*/
        }
        $this->pdf->linha_relativa(810, 120, 0, 135);
        //fim
        $this->pdf->linha_relativa(30, 255, 780, 0);
        $total_alunos = 100;
        $qtd_quebra = 25;
        $base = 242;
        $linha = 1;
        //if($lst_matricula)
        //{
        //foreach ($lst_matricula as $ordem => $matricula)
        //{
        //$ordem++;
        //$ordem = sprintf("%02d",$ordem);
        for ($ordem = 1; $ordem <= 22; $ordem++) {
            if ($linha % $qtd_quebra == 0) {
                //nova pagina
                $this->pdf->ClosePage();
                $this->pdf->OpenPage();
                $base = 30;
                $linha = 0;
                $this->pdf->linha_relativa(30, 30, 780, 0);
                $qtd_quebra = 35;
            }
            $this->pdf->linha_relativa(30, $base + $linha * 13, 0, 13);
            $this->pdf->linha_relativa(60, $base + $linha * 13, 0, 13);
            $this->pdf->linha_relativa(30, $base + 13 + $linha * 13, 780, 0);
            $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 13, 15, 15, null, 8);
            $this->pdf->escreve_relativo('', 65, $base + 3 + $linha * 13, 215, 15, null, 8);
            for ($i = 0; $i <= 38; $i++) {
                $this->pdf->linha_relativa(285 + $i * 13, $base + $linha * 13, 0, 13);
            }
            $this->pdf->linha_relativa(285 + $i * 13, $base + $linha * 13, 0, 13);
            //total
            $this->pdf->linha_relativa(810, $base + $linha * 13, 0, 13);
            //fim
            $linha++;
            //}
        }
        //}
        /*//escrever total
        		$this->pdf->linha_relativa(30, $base+($linha*13), 0, 13);
        		$this->pdf->linha_relativa(60, $base+($linha*13), 0, 13);
        
        		$this->pdf->escreve_relativo("Total", 35, ($base+3)+($linha*13), 20, 15, null, 8);
        
        		for($i=0; $i<38; $i++)
        		{
        			$this->pdf->linha_relativa(285+($i*13), $base+($linha*13), 0, 13);
        		}
        		$this->pdf->linha_relativa(765, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(780, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(795, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(285+($i*13), $base+($linha*13), 0, 15);//total
        
        		$this->pdf->linha_relativa(810, $base+($linha*13), 0, 15);//fim
        		$this->pdf->linha_relativa(30, $base+(($linha+1)*13), 780, 0);*/
        $this->pdf->quadrado_relativo(400, 550, 394, 15);
        $this->pdf->quadrado_relativo(400, 560, 394, 15);
        for ($mes = 1; $mes <= 13; $mes++) {
            $this->pdf->escreve_relativo($this->meses_do_ano_abr[$mes], 370 + $mes * 30 + 5, 550, 50, 15, null, 8);
            if ($mes < 13) {
                $this->pdf->linha_relativa(394 + $mes * 30 + 5, 550, 0, 25);
            }
        }
        $this->pdf->ClosePage();
        $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;
         }
     }
     $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);
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $nm_instituicao = $obj_cod_instituicao_det['nm_instituicao'];
         $this->campoRotulo('nm_instituicao', 'Institui&ccedil;&atilde;o', $nm_instituicao);
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($this->ref_ref_cod_escola) {
             $obj_ref_cod_escola = new clsPmieducarEscola($this->ref_ref_cod_escola);
             $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
             $nm_escola = $det_ref_cod_escola['nome'];
             $this->campoRotulo('nm_escola', 'Escola', $nm_escola);
         }
     }
     if ($this->ref_cod_curso) {
         $obj_ref_cod_curso = new clsPmieducarCurso($this->ref_cod_curso);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $nm_curso = $det_ref_cod_curso['nm_curso'];
         $this->campoRotulo('nm_curso', 'Curso', $nm_curso);
     }
     if ($this->ref_ref_cod_serie) {
         $obj_ref_cod_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
         $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
         $nm_serie = $det_ref_cod_serie["nm_serie"];
         $this->campoRotulo('nm_serie', 'S&eacute;rie', $nm_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);
             $ano_letivo = $det_ano_letivo['ano'];
         } else {
             $this->mensagem = 'Não foi possível encontrar o ano letivo em andamento da escola.';
             return FALSE;
         }
     }
     if ($this->ref_cod_turma) {
         $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
         $det_turma = $obj_turma->detalhe();
         $nm_turma = $det_turma['nm_turma'];
         $this->campoRotulo('nm_turma', 'Turma', $nm_turma);
     }
     // Inlui o aluno
     $this->campoQuebra();
     if ($_POST['matriculas_turma']) {
         $this->matriculas_turma = unserialize(urldecode($_POST['matriculas_turma']));
     }
     $alunosEnturmados = false;
     if (is_numeric($this->ref_cod_turma) && !$_POST) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
         $obj_matriculas_turma->setOrderby('sequencial_fechamento, nome_aluno');
         $lst_matriculas_turma = $obj_matriculas_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, array(1, 2, 3), NULL, NULL, $ano_letivo, NULL, TRUE, NULL, 1, TRUE);
         if (is_array($lst_matriculas_turma)) {
             $alunosEnturmados = true;
             foreach ($lst_matriculas_turma as $key => $campo) {
                 $this->matriculas_turma[$campo['ref_cod_matricula']]['sequencial_'] = $campo['sequencial'];
             }
         }
     }
     if ($_POST['ref_cod_matricula']) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma($_POST['ref_cod_matricula'], $this->ref_cod_turma);
         $sequencial = $obj_matriculas_turma->buscaSequencialMax();
         $this->matriculas_turma[$_POST['ref_cod_matricula']]['sequencial_'] = $sequencial;
         unset($this->ref_cod_matricula);
     }
     if ($this->matriculas_turma) {
         $this->campoRotulo('titulo', 'Matr&iacute;culas', "<b>&nbsp;Alunos matriculados&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Marque alunos para desenturmar</b><label style='display: block; width: 350px; margin-left: 196px;'><input type='checkbox' name='CheckTodos' onClick='marcarCheck(" . '"check_desenturma[]"' . ");'/>Marcar Todos</label>");
         foreach ($this->matriculas_turma as $matricula => $campo) {
             $obj_matricula = new clsPmieducarMatricula($matricula);
             $det_matricula = $obj_matricula->detalhe();
             $obj_aluno = new clsPmieducarAluno();
             $lst_aluno = $obj_aluno->lista($det_matricula['ref_cod_aluno']);
             $det_aluno = array_shift($lst_aluno);
             $nm_aluno = $det_aluno['nome_aluno'];
             $this->campoTextoInv('ref_cod_matricula_' . $matricula, '', $nm_aluno, 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_matricula');
             $this->campoCheck('check_desenturma[' . $matricula . ']', '', $matricula);
         }
     }
     $this->campoOculto('matriculas_turma', serialize($this->matriculas_turma));
     // Aluno
     $opcoes = array();
     $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
     $alunos = $obj_matriculas_turma->alunosNaoEnturmados($this->ref_ref_cod_escola, $this->ref_ref_cod_serie, $this->ref_cod_curso, $ano_letivo);
     if (is_array($alunos)) {
         for ($i = 0; $i < count($alunos); $i++) {
             $obj_matricula = new clsPmieducarMatricula($alunos[$i]);
             $det_matricula = $obj_matricula->detalhe();
             $obj_aluno = new clsPmieducarAluno();
             $lst_aluno = $obj_aluno->lista($det_matricula['ref_cod_aluno']);
             $det_aluno = array_shift($lst_aluno);
             $opcoes[$alunos[$i]] = $det_aluno['nome_aluno'];
         }
     }
     if (count($opcoes)) {
         $this->inputsHelper()->date('data_enturmacao', array('label' => 'Data da enturmação', 'value' => date('Y-m-d')));
         asort($opcoes);
         foreach ($opcoes as $key => $aluno) {
             $this->campoCheck('ref_cod_matricula[' . $key . ']', 'Aluno', $key, $aluno, NULL, NULL, NULL);
         }
     } else {
         if ($alunosEnturmados) {
             $this->campoRotulo('rotulo_1', '-', 'Todos os alunos matriculados na série já se encontram enturmados.');
         } else {
             $this->campoRotulo('rotulo_1', '-', 'Não há alunos enturmados.');
         }
     }
     $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);
        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;
        }
        if ($this->ref_cod_turma) {
            $where = "\tAND ref_cod_turma = {$this->ref_cod_turma}";
        }
        if ($this->ref_cod_serie) {
            $where .= "\tAND ref_ref_cod_serie   = {$this->ref_cod_serie}";
        }
        //DISTINCT extract( year from ( age( now(), data_nasc ) ) ) as idade
        $sql = "SELECT EXTRACT(YEAR FROM age( to_date ( EXTRACT( year from now() )   || '-12-31' ,'yyyy-mm-dd') , data_nasc) ) as idade\n\t\t\t\t  FROM pmieducar.matricula_turma mt\n\t\t\t\t       ,pmieducar.matricula      m\n\t\t\t\t       ,pmieducar.aluno          a\n\t\t\t\t       ,cadastro.fisica          f\n\t\t\t\t WHERE cod_matricula = ref_cod_matricula\n\t\t\t\t   AND mt.ativo = 1\n\t\t\t\t   AND m.ativo  = 1\n\t\t\t\t   AND m.ref_cod_aluno = a.cod_aluno\n\t\t\t\t   AND f.idpes = a.ref_idpes\n\t\t\t\t   {$where}\n\t\t\t\t   AND ref_ref_cod_escola  = {$this->ref_cod_escola}\n\t\t\t\t   ANd ref_cod_curso       = {$this->ref_cod_curso}\n\t\t\t\t   AND data_nasc IS NOT NULL\n\t\t\t\t   AND m.ano = {$this->ano}\n\t\t\t\t ORDER BY idade";
        $db = new clsBanco();
        $db->Consulta($sql);
        $array_idades = array();
        if ($db->Num_Linhas()) {
            while ($db->ProximoRegistro()) {
                $registro = $db->Tupla();
                $array_idades_[$registro['idade']] = "-";
                $array_idades[$registro['idade']] = $registro['idade'];
            }
        } else {
            echo '<script>
	     			alert("Nenhum aluno está matriculado");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        if ($array_idades) {
            $relatorio = new relatorios("Relatório de alunos por idades       Ano - {$this->ano}", 210, false, "Relatório de alunos por idade", "A4", "{$this->nm_instituicao}\n{$this->nm_escola}\n\n" . date("d/m/Y"));
            $relatorio->setMargem(20, 20, 50, 50);
            $relatorio->exibe_produzido_por = false;
            $array_cab = array_merge(array("Série", "Turma"), $array_idades);
            $array_cab[] = "Total";
            $divisoes = array(100, 80);
            $divisoes_texto = array(100, 80);
            $tamanho_divisao = 23 + (15 - count($array_idades) - 1) * 2;
            for ($ct = 0; $ct < 20; $ct++) {
                $divisoes[] = $tamanho_divisao;
                $divisoes_texto[] = $tamanho_divisao;
            }
            $relatorio->novalinha($array_cab, 0, 16, true, "arial", $divisoes, "#515151", "#d3d3d3", "#ffffff", false, true);
            $db = new clsBanco();
            $obj_curso = new clsPmieducarCurso();
            $lst_curso = $obj_curso->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_curso) {
                foreach ($lst_curso as $curso) {
                    $relatorio->novalinha(array($curso['nm_curso']), 0, 16, true, "arial", false, "#515151", "#d3d3d3", "#ffffff", false, true);
                    $obj = new clsPmieducarSerie();
                    $obj->setOrderby('cod_serie,etapa_curso');
                    $lista_serie_curso = $obj->lista($this->ref_cod_serie, null, null, $curso['cod_curso'], null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao);
                    if ($lista_serie_curso) {
                        foreach ($lista_serie_curso as $serie) {
                            $obj_turma = new clsPmieducarTurma();
                            $lst_turma = $obj_turma->lista($this->ref_cod_turma, null, null, $serie['cod_serie'], $this->ref_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);
                            if ($lst_turma) {
                                foreach ($lst_turma as $turma) {
                                    $array_idades = $array_idades_;
                                    $total = 0;
                                    $sql = "SELECT count(1) as total\n\t\t       \t\t\t\t\t\t\t\t\t   ,EXTRACT(YEAR FROM age( to_date ( EXTRACT( year from now() )   || '-12-31' ,'yyyy-mm-dd') , data_nasc) ) as idade\n\t\t\t\t\t\t\t\t\t\t\t  FROM pmieducar.matricula_turma mt\n\t\t\t\t\t\t\t\t\t\t\t       ,pmieducar.matricula      m\n\t\t\t\t\t\t\t\t\t\t\t       ,pmieducar.aluno          a\n\t\t\t\t\t\t\t\t\t\t\t       ,cadastro.fisica          f\n\t\t\t\t\t\t\t\t\t\t\t WHERE cod_matricula = ref_cod_matricula\n\t\t\t\t\t\t\t\t\t\t\t   AND mt.ativo = 1\n\t\t\t\t\t\t\t\t\t\t\t   AND m.ativo  = 1\n\t\t\t\t\t\t\t\t\t\t\t   AND m.ref_cod_aluno = a.cod_aluno\n\t\t\t\t\t\t\t\t\t\t\t   AND f.idpes = a.ref_idpes\n\t\t\t\t\t\t\t\t\t\t\t   AND ref_cod_turma = {$turma['cod_turma']}\n\t\t\t\t\t\t\t\t\t\t\t   AND ref_ref_cod_serie   = {$serie['cod_serie']}\n\t\t\t\t\t\t\t\t\t\t\t   AND ref_ref_cod_escola  = {$this->ref_cod_escola}\n\t\t\t\t\t\t\t\t\t\t\t   ANd ref_cod_curso       = {$curso['cod_curso']}\n\t\t\t\t\t\t\t\t\t\t\t   AND m.ano = {$this->ano}\n\t\t\t\t\t\t\t\t\t\t\t   AND aprovado IN (1,2,3)\n\t\t\t\t\t\t\t\t\t\t\t   \n\t\t\t\t\t\t\t\t\t\t\t   AND data_nasc IS NOT NULL\n\t\t\t\t\t\t\t\t\t\t\t GROUP BY EXTRACT(YEAR FROM age( to_date ( EXTRACT( year from now() )   || '-12-31' ,'yyyy-mm-dd') , data_nasc) )\n\t\t\t\t\t\t\t\t\t\t\t ORDER BY idade";
                                    $db->Consulta($sql);
                                    if ($db->Num_Linhas()) {
                                        while ($db->ProximoRegistro()) {
                                            $registro = $db->Tupla();
                                            $array_idades[$registro['idade']] = $registro['total'];
                                            $total += $registro['total'];
                                        }
                                        $valores = array_merge(array($serie['nm_serie'], $turma['nm_turma']), $array_idades, array($total));
                                        $relatorio->novalinha($valores, 0, 16, false, "arial", $divisoes, "#515151", "#d3d3d3", "#ffffff", false, true);
                                    }
                                }
                            }
                        }
                    }
                }
                //$relatorio->quebraPagina();
            }
            $this->get_link = $relatorio->fechaPdf();
        }
        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 renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        @session_start();
        $pessoa_logada = $_SESSION['id_pessoa'];
        @session_write_close();
        if (!$_POST) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNão existem dados!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        if (empty($this->cursos)) {
            echo '<script>

	     			alert("Erro ao gerar relatório!\\nNenhum curso selecionado!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     			//window.location = window.location;
	     		</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);
        /**
         * @todo negar lista_calendario e descomentar array_shift
         */
        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;
        }
        $obj_calendario = new clsPmieducarCalendarioAnoLetivo();
        $lst_calendario = $obj_calendario->lista(null, $this->ref_cod_escola, null, null, $this->ano, null, null, null, null, 1, null, $this->ref_cod_instituicao);
        if ($lst_calendario) {
            $calendario = array_shift($lst_calendario);
        }
        $obj_calendario_dia = new clsPmieducarCalendarioDia();
        $lista_dias = $obj_calendario_dia->lista($calendario['cod_calendario_ano_letivo'], $this->mes, null, null, null, null, null, null, null, 1);
        $dias_mes = array();
        if ($lista_dias) {
            foreach ($lista_dias as $dia) {
                $obj_motivo = new clsPmieducarCalendarioDiaMotivo($dia['ref_cod_calendario_dia_motivo']);
                $det_motivo = $obj_motivo->detalhe();
                $dias_mes[$dia['dia']] = strtolower($det_motivo['tipo']);
            }
        }
        //Dias previstos do mes
        // Qual o primeiro dia do mes
        $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
        // Quantos dias tem o mes
        $NumeroDiasMes = date('t', $primeiroDiaDoMes);
        //informacoes primeiro dia do mes
        $dateComponents = getdate($primeiroDiaDoMes);
        // What is the name of the month in question?
        $NomeMes = $mesesDoAno[$dateComponents['mon']];
        // What is the index value (0-6) of the first day of the
        // month in question.
        $DiaSemana = $dateComponents['wday'];
        //total de dias uteis + dias extra-letivos - dia nao letivo - fim de semana
        $this->totalDiasUteis = 0;
        //echo '<pre>';print_r($dias_mes);die;
        for ($dia = 1; $dia <= $NumeroDiasMes; $dia++) {
            if ($DiaSemana >= 7) {
                $DiaSemana = 0;
            }
            if ($DiaSemana != 0 && $DiaSemana != 6) {
                if (!(key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('n'))) {
                    $this->totalDiasUteis++;
                }
            } elseif (key_exists($dia, $dias_mes) && $dias_mes[$dia] == strtolower('e')) {
                $this->totalDiasUteis++;
            }
            $DiaSemana++;
        }
        $registros_por_pagina = 27;
        $this->pdf = new clsPDF("Relação de Alunos ANEEs", "Relação de Alunos ANEEs", "A4", "", false, false);
        $cursos_in = '';
        /*$conc = '';
        		foreach ($this->cursos as $curso)
        		{
        			$cursos_in .= "{$conc}{$curso}";
        			$conc = ",";
        		}*/
        $cursos_in = implode(',', $this->cursos);
        $db = new clsBanco();
        $consulta = " SELECT coalesce(count(1),0)\n\t\t\t\t\t\t FROM pmieducar.aluno      a\n\t\t\t\t\t\t      ,pmieducar.matricula m\n\t\t\t\t\t\t      ,pmieducar.escola    e\n\t\t\t\t\t\t      ,pmieducar.serie     s\n\t\t\t\t\t\t      ,cadastro.pessoa     p\n\t\t\t\t\t\tWHERE a.ref_idpes  = p.idpes\n\t\t\t\t\t\t  AND a.cod_aluno  = m.ref_cod_aluno\n\t\t\t\t\t\t  AND e.cod_escola = m.ref_ref_cod_escola\n\t\t\t\t\t\t  AND m.ultima_matricula = 1\n\t\t\t\t\t\t  AND s.cod_serie  = m.ref_ref_cod_serie\n\t\t\t\t\t\t  AND s.ref_cod_curso in({$cursos_in})\n\t\t\t\t\t\t  AND a.ativo = 1\n\t\t\t\t\t\t  AND m.aprovado in (1,2,3)\n\t\t\t\t\t\t  AND m.ativo = 1\n\t\t\t\t\t\t  AND e.ativo = 1\n\t\t\t\t\t\t  AND s.ativo = 1\n\t\t\t\t\t\t  AND m.ano = {$this->ano}\n\t\t\t\t\t\t";
        //die($consulta);
        $total = $db->CampoUnico($consulta);
        $this->total_paginas = (int) ($total / 27) + 1;
        $this->pdf->OpenPage();
        //linha externa
        $altura2 = 620;
        $altura = 80;
        $expande = 24;
        $centralizado = abs(($altura - 10) / 2) + 120;
        //$necessidades = array('cegueira','baixa visao','surdez leve','surdocegueira','sindrome down','Def. Fisica','Autismo','Def. multiplas','cond. tipicas','raver boy','surdocegueira');
        /*$obj_deficiencia = new clsCadastroDeficiencia();
        		$obj_deficiencia->_campos_lista = "nm_deficiencia,cod_deficiencia,0 as subtotal,0 as total_curso,0 as total";
        		$obj_deficiencia->setOrderby( "nm_deficiencia ASC" );
        		$this->necessidades = $obj_deficiencia->lista();*/
        $select = "SELECT distinct nm_deficiencia,cod_deficiencia,0 as subtotal,0 as total_curso,0 as total\n\t\t\t\t\t FROM pmieducar.aluno\t    a\n\t\t\t\t\t      ,pmieducar.matricula m\n\t\t\t\t\t      ,cadastro.fisica_deficiencia fd\n\t\t\t\t\t      ,cadastro.deficiencia        d\n\t\t\t\t\tWHERE a.cod_aluno = m.ref_cod_aluno\n\t\t\t\t\t  AND a.ref_idpes = fd.ref_idpes\n\t\t\t\t\t  AND cod_deficiencia  = ref_cod_deficiencia\n\t\t\t\t\t  AND ano = {$this->ano}\n\t\t\t\t\t  AND ref_ref_cod_escola = {$this->ref_cod_escola}\n\t\t\t\t\t  AND m.ativo = 1\n\t\t\t\t\t  AND m.aprovado in (1,2,3)\n\t\t\t\t\t  AND a.ativo = 1\n\t\t\t\t\t  AND ref_cod_curso in ({$cursos_in})";
        $this->necessidades = array();
        $db->Consulta($select);
        if ($db->Num_Linhas()) {
            while ($db->ProximoRegistro()) {
                $this->necessidades[] = $db->Tupla();
            }
        }
        $this->addCabecalho();
        $this->novaPagina();
        //$inicio_escrita_x = 36;
        $inicio_escrita_y = 215;
        $inicio_linha_y = 232;
        $numero_x = 36;
        //posicao nome
        $nome_x = 65 + $expande;
        //posicao data nasc
        $nasc_x = 180 + $expande;
        //posicao serie
        $serie_x = 226 + $expande;
        //posicao turno
        $turno_x = 255 + $expande;
        //posicao alfabetizado
        $alfabetizado_x = 278 + $expande;
        //posicao necessidade
        $necessidade_x = 381 + $expande;
        $necec_x = $alfabetizado_x + 23;
        $linha_neces_x = 385;
        $altura = 30;
        $fonte = 'arial';
        $corTexto = '#000000';
        /**
         * busca todas as series de cada curso selecionado
         */
        $contador_registros = 0;
        for ($ct = 0; $ct < $registros_por_pagina; $ct++) {
            $this->pdf->linha_relativa(30, $inicio_linha_y, 535, 0);
            $inicio_linha_y += 20;
        }
        $total_alfabetos_geral = 0;
        $total_analfabetos_geral = 0;
        $total_geral_alunos = 0;
        foreach ($this->cursos as $curso) {
            $total_curso = 0;
            $total_analfabetos_serie = 0;
            $total_analfabetos_curso = 0;
            $total_alfabetos_serie = 0;
            $total_alfabetos_curso = 0;
            $obj = new clsPmieducarSerie();
            $obj->setOrderby("s.nm_serie");
            $lista_serie_curso = $obj->lista(null, null, null, $curso, null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao);
            //$obj_curso = new clsPmieducarCurso($serie['ref_cod_curso']);
            $obj_curso = new clsPmieducarCurso($curso);
            $det_curso = $obj_curso->detalhe();
            $alunos = array();
            if ($lista_serie_curso) {
                foreach ($lista_serie_curso as $serie) {
                    /**
                     * busca todas as matriculas de cada curso
                     */
                    $subtotal_serie = 0;
                    $obj_matricula = new clsPmieducarMatricula();
                    $lista_matricula_serie = $obj_matricula->lista(null, null, $this->ref_cod_escola, $serie['cod_serie'], null, null, null, array(1, 2, 3), null, null, null, null, 1, $this->ano, $curso, $this->ref_cod_instituicao, null, null, null, null, null, null, null, true);
                    //					$total_geral_alunos += count($lista_matricula_serie);
                    //					$subtotal_serie = count($lista_matricula_serie);
                    //					$total_curso = $total_curso + $subtotal_serie;
                    /*
                    $total_geral_alunos += $obj_matricula->_total;
                    
                    $subtotal_serie = $obj_matricula->_total;
                    $total_curso = $total_curso + $subtotal_serie;
                    */
                    if ($lista_matricula_serie) {
                        /**
                         * busca dados da matricula de um aluno de uma turma de uma serie =p
                         */
                        foreach ($lista_matricula_serie as $matricula) {
                            $total_curso++;
                            $contador_registros++;
                            $total_geral_alunos++;
                            $subtotal_serie++;
                            if ($contador_registros > $registros_por_pagina) {
                                $contador_registros = 1;
                                $inicio_escrita_y = 215;
                                $inicio_linha_y = 232;
                                $this->pdf->ClosePage();
                                $this->pdf->OpenPage();
                                $this->addCabecalho();
                                $this->novaPagina();
                                for ($ct = 0; $ct < $registros_por_pagina; $ct++) {
                                    $this->pdf->linha_relativa(30, $inicio_linha_y, 535, 0);
                                    $inicio_linha_y += 20;
                                }
                                $inicio_linha_y = 232;
                            }
                            $obj_aluno = new clsPmieducarAluno();
                            $det_aluno = array_shift($obj_aluno->lista($matricula['ref_cod_aluno']));
                            $obj_fisica = new clsFisica($det_aluno['ref_idpes']);
                            $det_fisica = $obj_fisica->detalhe();
                            $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                            $det_matricula_turma = $obj_matricula_turma->lista($matricula['cod_matricula'], null, null, null, null, null, null, null, 1, $serie['cod_serie'], $curso, $this->ref_cod_escola, $this->ref_cod_instituicao);
                            if (is_array($det_matricula_turma)) {
                                $det_matricula_turma = array_shift($det_matricula_turma);
                            }
                            if ($det_matricula_turma['hora_inicial'] <= '12:00') {
                                $turno = 'M';
                            } elseif ($det_matricula_turma['hora_inicial'] > '12:00' && $det_matricula_turma['hora_inicial'] <= '18:00') {
                                $turno = 'V';
                            } else {
                                $turno = 'N';
                            }
                            /**
                             * INFORMACOES DE CADAS ALUNO
                             */
                            //							$this->pdf->linha_relativa(30,$inicio_linha_y,535,0);
                            //Nº
                            $this->pdf->escreve_relativo(" ", $numero_x, $inicio_escrita_y + 3, 50, 20, $fonte, 7, $corTexto, 'left');
                            //Nome
                            $this->pdf->escreve_relativo($det_aluno['nome_aluno'], $nome_x - $expande - 12, $inicio_escrita_y, 210, 20, $fonte, 7, $corTexto, 'left');
                            //data nascimento
                            //$this->pdf->escreve_relativo( "05/09/1984", $nasc_x + $expande + 6,$inicio_escrita_y+1, 60, 20, $fonte, 7, $corTexto, 'left' );
                            $this->pdf->escreve_relativo(dataToBrasil($det_fisica['data_nasc']), $serie_x + $expande - 50, $inicio_escrita_y + 3, 60, 20, $fonte, 7, $corTexto, 'left');
                            //serie
                            $this->pdf->escreve_relativo(' ', $turno_x + $expande - 25, $inicio_escrita_y + 3, 60, 20, $fonte, 7, $corTexto, 'left');
                            //turno
                            $this->pdf->escreve_relativo($turno, $alfabetizado_x + $expande - 24, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                            //nao alfa
                            $this->pdf->escreve_relativo($det_aluno['analfabeto'] == 1 ? 'X' : '', $turno_x + $expande + 25, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                            //alfabetizado
                            $this->pdf->escreve_relativo($det_aluno['analfabeto'] == 0 ? 'X' : '', $alfabetizado_x + $expande + 24, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                            $total_analfabetos_serie = (int) $total_analfabetos_serie + ((int) $det_aluno['analfabeto'] == 1 ? 1 : 0);
                            $total_analfabetos_curso = (int) $total_analfabetos_curso + ((int) $det_aluno['analfabeto'] == 1 ? 1 : 0);
                            $total_analfabetos_geral = (int) $total_analfabetos_geral + ((int) $det_aluno['analfabeto'] == 1 ? 1 : 0);
                            $total_alfabetos_serie = (int) $total_alfabetos_serie + ((int) $det_aluno['analfabeto'] == 0 ? 1 : 0);
                            $total_alfabetos_curso = (int) $total_alfabetos_curso + ((int) $det_aluno['analfabeto'] == 0 ? 1 : 0);
                            $total_alfabetos_geral = (int) $total_alfabetos_geral + ((int) $det_aluno['analfabeto'] == 0 ? 1 : 0);
                            $obj_aluno_deficiencia = new clsCadastroFisicaDeficiencia();
                            $lista_aluno_deficiencia = false;
                            $lista_aluno_deficiencia = $obj_aluno_deficiencia->lista($det_aluno['ref_idpes']);
                            if ($lista_aluno_deficiencia) {
                                foreach ($lista_aluno_deficiencia as $deficiencia) {
                                    $necec_x = $alfabetizado_x + 23;
                                    foreach ($this->necessidades as $key => $n) {
                                        if ($deficiencia['ref_cod_deficiencia'] == $n['cod_deficiencia']) {
                                            $this->pdf->escreve_relativo("X", $necec_x + 1, $inicio_escrita_y + 2, 100, $altura, $fonte, 11, $corTexto, 'center');
                                            $this->necessidades[$key]['subtotal'] = (int) $this->necessidades[$key]['subtotal'] + 1;
                                            $this->necessidades[$key]['total_curso'] = $this->necessidades[$key]['total_curso'] + 1;
                                            $this->necessidades[$key]['total'] = $this->necessidades[$key]['total'] + 1;
                                        } else {
                                            $this->pdf->escreve_relativo("-", $necec_x + 1, $inicio_escrita_y + 2, 100, $altura, $fonte, 10, $corTexto, 'center');
                                        }
                                        $necec_x += 18;
                                        //$linha_neces_x += 18;
                                    }
                                }
                            }
                            //$inicio_linha_y += 20;
                            $inicio_escrita_y += 20;
                        }
                        $contador_registros++;
                        if ($contador_registros > $registros_por_pagina) {
                            $contador_registros = 1;
                            $inicio_escrita_y = 215;
                            $inicio_linha_y = 232;
                            $this->pdf->ClosePage();
                            $this->pdf->OpenPage();
                            $this->addCabecalho();
                            $this->novaPagina();
                            for ($ct = 0; $ct < $registros_por_pagina; $ct++) {
                                $this->pdf->linha_relativa(30, $inicio_linha_y, 535, 0);
                                $inicio_linha_y += 20;
                            }
                            $inicio_linha_y = 232;
                        }
                        //	if($subtotal_serie){
                        /**
                         * subtotal serie
                         */
                        //							$this->pdf->linha_relativa(30,$inicio_linha_y,535,0);
                        $obj_turmas = new clsPmieducarTurma();
                        $total_turmas = count($obj_turmas->lista(null, null, null, $serie['cod_serie'], $this->ref_cod_escola));
                        $this->pdf->escreve_relativo("{$total_turmas}", $numero_x + 2, $inicio_escrita_y + 3, 50, 20, $fonte, 7, $corTexto, 'left');
                        $this->pdf->escreve_relativo("SUBTOTAL SÉRIE {$serie['nm_serie']}", $nome_x - $expande + 5, $inicio_escrita_y + 3, 177, 20, $fonte, 6, $corTexto, 'left');
                        $this->pdf->quadrado_relativo($nasc_x + $expande - 9, $inicio_escrita_y - 3, 49, 20, 0.1, "#D2D2D2", "#6F5E5E");
                        //echo $total_analfabetos_serie;
                        //echo $total_alfabetos_serie ;
                        //serie
                        $this->pdf->escreve_relativo($subtotal_serie, $turno_x + $expande - 25, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                        //$this->pdf->quadrado_relativo($nasc_x + $expande + 40,$inicio_escrita_y-3, 25, 20,0.1,"#D2D2D2","#6F5E5E");
                        //nao alfa
                        $this->pdf->escreve_relativo((int) $total_analfabetos_serie == 0 ? '-' : $total_analfabetos_serie, $turno_x + $expande + 27, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                        //alfabetizado
                        $this->pdf->escreve_relativo((int) $total_alfabetos_serie == 0 ? '-' : $total_alfabetos_serie, $alfabetizado_x + $expande + 24, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
                        $total_analfabetos_serie = $total_alfabetos_serie = 0;
                        // = 0;
                        $this->pdf->quadrado_relativo($nasc_x + $expande + 65, $inicio_escrita_y - 3, 26, 20, 0.1, "#D2D2D2", "#6F5E5E");
                        $necec_x = $alfabetizado_x + 23;
                        foreach ($this->necessidades as $key => $n) {
                            $this->pdf->escreve_relativo($n['subtotal'] == 0 ? '-' : $n['subtotal'], $necec_x + 1, $inicio_escrita_y + 2, 100, $altura, $fonte, 10, $corTexto, 'center');
                            $this->necessidades[$key]['subtotal'] = (int) 0;
                            $necec_x += 18;
                            //$linha_neces_x += 18;
                        }
                        //$inicio_linha_y += 20;
                        $inicio_escrita_y += 20;
                        /**
                         *
                         */
                        //}
                    }
                }
            }
            $contador_registros++;
            if ($contador_registros > $registros_por_pagina) {
                $contador_registros = 1;
                $inicio_escrita_y = 215;
                $inicio_linha_y = 232;
                $this->pdf->ClosePage();
                $this->pdf->OpenPage();
                $this->addCabecalho();
                $this->novaPagina();
                for ($ct = 0; $ct < $registros_por_pagina; $ct++) {
                    $this->pdf->linha_relativa(30, $inicio_linha_y, 535, 0);
                    $inicio_linha_y += 20;
                }
                $inicio_linha_y = 232;
            }
            $this->pdf->escreve_relativo(" ", $numero_x, $inicio_escrita_y + 3, 50, 20, $fonte, 7, $corTexto, 'left');
            $this->pdf->escreve_relativo("TOTAL CURSO {$det_curso['nm_curso']}", $nome_x - $expande - 20, $inicio_escrita_y + 3, 177, 20, $fonte, 7, $corTexto, 'center');
            $this->pdf->quadrado_relativo($nasc_x + $expande - 9, $inicio_escrita_y - 3, 49, 20, 0.1, "#D2D2D2", "#6F5E5E");
            //serie
            $this->pdf->escreve_relativo($total_curso == 0 ? '-' : $total_curso, $turno_x + $expande - 25, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
            //$this->pdf->quadrado_relativo($nasc_x + $expande + 40,$inicio_escrita_y-3, 25, 20,0.1,"#D2D2D2","#6F5E5E");
            //nao alfa
            $this->pdf->escreve_relativo($total_analfabetos_curso == 0 ? '-' : $total_analfabetos_curso, $turno_x + $expande + 26, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
            //alfabetizado
            $this->pdf->escreve_relativo($total_alfabetos_curso == 0 ? '-' : $total_alfabetos_curso, $alfabetizado_x + $expande + 23, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
            //$total_analfabetos_curso = $total_alfabetos_curso = 0;
            $this->pdf->quadrado_relativo($nasc_x + $expande + 65, $inicio_escrita_y - 3, 26, 20, 0.1, "#D2D2D2", "#6F5E5E");
            $necec_x = $alfabetizado_x + 23;
            foreach ($this->necessidades as $key => $n) {
                $this->pdf->escreve_relativo($n['total_curso'] == 0 ? '-' : $n['total_curso'], $necec_x + 1, $inicio_escrita_y + 2, 100, $altura, $fonte, 10, $corTexto, 'center');
                $this->necessidades[$key]['total_curso'] = (int) 0;
                $necec_x += 18;
            }
            $inicio_escrita_y += 20;
            /*$contador_registros++;
            		if($contador_registros > $registros_por_pagina)
            		{
            			$contador_registros = 0;
            			$inicio_escrita_y = 215;
            			$inicio_linha_y = 232;
            			$this->pdf->ClosePage();
            			$this->pdf->OpenPage();
            			$this->addCabecalho();
            			$this->novaPagina();
            			for($ct =0; $ct < $registros_por_pagina;$ct++){
            					$this->pdf->linha_relativa(30,$inicio_linha_y,535,0);
            					$inicio_linha_y += 20;
            			}
            			$inicio_linha_y = 232;
            		}*/
        }
        $contador_registros++;
        if ($contador_registros > $registros_por_pagina) {
            $contador_registros = 1;
            $inicio_escrita_y = 215;
            $inicio_linha_y = 232;
            $this->pdf->ClosePage();
            $this->pdf->OpenPage();
            $this->addCabecalho();
            $this->novaPagina();
            for ($ct = 0; $ct < $registros_por_pagina; $ct++) {
                $this->pdf->linha_relativa(30, $inicio_linha_y, 535, 0);
                $inicio_linha_y += 20;
            }
            $inicio_linha_y = 232;
        }
        $this->pdf->escreve_relativo(" ", $numero_x, $inicio_escrita_y + 3, 50, 20, $fonte, 7, $corTexto, 'left');
        $this->pdf->escreve_relativo("TOTAL GERAL ", $nome_x - $expande - 20, $inicio_escrita_y + 3, 177, 20, $fonte, 7, $corTexto, 'center');
        $this->pdf->quadrado_relativo($nasc_x + $expande - 9, $inicio_escrita_y - 3, 49, 20, 0.1, "#D2D2D2", "#6F5E5E");
        //serie
        $this->pdf->escreve_relativo($total_geral_alunos == 0 ? '-' : $total_geral_alunos, $turno_x + $expande - 25, $inicio_escrita_y, 60, 20, $fonte, 10, $corTexto, 'left');
        //$this->pdf->quadrado_relativo($nasc_x + $expande + 40,$inicio_escrita_y-3, 25, 20,0.1,"#D2D2D2","#6F5E5E");
        //nao alfa
        $this->pdf->escreve_relativo($total_analfabetos_geral == 0 ? '-' : $total_analfabetos_geral, $turno_x + $expande + 26, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
        //alfabetizado
        $this->pdf->escreve_relativo($total_alfabetos_geral == 0 ? '-' : $total_alfabetos_geral, $alfabetizado_x + $expande + 23, $inicio_escrita_y + 2, 60, 20, $fonte, 10, $corTexto, 'left');
        //$total_analfabetos_geral = $total_alfabetos_geral = 0;
        $this->pdf->quadrado_relativo($nasc_x + $expande + 65, $inicio_escrita_y - 3, 26, 20, 0.1, "#D2D2D2", "#6F5E5E");
        $necec_x = $alfabetizado_x + 23;
        foreach ($this->necessidades as $key => $n) {
            $this->pdf->escreve_relativo($n['total'] == 0 ? '-' : $n['total'], $necec_x + 1, $inicio_escrita_y + 2, 100, $altura, $fonte, 10, $corTexto, 'center');
            $this->necessidades[$key]['total'] = (int) 0;
            $necec_x += 18;
            //$linha_neces_x += 18;
        }
        /**
         *
         */
        $this->rodape();
        $this->pdf->ClosePage();
        $this->get_link = $this->pdf->GetLink();
        $this->pdf->CloseFile();
        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>";
    }