function renderHTML()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     $_SESSION['calendario']['ultimo_valido'] = 0;
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->nivel_acesso($this->pessoa_logada) > 7) {
         $retorno .= '
     <table width="100%" height="40%" cellspacing="1" cellpadding="2" border="0" class="tablelistagem">
       <tbody>';
         $retorno .= '
       <tr>
         <td colspan="2" valig="center" height="50">
           <center class="formdktd">Usuário sem permissão para acessar esta página</center>
         </td>
       </tr>';
         $retorno .= '
       </tbody>
     </table>';
         return $retorno;
     }
     $retorno .= '
   <table width="100%" cellspacing="1" cellpadding="2" border="0" class="tablelistagem">
     <tbody>';
     if ($_POST) {
         $this->ref_cod_escola = $_POST['ref_cod_escola'] ? $_POST['ref_cod_escola'] : $_SESSION['calendario']['ref_cod_escola'];
         $this->ref_cod_instituicao = $_POST['ref_cod_instituicao'] ? $_POST['ref_cod_instituicao'] : $_SESSION['calendario']['ref_cod_instituicao'];
         if ($_POST['mes']) {
             $this->mes = $_POST['mes'];
         }
         if ($_POST['ano']) {
             $this->ano = $_POST['ano'];
         }
         if ($_POST['cod_calendario_ano_letivo']) {
             $this->cod_calendario_ano_letivo = $_POST['cod_calendario_ano_letivo'];
         }
     } elseif (isset($_SESSION['calendario'])) {
         // passa todos os valores em SESSION para atributos do objeto
         foreach ($_SESSION['calendario'] as $var => $val) {
             $this->{$var} = $val === '' ? NULL : $val;
         }
     }
     if ($_GET) {
         header('Location: educar_calendario_ano_letivo_lst.php');
     }
     if (!$this->mes) {
         $this->mes = date('n');
     }
     if (!$this->ano) {
         $this->ano = date('Y');
     }
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if (!$this->ref_cod_escola) {
         $this->ref_cod_escola = $obj_permissoes->getEscola($this->pessoa_logada);
     }
     if (!$this->ref_cod_instituicao) {
         $this->ref_cod_instituicao = $obj_permissoes->getInstituicao($this->pessoa_logada);
     }
     $get_escola = 1;
     $obrigatorio = FALSE;
     include 'educar_calendario_pesquisas.php';
     $obj_calendario_ano_letivo = new clsPmieducarCalendarioAnoLetivo();
     $obj_calendario_ano_letivo->setOrderby('ano ASC');
     $obj_calendario_ano_letivo->setLimite($this->limite, $this->offset);
     $lista = array();
     $obj_calendario_ano_letivo->setOrderby('ano');
     switch ($nivel_usuario) {
         // Poli-institucional
         case 1:
         case 2:
         case 4:
             if (!isset($this->ref_cod_escola)) {
                 break;
             }
             $lista = $obj_calendario_ano_letivo->lista($this->cod_calendario_ano_letivo, $this->ref_cod_escola, NULL, NULL, !isset($this->cod_calendario_ano_letivo) ? $this->ano : NULL, NULL, NULL, 1);
             break;
     }
     $total = $obj_calendario_ano_letivo->_total;
     if (empty($lista)) {
         if ($nivel_usuario == 4) {
             $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Sem Calendário Letivo</td></tr>';
         } else {
             if ($_POST) {
                 $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Sem Calendário para o ano selecionado</td></tr>';
             } else {
                 $retorno .= '<tr><td colspan="2" align="center" class="formdktd">Selecione uma escola para exibir o calendário</td></tr>';
             }
         }
     }
     // Monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $key => $registro) {
             // Guarda dados na $_SESSION
             $_SESSION['calendario'] = array('cod_calendario_ano_letivo' => $registro['cod_calendario_ano_letivo'], 'ref_cod_instituicao' => $this->ref_cod_instituicao, 'ref_cod_escola' => $this->ref_cod_escola, 'ano' => $this->ano, 'mes' => $this->mes);
             // Nome da escola
             $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_cod_escola']);
             $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
             $registro['nm_escola'] = $det_ref_cod_escola['nome'];
             // Início e término do ano letivo.
             $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
             $inicio_ano = $obj_ano_letivo_modulo->menorData($registro['ano'], $this->ref_cod_escola);
             $fim_ano = $obj_ano_letivo_modulo->maiorData($registro['ano'], $this->ref_cod_escola);
             $inicio_ano = explode('/', dataFromPgToBr($inicio_ano));
             $fim_ano = explode('/', dataFromPgToBr($fim_ano));
             // Turmas da escola
             $turmas = App_Model_IedFinder::getTurmas($registro['ref_cod_escola']);
             // Mapper de Calendario_Model_TurmaDataMapper
             $calendarioTurmaMapper = new Calendario_Model_TurmaDataMapper();
             $obj_calendario = new clsCalendario();
             $obj_calendario->setLargura(600);
             $obj_calendario->permite_trocar_ano = TRUE;
             $obj_calendario->setCorDiaSemana(array(0, 6), 'ROSA');
             $obj_dia_calendario = new clsPmieducarCalendarioDia($registro['cod_calendario_ano_letivo'], $this->mes, NULL, NULL, NULL, NULL, NULL);
             $lista_dia = $obj_dia_calendario->lista($registro['cod_calendario_ano_letivo'], $this->mes, NULL, NULL, NULL, NULL);
             if ($lista_dia) {
                 $array_dias = array();
                 $array_descricao = array();
                 foreach ($lista_dia as $dia) {
                     $descricao = '';
                     $url = sprintf('educar_calendario_anotacao_lst.php?ref_cod_calendario_ano_letivo=%s&ref_cod_escola=%s&dia=%s&mes=%s&ano=%s', $registro['cod_calendario_ano_letivo'], $this->ref_cod_escola, $dia['dia'], $dia['mes'], $this->ano);
                     $botao_editar = sprintf('
           <div style="z-index: 0;">
             <br />
             <input type="button" value="Anotações" onclick="window.location=\'%s\';" class="botaolistagem"/>
           </div>', $url);
                     if ($dia['ref_cod_calendario_dia_motivo']) {
                         $array_dias[$dia['dia']] = $dia['dia'];
                         $obj_motivo = new clsPmieducarCalendarioDiaMotivo($dia['ref_cod_calendario_dia_motivo']);
                         $det_motivo = $obj_motivo->detalhe();
                         /**
                          * @todo CoreExt_Enum?
                          */
                         $tipo = strtoupper($det_motivo['tipo']) == 'E' ? 'Dia Extra-Letivo' : 'Dia Não Letivo';
                         // Busca pelas turmas que estão marcadas para esse dia
                         $args = array('calendarioAnoLetivo' => $registro['cod_calendario_ano_letivo'], 'mes' => $dia['mes'], 'dia' => $dia['dia'], 'ano' => $this->ano);
                         $calendarioTurmas = $calendarioTurmaMapper->findAll(array(), $args);
                         $nomeTurmas = array();
                         foreach ($calendarioTurmas as $calendarioTurma) {
                             $nomeTurmas[] = $turmas[$calendarioTurma->turma];
                         }
                         if (0 == count($nomeTurmas)) {
                             $calendarioTurmas = '';
                         } else {
                             $calendarioTurmas = 'Turmas: <ul><li>' . implode('</li><li>', $nomeTurmas) . '</li></ul>';
                         }
                         $descricao = sprintf('<div style="z-index: 0;">%s</div><div align="left" style="z-index: 0;">Motivo: %s<br />Descrição: %s<br />%s</div>%s', $tipo, $det_motivo['nm_motivo'], $dia['descricao'], $calendarioTurmas, $botao_editar);
                         $array_descricao[$dia['dia']] = $descricao;
                         if (strtoupper($det_motivo['tipo']) == 'E') {
                             $obj_calendario->adicionarLegenda('Extra Letivo', 'LARANJA_ESCURO');
                             $obj_calendario->adicionarArrayDias('Extra Letivo', array($dia['dia']));
                         } elseif (strtoupper($det_motivo['tipo']) == 'N') {
                             $obj_calendario->adicionarLegenda('Não Letivo', '#VERDE_ESCURO');
                             $obj_calendario->adicionarArrayDias('Não Letivo', array($dia['dia']));
                         }
                         $obj_calendario->diaDescricao($array_dias, $array_descricao);
                     } elseif ($dia['descricao']) {
                         $array_dias[$dia['dia']] = $dia['dia'];
                         $descricao = sprintf('<div style="z-index: 0;">Descrição: %s</div>%s', $dia['descricao'], $botao_editar);
                         $array_descricao[$dia['dia']] = $descricao;
                     }
                 }
                 if (!empty($array_dias)) {
                     $obj_calendario->diaDescricao($array_dias, $array_descricao);
                 }
             }
             if ($this->mes <= (int) $inicio_ano[1] && $this->ano == (int) $inicio_ano[2]) {
                 if ($this->mes == (int) $inicio_ano[1]) {
                     $obj_calendario->adicionarLegenda('Início Ano Letivo', 'AMARELO');
                     $obj_calendario->adicionarArrayDias('Início Ano Letivo', array($inicio_ano[0]));
                 }
                 $dia_inicio = (int) $inicio_ano[0];
                 $dias = array();
                 if ($this->mes < (int) $inicio_ano[1]) {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = 1; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Não Letivo');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 } else {
                     $dia_inicio;
                     for ($d = 1; $d < $dia_inicio; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarLegenda('Não Letivo', '#F7F7F7');
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 }
             } elseif ($this->mes >= (int) $fim_ano[1] && $this->ano == (int) $fim_ano[2]) {
                 $dia_inicio = (int) $fim_ano[0];
                 $dias = array();
                 if ($this->mes > (int) $fim_ano[1]) {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = 1; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Não Letivo');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 } else {
                     $NumeroDiasMes = (int) date('t', $this->mes);
                     for ($d = $fim_ano[0]; $d <= $NumeroDiasMes; $d++) {
                         $dias[] = $d;
                     }
                     $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
                     if (!empty($dias)) {
                         $obj_calendario->adicionarLegenda('Não Letivo', '#F7F7F7');
                         $obj_calendario->adicionarArrayDias('Não Letivo', $dias);
                     }
                 }
                 if ($this->mes == (int) $fim_ano[1]) {
                     $obj_calendario->adicionarLegenda('Término Ano Letivo', 'AMARELO');
                     $obj_calendario->adicionarArrayDias('Término Ano Letivo', array($fim_ano[0]));
                 }
             } else {
                 $obj_calendario->setLegendaPadrao('Dias Letivos', 'AZUL_CLARO');
             }
             $obj_calendario->setCorDiaSemana(array(0, 6), 'ROSA');
             $obj_anotacao = new clsPmieducarCalendarioDiaAnotacao();
             $lista_anotacoes = $obj_anotacao->lista(NULL, $this->mes, $registro['cod_calendario_ano_letivo'], NULL, 1);
             if ($lista_anotacoes) {
                 $dia_anotacao = array();
                 foreach ($lista_anotacoes as $anotacao) {
                     if ($this->mes == (int) $anotacao['ref_mes']) {
                         $dia_anotacao[$anotacao['ref_dia']] = $anotacao['ref_dia'];
                     }
                 }
                 $obj_calendario->adicionarIconeDias($dia_anotacao, 'A');
             }
             $obj_calendario->all_days_url = sprintf('educar_calendario_anotacao_lst.php?ref_cod_calendario_ano_letivo=%s', $registro['cod_calendario_ano_letivo']);
             // Gera código HTML do calendário
             $calendario = $obj_calendario->getCalendario($this->mes, $this->ano, 'mes_corrente', $_GET, array('cod_calendario_ano_letivo' => $registro['cod_calendario_ano_letivo']));
             $retorno .= sprintf('<tr><td colspan="2"><center><b>%s</b>%s</center></td></tr>', $registro['nm_escola'], $calendario);
         }
     }
     if ($obj_permissoes->permissao_cadastra(620, $this->pessoa_logada, 7)) {
         if ($_POST && empty($lista) && $_SESSION['calendario']['ultimo_valido']) {
             $url = sprintf('educar_calendario_ano_letivo_lst.php?ref_cod_instituicao=%s&ref_cod_escola=%s&ano=%s', $this->ref_cod_instituicao, $this->ref_cod_escola, $_SESSION['calendario']['ano']);
             $bt_voltar = sprintf('<input type="button" value="Voltar" onclick="window.location=\'%s\';" class="botaolistagem" />', $url);
         }
         $url = sprintf('educar_calendario_ano_letivo_cad.php?ref_cod_instituicao=%s&ref_cod_escola=%s', $this->ref_cod_instituicao, $this->ref_cod_escola);
         $retorno .= sprintf('
     <tr>
       <td>&nbsp;</td>
     </tr>
     <tr>
       <td align="center" colspan="2">
         %s
         <input type="button" value="Novo Calendário Letivo" onclick="window.location=\'%s\';" class="botaolistagem" />
       </td>
     </tr>', $bt_voltar, $url);
     }
     $retorno .= '
     </tbody>
   </table>';
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Calend&aacute;rio do ano letivo"));
     $this->enviaLocalizacao($localizacao->montar());
     return $retorno;
 }
 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 = "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 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);
 }
 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 Gerar()
 {
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     //		 Carrega as informações necessárias do curso
     if ($det_curso) {
         $this->ref_cod_tipo_avaliacao = $det_curso["ref_cod_tipo_avaliacao"];
         $this->media = $det_curso["media"];
         $this->media_exame = $det_curso["media_exame"];
         $this->frequencia_minima = $det_curso["frequencia_minima"];
         $this->falta_ch_globalizada = $det_curso["falta_ch_globalizada"];
         $this->padrao_ano_escolar = $det_curso["padrao_ano_escolar"];
         $this->carga_horaria = $det_curso["carga_horaria"];
         $this->hora_falta = $det_curso["hora_falta"];
     }
     //		Verifica se vai seguir o padrão do ano escolar da escola
     if ($this->padrao_ano_escolar == 1) {
         $obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
         $det_escola_ano_letivo = $obj_escola_ano_letivo->detalhe();
         //			Carrega o ano letivo
         if (is_array($det_escola_ano_letivo)) {
             $this->ano_letivo = $det_escola_ano_letivo["ano"];
         }
         $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
         $obj_ano_letivo_modulo->setOrderby("data_fim");
         $lst_ano_letivo_modulo = $obj_ano_letivo_modulo->lista($this->ano_letivo, $this->ref_ref_cod_escola);
         if (is_array($lst_ano_letivo_modulo)) {
             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
             //				Carrega a quantidade de disciplinas da turma
             $this->qtd_disciplinas = count($lst_turma_disciplina);
             //				echo "<pre>";
             //				print_r($lst_turma_disciplina);
             if ($lst_turma_disciplina) {
                 foreach ($lst_turma_disciplina as $disciplina) {
                     //						Carrega o código das disciplinas da turma
                     $this->cod_disciplinas[] = $disciplina["ref_cod_disciplina"];
                 }
                 //					Carrega a quantidade de módulos do ano letivo
                 $this->qtd_modulos = count($lst_ano_letivo_modulo);
                 $cont = 1;
                 if (is_array($lst_ano_letivo_modulo)) {
                     //						Busca em qual módulo a turma está
                     //$resultado = $obj_turma_modulo->numModulo( $cont, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_disciplinas, $this->ref_cod_turma, $this->ref_cod_turma );
                     $obj_matriculas = new clsPmieducarMatriculaTurma();
                     $lst_matriculas = $obj_matriculas->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_ref_cod_escola);
                     $resultado = 0;
                     if (is_array($lst_matriculas)) {
                         foreach ($lst_matriculas as $registro) {
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $aux_min = $obj_nota_aluno->retornaModuloAluno($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                             $aux_min = $aux_min + 1;
                             if ($resultado == 0) {
                                 $resultado = $aux_min;
                             } else {
                                 if ($resultado > $aux_min) {
                                     $resultado = $aux_min;
                                 }
                             }
                         }
                     }
                     $this->num_modulo = $resultado;
                     foreach ($lst_ano_letivo_modulo as $registro) {
                         //							Verifica se a turma está num módulo da turma
                         if ($resultado == $registro["sequencial"]) {
                             $obj_modulo = new clsPmieducarModulo($registro["ref_cod_modulo"]);
                             $det_modulo = $obj_modulo->detalhe();
                             //								Carrega o nome do módulo no qual a turma se encontra
                             $this->modulo = $det_modulo["nm_tipo"];
                             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
                             $obj_turma_disciplina->setOrderby("ref_cod_disciplina");
                             //								Carrega o código das disciplinas da turma
                             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
                             if (is_array($lst_turma_disciplina)) {
                                 $cont = 0;
                                 foreach ($lst_turma_disciplina as $valores) {
                                     $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
                                     $det_disciplina = $obj_disciplina->detalhe();
                                     if ($det_disciplina) {
                                         //											Carrega a informação se a disciplina apura falta ou não
                                         $this->lst_apura_falta["{$det_disciplina["cod_disciplina"]}"] = $det_disciplina["apura_falta"];
                                         $obj_notas = new clsPmieducarNotaAluno();
                                         //											Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                                         $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true);
                                         if ($cont == 0) {
                                             $num_aux = $lst_notas;
                                         } else {
                                             if ($lst_notas < $num_aux) {
                                                 $num_aux = $lst_notas;
                                             }
                                         }
                                     }
                                     $cont++;
                                 }
                                 /*if ( is_numeric( $lst_notas ) )
                                 		{
                                 			$this->num_modulo = $lst_notas + 1;
                                 		}
                                 		else
                                 		{
                                 			$this->num_modulo = 1;
                                 		}*/
                             }
                             //								Carrega o número do módulo em que a turma está
                             //								$this->num_modulo = ( $resultado + 1 );
                             break;
                         } else {
                             if ($resultado > $this->qtd_modulos) {
                                 //								Carrega o nome do módulo no qual a turma se encontra como "Exame"
                                 $this->modulo = "Exame";
                                 //								Carrega o número do módulo igual a quantidade de módulos da turma mais 1
                                 $this->num_modulo = $resultado + 1;
                                 break;
                             }
                         }
                         $cont++;
                     }
                 }
             }
         }
     } else {
         $obj_turma_modulo = new clsPmieducarTurmaModulo();
         $obj_turma_modulo->setOrderby("data_fim");
         $lst_turma_modulo = $obj_turma_modulo->lista($this->ref_cod_turma);
         $obj_matriculas = new clsPmieducarMatriculaTurma();
         $lst_matriculas = $obj_matriculas->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_ref_cod_serie, $this->ref_cod_curso, $this->ref_ref_cod_escola);
         $resultado = 0;
         if (is_array($lst_matriculas)) {
             foreach ($lst_matriculas as $registro) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 $aux_min = $obj_nota_aluno->retornaModuloAluno($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                 $aux_min = $aux_min + 1;
                 if ($resultado == 0) {
                     $resultado = $aux_min;
                 } else {
                     if ($resultado > $aux_min) {
                         $resultado = $aux_min;
                     }
                 }
             }
         }
         $this->num_modulo = $resultado;
         if (is_array($lst_turma_modulo)) {
             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
             //				Carrega a quantidade de disciplinas da turma
             $this->qtd_disciplinas = count($lst_turma_disciplina);
             if ($lst_turma_disciplina) {
                 foreach ($lst_turma_disciplina as $disciplina) {
                     //						Carrega o código das disciplinas da turma
                     $this->cod_disciplinas[] = $disciplina["ref_cod_disciplina"];
                     $obj_notas = new clsPmieducarNotaAluno();
                     //						Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                     $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true);
                     if ($cont == 0) {
                         $num_aux = $lst_notas;
                     } else {
                         if ($lst_notas < $num_aux) {
                             $num_aux = $lst_notas;
                         }
                     }
                 }
                 //					Carrega a quantidade de módulos da turma
                 $this->qtd_modulos = count($lst_turma_modulo);
                 $cont = 1;
                 foreach ($lst_turma_modulo as $registro) {
                     $obj_turma_modulo = new clsPmieducarTurmaModulo();
                     //						Busca em qual módulo a turma está
                     //						$resultado = $obj_turma_modulo->numModulo( $cont, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->cod_disciplinas, $this->ref_cod_turma, $this->ref_cod_turma );
                     //						Verifica se a turma está num módulo da turma
                     if ($resultado == $cont) {
                         $obj_modulo = new clsPmieducarModulo($registro["ref_cod_modulo"]);
                         $det_modulo = $obj_modulo->detalhe();
                         //							Carrega o nome do módulo no qual a turma se encontra
                         $this->modulo = $det_modulo["nm_tipo"];
                         //							Carrega o número do módulo no qual a turma se encontra
                         $this->num_modulo = $resultado;
                         break;
                     } else {
                         if ($resultado > $this->qtd_modulos) {
                             //							Carrega o nome do módulo no qual a turma se encontra como "Exame"
                             $this->modulo = "Exame";
                             //							Carrega o número do módulo no qual a turma se encontra igual ao número de módulos da turma mais 1
                             $this->num_modulo = $resultado + 1;
                             break;
                         }
                     }
                     $cont++;
                 }
             }
         }
     }
     //		echo "<pre>";
     //		print_r( $this->cod_disciplinas );
     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
     $lst_ano_letivo = $obj_ano_letivo->lista($this->ref_ref_cod_escola, null, null, null, 1, null, null, null, null, 1);
     if (is_array($lst_ano_letivo)) {
         $det_ano_letivo = array_shift($lst_ano_letivo);
         //			Carrega o ano letivo em que a turma se encontra
         $this->ano_letivo = $det_ano_letivo["ano"];
     }
     $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao);
     $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
     // 		Carrega o tipo de avaliação
     if ($det_tipo_avaliacao) {
         $this->conceitual = $det_tipo_avaliacao["conceitual"];
     }
     //		Carrega todos os valores do tipo de avaliação do curso
     $obj_avaliacao_valores = new clsPmieducarTipoAvaliacaoValores();
     $obj_avaliacao_valores->setOrderby("valor ASC");
     $lst_avaliacao_valores = $obj_avaliacao_valores->lista($this->ref_cod_tipo_avaliacao);
     if (is_array($lst_avaliacao_valores)) {
         $opcoes_valores = array("" => "Selecione");
         foreach ($lst_avaliacao_valores as $valores) {
             $opcoes_valores[$valores['sequencial']] = $valores["nome"];
         }
     }
     $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
     $obj_turma_disciplina->setOrderby("ref_cod_disciplina");
     //		Carrega o código das disciplinas da turma
     $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
     //echo "<pre>";
     //print_r( $lst_turma_disciplina );
     if (is_array($lst_turma_disciplina)) {
         //			Carrega a quantidade de disciplinas da turma
         $this->qtd_disciplinas = count($lst_turma_disciplina);
         $opcoes_disciplinas = array("" => "Selecione");
         foreach ($lst_turma_disciplina as $valores) {
             $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
             $det_disciplina = $obj_disciplina->detalhe();
             if ($det_disciplina) {
                 //					Carrega a informação se a disciplina apura falta ou não
                 $this->lst_apura_falta["{$det_disciplina["cod_disciplina"]}"] = $det_disciplina["apura_falta"];
                 //$obj_notas = new clsPmieducarNotaAluno();
                 //					Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                 //$lst_notas = $obj_notas->retornaDiscMod( $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, null, true );
                 //					Verifica se a quantidade de notas por aluno é diferente do número do módulo em que a turma se encontra
                 //echo "{$lst_notas} != {$this->num_modulo}<br>";
                 //if ( $lst_notas != $this->num_modulo )
                 //{
                 $opcoes_disciplinas[$det_disciplina["cod_disciplina"]] = $det_disciplina["nm_disciplina"];
                 //}
             }
         }
     }
     //echo "<pre>";
     //print_r( $opcoes_disciplinas );
     //		Verifica se deve ser exibida a página para classificar os alunos
     if ($this->classifica == "S") {
         //			Verifica se a turma terminou o último módulo ou se está no último módulo
         if ($this->num_modulo >= $this->qtd_modulos) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             //				Carrega as médias de cada disciplina de cada aluno
             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, true);
             if (is_array($lst_exame)) {
                 $lst_disciplina_aprovacao = array("" => "Selecione");
                 foreach ($lst_exame as $exame) {
                     //						Verifica se o aluno possui freqüência abaixo da freqüência mínima
                     if (100 - $exame["faltas"] < $this->frequencia_minima) {
                         $obj_disciplina = new clsPmieducarDisciplina($exame["disc_ref_ref_cod_disciplina"]);
                         $det_disciplina = $obj_disciplina->detalhe();
                         if ($det_disciplina) {
                             //								Carrega a disciplina que possui alunos com freqüência abaixo da freqüência mínima
                             $lst_disciplina_aprovacao["{$exame["disc_ref_ref_cod_disciplina"]}"] = $det_disciplina["nm_disciplina"];
                             //								Carrega as informações referentes a disciplina e ao aluno que possui freqüência abaixo da freqüência mínima
                             $lst_aprovacao[] = $exame;
                         }
                     }
                 }
                 foreach ($lst_aprovacao as $classificacao) {
                     if ($classificacao["media"] < $this->media) {
                         $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                         $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "S";
                     } else {
                         if ($lst_classificacao[$classificacao["ref_ref_cod_matricula"]]) {
                             if ($lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] != "S") {
                                 $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                                 $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "N";
                             }
                         } else {
                             $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $classificacao["ref_ref_cod_matricula"];
                             $lst_classificacao[$classificacao["ref_ref_cod_matricula"]]["exibe"] = "N";
                         }
                     }
                 }
                 foreach ($lst_classificacao as $registro) {
                     foreach ($lst_exame as $exame) {
                         if ($exame["ref_ref_cod_matricula"] == $registro["ref_ref_cod_matricula"]) {
                             if ($exame["media"] < $this->media) {
                                 if ($registro["exibe"] == "N") {
                                     $lst_classificacao[$registro["ref_ref_cod_matricula"]]["ref_ref_cod_matricula"] = $registro["ref_ref_cod_matricula"];
                                     $lst_classificacao[$registro["ref_ref_cod_matricula"]]["exibe"] = "S";
                                 }
                             }
                         }
                     }
                 }
                 $opcoes_disciplinas = array_unique($lst_disciplina_aprovacao);
             }
             //				Verifica se existem alunos com a freqüência abaixo da freqüência mínima
             if (is_array($lst_aprovacao)) {
                 foreach ($lst_classificacao as $registro) {
                     $obj_matricula = new clsPmieducarMatricula($registro["ref_ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                     $det_matricula = $obj_matricula->detalhe();
                     if ($det_matricula) {
                         $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                         $det_aluno = $obj_aluno->detalhe();
                         if ($det_aluno) {
                             $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                             $det_pessoa = $obj_pessoa->detalhe();
                             $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, 1);
                             $det_dispensa = $obj_dispensa->detalhe();
                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                 //									Verifica se o tipo de avaliação não é conceitual
                                 if ($det_tipo_avaliacao["conceitual"] == 0) {
                                     $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                     $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                     $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                     //										Verifica se a falta não é globalizada e se não está na última disciplina
                                     if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                         //$this->campoTextoInv( "faltas_{$det_pessoa["idpes"]}_", "Faltas", $registro["faltas"], 5, 5, false, false, true );
                                         //											Verifica se a média é maior ou igual a média mínima
                                         if ($registro["exibe"] == "N") {
                                             $this->campoCheck("aprovacao_{$det_pessoa["idpes"]}_", " ", 0, "Aprovado");
                                         } else {
                                             $this->campoCheck("aprovacao_{$det_pessoa["idpes"]}_", " ", 0, "Exame");
                                         }
                                     }
                                 } else {
                                     $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                 }
                             } else {
                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                             }
                         }
                     }
                 }
             }
         }
     } else {
         //			Verifica se a turma terminou o último módulo
         if ($this->num_modulo > $this->qtd_modulos) {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             //				Carrega as médias de cada disciplina de cada aluno
             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true);
             if (is_array($lst_exame)) {
                 $lst_disciplina_aprovacao = array("" => "Selecione");
                 foreach ($lst_exame as $exame) {
                     $obj_notas = new clsPmieducarNotaAluno();
                     //						Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                     $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $exame["disc_ref_ref_cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, $exame["ref_ref_cod_matricula"]);
                     $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $exame["ref_ref_cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $exame["disc_ref_ref_cod_disciplina"], null, null, null, null, null, 1);
                     $det_dispensa = $obj_dispensa->detalhe();
                     //						Verifica se a quantiade de notas da disciplina é diferente da quantidade de módulos, se não foi dispensado da disciplina e se a média é menor que a média mínima
                     if ($lst_notas != $this->num_modulo && !is_array($det_dispensa) && $exame["media"] < $this->media) {
                         $obj_disciplina = new clsPmieducarDisciplina($exame["disc_ref_ref_cod_disciplina"]);
                         $det_disciplina = $obj_disciplina->detalhe();
                         if ($det_disciplina) {
                             //								Carrega a disciplina que possui alunos com média abaixo da média mínima
                             $lst_disciplina_aprovacao["{$exame["disc_ref_ref_cod_disciplina"]}"] = $det_disciplina["nm_disciplina"];
                         }
                     }
                 }
                 $opcoes_disciplinas = array_unique($lst_disciplina_aprovacao);
             }
         }
         $this->campoRotulo("tipo_modulo", "Módulo", $this->modulo);
         $this->campoRotulo("numero_modulo", "Número do Módulo", $this->num_modulo);
         //			$this->campoTexto( "tipo_modulo", "Módulo", $this->modulo, 30, 255, false, false, false, "", "", "", "onKeyUp", true );
         $this->campoLista("ref_cod_disciplina", "Disciplina", $opcoes_disciplinas, $this->ref_cod_disciplina);
         if (is_numeric($this->ref_cod_disciplina)) {
             $this->tipoacao = "Novo";
             //				Verifica se a turma terminou o último módulo
             if ($this->qtd_modulos < $this->num_modulo) {
                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                 //					Carrega as médias dos alunos por disciplina
                 $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true);
                 if (is_array($lst_exame)) {
                     foreach ($lst_exame as $registro) {
                         $obj_matricula = new clsPmieducarMatricula($registro["ref_ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                         $det_matricula = $obj_matricula->detalhe();
                         if ($registro["disc_ref_ref_cod_disciplina"] == $this->ref_cod_disciplina) {
                             //								Verifica se a média do aluno em uma disciplina está abaixo da média mínima
                             if ($registro["media"] < $this->media) {
                                 if ($det_matricula) {
                                     $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                                     $det_aluno = $obj_aluno->detalhe();
                                     if ($det_aluno) {
                                         $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                                         $det_pessoa = $obj_pessoa->detalhe();
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, 1);
                                         $det_dispensa = $obj_dispensa->detalhe();
                                         //											Verifica se o aluno não foi dispensado da disciplina
                                         if (!$det_dispensa) {
                                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                                 //													Verifica se o tipo de avaliação não é conceitual
                                                 if ($det_tipo_avaliacao["conceitual"] == 0) {
                                                     $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                                     $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                                     $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", true);
                                                     $this->exame = "S";
                                                     //														Verifica se a falta não é globalizada e se não está na última disciplina
                                                     if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                                         //															Verifica se a disciplina apura faltas
                                                         if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                                                             //																Verifica se o ano letivo ainda está em andamento
                                                             if (!($this->num_modulo > $this->qtd_modulos)) {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                             } else {
                                                                 $this->exame = "S";
                                                             }
                                                         } else {
                                                             $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                         }
                                                     }
                                                 } else {
                                                     $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                                 }
                                             } else {
                                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 } else {
                 }
             } else {
                 if (is_array($this->lst_matricula_turma)) {
                     foreach ($this->lst_matricula_turma as $registro) {
                         $obj_notas = new clsPmieducarNotaAluno();
                         //							Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                         $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                         //echo "matrc.: {$registro["ref_cod_matricula"]}<br>";
                         //							echo "1 {$this->num_modulo} == ".( $lst_notas + 1 )."<br>";
                         if ($this->num_modulo == $lst_notas + 1) {
                             $obj_matricula = new clsPmieducarMatricula();
                             $modulo_matric = $obj_matricula->numModulo($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $registro["ref_cod_matricula"]);
                             $obj_matricula = new clsPmieducarMatricula($registro["ref_cod_matricula"], null, null, null, null, null, null, null, null, null, 1, null, 1, $this->modulo);
                             $det_matricula = $obj_matricula->detalhe();
                             if ($det_matricula) {
                                 //									echo "2 ".( $modulo_matric + 1 )." == {$this->num_modulo}<br>";
                                 if ($modulo_matric + 1 == $this->num_modulo) {
                                     $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                                     $det_aluno = $obj_aluno->detalhe();
                                     if ($det_aluno) {
                                         $obj_pessoa = new clsPessoa_($det_aluno["ref_idpes"]);
                                         $det_pessoa = $obj_pessoa->detalhe();
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina();
                                         $det_dispensa = $obj_dispensa->lista($this->ref_cod_turma, $det_matricula["cod_matricula"], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, null, null, null, null, null, null, null, 1);
                                         $det_disciplina = $det_disciplina[0];
                                         //										Verifica se o aluno não foi dispensado da disciplina
                                         if (!$det_dispensa) {
                                             if (is_numeric($this->ref_cod_tipo_avaliacao)) {
                                                 $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($this->ref_cod_tipo_avaliacao, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
                                                 $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe();
                                                 $this->campoOculto("nm_aluno_{$det_pessoa["idpes"]}", $det_pessoa["nome"]);
                                                 $this->campoTextoInv("nm_aluno_{$det_pessoa["idpes"]}_", "Aluno", $det_pessoa["nome"], 30, 255, false, false, true);
                                                 $this->lst_matriculas[] = array("{$det_matricula["ref_cod_aluno"]}", "{$det_pessoa["idpes"]}", "{$det_matricula["cod_matricula"]}");
                                                 $obj_nota_aluno = new clsPmieducarNotaAluno();
                                                 $disc_nota = $obj_nota_aluno->retornaDiscNota($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $det_matricula["cod_matricula"], $this->num_modulo);
                                                 $obj_disciplina_serie = new clsPmieducarDisciplinaSerie();
                                                 $qtd_disc = $obj_disciplina_serie->retornaQtdDiscMat($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $det_matricula["cod_matricula"]);
                                                 if ($this->falta_ch_globalizada == 1 && $disc_nota == $qtd_disc - 1) {
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", true);
                                                 } else {
                                                     $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                 }
                                                 //												Verifica se a falta não é globalizada e se não está na última disciplina
                                                 if (!($this->falta_ch_globalizada == 1 && $this->qtd_disciplinas > 1)) {
                                                     //													Verifica se a disciplina apura faltas
                                                     if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                                                         //														Verifica se o ano letivo ainda está em andamento
                                                         if (!($this->num_modulo > $this->qtd_modulos)) {
                                                             $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                         } else {
                                                             $this->exame = "S";
                                                         }
                                                     } else {
                                                         $this->campoLista("nota_{$det_pessoa["idpes"]}", " Nota", $opcoes_valores, "", "", false);
                                                     }
                                                 } else {
                                                     if ($this->falta_ch_globalizada == 1 && $disc_nota == $qtd_disc - 1) {
                                                         //													Verifica se o ano letivo ainda está em andamento
                                                         if (!($this->num_modulo > $this->qtd_modulos)) {
                                                             if ($this->num_modulo == $this->qtd_modulos) {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true, "", "", false, false, true);
                                                                 $this->campoLista("aprovacao_{$det_pessoa["idpes"]}", "", array("" => "Selecione", "S" => "Aprovado", "N" => "Reprovado"), "");
                                                             } else {
                                                                 $this->campoNumero("faltas_{$det_pessoa["idpes"]}", " Faltas", "", 3, 3, true);
                                                             }
                                                         }
                                                     }
                                                 }
                                             } else {
                                                 $this->campoTexto("nm_aluno_{$det_pessoa["idpes"]}", "Aluno", $det_pessoa["nome"], 30, 255, false, false, false, "", "", "", "onKeyUp", true);
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->lst_matriculas = serialize($this->lst_matriculas);
     $this->cod_disciplinas = serialize($this->cod_disciplinas);
     $this->lst_apura_falta = serialize($this->lst_apura_falta);
     $this->campoOculto("ref_cod_turma", $this->ref_cod_turma);
     $this->campoOculto("ref_ref_cod_escola", $this->ref_ref_cod_escola);
     $this->campoOculto("ref_ref_cod_serie", $this->ref_ref_cod_serie);
     $this->campoOculto("ref_cod_curso", $this->ref_cod_curso);
     $this->campoOculto("ref_cod_tipo_avaliacao", $this->ref_cod_tipo_avaliacao);
     $this->campoOculto("media", $this->media);
     $this->campoOculto("media_exame", $this->media_exame);
     $this->campoOculto("ano_letivo", $this->ano_letivo);
     $this->campoOculto("conceitual", $this->conceitual);
     $this->campoOculto("lst_matriculas", $this->lst_matriculas);
     $this->campoOculto("falta_ch_globalizada", $this->falta_ch_globalizada);
     $this->campoOculto("qtd_modulos", $this->qtd_modulos);
     $this->campoOculto("num_modulo", $this->num_modulo);
     $this->campoOculto("frequencia_minima", $this->frequencia_minima);
     $this->campoOculto("carga_horaria", $this->carga_horaria);
     $this->campoOculto("cod_disciplinas", $this->cod_disciplinas);
     $this->campoOculto("lst_apura_falta", $this->lst_apura_falta);
     $this->campoOculto("qtd_disciplinas", $this->qtd_disciplinas);
     $this->campoOculto("exame", $this->exame);
     $this->campoOculto("classifica", $this->classifica);
 }
    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 Editar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(620, $this->pessoa_logada, 7, "educar_calendario_ano_letivo_lst.php");
     $obj_ano_letivo_modulo = new clsPmieducarAnoLetivoModulo();
     $data_inicio = $obj_ano_letivo_modulo->menorData($this->ano, $this->ref_cod_escola);
     $data_fim = $obj_ano_letivo_modulo->maiorData($this->ano, $this->ref_cod_escola);
     if ($data_inicio && $data_fim) {
         $obj_calend_ano_letivo = new clsPmieducarCalendarioAnoLetivo($this->cod_calendario_ano_letivo, $this->ref_cod_escola, $this->pessoa_logada, null, $this->ano, null, null, 1);
         if ($obj_calend_ano_letivo->edita()) {
             $this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";
             header("Location: educar_calendario_ano_letivo_lst.php");
             die;
             return true;
         }
         $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";
         echo "<!--\nErro ao editar clsPmieducarCalendarioAnoLetivo\nvalores obrigatorios\nif( is_numeric( {$this->cod_calendario_ano_letivo} ) && is_numeric( {$this->ref_usuario_exc} ) )\n-->";
         return false;
     }
     echo "<script> alert( 'Não foi possível definir as datas de início e fim do ano letivo.' ) </script>";
     return false;
     /*
     $obj = new clsPmieducarCalendarioAnoLetivo($this->cod_calendario_ano_letivo, $this->ref_cod_escola, $this->pessoa_logada, $this->pessoa_logada, $this->ano, $this->data_cadastra, $this->data_exclusao, $this->ativo, $this->inicio_ano_letivo, $this->termino_ano_letivo);
     $editou = $obj->edita();
     if( $editou )
     {
     	$this->mensagem .= "Edi&ccedil;&atilde;o efetuada com sucesso.<br>";
     	header( "Location: educar_calendario_ano_letivo_lst.php" );
     	die();
     	return true;
     }
     
     $this->mensagem = "Edi&ccedil;&atilde;o n&atilde;o realizada.<br>";
     echo "<!--\nErro ao editar clsPmieducarCalendarioAnoLetivo\nvalores obrigatorios\nif( is_numeric( $this->cod_calendario_ano_letivo ) && is_numeric( $this->ref_usuario_exc ) )\n-->";
     return false;
     */
 }
 /**
  * Cria um boletim em HTML para a matricula $matricula
  *
  * @param int $matricula
  * @return array
  */
 function getBoletimAluno($matricula, $ano)
 {
     $media = false;
     $reprovado = 0;
     $falta_globalizada = 0;
     $array_status = array("Aprovado", "Reprovado", "Reprovado por faltas");
     $objCurso = new clsPmieducarCurso($this->ref_cod_curso);
     $detalhe_curso = $objCurso->detalhe();
     // monta o boletim do aluno
     $cor = array("#ffffff", "#dce6f1");
     $corDest = array("#e1c9c9", "#efe7e7");
     $boletim = "\n\t\t<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" style=\"border-width:2px;color#00000;border-style:solid;\">\n\t\t\t<tr bgcolor=\"#ffffff\">\n\t\t\t\t<td rowspan=\"2\" class=\"cell_normal\" align=\"center\">Disciplina</td>\n\t\t";
     $linha2 = "<tr bgcolor=\"#ffffff\">";
     $objTurmaModulo = new clsPmieducarAnoLetivoModulo();
     $objTurmaModulo->setOrderby("sequencial ASC");
     $lista_modulos = $objTurmaModulo->lista($ano, $this->ref_ref_cod_escola);
     if (is_array($lista_modulos)) {
         foreach ($lista_modulos as $modulo) {
             $objModulo = new clsPmieducarModulo($modulo["ref_cod_modulo"]);
             $detModulo = $objModulo->detalhe();
             $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">{$detModulo["nm_tipo"]}</td>";
             $linha2 .= "\n\t\t\t\t<td class=\"cell_separa\" align=\"center\" width=\"40\">Nota</td>\n\t\t\t\t<td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td>\n\t\t\t\t";
         }
     }
     if (!is_null($detalhe_curso["media_exame"])) {
         $boletim .= "<td class=\"cell_separa\" align=\"center\">Exame</td>";
         $linha2 .= "<td class=\"cell_separa\" align=\"center\">Nota</td>";
     }
     $boletim .= "<td colspan=\"2\" class=\"cell_separa\" align=\"center\">Resultado</td>\n\t\t</tr>\n\t\t";
     $linha2 .= "<td class=\"cell_separa\" align=\"center\" width=\"40\">Media</td><td class=\"cell_normal\" align=\"center\" width=\"40\">Faltas</td></tr>";
     $boletim .= $linha2;
     $i = 0;
     $objDisciplinaSerie = new clsPmieducarDisciplinaSerie();
     $lstDisciplinas = $objDisciplinaSerie->lista(null, $this->ref_ref_cod_serie, 1);
     foreach ($lstDisciplinas as $disciplina) {
         $i++;
         $faltas_total = 0;
         $notas_total = 0;
         $objDispensa = new clsPmieducarDispensaDisciplina($matricula, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"]);
         $dispensa = $objDispensa->existe();
         $objDisciplina = new clsPmieducarDisciplina($disciplina["ref_cod_disciplina"]);
         $detDisciplina = $objDisciplina->detalhe();
         $boletim .= "\n\t\t\t<tr>\n\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\"  class=\"cell_normal\">{$detDisciplina["nm_disciplina"]}</td>\n\t\t\t";
         if (is_array($lista_modulos)) {
             reset($lista_modulos);
             foreach ($lista_modulos as $modulo) {
                 if ($dispensa) {
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t";
                 } else {
                     // pegando a falta desse modulo
                     $faltas = 0;
                     $objFaltaAluno = new clsPmieducarFaltaAluno();
                     $objFaltaAluno->setOrderby("data_cadastro DESC");
                     $objFaltaAluno->setLimite(1);
                     $lista_faltas = $objFaltaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, 1, $modulo["sequencial"]);
                     if (is_array($lista_faltas)) {
                         foreach ($lista_faltas as $falta_modulo) {
                             $faltas = $falta_modulo["faltas"];
                         }
                     }
                     $nota = null;
                     $objNotaAluno = new clsPmieducarNotaAluno();
                     $objNotaAluno->setOrderby("data_cadastro DESC");
                     $objNotaAluno->setLimite(1);
                     //						echo "<br><br><br>null,null,null,{$this->ref_ref_cod_serie},{$this->ref_ref_cod_escola},{$disciplina["ref_cod_disciplina"]},{$matricula},null,null,null,null,null,1,{$modulo["sequencial"]}\n<br>\n";
                     $lista_notas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], $this->ref_ref_cod_escola, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, 1, $modulo["sequencial"]);
                     //						print_r($lista_notas);
                     //						echo "<br>";
                     if (is_array($lista_notas)) {
                         foreach ($lista_notas as $nota_modulo) {
                             $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_modulo["ref_ref_cod_tipo_avaliacao"], $nota_modulo["ref_sequencial"]);
                             //								echo "{$nota_modulo["ref_ref_cod_tipo_avaliacao"]},{$nota_modulo["ref_sequencial"]}\n<br>\n";
                             $det_nota_valor = $objNotaValor->detalhe();
                             $nota = $det_nota_valor["nome"];
                             $notas_total += $det_nota_valor["valor"];
                         }
                         unset($lista_notas);
                     }
                     $nota = $nota ? $nota : "&nbsp;";
                     $faltas = $faltas ? $faltas : 0;
                     $faltas_total += $faltas;
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota}</td>\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_normal\">{$faltas}</td>\n\t\t\t\t\t\t";
                 }
             }
             $media = $notas_total / count($lista_modulos);
             $media_aprovacao = $detalhe_curso["media"];
             if (!is_null($detalhe_curso["media_exame"])) {
                 // o curso tem exame
                 if ($dispensa) {
                     $boletim .= "\n\t\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" align=\"center\">dispensa</td>\n\t\t\t\t\t\t";
                 } else {
                     // echo count($lista_modulos);
                     $objNotaAluno = new clsPmieducarNotaAluno();
                     $objNotaAluno->setLimite(1);
                     $objNotaAluno->setOrderby("data_cadastro DESC");
                     $listaNotas = $objNotaAluno->lista(null, null, null, $disciplina["ref_cod_serie"], null, $disciplina["ref_cod_disciplina"], $matricula, null, null, null, null, null, null, null, count($lista_modulos) + 1);
                     if ($listaNotas) {
                         // ja recebeu a nota do exame
                         foreach ($listaNotas as $nota_exame) {
                             $objNotaValor = new clsPmieducarTipoAvaliacaoValores($nota_exame["ref_ref_cod_tipo_avaliacao"], $nota_exame["ref_sequencial"]);
                             $detNotaValor = $objNotaValor->detalhe();
                             $nota_exame = $detNotaValor["nome"];
                             // print_r($detNotaValor);
                             $notas_total += $detNotaValor["valor"];
                             $nota_exame = $nota_exame ? $nota_exame : "-";
                             $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$nota_exame}</td>";
                         }
                         $media = $notas_total / (count($lista_modulos) + 1);
                         $media_aprovacao = $detalhe_curso["media_exame"];
                     } else {
                         $nota_exame = $nota_exame ? $nota_exame : "-";
                         $boletim .= "<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">-</td>";
                     }
                 }
             }
             if ($media !== false) {
                 $objNotaValor = new clsPmieducarTipoAvaliacaoValores();
                 $objNotaValor->setLimite(1);
                 $objNotaValor->setOrderby("valor DESC");
                 $notas_media = $objNotaValor->lista($detalhe_curso["ref_cod_tipo_avaliacao"], null, null, null, $media, $media);
                 foreach ($notas_media as $nota_media) {
                     $media = $nota_media["nome"];
                     if ($nota_media["valor"] < $media_aprovacao) {
                         $reprovado = 1;
                     }
                 }
             } else {
                 $media = "&nbsp;";
             }
             if ($dispensa) {
                 $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\" colspan=\"2\" align=\"center\">dispensa</td>\n\t\t\t\t\t";
             } else {
                 $boletim .= "\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\" class=\"cell_separa\">{$media}</td>\n\t\t\t\t\t<td bgcolor=\"" . $cor[$i % 2] . "\"  class=\"cell_normal\">{$faltas_total}</td>\n\t\t\t\t\t";
             }
         }
         if (!$detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") {
             if ($faltas_total > $maximo_faltas) {
                 $reprovado = 2;
             }
         }
         $falta_globalizada += $faltas_total;
     }
     if ($detalhe_curso["falta_ch_globalizada"] && $maximo_faltas != "Ilimitado") {
         if ($falta_globalizada > $maximo_faltas) {
             $reprovado = 2;
         }
     }
     $boletim .= "</table>";
     return array("boletim" => $boletim, "automatico" => $array_status[$reprovado]);
 }