protected function getMatriculas()
 {
     $matriculas = array();
     if ($this->canGetMatriculas()) {
         $alunos = new clsPmieducarMatriculaTurma();
         $alunos->setOrderby("sequencial_fechamento , translate(pessoa.nome,'" . Portabilis_String_Utils::toLatin1(åáàãâäéèêëíìîïóòõôöúùüûçÿýñÅÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÔÖÚÙÛÜÇÝÑ) . "', '" . Portabilis_String_Utils::toLatin1(aaaaaaeeeeiiiiooooouuuucyynAAAAAAEEEEIIIIOOOOOUUUUCYN) . "')");
         $alunos = $alunos->lista($this->getRequest()->matricula_id, $this->getRequest()->turma_id, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->getRequest()->serie_id, $this->getRequest()->curso_id, $this->getRequest()->escola_id, $this->getRequest()->instituicao_id, $this->getRequest()->aluno_id, NULL, array(1, 2, 3), NULL, NULL, $this->getRequest()->ano, NULL, TRUE, NULL, NULL, TRUE, NULL, NULL, NULL, NULL, NULL, NULL);
         if (!is_array($alunos)) {
             $alunos = array();
         }
         foreach ($alunos as $aluno) {
             $matricula = array();
             $matriculaId = $aluno['ref_cod_matricula'];
             // seta id da matricula a ser usado pelo metodo serviceBoletim
             $this->setCurrentMatriculaId($matriculaId);
             $matricula['componentes_curriculares'] = $this->loadComponentesCurricularesForMatricula($matriculaId);
             $matricula['matricula_id'] = $aluno['ref_cod_matricula'];
             $matricula['aluno_id'] = $aluno['ref_cod_aluno'];
             $matricula['nome'] = $this->safeString($aluno['nome_aluno']);
             $matriculas[] = $matricula;
         }
     }
     // adiciona regras de avaliacao
     if (!empty($matriculas)) {
         $this->appendResponse('details', $this->getRegraAvaliacao());
         $this->appendResponse('situacao', $this->getSituacaoMatricula());
     }
     $this->appendResponse('matricula_id', $this->getRequest()->matricula_id);
     return $matriculas;
 }
示例#2
0
 function Gerar()
 {
     if ($_POST) {
         foreach ($_POST as $campo => $val) {
             $this->{$campo} = $this->{$campo} ? $this->{$campo} : $val;
         }
     }
     $this->campoOculto('cod_turma', $this->cod_turma);
     // foreign keys
     $obrigatorio = FALSE;
     $instituicao_obrigatorio = TRUE;
     $escola_curso_obrigatorio = TRUE;
     $curso_obrigatorio = TRUE;
     $get_escola = TRUE;
     $get_escola_curso_serie = FALSE;
     $sem_padrao = TRUE;
     $get_curso = TRUE;
     $bloqueia = false;
     $anoVisivel = false;
     if (isset($this->ano) || !is_numeric($this->cod_turma)) {
         $anoVisivel = true;
     }
     if (!isset($this->cod_turma)) {
         $bloqueia = false;
     } else {
         if (is_numeric($this->cod_turma)) {
             $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
             $obj_matriculas_turma->setOrderby('nome_aluno');
             $lst_matriculas_turma = $obj_matriculas_turma->lista(NULL, $this->cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, array(1, 2, 3), NULL, NULL, NULL, NULL, TRUE, NULL, 1, TRUE);
             if (is_array($lst_matriculas_turma) && count($lst_matriculas_turma) > 0) {
                 $bloqueia = true;
             }
         }
     }
     $desabilitado = $bloqueia;
     include 'include/pmieducar/educar_campo_lista.php';
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     $opcoes_serie = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_curso) {
         $obj_serie = new clsPmieducarSerie();
         $obj_serie->setOrderby('nm_serie ASC');
         $lst_serie = $obj_serie->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
         if (is_array($lst_serie) && count($lst_serie)) {
             foreach ($lst_serie as $serie) {
                 $opcoes_serie[$serie['cod_serie']] = $serie['nm_serie'];
             }
         }
     }
     if ($bloqueia) {
         $this->campoOculto('serie_param', $this->serie_param = $this->ref_ref_cod_serie);
         $this->campoOculto('escola_param', $this->escola_param = $this->ref_cod_escola);
     }
     $this->campoLista('ref_ref_cod_serie', 'Série', $opcoes_serie, $this->ref_ref_cod_serie, '', FALSE, '', NULL, $bloqueia);
     // o campo ano somente é exibido para turmas novas  ou cadastradas após inclusão deste campo.
     if ($anoVisivel) {
         $this->inputsHelper()->dynamic('anoLetivo', array('disabled' => $bloqueia));
         if ($bloqueia) {
             $this->inputsHelper()->hidden('ano_hidden', array('value' => $this->ano));
         }
     }
     // Infra prédio cômodo
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_ref_cod_escola) {
         $obj_infra_predio = new clsPmieducarInfraPredio();
         $obj_infra_predio->setOrderby('nm_predio ASC');
         $lst_infra_predio = $obj_infra_predio->lista(NULL, NULL, NULL, $this->ref_ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
         if (is_array($lst_infra_predio) && count($lst_infra_predio)) {
             foreach ($lst_infra_predio as $predio) {
                 $obj_infra_predio_comodo = new clsPmieducarInfraPredioComodo();
                 $lst_infra_predio_comodo = $obj_infra_predio_comodo->lista(NULL, NULL, NULL, NULL, $predio['cod_infra_predio'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
                 if (is_array($lst_infra_predio_comodo) && count($lst_infra_predio_comodo)) {
                     foreach ($lst_infra_predio_comodo as $comodo) {
                         $opcoes[$comodo['cod_infra_predio_comodo']] = $comodo['nm_comodo'];
                     }
                 }
             }
         }
     }
     $this->campoLista('ref_cod_infra_predio_comodo', 'Sala', $opcoes, $this->ref_cod_infra_predio_comodo, NULL, NULL, NULL, NULL, NULL, FALSE);
     $array_servidor = array('' => 'Selecione um servidor');
     if ($this->ref_cod_regente) {
         $obj_pessoa = new clsPessoa_($this->ref_cod_regente);
         $det = $obj_pessoa->detalhe();
         $array_servidor[$this->ref_cod_regente] = $det['nome'];
     }
     $this->campoListaPesq('ref_cod_regente', 'Professor/Regente', $array_servidor, $this->ref_cod_regente, '', '', FALSE, '', '', NULL, NULL, '', TRUE, FALSE, FALSE);
     // Turma tipo
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_instituicao) {
         $objTemp = new clsPmieducarTurmaTipo();
         $objTemp->setOrderby('nm_tipo ASC');
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes[$registro['cod_turma_tipo']] = $registro['nm_tipo'];
             }
         }
     }
     $this->campoLista('ref_cod_turma_tipo', 'Tipo de Turma', $opcoes, $this->ref_cod_turma_tipo, '', FALSE, '', NULL);
     $this->campoTexto('nm_turma', 'Turma', $this->nm_turma, 30, 255, TRUE);
     $this->campoTexto('sgl_turma', 'Sigla', $this->sgl_turma, 15, 15, FALSE);
     $this->campoNumero('max_aluno', 'Máximo de Alunos', $this->max_aluno, 3, 3, TRUE);
     $this->inputsHelper()->date('data_fechamento', array('required' => false, 'label' => 'Data de fechamento', 'value' => Portabilis_Date_Utils::pgSQLToBr($this->data_fechamento)));
     $ativo = isset($this->cod_turma) ? dbBool($this->visivel) : true;
     $this->campoCheck('visivel', 'Ativo', $ativo);
     $this->campoCheck('multiseriada', 'Multi-Seriada', $this->multiseriada, '', FALSE, FALSE);
     $this->campoLista('ref_ref_cod_serie_mult', 'Série', array('' => 'Selecione'), '', '', FALSE, '', '', '', FALSE);
     $this->campoOculto('ref_ref_cod_serie_mult_', $this->ref_ref_cod_serie_mult);
     $this->campoQuebra2();
     // hora
     $this->campoHora('hora_inicial', 'Hora Inicial', $this->hora_inicial, FALSE);
     $this->campoHora('hora_final', 'Hora Final', $this->hora_final, FALSE);
     $this->campoHora('hora_inicio_intervalo', Portabilis_String_Utils::toLatin1('Hora Início Intervalo'), $this->hora_inicio_intervalo, FALSE);
     $this->campoHora('hora_fim_intervalo', 'Hora Fim Intervalo', $this->hora_fim_intervalo, FALSE);
     $this->inputsHelper()->turmaTurno();
     // modelos boletim
     require_once 'Portabilis/Model/Report/TipoBoletim.php';
     require_once 'Portabilis/Array/Utils.php';
     $tiposBoletim = Portabilis_Model_Report_TipoBoletim::getInstance()->getEnums();
     $tiposBoletim = Portabilis_Array_Utils::insertIn(null, "Selecione um modelo", $tiposBoletim);
     $this->campoLista('tipo_boletim', Portabilis_String_Utils::toLatin1('Modelo relatório boletim'), $tiposBoletim, $this->tipo_boletim);
     $this->campoQuebra2();
     if ($this->ref_ref_cod_serie) {
         require_once 'ComponenteCurricular/Model/ComponenteDataMapper.php';
         require_once 'ComponenteCurricular/Model/AnoEscolarDataMapper.php';
         require_once 'ComponenteCurricular/Model/TurmaDataMapper.php';
         $disciplinas = '';
         $conteudo = '';
         // Instancia o mapper de componente curricular
         $mapper = new ComponenteCurricular_Model_ComponenteDataMapper();
         // Instancia o mapper de ano escolar
         $anoEscolar = new ComponenteCurricular_Model_AnoEscolarDataMapper();
         $lista = $anoEscolar->findComponentePorSerie($this->ref_ref_cod_serie);
         // Instancia o mapper de turma
         $componenteTurmaMapper = new ComponenteCurricular_Model_TurmaDataMapper();
         $componentesTurma = array();
         if (isset($this->cod_turma) && is_numeric($this->cod_turma)) {
             $componentesTurma = $componenteTurmaMapper->findAll(array(), array('turma' => $this->cod_turma));
         }
         $componentes = array();
         foreach ($componentesTurma as $componenteTurma) {
             $componentes[$componenteTurma->get('componenteCurricular')] = $componenteTurma;
         }
         unset($componentesTurma);
         $this->escola_serie_disciplina = array();
         if (is_array($lista) && count($lista)) {
             $conteudo .= '<div style="margin-bottom: 10px;">';
             $conteudo .= '  <span style="display: block; float: left; width: 250px;">Nome</span>';
             $conteudo .= '  <span style="display: block; float: left; width: 100px;">' . Portabilis_String_Utils::toLatin1('Carga horária') . '</span>';
             $conteudo .= '  <span style="display: block; float: left">' . Portabilis_String_Utils::toLatin1('Usar padrão do componente?') . '</span>';
             $conteudo .= '</div>';
             $conteudo .= '<br style="clear: left" />';
             foreach ($lista as $registro) {
                 $checked = '';
                 $usarComponente = FALSE;
                 if (isset($componentes[$registro->id])) {
                     $checked = 'checked="checked"';
                 }
                 if (is_null($componentes[$registro->id]->cargaHoraria) || 0 == $componentes[$registro->id]->cargaHoraria) {
                     $usarComponente = TRUE;
                 } else {
                     $cargaHoraria = $componentes[$registro->id]->cargaHoraria;
                 }
                 $cargaComponente = $registro->cargaHoraria;
                 $conteudo .= '<div style="margin-bottom: 10px; float: left">';
                 $conteudo .= "  <label style='display: block; float: left; width: 250px'><input type=\"checkbox\" {$checked} name=\"disciplinas[{$registro->id}]\" id=\"disciplinas[]\" value=\"{$registro->id}\">{$registro}</label>";
                 $conteudo .= "  <label style='display: block; float: left; width: 100px;'><input type='text' name='carga_horaria[{$registro->id}]' value='{$cargaHoraria}' size='5' maxlength='7'></label>";
                 $conteudo .= "  <label style='display: block; float: left'><input type='checkbox' name='usar_componente[{$registro->id}]' value='1' " . ($usarComponente == TRUE ? $checked : '') . ">({$cargaComponente} h)</label>";
                 $conteudo .= '</div>';
                 $conteudo .= '<br style="clear: left" />';
                 $cargaHoraria = '';
             }
             $disciplinas = '<table cellspacing="0" cellpadding="0" border="0">';
             $disciplinas .= sprintf('<tr align="left"><td>%s</td></tr>', $conteudo);
             $disciplinas .= '</table>';
         } else {
             $disciplinas = Portabilis_String_Utils::toLatin1('A série/ano escolar não possui componentes curriculares cadastrados.');
         }
     }
     $componentes = $help = array();
     try {
         $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_ref_cod_serie, $this->ref_cod_escola);
     } catch (Exception $e) {
     }
     foreach ($componentes as $componente) {
         $help[] = sprintf('%s (%.0f h)', $componente->nome, $componente->cargaHoraria);
     }
     if (count($componentes)) {
         $help = '<ul><li>' . implode('</li><li>', $help) . '</li></ul>';
     } else {
         $help = '';
     }
     $label = 'Componentes curriculares:<br />' . '<strong>Observa&ccedil;&atilde;o:</strong> caso n&atilde;o defina os componentes<br />' . 'curriculares para a turma, esta usar&aacute; a defini&ccedil;&atilde;o<br />' . 'da s&eacute;rie/ano escolar da escola:' . '<span id="_escola_serie_componentes">%s</span>';
     $label = sprintf($label, $help);
     $this->campoRotulo('disciplinas_', $label, "<div id='disciplinas'>{$disciplinas}</div>");
     $this->campoQuebra2();
     if ($_POST['turma_modulo']) {
         $this->turma_modulo = unserialize(urldecode($_POST['turma_modulo']));
     }
     $qtd_modulo = count($this->turma_modulo) == 0 ? 1 : count($this->turma_modulo) + 1;
     if (is_numeric($this->cod_turma) && !$_POST) {
         $obj = new clsPmieducarTurmaModulo();
         $registros = $obj->lista($this->cod_turma);
         if ($registros) {
             foreach ($registros as $campo) {
                 $this->turma_modulo[$campo[$qtd_modulo]]['sequencial_'] = $campo['sequencial'];
                 $this->turma_modulo[$campo[$qtd_modulo]]['ref_cod_modulo_'] = $campo['ref_cod_modulo'];
                 $this->turma_modulo[$campo[$qtd_modulo]]['data_inicio_'] = dataFromPgToBr($campo['data_inicio']);
                 $this->turma_modulo[$campo[$qtd_modulo]]['data_fim_'] = dataFromPgToBr($campo['data_fim']);
                 $qtd_modulo++;
             }
         }
     }
     if ($_POST["ref_cod_modulo"] && $_POST["data_inicio"] && $_POST["data_fim"]) {
         $this->turma_modulo[$qtd_modulo]["sequencial_"] = $qtd_modulo;
         $this->turma_modulo[$qtd_modulo]["ref_cod_modulo_"] = $_POST["ref_cod_modulo"];
         $this->turma_modulo[$qtd_modulo]["data_inicio_"] = $_POST["data_inicio"];
         $this->turma_modulo[$qtd_modulo]["data_fim_"] = $_POST["data_fim"];
         $qtd_modulo++;
         unset($this->ref_cod_modulo);
         unset($this->data_inicio);
         unset($this->data_fim);
     }
     $this->campoOculto("excluir_modulo", "");
     $qtd_modulo = 1;
     unset($aux);
     if ($this->turma_modulo) {
         foreach ($this->turma_modulo as $campo) {
             if ($this->excluir_modulo == $campo['sequencial_']) {
                 $this->turma_modulo[$campo['sequencial']] = NULL;
                 $this->excluir_modulo = NULL;
             } else {
                 $obj_modulo = new clsPmieducarModulo($campo['ref_cod_modulo_']);
                 $det_modulo = $obj_modulo->detalhe();
                 $nm_tipo_modulo = $det_modulo['nm_tipo'];
                 $this->campoTextoInv('ref_cod_modulo_' . $campo['sequencial_'], '', $nm_tipo_modulo, 30, 255, FALSE, FALSE, TRUE, '', '', '', '', 'ref_cod_modulo');
                 $this->campoTextoInv('data_inicio_' . $campo['sequencial_'], '', $campo['data_inicio_'], 10, 10, FALSE, FALSE, TRUE, '', '', '', '', '');
                 $this->campoTextoInv('data_fim_' . $campo['sequencial_'], '', $campo['data_fim_'], 10, 10, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"document.getElementById('excluir_modulo').value = '{$campo["sequencial_"]}'; document.getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", '', '', '');
                 $aux[$qtd_modulo]['sequencial_'] = $qtd_modulo;
                 $aux[$qtd_modulo]['ref_cod_modulo_'] = $campo['ref_cod_modulo_'];
                 $aux[$qtd_modulo]['data_inicio_'] = $campo['data_inicio_'];
                 $aux[$qtd_modulo]['data_fim_'] = $campo['data_fim_'];
                 $qtd_modulo++;
             }
         }
         unset($this->turma_modulo);
         $this->turma_modulo = $aux;
     }
     $this->campoOculto('turma_modulo', serialize($this->turma_modulo));
     // Módulo
     // foreign keys
     $opcoes = array('' => 'Selecione');
     // Editar
     if ($this->ref_cod_instituicao) {
         $objTemp = new clsPmieducarModulo();
         $objTemp->setOrderby('nm_tipo ASC');
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes[$registro['cod_modulo']] = $registro['nm_tipo'];
             }
         }
     }
     $this->campoLista('ref_cod_modulo', Portabilis_String_utils::toLatin1('Módulo'), $opcoes, $this->ref_cod_modulo, NULL, NULL, NULL, NULL, NULL, FALSE);
     $this->campoData('data_inicio', Portabilis_String_utils::toLatin1('Data Início'), $this->data_inicio, FALSE);
     $this->campoData('data_fim', 'Data Fim', $this->data_fim, FALSE);
     $this->campoOculto('incluir_modulo', '');
     $this->campoRotulo('bt_incluir_modulo', Portabilis_String_utils::toLatin1('Módulo'), "<a href='#' onclick=\"document.getElementById('incluir_modulo').value = 'S'; document.getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' alt='adicionar' title='Incluir' border=0></a>");
     $this->campoQuebra2();
     if ($_POST['turma_dia_semana']) {
         $this->turma_dia_semana = unserialize(urldecode($_POST['turma_dia_semana']));
     }
     if (is_numeric($this->cod_turma) && !$_POST) {
         $obj = new clsPmieducarTurmaDiaSemana();
         $registros = $obj->lista(NULL, $this->cod_turma);
         if ($registros) {
             foreach ($registros as $campo) {
                 $aux['dia_semana_'] = $campo['dia_semana'];
                 $aux['hora_inicial_'] = $campo['hora_inicial'];
                 $aux['hora_final_'] = $campo['hora_final'];
                 $this->turma_dia_semana[] = $aux;
             }
         }
     }
     unset($aux);
     if ($_POST['dia_semana'] && $_POST['ds_hora_inicial'] && $_POST['ds_hora_final']) {
         $aux['dia_semana_'] = $_POST['dia_semana'];
         $aux['hora_inicial_'] = $_POST['ds_hora_inicial'];
         $aux['hora_final_'] = $_POST['ds_hora_final'];
         $this->turma_dia_semana[] = $aux;
         unset($this->dia_semana);
         unset($this->ds_hora_inicial);
         unset($this->ds_hora_final);
     }
     $this->campoOculto('excluir_dia_semana', '');
     unset($aux);
     if ($this->turma_dia_semana) {
         foreach ($this->turma_dia_semana as $key => $dias_semana) {
             if ($this->excluir_dia_semana == $dias_semana['dia_semana_']) {
                 unset($this->turma_dia_semana[$key]);
                 unset($this->excluir_dia_semana);
             } else {
                 $nm_dia_semana = $this->dias_da_semana[$dias_semana['dia_semana_']];
                 $this->campoTextoInv('dia_semana_' . $dias_semana['dia_semana_'], '', $nm_dia_semana, 8, 8, FALSE, FALSE, TRUE, '', '', '', '', 'dia_semana');
                 $this->campoTextoInv('hora_inicial_' . $dias_semana['dia_semana_'], '', $dias_semana['hora_inicial_'], 5, 5, FALSE, FALSE, TRUE, '', '', '', '', 'ds_hora_inicial_');
                 $this->campoTextoInv('hora_final_' . $dias_semana['dia_semana_'], '', $dias_semana['hora_final_'], 5, 5, FALSE, FALSE, FALSE, '', "<a href='#' onclick=\"document.getElementById('excluir_dia_semana').value = '{$dias_semana["dia_semana_"]}'; document.getElementById('tipoacao').value = ''; {$this->__nome}.submit();\"><img src='imagens/nvp_bola_xis.gif' title='Excluir' border=0></a>", '', '', 'ds_hora_final_');
                 $aux['dia_semana_'] = $dias_semana['dia_semana_'];
                 $aux['hora_inicial_'] = $dias_semana['hora_inicial_'];
                 $aux['hora_final_'] = $dias_semana['hora_final_'];
             }
         }
     }
     $this->campoOculto('turma_dia_semana', serialize($this->turma_dia_semana));
     if (class_exists('clsPmieducarTurmaDiaSemana')) {
         $opcoes = $this->dias_da_semana;
     } else {
         echo '<!--\\nErro\\nClasse clsPmieducarTurmaDiaSemana não encontrada\\n-->';
         $opcoes = array('' => Portabilis_String_utils::toLatin1('Erro na geração'));
     }
     $this->campoLista('dia_semana', 'Dia Semana', $opcoes, $this->dia_semana, NULL, false, '', '', false, false);
     $this->campoHora('ds_hora_inicial', 'Hora Inicial', $this->ds_hora_inicial, FALSE);
     $this->campoHora('ds_hora_final', 'Hora Final', $this->ds_hora_final, FALSE);
     $this->campoOculto('incluir_dia_semana', '');
     $this->campoRotulo('bt_incluir_dia_semana', 'Dia Semana', "<a href='#' onclick=\"document.getElementById('incluir_dia_semana').value = 'S'; document.getElementById('tipoacao').value = ''; acao();\"><img src='imagens/nvp_bot_adiciona.gif' alt='adicionar' title='Incluir' border=0></a>");
     $this->campoOculto('padrao_ano_escolar', $this->padrao_ano_escolar);
     $this->acao_enviar = 'valida()';
 }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        if ($this->ref_ref_cod_serie) {
            $this->ref_cod_serie = $this->ref_ref_cod_serie;
        }
        $fonte = 'arial';
        $corTexto = '#000000';
        if (empty($this->ref_cod_turma)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
        $det_escola = $obj_escola->detalhe();
        $this->nm_escola = $det_escola['nome'];
        $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
        $det_instituicao = $obj_instituicao->detalhe();
        $this->nm_instituicao = $det_instituicao['nm_instituicao'];
        $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
        $det_turma = $obj_turma->detalhe();
        $this->nm_turma = $det_turma['nm_turma'];
        $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
        $det_serie = $obj_serie->detalhe();
        $this->nm_serie = $det_serie['nm_serie'];
        $obj_calendario = new clsPmieducarEscolaAnoLetivo();
        $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
        if (!$lista_calendario) {
            echo '<script>
	     			alert("Escola não possui calendário definido para este ano");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        $calendario = array_shift($lista_calendario);
        //Dias previstos do mes
        // Qual o primeiro dia do mes
        $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
        // Quantos dias tem o mes
        $NumeroDiasMes = date('t', $primeiroDiaDoMes);
        $qtd_dias = $NumeroDiasMes;
        $this->pdf = new clsPDF("Acompanhamento Mensal - {$this->ano}", "Acompanhamento Mensal - {$this->meses_do_ano[$this->mes]}", "A4", "", false, false);
        $this->pdf->largura = 842.0;
        $this->pdf->altura = 595.0;
        $this->pdf->OpenPage();
        $this->addCabecalho();
        $this->pdf->linha_relativa(30, 120, 780, 0);
        $this->pdf->linha_relativa(30, 120, 0, 135);
        $this->pdf->linha_relativa(30, 120, 255, 135);
        $this->pdf->escreve_relativo("Livros", 40, 245, 60, 15, null, 8);
        $this->pdf->escreve_relativo("Professor(a) / Aluno", 200, 125, 80, 13, null, 8);
        $obj_matricula = new clsPmieducarMatriculaTurma();
        $obj_matricula->setOrderby('nome_ascii');
        $lst_matricula = $obj_matricula->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, array(1, 2, 3), null, null, $this->ano, null, true, null, null, 1, null, null, null, null, $this->semestre);
        if ($lst_matricula) {
            foreach ($lst_matricula as $ordem => $matricula) {
                $this->pdf->linha_relativa(285 + $ordem * 13, 120, 0, 135);
                $nome = $matricula['nome'];
                $nome = explode(" ", $nome);
                if (strlen($nome[0]) + strlen($nome[1]) < 13) {
                    $nome = $nome[0] . " " . $nome[1];
                } else {
                    $nome = $nome[0];
                }
                //$nome = str_replace(" ","|",$nome);
                $nome = str2upper(substr($nome, 0, 16));
                //$nome = wordwrap(str2upper(substr($nome,0,16)),1,"\n",true);
                //$nome = str_replace("|","",$nome);
                //$nome = str_replace("|","",$nome);
                //$nome = wordwrap($nome,1,"\n",true);
                //$nome = substr($nome,0,20);
                //$this->pdf->escreve_relativo($nome, 287+($ordem*13), 125, 130, 135, null, 8);
                $imagem = girarTextoImagem("{$nome}", 8, 125);
                $this->pdf->InsertJpng('png', $imagem, 287 + $ordem * 13, 250, 1);
                ////die("$ this->pdf->escreve_relativo(\"{$nome}\", 287+($ordem*13), 145, 13, 135, null, 8);");
                //$this->pdf->escreve_relativo("A\nl\ne\nx\ns\na\nn\nd\nr\no\nP\na\nc\nh\ne\nc\no", 287+($ordem*13), 145, 13, 135, null, 8);
            }
        }
        for ($i = 0; $i < 40; $i++) {
            $this->pdf->linha_relativa(285 + $i * 13, 120, 0, 135);
            /*if($i+1 <= $qtd_dias)
            		{
            			$this->pdf->escreve_relativo("", 287+($i*13), 145, 13, 135, null, 8);
            		}*/
        }
        $this->pdf->linha_relativa(810, 120, 0, 135);
        //fim
        $this->pdf->linha_relativa(30, 255, 780, 0);
        $total_alunos = 100;
        $qtd_quebra = 25;
        $base = 242;
        $linha = 1;
        //if($lst_matricula)
        //{
        //foreach ($lst_matricula as $ordem => $matricula)
        //{
        //$ordem++;
        //$ordem = sprintf("%02d",$ordem);
        for ($ordem = 1; $ordem <= 22; $ordem++) {
            if ($linha % $qtd_quebra == 0) {
                //nova pagina
                $this->pdf->ClosePage();
                $this->pdf->OpenPage();
                $base = 30;
                $linha = 0;
                $this->pdf->linha_relativa(30, 30, 780, 0);
                $qtd_quebra = 35;
            }
            $this->pdf->linha_relativa(30, $base + $linha * 13, 0, 13);
            $this->pdf->linha_relativa(60, $base + $linha * 13, 0, 13);
            $this->pdf->linha_relativa(30, $base + 13 + $linha * 13, 780, 0);
            $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 13, 15, 15, null, 8);
            $this->pdf->escreve_relativo('', 65, $base + 3 + $linha * 13, 215, 15, null, 8);
            for ($i = 0; $i <= 38; $i++) {
                $this->pdf->linha_relativa(285 + $i * 13, $base + $linha * 13, 0, 13);
            }
            $this->pdf->linha_relativa(285 + $i * 13, $base + $linha * 13, 0, 13);
            //total
            $this->pdf->linha_relativa(810, $base + $linha * 13, 0, 13);
            //fim
            $linha++;
            //}
        }
        //}
        /*//escrever total
        		$this->pdf->linha_relativa(30, $base+($linha*13), 0, 13);
        		$this->pdf->linha_relativa(60, $base+($linha*13), 0, 13);
        
        		$this->pdf->escreve_relativo("Total", 35, ($base+3)+($linha*13), 20, 15, null, 8);
        
        		for($i=0; $i<38; $i++)
        		{
        			$this->pdf->linha_relativa(285+($i*13), $base+($linha*13), 0, 13);
        		}
        		$this->pdf->linha_relativa(765, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(780, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(795, $base+($linha*13), 0, 15);
        		$this->pdf->linha_relativa(285+($i*13), $base+($linha*13), 0, 15);//total
        
        		$this->pdf->linha_relativa(810, $base+($linha*13), 0, 15);//fim
        		$this->pdf->linha_relativa(30, $base+(($linha+1)*13), 780, 0);*/
        $this->pdf->quadrado_relativo(400, 550, 394, 15);
        $this->pdf->quadrado_relativo(400, 560, 394, 15);
        for ($mes = 1; $mes <= 13; $mes++) {
            $this->pdf->escreve_relativo($this->meses_do_ano_abr[$mes], 370 + $mes * 30 + 5, 550, 50, 15, null, 8);
            if ($mes < 13) {
                $this->pdf->linha_relativa(394 + $mes * 30 + 5, 550, 0, 25);
            }
        }
        $this->pdf->ClosePage();
        $this->pdf->CloseFile();
        $this->get_link = $this->pdf->GetLink();
        echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
        echo "<html><center>Se o download não iniciar automaticamente <br /><a target='blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t</span>\n\t\t\t</center>";
    }
 function Inicializar()
 {
     $retorno = "Novo";
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     if (!$_POST) {
         header('Location: educar_matricula_lst.php');
         die;
     }
     foreach ($_POST as $key => $value) {
         $this->{$key} = $value;
     }
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, 'educar_matricula_lst.php');
     if (is_numeric($this->ref_cod_matricula)) {
         if (is_numeric($this->ref_cod_turma_origem)) {
             $obj_matricula_turma = new clsPmieducarMatriculaTurma();
             $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
             if ($lst_matricula_turma) {
                 foreach ($lst_matricula_turma as $matricula) {
                     $obj = new clsPmieducarMatriculaTurma($this->ref_cod_matricula, $matricula['ref_cod_turma'], $this->pessoa_logada, NULL, NULL, NULL, 0, NULL, $matricula['sequencial']);
                     $registro = $obj->detalhe();
                     if ($registro) {
                         if (!$obj->edita()) {
                             echo "erro ao cadastrar";
                             die;
                         }
                     }
                 }
             }
             $obj = new clsPmieducarMatriculaTurma($this->ref_cod_matricula, $this->ref_cod_turma_destino, $this->pessoa_logada, $this->pessoa_logada, NULL, NULL, 1);
             $cadastrou = $obj->cadastra();
             if ($cadastrou) {
                 $this->mensagem .= 'Cadastro efetuado com sucesso.<br>';
                 header('Location: educar_matricula_det.php?cod_matricula=' . $this->ref_cod_matricula);
                 die;
             }
         } else {
             $obj = new clsPmieducarMatriculaTurma($this->ref_cod_matricula, $this->ref_cod_turma_destino, $this->pessoa_logada, $this->pessoa_logada, NULL, NULL, 1);
             $cadastrou = $obj->cadastra();
             if ($cadastrou) {
                 $this->mensagem .= 'Cadastro efetuado com sucesso.<br>';
                 header('Location: educar_matricula_det.php?cod_matricula=' . $this->ref_cod_matricula);
                 die;
             }
         }
     }
     header('Location: educar_matricula_lst.php');
     die;
 }
$ref_ref_cod_serie = $_GET['ref_ref_cod_serie'];
$ano_requisitado = $_GET["ano"];
if (is_numeric($_GET["sem1"]) && $ano_requisitado != 2007 && !$is_padrao) {
    $semestre = $_GET["sem1"];
} elseif (is_numeric($_GET["sem2"]) && $ano_requisitado != 2007 && !$is_padrao) {
    $semestre = $_GET["sem2"];
} else {
    $semestre = null;
}
$obj_escola_ano_letivo = new clsPmieducarEscolaAnoLetivo();
//		$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista( $ref_cod_escola,$ano_requisitado,null,null,1,null,null,null,null,1 );
$lst_escola_ano_letivo = $obj_escola_ano_letivo->lista($ref_cod_escola, $ano_requisitado, null, null, null, null, null, null, null, 1);
if (is_array($lst_escola_ano_letivo)) {
    $det_escola_ano_letivo = array_shift($lst_escola_ano_letivo);
    $ano = $det_escola_ano_letivo['ano'];
    $obj_matricula_turma = new clsPmieducarMatriculaTurma();
    $obj_matricula_turma->setOrderby("nm_curso, nm_serie, to_ascii(nome) ASC");
    $lst_matricula_turma = $obj_matricula_turma->dadosAlunosNaoEnturmados($ref_cod_escola, $ref_ref_cod_serie, $ref_cod_curso, $ano, true, $semestre);
    if (is_array($lst_matricula_turma)) {
        $total = count($lst_matricula_turma);
        $relatorio = new relatorios("RELAÇÃO DOS ALUNOS NÃO ENTURMADOS   -   Ano {$ano}                                    Total de Alunos = {$total}", 120, false, "i-Educar", "A4", "Prefeitura COBRA Tecnologia\nSecretaria da Educação\n\n" . date("d/m/Y"), "#515151");
        $relatorio->setMargem(20, 20, 50, 50);
        $relatorio->exibe_produzido_por = false;
        $relatorio->novalinha(array("Cód. Aluno", "Nome do Aluno", "Data Nascimento", "Nome do Responsável"), 0, 16, true, "arial", array(75, 175, 100), "#515151", "#d3d3d3", "#FFFFFF", false, true);
        $cod_curso = 0;
        $cod_serie = 0;
        $db = new clsBanco();
        foreach ($lst_matricula_turma as $matriculas) {
            if ($cod_serie != $matriculas['ref_ref_cod_serie']) {
                $cod_curso = $matriculas['ref_cod_curso'];
                $cod_serie = $matriculas['ref_ref_cod_serie'];
 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 Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, "educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}");
     //		$obj_matricula = new clsPmieducarMatricula();
     //		$lst_matricula = $obj_matricula->lista( null,null,null,null,null,null,$this->ref_cod_aluno,null,null,null,null,null,1 );
     //		if ( is_array($lst_matricula) )
     //		{
     //			$det_matricula = array_shift($lst_matricula);
     //			$this->ref_cod_matricula_saida = $det_matricula["cod_matricula"];
     if ($this->transferencia_tipo == 2) {
         $this->data_transferencia = date("Y-m-d");
         $this->ativo = 1;
         $obj_matricula = new clsPmieducarMatricula($this->ref_cod_matricula);
         $det_matricula = $obj_matricula->detalhe();
         $aprovado = $det_matricula["aprovado"];
         if ($aprovado == 3) {
             $obj = new clsPmieducarMatricula($this->ref_cod_matricula, null, null, null, $this->pessoa_logada, null, null, 4, null, null, 1);
             $editou = $obj->edita();
             if (!$editou) {
                 $this->mensagem = "N&atilde;o foi poss&iacute;vel editar a Matr&iacute;cula do Aluno.<br>";
                 return false;
             }
             $obj_matricula_turma = new clsPmieducarMatriculaTurma();
             $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, null, null, null, null, null, null, null, 1);
             if ($lst_matricula_turma) {
                 $det_matricula_turma = array_shift($lst_matricula_turma);
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma($this->ref_cod_matricula, $det_matricula_turma['ref_cod_turma'], $this->pessoa_logada, null, null, null, 0, null, $det_matricula_turma['sequencial']);
                 if (!$obj_matricula_turma->edita()) {
                     $this->mensagem = "N&atilde;o foi poss&iacute;vel desativar a Matr&iacute;cula Turma do Aluno.<br>";
                     return false;
                 }
             }
         }
     }
     $obj = new clsPmieducarTransferenciaSolicitacao(null, $this->ref_cod_transferencia_tipo, null, $this->pessoa_logada, null, $this->ref_cod_matricula, $this->observacao, null, null, $this->ativo, $this->data_transferencia);
     $cadastrou = $obj->cadastra();
     if ($cadastrou) {
         $this->mensagem .= "Cadastro efetuado com sucesso.<br>";
         header("Location: educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}");
         die;
         return true;
     }
     //		}
     //		else
     //		{
     //			$this->mensagem = "N&atilde;o foi poss&iacute;vel encontrar a Matr&iacute;cula do Aluno.<br>";
     //			return false;
     //		}
     $this->mensagem = "Cadastro n&atilde;o realizado.<br>";
     echo "<!--\nErro ao cadastrar clsPmieducarTransferenciaSolicitacao\nvalores obrigatorios\nis_numeric( {$this->ref_cod_transferencia_tipo} ) && is_numeric( {$this->pessoa_logada} ) && is_numeric( {$this->ref_cod_aluno} )\n-->";
     return false;
 }
 function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7, "educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}");
     if ($this->ref_ref_cod_serie == $this->ref_ref_cod_serie_antiga) {
         header("location: educar_matricula_det.php?cod_matricula={$this->cod_matricula}");
     }
     $obj_matricula = new clsPmieducarMatricula($this->cod_matricula);
     $det_matricula = $obj_matricula->detalhe();
     if (!$det_matricula || $det_matricula['aprovado'] != 3) {
         header("location: educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}");
     }
     $obj_matricula = new clsPmieducarMatricula($this->cod_matricula, null, null, null, $this->pessoa_logada, null, null, 5, null, null, 1, null, 0, null, null, $this->descricao_reclassificacao);
     if (!$obj_matricula->edita()) {
         echo "<script>alert('Erro ao reclassificar matrícula'); window.location='educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}';</script>";
         die("Erro ao reclassificar matrícula");
     }
     $obj_serie = new clsPmieducarSerie($this->ref_ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $obj_matricula = new clsPmieducarMatricula(null, null, $this->ref_cod_escola, $this->ref_ref_cod_serie, null, $this->pessoa_logada, $this->ref_cod_aluno, 3, null, null, 1, $det_matricula['ano'], 1, null, null, null, 1, $det_serie["ref_cod_curso"]);
     $cadastrou = $obj_matricula->cadastra();
     if (!$cadastrou) {
         echo "<script>alert('Erro ao reclassificar matrícula'); window.location='educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}';</script>";
         die("Erro ao reclassificar matrícula");
     } else {
         /**
          * desativa todas as enturmacoes da matricula anterior
          */
         $obj_matricula_turma = new clsPmieducarMatriculaTurma($this->cod_matricula);
         if (!$obj_matricula_turma->reclassificacao()) {
             echo "<script>alert('Erro ao desativar enturmações da matrícula: {$this->cod_matricula}\nContate o administrador do sistema informando a matrícula!');</script>";
         }
         //window.location='educar_matricula_det.php?cod_matricula={$this->cod_matricula}&ref_cod_aluno={$this->ref_cod_aluno}';
         echo "<script>alert('Reclassificação realizada com sucesso!\\nO Código da nova matrícula é: {$cadastrou}.');\n\t\t\twindow.location='educar_matricula_lst.php?ref_cod_aluno={$this->ref_cod_aluno}';\n\t\t\t</script>";
         die('Reclassificação realizada com sucesso!');
     }
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Matricula Ocorrencia Disciplinar - Detalhe";
     $this->sequencial = $_GET["sequencial"];
     $this->ref_cod_matricula = $_GET["ref_cod_matricula"];
     $this->ref_cod_tipo_ocorrencia_disciplinar = $_GET["ref_cod_tipo_ocorrencia_disciplinar"];
     $tmp_obj = new clsPmieducarMatriculaOcorrenciaDisciplinar($this->ref_cod_matricula, $this->ref_cod_tipo_ocorrencia_disciplinar, $this->sequencial, null, null, null, null, null, 1);
     $registro = $tmp_obj->detalhe();
     if (!$registro) {
         header("location: educar_matricula_ocorrencia_disciplinar_lst.php?ref_cod_matricula={$this->ref_cod_matricula}");
         die;
     }
     if (class_exists("clsPmieducarMatricula")) {
         $obj_ref_cod_matricula = new clsPmieducarMatricula($registro["ref_cod_matricula"]);
         $det_ref_cod_matricula = $obj_ref_cod_matricula->detalhe();
         //$registro["ref_cod_matricula"] = $det_ref_cod_matricula["ref_cod_matricula"];
     } else {
         $registro["ref_cod_matricula"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarMatricula\n-->";
     }
     if (class_exists("clsPmieducarSerie")) {
         $obj_serie = new clsPmieducarSerie($det_ref_cod_matricula["ref_ref_cod_serie"]);
         $det_serie = $obj_serie->detalhe();
         $registro["ref_ref_cod_serie"] = $det_serie["nm_serie"];
     } else {
         $registro["ref_ref_cod_serie"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarSerie\n-->";
     }
     if (class_exists("clsPmieducarTipoOcorrenciaDisciplinar")) {
         $obj_ref_cod_tipo_ocorrencia_disciplinar = new clsPmieducarTipoOcorrenciaDisciplinar($registro["ref_cod_tipo_ocorrencia_disciplinar"]);
         $det_ref_cod_tipo_ocorrencia_disciplinar = $obj_ref_cod_tipo_ocorrencia_disciplinar->detalhe();
         $registro["nm_tipo"] = $det_ref_cod_tipo_ocorrencia_disciplinar["nm_tipo"];
     } else {
         $registro["ref_cod_tipo_ocorrencia_disciplinar"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarTipoOcorrenciaDisciplinar\n-->";
     }
     $obj_mat_turma = new clsPmieducarMatriculaTurma();
     $det_mat_turma = $obj_mat_turma->lista($registro["ref_cod_matricula"], null, null, null, null, null, null, null, 1);
     if ($det_mat_turma) {
         $det_mat_turma = array_shift($det_mat_turma);
     }
     if (class_exists("clsPmieducarTipoOcorrenciaDisciplinar")) {
         $obj_ref_cod_tipo_ocorrencia_disciplinar = new clsPmieducarTipoOcorrenciaDisciplinar($registro["ref_cod_tipo_ocorrencia_disciplinar"]);
         $det_ref_cod_tipo_ocorrencia_disciplinar = $obj_ref_cod_tipo_ocorrencia_disciplinar->detalhe();
         $registro["nm_tipo"] = $det_ref_cod_tipo_ocorrencia_disciplinar["nm_tipo"];
     } else {
         $registro["ref_cod_tipo_ocorrencia_disciplinar"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarTipoOcorrenciaDisciplinar\n-->";
     }
     if ($registro["ref_cod_matricula"]) {
         $this->addDetalhe(array("Matr&iacute;cula", "{$registro["ref_cod_matricula"]}"));
     }
     /**
      * Busca nome do aluno
      */
     if (class_exists("clsPmieducarMatricula")) {
         $obj_ref_cod_matricula = new clsPmieducarMatricula();
         $detalhe_aluno = array_shift($obj_ref_cod_matricula->lista($this->ref_cod_matricula));
     } else {
         $registro["ref_cod_matricula"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarMatricula\n-->";
     }
     $obj_aluno = new clsPmieducarAluno();
     $det_aluno = array_shift($det_aluno = $obj_aluno->lista($detalhe_aluno['ref_cod_aluno'], null, null, null, null, null, null, null, null, null, 1));
     $this->addDetalhe(array("Nome do Aluno", $det_aluno['nome_aluno']));
     /**
      *
      */
     if ($registro["ref_ref_cod_serie"]) {
         $this->addDetalhe(array("S&eacute;rie", "{$registro["ref_ref_cod_serie"]}"));
     }
     if ($det_mat_turma["det_turma"]) {
         $this->addDetalhe(array("Turma", "{$det_mat_turma["det_turma"]}"));
     }
     if ($registro["sequencial"]) {
         $this->addDetalhe(array("N&uacute;mero da Ocorr&ecirc;ncia", "{$registro["sequencial"]}"));
     }
     if ($registro["data_cadastro"]) {
         if ($hora = dataFromPgToBr("{$registro["data_cadastro"]}", 'H:i')) {
             $this->addDetalhe(array("Hora Ocorr&ecirc;ncia", $hora));
         }
         $this->addDetalhe(array("Data Ocorr&ecirc;ncia", dataFromPgToBr("{$registro["data_cadastro"]}", 'd/m/Y')));
     }
     if ($registro["ref_cod_tipo_ocorrencia_disciplinar"]) {
         $this->addDetalhe(array("Tipo Ocorr&ecirc;ncia", "{$registro["nm_tipo"]}"));
     }
     if ($registro["observacao"]) {
         $this->addDetalhe(array("Observa&ccedil;&atilde;o", nl2br("{$registro["observacao"]}")));
     }
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) {
         $this->url_novo = "educar_matricula_ocorrencia_disciplinar_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}";
         $this->url_editar = "educar_matricula_ocorrencia_disciplinar_cad.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_tipo_ocorrencia_disciplinar={$registro["ref_cod_tipo_ocorrencia_disciplinar"]}&sequencial={$registro["sequencial"]}";
     }
     $this->url_cancelar = "educar_matricula_ocorrencia_disciplinar_lst.php?ref_cod_matricula={$registro["ref_cod_matricula"]}";
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Detalhe da ocorr&ecirc;ncia disciplinar da matr&iacute;cula"));
     $this->enviaLocalizacao($localizacao->montar());
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Matriculas Turma - Detalhe";
     $this->ref_cod_turma = $_GET["ref_cod_turma"];
     if (class_exists("clsPmieducarTurma")) {
         $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
         $det_turma = $obj_turma->detalhe();
         $nm_turma = $det_turma["nm_turma"];
         $ref_ref_cod_serie = $det_turma["ref_ref_cod_serie"];
         $ref_ref_cod_escola = $det_turma["ref_ref_cod_escola"];
         $ref_cod_curso = $det_turma["ref_cod_curso"];
     } else {
         $registro["ref_cod_turma"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarTurma\n-->";
     }
     if ($ref_ref_cod_serie) {
         // busca o ano em q a escola esta em andamento
         $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo();
         $lst_ano_letivo = $obj_ano_letivo->lista($ref_ref_cod_escola, null, null, null, 1, null, null, null, null, 1);
         if (is_array($lst_ano_letivo)) {
             $det_ano_letivo = array_shift($lst_ano_letivo);
             $ano_letivo = $det_ano_letivo["ano"];
         } else {
             $this->mensagem = "N&atilde;o foi poss&iacute;vel encontrar o Ano Letivo.";
             return false;
         }
     }
     if ($ano_letivo || !$ref_ref_cod_serie) {
         $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
         $lst_matriculas_turma = $obj_matriculas_turma->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, null, null, null, null, null, false, null, array(1, 2, 3), null, null, $ano_letivo, null, false, null, 1, true);
         if (is_array($lst_matriculas_turma)) {
             $qtd_alunos = count($lst_matriculas_turma);
             foreach ($lst_matriculas_turma as $key => $matricula) {
                 $obj_matricula = new clsPmieducarMatricula($matricula["ref_cod_matricula"]);
                 $det_matricula = $obj_matricula->detalhe();
                 $obj_aluno = new clsPmieducarAluno();
                 $lst_aluno = $obj_aluno->lista($det_matricula["ref_cod_aluno"]);
                 $det_aluno = array_shift($lst_aluno);
                 $nm_alunos[] = $det_aluno["nome_aluno"];
             }
             $registro = array_shift($lst_matriculas_turma);
         } else {
             $obj_turma = new clsPmieducarTurma();
             $lst_turma = $obj_turma->lista($this->ref_cod_turma);
             if (is_array($lst_turma)) {
                 $registro = array_shift($lst_turma);
             }
         }
     } else {
         $obj_turma = new clsPmieducarTurma();
         $lst_turma = $obj_turma->lista($this->ref_cod_turma);
         if (is_array($lst_turma)) {
             $registro = array_shift($lst_turma);
         }
     }
     if (!$registro) {
         header("location: educar_matriculas_turma_lst.php");
         die;
     }
     if (class_exists("clsPmieducarSerie")) {
         $obj_ref_cod_serie = new clsPmieducarSerie($registro["ref_ref_cod_serie"]);
         $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
         $nm_serie = $det_ref_cod_serie["nm_serie"];
     } else {
         $registro["ref_ref_cod_serie"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarSerie\n-->";
     }
     if (class_exists("clsPmieducarCurso")) {
         $obj_ref_cod_curso = new clsPmieducarCurso($registro["ref_cod_curso"]);
         $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
         $registro["ref_cod_curso"] = $det_ref_cod_curso["nm_curso"];
     } else {
         $registro["ref_cod_curso"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarCurso\n-->";
     }
     if (class_exists("clsPmieducarInstituicao")) {
         $obj_cod_instituicao = new clsPmieducarInstituicao($registro["ref_cod_instituicao"]);
         $obj_cod_instituicao_det = $obj_cod_instituicao->detalhe();
         $registro["ref_cod_instituicao"] = $obj_cod_instituicao_det["nm_instituicao"];
     } else {
         $registro["ref_cod_instituicao"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarInstituicao\n-->";
     }
     if (class_exists("clsPmieducarEscola")) {
         $obj_ref_cod_escola = new clsPmieducarEscola($registro["ref_ref_cod_escola"]);
         $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
         $nm_escola = $det_ref_cod_escola["nome"];
     } else {
         $registro["ref_ref_cod_escola"] = "Erro na gera&ccedil;&atilde;o";
         echo "<!--\nErro\nClasse n&atilde;o existente: clsPmieducarEscola\n-->";
     }
     $obj_permissoes = new clsPermissoes();
     $nivel_usuario = $obj_permissoes->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         if ($registro["ref_cod_instituicao"]) {
             $this->addDetalhe(array("Institui&ccedil;&atilde;o", "{$registro["ref_cod_instituicao"]}"));
         }
     }
     if ($nivel_usuario == 1 || $nivel_usuario == 2) {
         if ($nm_escola) {
             $this->addDetalhe(array("Escola", "{$nm_escola}"));
         }
     }
     if ($registro["ref_cod_curso"]) {
         $this->addDetalhe(array("Curso", "{$registro["ref_cod_curso"]}"));
     }
     if ($nm_serie) {
         $this->addDetalhe(array("S&eacute;rie", "{$nm_serie}"));
     }
     if ($nm_turma) {
         $this->addDetalhe(array("Turma", "{$nm_turma}"));
     }
     if ($max_aluno) {
         $this->addDetalhe(array("M&aacute;ximo de Alunos", "{$max_aluno}"));
     }
     if ($qtd_alunos) {
         $this->addDetalhe(array("Qtd Alunos Matriculados", "{$qtd_alunos}"));
     }
     if ($max_aluno && $qtd_alunos) {
         $vagas = $max_aluno - $qtd_alunos;
         $this->addDetalhe(array("Vagas Restantes", "{$vagas}"));
     }
     if (is_array($nm_alunos)) {
         sort($nm_alunos);
         $tabela = "<table>\n\t\t\t\t\t       <tr align=center>\n\t\t\t\t\t           <td bgcolor=#a1b3bd><b>Nome</b></td>\n\t\t\t\t\t       </tr>";
         reset($nm_alunos);
         for ($i = 0; $i < count($nm_alunos); $i++) {
             if ($i % 2 == 0) {
                 $color = " bgcolor=#E4E9ED ";
             } else {
                 $color = " bgcolor=#FFFFFF ";
             }
             $tabela .= "<tr>\n\t\t\t\t\t\t\t\t<td align=center {$color} align=left>{$nm_alunos[$i]}</td>\n\t\t\t\t\t\t\t</tr>";
         }
         $tabela .= "</table>";
     }
     if ($tabela) {
         $this->addDetalhe(array("Alunos Matriculados", "{$tabela}"));
     }
     if ($obj_permissoes->permissao_cadastra(659, $this->pessoa_logada, 7)) {
         $this->url_editar = "educar_matriculas_turma_cad.php?ref_cod_turma={$this->ref_cod_turma}";
     }
     $this->url_cancelar = "educar_matriculas_turma_lst.php";
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Detalhe das matr&iacute;culas da turma"));
     $this->enviaLocalizacao($localizacao->montar());
 }
 function removerEnturmacao($matriculaId, $turmaId)
 {
     $sequencialEnturmacao = $this->getSequencialEnturmacaoByTurmaId($matriculaId, $turmaId);
     $enturmacao = new clsPmieducarMatriculaTurma($matriculaId, $turmaId, $this->pessoa_logada, NULL, NULL, NULL, 0, NULL, $sequencialEnturmacao);
     return $enturmacao->edita();
 }
 function Novo()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(650, $this->pessoa_logada, 7, "educar_turma_mvto_det.php");
     $this->lst_matriculas = unserialize(urldecode($_POST["lst_matriculas"]));
     $this->cod_disciplinas = unserialize(urldecode($_POST["cod_disciplinas"]));
     $this->lst_apura_falta = unserialize(urldecode($_POST["lst_apura_falta"]));
     if (is_array($this->lst_matriculas)) {
         //			Verifica se o professor aprovou ou reprovou algum aluno
         if ($this->classifica == "S") {
             $obj_nota_aluno = new clsPmieducarNotaAluno();
             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, true);
             if ($lst_exame) {
                 foreach ($lst_exame as $exame) {
                     $obj_matricula = new clsPmieducarMatricula($exame["ref_ref_cod_matricula"]);
                     $det_matricula = $obj_matricula->detalhe();
                     if ($det_matricula) {
                         $obj_aluno = new clsPmieducarAluno($det_matricula["ref_cod_aluno"]);
                         $det_aluno = $obj_aluno->detalhe();
                         if ($det_aluno) {
                             $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}_";
                             $campo_aluno = "nm_aluno_{$det_aluno["ref_idpes"]}";
                         }
                     }
                     if (isset($this->{$campo_aluno})) {
                         //							Verifica se a média é maior ou igual a média mínima e se foi aprovado pelo professor
                         if ($exame["media"] >= $this->media && $this->{$campo_aprovacao} == "on") {
                             //								Verifica se o aluno não foi reprovado ou deixado em exame
                             if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") {
                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                             }
                         } else {
                             if ($exame["media"] < $this->media && $this->{$campo_aprovacao} == "on") {
                                 //								Verifica se o aluno não foi reprovado
                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "R";
                                 }
                             } else {
                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                             }
                         }
                     }
                 }
                 if (is_array($aprovado)) {
                     foreach ($aprovado as $matricula => $verificador) {
                         //							Verifica se o aluno foi aprovado ou deixado em exame
                         if ($verificador == "S" || $verificador == "R") {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matrícula aida está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi aprovado
                                 if ($verificador == "S") {
                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1);
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                         $obj_matricula->edita();
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 } else {
                                     if ($verificador == "R") {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     }
                                 }
                             }
                         } else {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matricula ainda está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi reprovado
                                 if ($verificador == "N") {
                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1);
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao alterar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}");
             die;
         } else {
             foreach ($this->lst_matriculas as $matriculas) {
                 //					Verifica se o ano letivo ainda está em andamento
                 if ($this->num_modulo <= $this->qtd_modulos) {
                     //						Verifica se a disciplina apura falta
                     if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                         $campo_falta = "faltas_{$matriculas[1]}";
                     } else {
                         if ($this->falta_ch_globalizada == 1) {
                             $campo_falta = "faltas_{$matriculas[1]}";
                         }
                     }
                     $campo_nota = "nota_{$matriculas[1]}";
                     $obj_mat_tur = new clsPmieducarMatriculaTurma();
                     $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1);
                     $sequencial = 0;
                     //echo "<pre>";
                     //print_r( $lst_mat_tur );
                     if (is_array($lst_mat_tur)) {
                         foreach ($lst_mat_tur as $registro) {
                             if ($sequencial == 0) {
                                 $sequencial = $registro["sequencial"];
                             } else {
                                 if ($sequencial < $registro["sequencial"]) {
                                     $sequencial = $registro["sequencial"];
                                 }
                             }
                         }
                         //$sequencial = ( count( $lst_mat_tur ) );
                         //$sequencial = $lst_mat_tur["sequencial"];
                     } else {
                         $this->mensagem = "Erro no cadastro de nota!<br>";
                     }
                     $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial);
                     if (!$obj_nota_aluno->cadastra()) {
                         $this->mensagem = "Erro no cadastro de nota!<br>";
                     }
                     //						Verifica se a falta não é globalizada
                     if ($this->falta_ch_globalizada == 0) {
                         //							Verifica se a disciplina apura falta
                         if ($this->lst_apura_falta[$this->ref_cod_disciplina] == 1) {
                             //								Verifica se o aluno possui alguma falta
                             if ($this->{$campo_falta} > 0) {
                                 $obj_falta_aluno = new clsPmieducarFaltaAluno(null, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $this->ref_cod_turma, $matriculas[2], $this->{$campo_falta}, null, null, 1, $sequencial);
                                 if (!$obj_falta_aluno->cadastra()) {
                                     $this->mensagem = "Erro no cadastro de falta!<br>";
                                 }
                             }
                         }
                     } else {
                         if ($this->falta_ch_globalizada == 1) {
                             //							Verifica se o aluno possui alguma falta
                             if ($this->{$campo_falta} > 0) {
                                 $obj_faltas = new clsPmieducarFaltas();
                                 $lst_faltas = $obj_faltas->lista($matriculas[2]);
                                 $sequencial = count($lst_faltas) + 1;
                                 $obj_faltas = new clsPmieducarFaltas($matriculas[2], $sequencial, $this->pessoa_logada, $this->{$campo_falta});
                                 if (!$obj_faltas->cadastra()) {
                                     $this->mensagem = "Erro no cadastro de falta!<br>";
                                 }
                             }
                         }
                     }
                 }
             }
             //				Verifica se a turma está no último módulo
             if ($this->qtd_modulos == $this->num_modulo) {
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                 $lst_matricula_turma = $obj_matricula_turma->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1);
                 if ($lst_matricula_turma) {
                     foreach ($lst_matricula_turma as $matricula) {
                         $obj_nota_aluno = new clsPmieducarNotaAluno();
                         //							Busca se todas as notas já foram dadas para o aluno
                         $todas_notas = $obj_nota_aluno->todasNotas($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->num_modulo, $matricula["ref_cod_matricula"]);
                         //							Verifica se todas as notas já foram dadas para o aluno
                         if ($todas_notas == 'S') {
                             if ($this->conceitual == 0) {
                                 //									Carrega as médias de cada disciplina do aluno
                                 $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true);
                                 if ($lst_exame) {
                                     foreach ($lst_exame as $exame) {
                                         if ($exame["ref_ref_cod_matricula"] == $matricula["ref_cod_matricula"]) {
                                             //												Verifica se a média do aluno é igual ou superior a média mínima e se a freqüência do aluno é igual ou maior que a freqüência mínima
                                             if ($exame["media"] >= $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) {
                                                 //													Verifica se o aluno não foi reprovado ou deixado de recuperação
                                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N" && $aprovado[$exame["ref_ref_cod_matricula"]] != "R") {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                                                 }
                                             } else {
                                                 if ($exame["media"] < $this->media && 100 - $exame["faltas"] >= $this->frequencia_minima) {
                                                     //													Verifica se o aluno não foi reprovado
                                                     if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                                         $aprovado[$exame["ref_ref_cod_matricula"]] = "R";
                                                     }
                                                 } else {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                             if ($this->conceitual == 1) {
                                 $obj_aluno = new clsPmieducarAluno($matricula["ref_cod_aluno"]);
                                 $det_aluno = $obj_aluno->detalhe();
                                 $campo_aprovacao = "aprovacao_{$det_aluno["ref_idpes"]}";
                                 if ($this->{$campo_aprovacao} == "S") {
                                     $aprovado[$matricula["ref_cod_matricula"]] = "S";
                                 } elseif ($this->{$campo_aprovacao} == "N") {
                                     $aprovado[$matricula["ref_cod_matricula"]] = "N";
                                 }
                             }
                         }
                     }
                 }
                 if (is_array($aprovado)) {
                     foreach ($aprovado as $matricula => $verificador) {
                         //							Verifica se o aluno foi aprovado ou deixado em exame
                         if ($verificador == "S" || $verificador == "R") {
                             $obj_matricula = new clsPmieducarMatricula($matricula);
                             $det_matricula = $obj_matricula->detalhe();
                             //								Verifica se a matrícula está em andamento
                             if ($det_matricula["aprovado"] == 3) {
                                 $obj_historico = new clsPmieducarHistoricoEscolar();
                                 $lst_historico = $obj_historico->lista($matricula);
                                 $seq = count($lst_historico) + 1;
                                 $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                 $det_ano_letivo = $obj_ano_letivo->detalhe();
                                 $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                 $det_escola = $obj_escola->detalhe();
                                 //									Verifica se o aluno foi aprovado
                                 if ($verificador == "S") {
                                     if ($this->falta_ch_globalizada == 1) {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1);
                                     } else {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0);
                                     }
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                         if ($obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 } else {
                                     if ($verificador == "R") {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 7);
                                         if (!$obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     }
                                 }
                             }
                         } else {
                             if ($verificador == "N" && $this->conceitual == 1) {
                                 $obj_matricula = new clsPmieducarMatricula($matricula);
                                 $det_matricula = $obj_matricula->detalhe();
                                 if ($det_matricula["aprovado"] == 3) {
                                     $obj_historico = new clsPmieducarHistoricoEscolar();
                                     $lst_historico = $obj_historico->lista($matricula);
                                     $seq = count($lst_historico) + 1;
                                     $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                     $det_ano_letivo = $obj_ano_letivo->detalhe();
                                     $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                     $det_escola = $obj_escola->detalhe();
                                     if ($this->falta_ch_globalizada == 1) {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1);
                                     } else {
                                         $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0);
                                     }
                                     if ($obj_historico->cadastra()) {
                                         $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 2);
                                         if ($obj_matricula->edita()) {
                                             $this->mensagem = "Falha ao editar a matricula!<br>";
                                         }
                                     } else {
                                         $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                     }
                                 }
                             }
                         }
                     }
                 }
                 $obj_turma_modulo = new clsPmieducarTurmaModulo();
                 $fimAnoLetivo = $obj_turma_modulo->fimAno($this->ref_cod_turma, $this->qtd_modulos);
                 //					$total_notas = $obj_nota_aluno->retornaTotalNotas( $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma );
                 //					if ( $total_notas == ( $this->qtd_modulos * $this->qtd_disciplinas ) )
                 if ($fimAnoLetivo == "S") {
                     header("location: educar_turma_mvto_det.php?cod_turma={$this->ref_cod_turma}");
                     die;
                 } else {
                     header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
                     die;
                 }
             } else {
                 if ($this->exame == "S") {
                     foreach ($this->lst_matriculas as $matriculas) {
                         //						Verifica se todos os módulos já terminaram
                         if ($this->num_modulo > $this->qtd_modulos) {
                             $campo_nota = "nota_{$matriculas[1]}";
                             $obj_mat_tur = new clsPmieducarMatriculaTurma();
                             $lst_mat_tur = $obj_mat_tur->lista($matriculas[2], $this->ref_cod_turma, null, null, null, null, null, null, 1);
                             if (is_array($lst_mat_tur)) {
                                 //$sequencial = ( count( $lst_mat_tur ) );
                                 $sequencial = $lst_mat_tur["sequencial"];
                             } else {
                                 $this->mensagem = "Erro no cadastro de nota!<br>";
                             }
                             $obj_nota_aluno = new clsPmieducarNotaAluno(null, $this->{$campo_nota}, $this->ref_cod_tipo_avaliacao, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_disciplina, $this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, null, $this->pessoa_logada, null, null, 1, $sequencial);
                             if (!$obj_nota_aluno->cadastra()) {
                                 $this->mensagem = "Erro no cadastro de nota!<br>";
                             }
                             $obj_nota_aluno = new clsPmieducarNotaAluno();
                             $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos, $this->ref_cod_curso, true, true, false, true);
                             $obj_turma_disciplina = new clsPmieducarTurmaDisciplina();
                             //							Carrega o código das disciplinas da turma
                             $lst_turma_disciplina = $obj_turma_disciplina->lista($this->ref_cod_turma);
                             if (is_array($lst_turma_disciplina)) {
                                 //								Carrega a quantidade de disciplinas da turma
                                 $this->qtd_disciplinas = count($lst_turma_disciplina);
                                 foreach ($lst_turma_disciplina as $valores) {
                                     $obj_disciplina = new clsPmieducarDisciplina($valores["ref_cod_disciplina"]);
                                     $det_disciplina = $obj_disciplina->detalhe();
                                     if ($det_disciplina) {
                                         $obj_dispensa = new clsPmieducarDispensaDisciplina();
                                         $det_dispensa = $obj_dispensa->lista($this->ref_cod_turma, $matriculas[2], $this->ref_cod_turma, $this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], null, null, null, null, null, null, null, 1);
                                         //										Verifica se o aluno não foi dispensado da disciplina
                                         if (!is_array($det_dispensa)) {
                                             $obj_notas = new clsPmieducarNotaAluno();
                                             //											Carrega a quantidade de notas por aluno de uma turma numa determinada disciplina
                                             $lst_notas = $obj_notas->retornaDiscMod($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $det_disciplina["cod_disciplina"], $this->ref_cod_turma, $this->ref_cod_turma, $matriculas[2]);
                                             //											Carrega a média da disciplina
                                             if ($lst_exame) {
                                                 foreach ($lst_exame as $exame) {
                                                     if ($exame["disc_ref_ref_cod_disciplina"] == $det_disciplina["cod_disciplina"] && $exame["ref_ref_cod_matricula"] == $matriculas[2]) {
                                                         $media_disciplina = $exame["media"];
                                                     }
                                                 }
                                             }
                                             if ($lst_notas == $this->qtd_modulos) {
                                                 if ($media_disciplina >= $this->media) {
                                                     $pula_disciplina = false;
                                                 } else {
                                                     $pula_disciplina = true;
                                                 }
                                             } else {
                                                 $pula_disciplina = true;
                                             }
                                             if ($pula_disciplina) {
                                                 if (!is_array($det_dispensa)) {
                                                     //													Verifica se a quantidade de notas por aluno é diferente do número do módulo em que a turma se encontra
                                                     if ($lst_notas == $this->qtd_modulos + 1) {
                                                         if ($salva_historico != "N") {
                                                             $lst_disc_exame[$det_disciplina["cod_disciplina"]] = "S";
                                                             $salva_historico = "S";
                                                         }
                                                     } else {
                                                         $salva_historico = "N";
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                             if ($salva_historico == "S") {
                                 $lst_exame = $obj_nota_aluno->listaMedias($this->ref_ref_cod_serie, $this->ref_ref_cod_escola, $this->ref_cod_turma, $this->ref_cod_turma, $this->qtd_modulos + 1, $this->ref_cod_curso, true, true, false, true);
                                 if ($lst_exame) {
                                     foreach ($lst_exame as $exame) {
                                         if ($exame["ref_ref_cod_matricula"] == $matriculas[2] && $lst_disc_exame[$exame["disc_ref_ref_cod_disciplina"]] == "S") {
                                             //											Verifica se a média do aluno é igual ou superior a média mínima
                                             if ($exame["media"] >= $this->media_exame) {
                                                 //												Verifica se o aluno não foi reprovado
                                                 if ($aprovado[$exame["ref_ref_cod_matricula"]] != "N") {
                                                     $aprovado[$exame["ref_ref_cod_matricula"]] = "S";
                                                 }
                                             } else {
                                                 $aprovado[$exame["ref_ref_cod_matricula"]] = "N";
                                             }
                                         }
                                     }
                                 }
                             }
                             if (is_array($aprovado)) {
                                 foreach ($aprovado as $matricula => $verificador) {
                                     //									Verifica se o aluno foi aprovado
                                     if ($verificador == "S") {
                                         $obj_matricula = new clsPmieducarMatricula($matricula);
                                         $det_matricula = $obj_matricula->detalhe();
                                         //										Verifica se a matrícula está em exame
                                         if ($det_matricula["aprovado"] == 7) {
                                             $obj_historico = new clsPmieducarHistoricoEscolar();
                                             $lst_historico = $obj_historico->lista($matricula);
                                             $seq = count($lst_historico) + 1;
                                             $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                             $det_ano_letivo = $obj_ano_letivo->detalhe();
                                             $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                             $det_escola = $obj_escola->detalhe();
                                             //											Verifica se o aluno foi aprovado
                                             if ($verificador == "S") {
                                                 if ($this->falta_ch_globalizada == 1) {
                                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 1);
                                                 } else {
                                                     $obj_historico = new clsPmieducarHistoricoEscolar($det_matricula["ref_cod_aluno"], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 1, null, null, 1, 0);
                                                 }
                                                 if ($obj_historico->cadastra()) {
                                                     $obj_matricula = new clsPmieducarMatricula($det_matricula["cod_matricula"], null, null, null, $this->pessoa_logada, null, null, 1);
                                                     if ($obj_matricula->edita()) {
                                                         $this->mensagem = "Falha ao editar a matricula!<br>";
                                                     }
                                                 } else {
                                                     $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                                 }
                                             }
                                         }
                                     }
                                     //									Verifica se o aluno foi reprovado
                                     if ($verificador == "N") {
                                         $obj_historico = new clsPmieducarHistoricoEscolar();
                                         $lst_historico = $obj_historico->lista($matriculas[0]);
                                         $seq = count($lst_historico) + 1;
                                         $obj_ano_letivo = new clsPmieducarEscolaAnoLetivo($this->ref_ref_cod_escola, null, null, null, 1, null, null, 1);
                                         $det_ano_letivo = $obj_ano_letivo->detalhe();
                                         $obj_escola = new clsPmieducarEscolaComplemento($this->ref_ref_cod_escola);
                                         $det_escola = $obj_escola->detalhe();
                                         if ($this->falta_ch_globalizada == 1) {
                                             $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 1);
                                         } else {
                                             $obj_historico = new clsPmieducarHistoricoEscolar($matriculas[0], $seq, null, $this->pessoa_logada, $this->ref_ref_cod_serie, $det_ano_letivo["ano"], $this->carga_horaria, null, $det_escola["nm_escola"], $det_escola["municipio"], null, null, 2, null, null, 1, 0);
                                         }
                                         if ($obj_historico->cadastra()) {
                                             $obj_matricula = new clsPmieducarMatricula($matricula, null, null, null, $this->pessoa_logada, null, null, 2);
                                             if (!$obj_matricula->edita()) {
                                                 $this->mensagem = "Falha ao alterar a matricula!<br>";
                                             }
                                         } else {
                                             $this->mensagem = "Falha ao cadastrar o historico!<br>";
                                         }
                                     }
                                 }
                             }
                             header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
                             die;
                         }
                     }
                 }
             }
             header("location: educar_turma_nota_cad.php?ref_cod_turma={$this->ref_cod_turma}&ref_ref_cod_escola={$this->ref_ref_cod_escola}&ref_ref_cod_serie={$this->ref_ref_cod_serie}&ref_cod_curso={$this->ref_cod_curso}");
             die;
         }
     }
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     // Helper para url
     $urlHelper = CoreExt_View_Helper_UrlHelper::getInstance();
     $this->titulo = 'Dispensa Componente Curricular - Listagem';
     // passa todos os valores obtidos no GET para atributos do objeto
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     if (!$_GET['ref_cod_matricula']) {
         header('Location: educar_matricula_lst.php');
         die;
     }
     $this->ref_cod_matricula = $_GET['ref_cod_matricula'];
     $obj_matricula = new clsPmieducarMatricula();
     $lst_matricula = $obj_matricula->lista($this->ref_cod_matricula);
     if (is_array($lst_matricula)) {
         $det_matricula = array_shift($lst_matricula);
         $this->ref_cod_instituicao = $det_matricula['ref_cod_instituicao'];
         $this->ref_cod_escola = $det_matricula['ref_ref_cod_escola'];
         $this->ref_cod_serie = $det_matricula['ref_ref_cod_serie'];
         $obj_matricula_turma = new clsPmieducarMatriculaTurma();
         $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, NULL, $this->ref_cod_escola);
         if (is_array($lst_matricula_turma)) {
             $det = array_shift($lst_matricula_turma);
             $this->ref_cod_turma = $det['ref_cod_turma'];
             $this->ref_sequencial = $det['sequencial'];
         }
     }
     $this->campoOculto('ref_cod_turma', $this->ref_cod_turma);
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->addCabecalhos(array('Disciplina', 'Tipo Dispensa', 'Data Dispensa'));
     // Filtros de Foreign Keys
     $opcoes = array('' => 'Selecione');
     $objTemp = new clsPmieducarTipoDispensa();
     if ($this->ref_cod_instituicao) {
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     } else {
         $lista = $objTemp->lista(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
     }
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             $opcoes[$registro['cod_tipo_dispensa']] = $registro['nm_tipo'];
         }
     }
     $this->campoLista('ref_cod_tipo_dispensa', 'Motivo', $opcoes, $this->ref_cod_tipo_dispensa, '', FALSE, '', '', FALSE, FALSE);
     $this->campoOculto('ref_cod_matricula', $this->ref_cod_matricula);
     // outros Filtros
     $opcoes = array('' => 'Selecione');
     // Escola série disciplina
     $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
     foreach ($componentes as $componente) {
         $opcoes[$componente->id] = $componente->nome;
     }
     $this->campoLista('ref_cod_disciplina', 'Disciplina', $opcoes, $this->ref_cod_disciplina, '', FALSE, '', '', FALSE, FALSE);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_dispensa_disciplina = new clsPmieducarDispensaDisciplina();
     $obj_dispensa_disciplina->setOrderby('data_cadastro ASC');
     $obj_dispensa_disciplina->setLimite($this->limite, $this->offset);
     $lista = $obj_dispensa_disciplina->lista($this->ref_cod_matricula, NULL, NULL, $this->ref_cod_disciplina, NULL, NULL, $this->ref_cod_tipo_dispensa, NULL, NULL, NULL, NULL, 1);
     $total = $obj_dispensa_disciplina->_total;
     // Mapper de componente curricular
     $componenteMapper = new ComponenteCurricular_Model_ComponenteDataMapper();
     // monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             // muda os campos data
             $registro['data_cadastro_time'] = strtotime(substr($registro['data_cadastro'], 0, 16));
             $registro['data_cadastro_br'] = date('d/m/Y', $registro['data_cadastro_time']);
             // Tipo da dispensa
             $obj_ref_cod_tipo_dispensa = new clsPmieducarTipoDispensa($registro['ref_cod_tipo_dispensa']);
             $det_ref_cod_tipo_dispensa = $obj_ref_cod_tipo_dispensa->detalhe();
             $registro['ref_cod_tipo_dispensa'] = $det_ref_cod_tipo_dispensa['nm_tipo'];
             // Componente curricular
             $componente = $componenteMapper->find($registro['ref_cod_disciplina']);
             // Dados para a url
             $url = 'educar_dispensa_disciplina_det.php';
             $options = array('query' => array('ref_cod_matricula' => $registro['ref_cod_matricula'], 'ref_cod_serie' => $registro['ref_cod_serie'], 'ref_cod_escola' => $registro['ref_cod_escola'], 'ref_cod_disciplina' => $registro['ref_cod_disciplina']));
             $this->addLinhas(array($urlHelper->l($componente->nome, $url, $options), $urlHelper->l($registro['ref_cod_tipo_dispensa'], $url, $options), $urlHelper->l($registro['data_cadastro_br'], $url, $options)));
         }
     }
     $this->addPaginador2('educar_dispensa_disciplina_lst.php', $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) {
         $this->array_botao_url[] = 'educar_dispensa_disciplina_cad.php?ref_cod_matricula=' . $this->ref_cod_matricula;
         $this->array_botao[] = 'Novo';
     }
     $this->array_botao_url[] = 'educar_matricula_det.php?cod_matricula=' . $this->ref_cod_matricula;
     $this->array_botao[] = 'Voltar';
     $this->largura = '100%';
 }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if ($this->ref_ref_cod_serie) {
            $this->ref_cod_serie = $this->ref_ref_cod_serie;
        }
        $fonte = 'arial';
        $corTexto = '#000000';
        if (empty($this->ref_cod_turma)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        //$this->mes = "5";//teste
        //$qtd_dias = 28;
        $this->pdf = new clsPDF("Ficha de Leitura, Escrita e Língua Oral", "Ficha de Leitura, Escrita e Língua Oral", "A4", "", false, false);
        $this->pdf->largura = 842.0;
        $this->pdf->altura = 595.0;
        $this->pdf->OpenPage();
        $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
        $det_escola = $obj_escola->detalhe();
        $this->nm_escola = $det_escola['nome'];
        $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
        $det_instituicao = $obj_instituicao->detalhe();
        $this->nm_instituicao = $det_instituicao['nm_instituicao'];
        $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
        $det_turma = $obj_turma->detalhe();
        $this->nm_turma = $det_turma['nm_turma'];
        $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
        $det_serie = $obj_serie->detalhe();
        $this->nm_serie = $det_serie['nm_serie'];
        $this->addCabecalho();
        $this->pdf->escreve_relativo("Nº", 35, 245, 40, 20);
        $this->pdf->escreve_relativo("Nome do aluno", 65, 245, 80, 20);
        $this->pdf->escreve_relativo("Leitura", 355, 142, 80, 20);
        $this->pdf->escreve_relativo("Escrita", 490, 142, 80, 20);
        $this->pdf->escreve_relativo("Língua Oral", 665, 142, 80, 20);
        $this->pdf->escreve_relativo("Relaciona letra ao som", 490, 157, 70, 60, null, 10);
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Não encadeia idéias em história representada por desenho", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 290, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Encadeia idéias em história representada por desenhos", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 344, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Lê palavras do suporte utilizado", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 395, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Lê frases do suporte utilizado", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 425, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Não relaciona letra com som", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 457, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("No seu próprio nome", 8, 70);
        $this->pdf->InsertJpng('png', $imagem, 485, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Palavras", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 522, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Frases", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 552, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Não escuta com atenção leitura feita pelo professor", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 578, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Escuta com atenção leitura feita pelo professor", 8, 90);
        $this->pdf->InsertJpng('png', $imagem, 635, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Comenta a história ouvida ou lida", 8, 80);
        $this->pdf->InsertJpng('png', $imagem, 700, 250, 1);
        //-----------------------------------------------------------------------
        //-----------------------------------------------------------------------
        $imagem = girarTextoImagem("Reconta a história ouvida ou lida", 8, 80);
        $this->pdf->InsertJpng('png', $imagem, 760, 250, 1);
        //-----------------------------------------------------------------------
        $this->pdf->linha_relativa(30, 140, 780, 0);
        $this->pdf->linha_relativa(30, 140, 0, 120);
        $this->pdf->linha_relativa(810, 140, 0, 120);
        $this->pdf->linha_relativa(30, 260, 780, 0);
        $this->pdf->linha_relativa(60, 140, 0, 120);
        $this->pdf->linha_relativa(285, 140, 0, 120);
        $this->pdf->linha_relativa(450, 140, 0, 120);
        $this->pdf->linha_relativa(570, 140, 0, 120);
        $this->pdf->linha_relativa(285, 155, 525, 0);
        $this->pdf->linha_relativa(340, 155, 0, 105);
        $this->pdf->linha_relativa(390, 155, 0, 105);
        $this->pdf->linha_relativa(420, 155, 0, 105);
        $this->pdf->linha_relativa(480, 180, 90, 0);
        $this->pdf->linha_relativa(480, 155, 0, 105);
        $this->pdf->linha_relativa(510, 180, 0, 80);
        $this->pdf->linha_relativa(540, 180, 0, 80);
        $this->pdf->linha_relativa(630, 155, 0, 105);
        $this->pdf->linha_relativa(690, 155, 0, 105);
        $this->pdf->linha_relativa(750, 155, 0, 105);
        $qtd_quebra = 21;
        $base = 245;
        $linha = 1;
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        $obj_matricula = new clsPmieducarMatriculaTurma();
        $obj_matricula->setOrderby('nome_ascii');
        $lst_matricula = $obj_matricula->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, array(1, 2, 3), null, null, $this->ano, null, true, null, null, 1, null, null, null, null, $this->semestre);
        if (is_array($lst_matricula)) {
            //for ($ordem = 1; $ordem <= $total_alunos; $ordem++)//foreach de alunos
            foreach ($lst_matricula as $ordem => $matricula) {
                $ordem++;
                $ordem = sprintf("%02d", $ordem);
                if ($linha % $qtd_quebra == 0) {
                    //nova pagina
                    $this->pdf->ClosePage();
                    $this->pdf->OpenPage();
                    $base = 30;
                    $linha = 0;
                    $this->pdf->linha_relativa(30, 30, 780, 0);
                    $qtd_quebra = 35;
                }
                $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(30, $base + 15 + $linha * 15, 780, 0);
                $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 15, 15, 15, null, 8);
                $this->pdf->escreve_relativo($matricula['nome'], 65, $base + 3 + $linha * 15, 215, 15, null, 8);
                $this->pdf->linha_relativa(285, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(340, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(390, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(420, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(480, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(510, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(540, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(630, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(690, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(750, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
                //fim
                $linha++;
            }
        }
        //escrever total
        $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
        $this->pdf->escreve_relativo("Total", 35, $base + 3 + $linha * 15, 20, 15, null, 8);
        $this->pdf->linha_relativa(285, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(340, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(390, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(420, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(480, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(510, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(540, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(630, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(690, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(750, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
        //fim
        $this->pdf->linha_relativa(30, $base + ($linha + 1) * 15, 780, 0);
        $this->pdf->ClosePage();
        $this->pdf->CloseFile();
        $this->get_link = $this->pdf->GetLink();
        echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
        echo "<html><center>Se o download não iniciar automaticamente <br /><a target='blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t</span>\n\t\t\t</center>";
    }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '<script>
         alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
         window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
       </script>';
         return true;
     }
     $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
     $det_escola = $obj_escola->detalhe();
     $this->nm_escola = $det_escola['nome'];
     $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
     $det_instituicao = $obj_instituicao->detalhe();
     $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, null, null, null, null, null, null, null, 1, null);
     if (!$lista_calendario) {
         echo '<script>
         alert("Escola não possui calendário definido para este ano");
         window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
       </script>';
         return true;
     }
     $calendario = array_shift($lista_calendario);
     //Dias previstos do mes
     // Qual o primeiro dia do mes
     $primeiroDiaDoMes = mktime(0, 0, 0, $this->mes, 1, $this->ano);
     // Quantos dias tem o mes
     $NumeroDiasMes = date('t', $primeiroDiaDoMes);
     $qtd_dias = $NumeroDiasMes;
     $this->pdf = new clsPDF("Acompanhamento Mensal - {$this->ano}", "Acompanhamento Mensal - {$this->meses_do_ano[$this->mes]}", "A4", "", false, false);
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->pdf->OpenPage();
     $this->addCabecalho();
     $this->pdf->linha_relativa(30, 140, 780, 0);
     $this->pdf->linha_relativa(30, 140, 0, 180);
     $imagem = girarTextoImagem("Total", 8);
     $this->pdf->InsertJpng('png', $imagem, 754, 270, 1);
     $imagem = girarTextoImagem("Casa não feito", 8);
     $this->pdf->InsertJpng('png', $imagem, 769, 270, 1);
     $imagem = girarTextoImagem("Justificadas", 8);
     $this->pdf->InsertJpng('png', $imagem, 784, 270, 1);
     $imagem = girarTextoImagem("Não justificadas", 8);
     $this->pdf->InsertJpng('png', $imagem, 798, 270, 1);
     $this->pdf->escreve_relativo("Faltas", 773, 142, 45, 15);
     $this->pdf->escreve_relativo("Dia do mês", 40, 265, 60, 15, null, 8);
     for ($i = 0; $i < 31; $i++) {
         $this->pdf->linha_relativa(285 + $i * 15, 140, 0, 180);
         if ($i + 1 <= $qtd_dias) {
             $this->pdf->escreve_relativo($i + 1, 287 + $i * 15, 265, 15, 15, null, 8);
         }
     }
     $this->pdf->linha_relativa(750, 140, 0, 180);
     //total
     $this->pdf->linha_relativa(765, 140, 0, 180);
     $this->pdf->linha_relativa(780, 155, 0, 165);
     $this->pdf->linha_relativa(795, 155, 0, 165);
     $this->pdf->linha_relativa(810, 140, 0, 180);
     //fim
     $this->pdf->escreve_relativo("Nº do dia letivo", 40, 280, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Nº da aula", 40, 295, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Ord", 40, 310, 60, 15, null, 8);
     $this->pdf->escreve_relativo("Nome do aluno", 65, 310, 60, 15, null, 8);
     $this->pdf->linha_relativa(765, 155, 45, 0);
     $this->pdf->linha_relativa(30, 275, 780, 0);
     $this->pdf->linha_relativa(30, 290, 780, 0);
     $this->pdf->linha_relativa(30, 305, 780, 0);
     $this->pdf->linha_relativa(30, 320, 780, 0);
     $this->pdf->linha_relativa(60, 305, 0, 15);
     if ($this->is_padrao || $this->ano == 2007) {
         $this->semestre = null;
     }
     $obj_matricula = new clsPmieducarMatriculaTurma();
     $obj_matricula->setOrderby('nome_ascii');
     $lst_matricula = $obj_matricula->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, array(1, 2, 3), null, null, $this->ano, null, true, null, null, true, null, null, null, null, $this->semestre);
     //$total_alunos = 100;
     $qtd_quebra = 17;
     $base = 305;
     $linha = 1;
     if ($lst_matricula) {
         foreach ($lst_matricula as $ordem => $matricula) {
             $ordem++;
             $ordem = sprintf("%02d", $ordem);
             //for ($ordem = 1; $ordem <= $total_alunos; $ordem++)//foreach de alunos
             //{
             if ($linha % $qtd_quebra == 0) {
                 //nova pagina
                 $this->pdf->ClosePage();
                 $this->pdf->OpenPage();
                 $base = 30;
                 $linha = 0;
                 $this->pdf->linha_relativa(30, 30, 780, 0);
                 $qtd_quebra = 35;
             }
             $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(30, $base + 15 + $linha * 15, 780, 0);
             $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 15, 15, 15, null, 8);
             $this->pdf->escreve_relativo($matricula['nome'], 65, $base + 3 + $linha * 15, 215, 15, null, 8);
             for ($i = 0; $i < 31; $i++) {
                 $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
             }
             $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
             //total
             $this->pdf->linha_relativa(765, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(780, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(795, $base + $linha * 15, 0, 15);
             $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
             //fim
             $linha++;
             //}
         }
     }
     //escrever total
     $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
     $this->pdf->escreve_relativo("Total", 35, $base + 3 + $linha * 15, 20, 15, null, 8);
     for ($i = 0; $i < 31; $i++) {
         $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
     }
     $this->pdf->linha_relativa(765, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(780, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(795, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(285 + $i * 15, $base + $linha * 15, 0, 15);
     //total
     $this->pdf->linha_relativa(810, $base + $linha * 15, 0, 15);
     //fim
     $this->pdf->linha_relativa(30, $base + ($linha + 1) * 15, 780, 0);
     $this->pdf->ClosePage();
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
     echo "<html><center>Se o download não iniciar automaticamente <br /><a target='blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n      <span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n      Clique na Imagem para Baixar o instalador<br><br>\n      <a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n      </span>\n      </center>";
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Matricula Ocorr&ecirc;ncia Disciplinar - Listagem";
     foreach ($_GET as $var => $val) {
         // passa todos os valores obtidos no GET para atributos do objeto
         $this->{$var} = $val === "" ? null : $val;
     }
     if (!$this->ref_cod_matricula) {
         header("Location: educar_matricula_lst.php");
     }
     $this->campoOculto("ref_cod_matricula", $this->ref_cod_matricula);
     $this->addCabecalhos(array("Tipo Ocorr&ecirc;ncia Disciplinar", "Série ", "Turma"));
     /**
      * Busca nome do aluno
      */
     if (class_exists("clsPmieducarMatricula")) {
         $obj_ref_cod_matricula = new clsPmieducarMatricula();
         $detalhe_aluno = array_shift($obj_ref_cod_matricula->lista($this->ref_cod_matricula));
         $obj_escola = new clsPmieducarEscola($detalhe_aluno['ref_ref_cod_escola']);
         $det_escola = $obj_escola->detalhe();
     } else {
         $registro["ref_cod_matricula"] = "Erro na geracao";
         echo "<!--\nErro\nClasse nao existente: clsPmieducarMatricula\n-->";
     }
     $obj_aluno = new clsPmieducarAluno();
     $det_aluno = array_shift($det_aluno = $obj_aluno->lista($detalhe_aluno['ref_cod_aluno'], null, null, null, null, null, null, null, null, null, 1));
     $this->campoRotulo("nm_pessoa", "Nome do Aluno", $det_aluno['nome_aluno']);
     /**
      *
      */
     $opcoes = array("" => "Selecione");
     if (class_exists("clsPmieducarTipoOcorrenciaDisciplinar")) {
         $objTemp = new clsPmieducarTipoOcorrenciaDisciplinar();
         $lista = $objTemp->lista(null, null, null, null, null, null, null, null, null, null, 1, $det_escola['ref_cod_instituicao']);
         if (is_array($lista) && count($lista)) {
             foreach ($lista as $registro) {
                 $opcoes["{$registro['cod_tipo_ocorrencia_disciplinar']}"] = "{$registro['nm_tipo']}";
             }
         }
     } else {
         echo "<!--\nErro\nClasse clsPmieducarTipoOcorrenciaDisciplinar nao encontrada\n-->";
         $opcoes = array("" => "Erro na geracao");
     }
     $this->campoLista("ref_cod_tipo_ocorrencia_disciplinar", "Tipo Ocorr&ecirc;ncia Disciplinar", $opcoes, $this->ref_cod_tipo_ocorrencia_disciplinar);
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     // outros Filtros
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET["pagina_{$this->nome}"] ? $_GET["pagina_{$this->nome}"] * $this->limite - $this->limite : 0;
     $obj_matricula_ocorrencia_disciplinar = new clsPmieducarMatriculaOcorrenciaDisciplinar();
     $obj_matricula_ocorrencia_disciplinar->setOrderby("observacao ASC");
     $obj_matricula_ocorrencia_disciplinar->setLimite($this->limite, $this->offset);
     $lista = $obj_matricula_ocorrencia_disciplinar->lista($this->ref_cod_matricula, $this->ref_cod_tipo_ocorrencia_disciplinar, null, null, null, null, null, null, 1);
     $total = $obj_matricula_ocorrencia_disciplinar->_total;
     // monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             if (class_exists("clsPmieducarMatricula")) {
                 $obj_ref_cod_matricula = new clsPmieducarMatricula($registro["ref_cod_matricula"]);
                 $det_ref_cod_matricula = $obj_ref_cod_matricula->detalhe();
                 //$registro["ref_cod_matricula"] = $det_ref_cod_matricula["ref_cod_matricula"];
             } else {
                 $registro["ref_cod_matricula"] = "Erro na geracao";
                 echo "<!--\nErro\nClasse nao existente: clsPmieducarMatricula\n-->";
             }
             if (class_exists("clsPmieducarSerie")) {
                 $obj_serie = new clsPmieducarSerie($det_ref_cod_matricula["ref_ref_cod_serie"]);
                 $det_serie = $obj_serie->detalhe();
                 $registro["ref_ref_cod_serie"] = $det_serie["nm_serie"];
             } else {
                 $registro["ref_ref_cod_serie"] = "Erro na geracao";
                 echo "<!--\nErro\nClasse nao existente: clsPmieducarSerie\n-->";
             }
             if (class_exists("clsPmieducarTipoOcorrenciaDisciplinar")) {
                 $obj_ref_cod_tipo_ocorrencia_disciplinar = new clsPmieducarTipoOcorrenciaDisciplinar($registro["ref_cod_tipo_ocorrencia_disciplinar"]);
                 $det_ref_cod_tipo_ocorrencia_disciplinar = $obj_ref_cod_tipo_ocorrencia_disciplinar->detalhe();
                 $registro["nm_tipo"] = $det_ref_cod_tipo_ocorrencia_disciplinar["nm_tipo"];
             } else {
                 $registro["ref_cod_tipo_ocorrencia_disciplinar"] = "Erro na geracao";
                 echo "<!--\nErro\nClasse nao existente: clsPmieducarTipoOcorrenciaDisciplinar\n-->";
             }
             $obj_mat_turma = new clsPmieducarMatriculaTurma();
             $det_mat_turma = $obj_mat_turma->lista($registro["ref_cod_matricula"], null, null, null, null, null, null, null, 1);
             if ($det_mat_turma) {
                 $det_mat_turma = array_shift($det_mat_turma);
                 $obj_turma = new clsPmieducarTurma($det_mat_turma['ref_cod_turma']);
                 $det_turma = $obj_turma->detalhe();
             }
             $this->addLinhas(array("<a href=\"educar_matricula_ocorrencia_disciplinar_det.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_tipo_ocorrencia_disciplinar={$registro["ref_cod_tipo_ocorrencia_disciplinar"]}&sequencial={$registro["sequencial"]}\">{$registro["nm_tipo"]}</a>", "<a href=\"educar_matricula_ocorrencia_disciplinar_det.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_tipo_ocorrencia_disciplinar={$registro["ref_cod_tipo_ocorrencia_disciplinar"]}&sequencial={$registro["sequencial"]}\">{$registro["ref_ref_cod_serie"]}</a>", "<a href=\"educar_matricula_ocorrencia_disciplinar_det.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_tipo_ocorrencia_disciplinar={$registro["ref_cod_tipo_ocorrencia_disciplinar"]}&sequencial={$registro["sequencial"]}\">{$det_turma["nm_turma"]}</a>"));
         }
     }
     $this->addPaginador2("educar_matricula_ocorrencia_disciplinar_lst.php", $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     $this->array_botao = array();
     $this->array_botao_url = array();
     if ($obj_permissoes->permissao_cadastra(578, $this->pessoa_logada, 7)) {
         $this->array_botao_url[] = "educar_matricula_ocorrencia_disciplinar_cad.php?ref_cod_matricula={$this->ref_cod_matricula}";
         $this->array_botao[] = "Novo";
     }
     $this->array_botao[] = "Voltar";
     $this->array_botao_url[] = "educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}";
     $this->largura = "100%";
     $localizacao = new LocalizacaoSistema();
     $localizacao->entradaCaminhos(array($_SERVER['SERVER_NAME'] . "/intranet" => "In&iacute;cio", "educar_index.php" => "i-Educar - Escola", "" => "Listagem de ocorr&ecirc;ncias disciplinares da matr&iacute;cula"));
     $this->enviaLocalizacao($localizacao->montar());
 }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if ($this->ref_ref_cod_serie) {
            $this->ref_cod_serie = $this->ref_ref_cod_serie;
        }
        $fonte = 'arial';
        $corTexto = '#000000';
        if ($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'];
        }
        if (is_numeric($this->ref_cod_serie)) {
            $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
            $det_serie = $obj_serie->detalhe();
            $this->nm_serie_ = $det_serie["nm_serie"];
        }
        if (is_numeric($this->ref_cod_turma)) {
            $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
            $det_turma = $obj_turma->detalhe();
            $this->nm_turma_ = $det_turma["nm_turma"];
        }
        $this->pdf = new clsPDF("Registro de Matrículas - {$this->ano}", "Registro de Matrículas", "A4", "", false, false);
        $this->pdf->largura = 842.0;
        $this->pdf->altura = 595.0;
        $this->page_y = 125;
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        $obj_matricula = new clsPmieducarMatricula();
        $obj_matricula->setOrderby("ref_ref_cod_escola, ref_ref_cod_serie, ref_cod_curso");
        $lista_matricula = $obj_matricula->lista(null, null, $this->ref_cod_escola, $this->ref_cod_serie, null, null, null, array(1, 2, 3), null, null, null, null, 1, $this->ano, $this->ref_cod_curso, $this->ref_cod_instituicao, null, null, null, null, null, null, null, null, null, null, null, null, null, null, $this->semestre, $this->ref_cod_turma);
        if ($lista_matricula) {
            $obj_series = new clsPmieducarSerie();
            $lst_series = $obj_series->lista(null, null, null, $this->ref_cod_curso, null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao, null, null, null, $this->ref_cod_escola);
            if ($lst_series) {
                $lst_series2 = array();
                foreach ($lst_series as $serie) {
                    $lst_series2[$serie['cod_serie']] = $serie;
                }
                $lst_series = $lst_series2;
                unset($lst_series2);
            }
            $obj_turmas = new clsPmieducarTurma();
            $lst_turmas = $obj_turmas->lista(null, null, null, $this->ref_cod_serie, $this->ref_cod_escola, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, $this->ref_cod_curso, $this->ref_cod_instituicao);
            if ($lst_turmas) {
                $lst_turmas2 = array();
                foreach ($lst_turmas as $turma) {
                    $lst_turmas2[$turma['cod_turma']] = $turma;
                }
                $lst_turmas = $lst_turmas2;
                unset($lst_turmas2);
            }
            $obj_cursos = new clsPmieducarCurso();
            $lst_cursos = $obj_cursos->lista(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
            if ($lst_cursos) {
                $lst_curso2 = array();
                foreach ($lst_cursos as $curso) {
                    $lst_cursos2[$curso['cod_curso']] = $curso;
                }
                $lst_cursos = $lst_cursos2;
                unset($lst_curso2);
            }
            $altura_caixa = 45;
            //$curso = $lst_cursos[$lista_matricula[0]['cod_curso']];
            //$this->nm_curso = $curso['nm_curso'];
            $ultimo_cod = $lista_matricula[0]['cod_curso'];
            $this->pdf->OpenPage();
            $this->addCabecalho();
            $this->addTitulo();
            foreach ($lista_matricula as $matricula) {
                $this->nm_curso = $lst_cursos[$matricula['ref_cod_curso']]['nm_curso'];
                if ($this->page_y > 530 || $ultimo_cod != $matricula['ref_cod_curso']) {
                    $this->pdf->ClosePage();
                    $this->pdf->OpenPage();
                    $this->page_y = 125;
                    $this->addCabecalho();
                    $this->addTitulo();
                }
                $obj_pessoa = new clsPessoaFisica($matricula['ref_idpes']);
                $det_pessoa = $obj_pessoa->detalhe();
                $nacionalidade = array('NULL' => "Selecione", '1' => "Brasileiro", '2' => "Naturalizado Brasileiro", '3' => "Estrangeiro");
                $nacionalidade = $nacionalidade[$det_pessoa['nacionalidade']];
                $det_municipio = $det_pessoa['idmun_nascimento']->detalhe();
                $data_nasc = explode("-", $det_pessoa['data_nasc']);
                $idade = calculoIdade($data_nasc[2], $data_nasc[1], $data_nasc[0]);
                $data_nasc = implode("/", array($data_nasc[2], $data_nasc[1], $data_nasc[0]));
                $y_escrita = $this->page_y + $altura_caixa / 4;
                $obj_aluno = new clsPmieducarAluno($matricula['ref_cod_aluno']);
                $det_aluno = $obj_aluno->detalhe();
                $obj_fisica = new clsFisica($det_aluno["ref_idpes"]);
                $det_fisica = $obj_fisica->detalhe();
                if (!$det_aluno['nm_mae']) {
                    if ($det_fisica["idpes_mae"]) {
                        $obj_ref_idpes = new clsPessoa_($det_fisica["idpes_mae"]);
                        $det_ref_idpes = $obj_ref_idpes->detalhe();
                        $det_aluno['nm_mae'] = $det_ref_idpes['nome'];
                    } elseif ($det_fisica['nome_mae']) {
                        $det_aluno['nm_mae'] = $det_fisica['nome_mae'];
                    }
                }
                if (!$det_aluno['nm_pai']) {
                    if ($det_fisica["idpes_pai"]) {
                        $obj_ref_idpes = new clsPessoa_($det_fisica["idpes_pai"]);
                        $det_ref_idpes = $obj_ref_idpes->detalhe();
                        $det_aluno['nm_pai'] = $det_ref_idpes["nome"];
                    } elseif ($det_fisica['nome_pai']) {
                        $det_aluno['nome_pai'] = $det_fisica['nome_pai'];
                    }
                }
                if ($det_aluno['tipo_responsavel'] == 'r' || $det_aluno['tipo_responsavel'] == '') {
                    if ($det_fisica["idpes_responsavel"]) {
                        $obj_ref_idpes = new clsPessoa_($det_fisica["idpes_responsavel"]);
                        $det_ref_idpes = $obj_ref_idpes->detalhe();
                        if ($det_aluno['nome_pai']) {
                            if ($det_aluno['nm_responsavel'] != $det_aluno['nome_pai']) {
                                $det_aluno['nm_responsavel'] = $det_ref_idpes["nome"];
                            }
                        } elseif ($det_aluno['nome_mae']) {
                            if ($det_aluno['nm_responsavel'] != $det_aluno['nome_mae']) {
                                $det_aluno['nm_responsavel'] = $det_ref_idpes["nome"];
                            }
                        } else {
                            $det_aluno['nm_responsavel'] = $det_ref_idpes["nome"];
                        }
                    } elseif ($det_fisica['nome_responsavel']) {
                        if ($det_aluno['nome_pai']) {
                            if ($det_fisica['nome_responsavel'] != $det_aluno['nome_pai']) {
                                $det_aluno['nm_responsavel'] = $det_fisica['nome_responsavel'];
                            }
                        } elseif ($det_aluno['nome_mae']) {
                            if ($det_fisica['nome_responsavel'] != $det_aluno['nome_mae']) {
                                $det_aluno['nm_responsavel'] = $det_fisica['nome_responsavel'];
                            }
                        } else {
                            $det_aluno['nm_responsavel'] = $det_fisica['nome_responsavel'];
                        }
                    }
                }
                if ($det_aluno['nm_pai']) {
                    $det_aluno['nm_pai'] = "{$det_aluno['nm_pai']}\n";
                }
                if ($det_aluno['nm_mae']) {
                    $det_aluno['nm_mae'] = "{$det_aluno['nm_mae']}\n";
                }
                $filiacao = "{$det_aluno['nm_pai']}{$det_aluno['nm_mae']}{$det_aluno['nm_responsavel']}";
                $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                $lst_matricula_turma = $obj_matricula_turma->lista($matricula['cod_matricula'], null, null, null, null, null, null, null, 1, $matricula['ref_ref_cod_serie'], $matricula['ref_cod_curso'], $matricula['ref_ref_cod_escola'], null, $matricula['ref_cod_aluno'], null, null, null);
                if (is_array($lst_matricula_turma)) {
                    $lst_matricula_turma = array_shift($lst_matricula_turma);
                    $hora_inicial = $lst_turmas[$lst_matricula_turma['ref_cod_turma']]['hora_inicial'];
                    $hora_final = $lst_turmas[$lst_matricula_turma['ref_cod_turma']]['hora_final'];
                    if ($hora_inicial >= '07:00' and $hora_inicial <= '12:00') {
                        $turno = 'Matutino';
                    } else {
                        if ($hora_inicial > '12:00' and $hora_inicial <= '18:00') {
                            $turno = 'Vespertino';
                        } else {
                            $turno = 'Noturno';
                        }
                    }
                } else {
                    $turno = 'N/A';
                }
                $obj_endereco = new clsPessoaEndereco($det_aluno["ref_idpes"]);
                if ($obj_endereco_det = $obj_endereco->detalhe()) {
                    $id_cep = $obj_endereco_det['cep']->cep;
                    $id_bairro = $obj_endereco_det['idbai']->detalhe();
                    $id_logradouro = $obj_endereco_det['idlog']->detalhe();
                    $id_mun = $id_bairro['idmun']->detalhe();
                    $id_logradouro = $id_logradouro['idlog']->detalhe();
                    $idtlog = $id_logradouro[1];
                    $numero = $obj_endereco_det['numero'];
                    $letra = $obj_endereco_det['letra'];
                    $complemento = $obj_endereco_det['complemento'];
                    $andar = $obj_endereco_det['andar'];
                    $apto = $obj_endereco_det['apartamento'];
                    $bloco = $obj_endereco_det['bloco'];
                    $cidade = $id_mun['nome'];
                    $bairro = $id_bairro['nome'];
                    $logradouro = $id_logradouro['nome'];
                    //$endereco_uf =  $obj_endereco_det['sigla_uf'];
                    $endereco_uf = $id_bairro['idmun']->sigla_uf;
                    $cep = int2CEP($id_cep);
                } else {
                    $obj_endereco = new clsEnderecoExterno($det_aluno["ref_idpes"]);
                    if ($obj_endereco_det = $obj_endereco->detalhe()) {
                        $id_cep = $obj_endereco_det['cep'];
                        $cidade = $obj_endereco_det['cidade'];
                        $bairro = $obj_endereco_det['bairro'];
                        $logradouro = $obj_endereco_det['logradouro'];
                        $numero = $obj_endereco_det['numero'];
                        $letra = $obj_endereco_det['letra'];
                        $complemento = $obj_endereco_det['complemento'];
                        $andar = $obj_endereco_det['andar'];
                        $apto = $obj_endereco_det['apartamento'];
                        $bloco = $obj_endereco_det['bloco'];
                        $idtlog = $obj_endereco_det['idtlog']->idtlog;
                        $endereco_uf = $obj_endereco_det['sigla_uf']->sigla_uf;
                        $cep = int2CEP($id_cep);
                    }
                }
                $idtlog = ucfirst(strtolower($idtlog));
                $logradouro = minimiza_capitaliza($logradouro);
                $cidade = minimiza_capitaliza($cidade);
                $endereco = "{$idtlog} {$logradouro},{$numero} {$letra} {$complemento} {$apto} {$bloco} {$andar}\n{$cep} {$bairro}, {$cidade} {$endereco_uf}";
                $this->pdf->quadrado_relativo(30, $this->page_y, 782, $altura_caixa);
                $this->pdf->quadrado_relativo(30, $this->page_y, 40, $altura_caixa);
                $this->pdf->quadrado_relativo(70, $this->page_y, 50, $altura_caixa);
                $this->pdf->quadrado_relativo(115, $this->page_y, 175, $altura_caixa);
                $this->pdf->quadrado_relativo(285, $this->page_y, 55, $altura_caixa);
                $this->pdf->quadrado_relativo(335, $this->page_y, 190, $altura_caixa);
                $this->pdf->quadrado_relativo(520, $this->page_y, 160, $altura_caixa);
                $this->pdf->quadrado_relativo(680, $this->page_y, 80, $altura_caixa);
                $this->pdf->escreve_relativo("{$matricula['ref_cod_aluno']}", 30, $y_escrita + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->pdf->escreve_relativo("{$matricula['cod_matricula']}", 70, $y_escrita + 5, 50, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->pdf->escreve_relativo("{$matricula['nome']}\n{$endereco}", 115, $y_escrita - 3, 175, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->pdf->escreve_relativo("{$data_nasc}\n{$idade} anos", 285, $y_escrita + 5, 50, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->pdf->escreve_relativo("{$filiacao}", 335, $y_escrita + 5, 175, $altura_caixa, $fonte, 8, $corTexto, 'center');
                if ($this->campo_assinatura) {
                    $this->pdf->escreve_relativo(" ", 520, $y_escrita + 2, 160, $altura_caixa, $fonte, 8, $corTexto, 'center');
                } else {
                    $this->pdf->escreve_relativo("{$nacionalidade}\n{$det_municipio['nome']}", 520, $y_escrita + 2, 160, $altura_caixa, $fonte, 8, $corTexto, 'center');
                }
                $obj_matricula_turma2 = new clsPmieducarMatriculaTurma();
                $det_matricula_turma2 = $obj_matricula_turma2->lista($matricula["cod_matricula"], null, null, null, null, null, null, null, 1);
                if (is_array($det_matricula_turma2)) {
                    $det_matricula_turma2 = array_shift($det_matricula_turma2);
                    $obj_turma = new clsPmieducarTurma($det_matricula_turma2["ref_cod_turma"]);
                    $det_turma = $obj_turma->detalhe();
                }
                $this->pdf->escreve_relativo("{$lst_series[$matricula['ref_ref_cod_serie']]['nm_serie']}\n{$det_turma["nm_turma"]}", 680, $y_escrita + 5, 80, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->pdf->escreve_relativo("{$turno}", 760, $y_escrita + 5, 50, $altura_caixa, $fonte, 8, $corTexto, 'center');
                $this->page_y += $altura_caixa;
                $ultimo_cod = $matricula['ref_cod_curso'];
            }
            $this->pdf->ClosePage();
        } else {
            echo '<script>
	     					alert("A turma não possui matrículas");
	     					window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
			     		  </script>';
            return true;
            return;
        }
        $this->pdf->CloseFile();
        $this->get_link = $this->pdf->GetLink();
        echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
        echo "<html><center>Se o download não iniciar automaticamente <br /><a target='_blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t</span>\n\t\t\t</center>";
    }
    function renderHTML()
    {
        if ($_POST) {
            foreach ($_POST as $key => $value) {
                $this->{$key} = $value;
            }
        }
        if ($this->ref_ref_cod_serie) {
            $this->ref_cod_serie = $this->ref_ref_cod_serie;
        }
        $fonte = 'arial';
        $corTexto = '#000000';
        if (empty($this->ref_cod_turma)) {
            echo '<script>
	     			alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
	     			window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
	     		</script>';
            return true;
        }
        //$this->mes = "5";//teste
        //$qtd_dias = 28;
        $this->pdf = new clsPDF("Ficha de Leitura - {$this->ano}", "Ficha de Leitura - {$this->meses_do_ano[$this->mes]}", "A4", "", false, false);
        $this->pdf->OpenPage();
        $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
        $det_escola = $obj_escola->detalhe();
        $this->nm_escola = $det_escola['nome'];
        $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
        $det_instituicao = $obj_instituicao->detalhe();
        $this->nm_instituicao = $det_instituicao['nm_instituicao'];
        $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
        $det_turma = $obj_turma->detalhe();
        $this->nm_turma = $det_turma['nm_turma'];
        $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
        $det_serie = $obj_serie->detalhe();
        $this->nm_serie = $det_serie['nm_serie'];
        $this->addCabecalho();
        $this->pdf->escreve_relativo("Leitura", 370, 142, 120, 15, null, 10);
        $this->pdf->escreve_relativo("Escrita", 500, 142, 120, 15, null, 10);
        /***************************************/
        $imagem = girarTextoImagem("Ainda não lê", 8);
        $this->pdf->InsertJpng('png', $imagem, 342, 310, 1);
        $imagem = girarTextoImagem("Palavras", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 372, 220, 1);
        $imagem = girarTextoImagem("Silabando", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 365, 310, 1);
        $imagem = girarTextoImagem("Fluente", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 380, 310, 1);
        $imagem = girarTextoImagem("Frases", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 402, 220, 1);
        $imagem = girarTextoImagem("Silabando", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 395, 310, 1);
        $imagem = girarTextoImagem("Fluente", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 410, 310, 1);
        $imagem = girarTextoImagem("Textos", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 432, 220, 1);
        $imagem = girarTextoImagem("Pausado", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 425, 310, 1);
        $imagem = girarTextoImagem("Fluente", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 440, 310, 1);
        /*****************************************/
        /***************************************/
        $imagem = girarTextoImagem("Ainda não escreve", 8);
        $this->pdf->InsertJpng('png', $imagem, 462, 310, 1);
        $imagem = girarTextoImagem("Palavras", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 492, 220, 1);
        $imagem = girarTextoImagem("Com erro", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 485, 310, 1);
        $imagem = girarTextoImagem("Corretas", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 500, 310, 1);
        $imagem = girarTextoImagem("Frases", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 522, 220, 1);
        $imagem = girarTextoImagem("Com erro", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 515, 310, 1);
        $imagem = girarTextoImagem("Corretas", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 530, 310, 1);
        $imagem = girarTextoImagem("Textos", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 552, 220, 1);
        $imagem = girarTextoImagem("Com erro", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 545, 310, 1);
        $imagem = girarTextoImagem("Corretas", 8, 60);
        $this->pdf->InsertJpng('png', $imagem, 560, 310, 1);
        /*****************************************/
        $this->pdf->linha_relativa(30, 140, 540, 0);
        $this->pdf->linha_relativa(30, 140, 0, 180);
        $this->pdf->linha_relativa(570, 140, 0, 180);
        $this->pdf->linha_relativa(30, 320, 540, 0);
        $this->pdf->linha_relativa(60, 140, 0, 180);
        $this->pdf->linha_relativa(330, 140, 0, 180);
        $this->pdf->linha_relativa(330, 155, 240, 0);
        $this->pdf->linha_relativa(450, 140, 0, 180);
        $this->pdf->linha_relativa(360, 155, 0, 165);
        $this->pdf->linha_relativa(480, 155, 0, 165);
        $this->pdf->linha_relativa(360, 230, 90, 0);
        $this->pdf->linha_relativa(480, 230, 90, 0);
        $this->pdf->linha_relativa(390, 155, 0, 165);
        $this->pdf->linha_relativa(420, 155, 0, 165);
        $this->pdf->linha_relativa(510, 155, 0, 165);
        $this->pdf->linha_relativa(540, 155, 0, 165);
        $this->pdf->linha_relativa(375, 230, 0, 90);
        $this->pdf->linha_relativa(405, 230, 0, 90);
        $this->pdf->linha_relativa(435, 230, 0, 90);
        $this->pdf->linha_relativa(495, 230, 0, 90);
        $this->pdf->linha_relativa(525, 230, 0, 90);
        $this->pdf->linha_relativa(555, 230, 0, 90);
        $this->pdf->escreve_relativo("Nº", 40, 305, 20, 20, null, 10);
        $this->pdf->escreve_relativo("Nome do aluno", 70, 305, 160, 20, null, 10);
        //$total_alunos = 32;
        $qtd_quebra = 33;
        $base = 305;
        $linha = 1;
        if ($this->is_padrao || $this->ano == 2007) {
            $this->semestre = null;
        }
        $obj_matricula = new clsPmieducarMatriculaTurma();
        $obj_matricula->setOrderby('nome_ascii');
        $lst_matricula = $obj_matricula->lista(null, $this->ref_cod_turma, null, null, null, null, null, null, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, null, null, array(1, 2, 3), null, null, $this->ano, null, true, null, null, true, null, null, null, null, $this->semestre);
        if ($lst_matricula) {
            foreach ($lst_matricula as $ordem => $matricula) {
                $ordem++;
                $ordem = sprintf("%02d", $ordem);
                if ($linha % $qtd_quebra == 0) {
                    //nova pagina
                    $this->pdf->ClosePage();
                    $this->pdf->OpenPage();
                    $base = 30;
                    $linha = 0;
                    $this->pdf->linha_relativa(30, 30, 540, 0);
                    $qtd_quebra = 51;
                }
                $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(30, $base + 15 + $linha * 15, 540, 0);
                $this->pdf->escreve_relativo($ordem, 40, $base + 3 + $linha * 15, 15, 15, null, 8);
                $this->pdf->escreve_relativo($matricula['nome'], 65, $base + 3 + $linha * 15, 250, 15, null, 8);
                $this->pdf->linha_relativa(330, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(360, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(375, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(390, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(405, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(420, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(435, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(480, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(495, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(510, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(525, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(540, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(555, $base + $linha * 15, 0, 15);
                $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
                //fim
                $linha++;
            }
        }
        //escrever total
        $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
        $this->pdf->escreve_relativo("Total", 35, $base + 3 + $linha * 15, 20, 15, null, 8);
        $this->pdf->linha_relativa(330, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(360, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(375, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(390, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(405, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(420, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(435, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(480, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(495, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(510, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(525, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(540, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(555, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
        $this->pdf->linha_relativa(30, $base + ($linha + 1) * 15, 540, 0);
        $this->pdf->ClosePage();
        $this->pdf->CloseFile();
        $this->get_link = $this->pdf->GetLink();
        echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
        echo "<html><center>Se o download não iniciar automaticamente <br /><a target='blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t</span>\n\t\t\t</center>";
    }
    function Gerar()
    {
        @session_start();
        $this->pessoa_logada = $_SESSION['id_pessoa'];
        session_write_close();
        $this->titulo = 'Matricula Turma - Detalhe';
        $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
        foreach ($_POST as $key => $value) {
            $this->{$key} = $value;
        }
        if (!$this->ref_cod_matricula) {
            header('Location: educar_matricula_lst.php');
            die;
        }
        $obj_mat_turma = new clsPmieducarMatriculaTurma();
        $det_mat_turma = $obj_mat_turma->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
        if ($det_mat_turma) {
            $det_mat_turma = array_shift($det_mat_turma);
            $obj_turma = new clsPmieducarTurma($det_mat_turma['ref_cod_turma']);
            $det_turma = $obj_turma->detalhe();
            $this->nm_turma = $det_turma['nm_turma'];
            $this->ref_cod_turma_origem = $det_turma['cod_turma'];
            $this->sequencial = $det_mat_turma['sequencial'];
        }
        // #TODO adicionar ano da matricula atual
        #$tmp_obj = new clsPmieducarMatriculaTurma( );
        #$lista = $tmp_obj->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL,
        #  NULL, NULL, 1);
        #$total_alunos = 0;
        #if ($lista) {
        #  $total_alunos = count($lista);
        #}
        $tmp_obj = new clsPmieducarTurma();
        $lst_obj = $tmp_obj->lista($this->ref_cod_turma);
        $registro = array_shift($lst_obj);
        $db = new clsBanco();
        $ano = $db->CampoUnico("select ano from pmieducar.matricula where cod_matricula = {$this->ref_cod_matricula}");
        $sql = "select count(cod_matricula) as qtd_matriculas from pmieducar.matricula, pmieducar.matricula_turma, pmieducar.aluno where aluno.cod_aluno = matricula.ref_cod_aluno and ano = {$ano} and aluno.ativo = 1 and matricula.ativo = 1 and matricula_turma.ativo = matricula.ativo and cod_matricula = ref_cod_matricula and ref_cod_turma = {$this->ref_cod_turma}";
        $total_alunos = $db->CampoUnico($sql);
        $this->ref_cod_curso = $registro['ref_cod_curso'];
        if (!$registro || !$_POST) {
            header('Location: educar_matricula_lst.php');
            die;
        }
        // Tipo da turma
        $obj_ref_cod_turma_tipo = new clsPmieducarTurmaTipo($registro['ref_cod_turma_tipo']);
        $det_ref_cod_turma_tipo = $obj_ref_cod_turma_tipo->detalhe();
        $registro['ref_cod_turma_tipo'] = $det_ref_cod_turma_tipo['nm_tipo'];
        // Código da instituição
        $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'];
        // Nome da escola
        $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_ref_cod_escola']);
        $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
        $registro['ref_ref_cod_escola'] = $det_ref_cod_escola['nome'];
        // Nome do curso
        $obj_ref_cod_curso = new clsPmieducarCurso($registro['ref_cod_curso']);
        $det_ref_cod_curso = $obj_ref_cod_curso->detalhe();
        $registro['ref_cod_curso'] = $det_ref_cod_curso['nm_curso'];
        $padrao_ano_escolar = $det_ref_cod_curso['padrao_ano_escolar'];
        // Nome da série
        $obj_ser = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
        $det_ser = $obj_ser->detalhe();
        $registro['ref_ref_cod_serie'] = $det_ser['nm_serie'];
        // Matrícula
        $obj_ref_cod_matricula = new clsPmieducarMatricula();
        $detalhe_aluno = array_shift($obj_ref_cod_matricula->lista($this->ref_cod_matricula));
        $obj_aluno = new clsPmieducarAluno();
        $det_aluno = array_shift($det_aluno = $obj_aluno->lista($detalhe_aluno['ref_cod_aluno'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1));
        $obj_escola = new clsPmieducarEscola($this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
        $det_escola = $obj_escola->detalhe();
        $this->addDetalhe(array('Nome do Aluno', $det_aluno['nome_aluno']));
        $objTemp = new clsPmieducarTurma($this->ref_cod_turma);
        $det_turma = $objTemp->detalhe();
        if ($registro['ref_ref_cod_escola']) {
            $this->addDetalhe(array('Escola', $registro['ref_ref_cod_escola']));
        }
        if ($registro['ref_cod_curso']) {
            $this->addDetalhe(array('Curso', $registro['ref_cod_curso']));
        }
        if ($registro['ref_ref_cod_serie']) {
            $this->addDetalhe(array('S&eacute;rie', $registro['ref_ref_cod_serie']));
        }
        //(enturmações) turma atual
        $enturmacoes = new clsPmieducarMatriculaTurma();
        $enturmacoes = $enturmacoes->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
        $this->possuiEnturmacao = !empty($enturmacoes);
        $this->possuiEnturmacaoTurmaDestino = false;
        $this->turmaOrigemMesmaDestino = false;
        $this->addDetalhe(array('<b>Turma selecionada</b>', '<b>' . $registro['nm_turma'] . '</b>'));
        $this->addDetalhe(array('Total de vagas', $registro['max_aluno']));
        if (is_numeric($total_alunos)) {
            $this->addDetalhe(array('Alunos enturmados', $total_alunos));
            $this->addDetalhe(array('Vagas disponíveis', $registro['max_aluno'] - $total_alunos));
        }
        if ($this->possuiEnturmacao) {
            //se possui uma enturmacao mostra o nome, se mais de uma mostra select para selecionar
            if (count($enturmacoes) > 1) {
                $selectEnturmacoes = "<select id='ref_cod_turma_origem' class='obrigatorio'>";
                $selectEnturmacoes .= "<option value=''>Selecione</option>";
                foreach ($enturmacoes as $enturmacao) {
                    if ($enturmacao['ref_cod_turma'] != $this->ref_cod_turma) {
                        $selectEnturmacoes .= "<option value='{$enturmacao['ref_cod_turma']}'>{$enturmacao['nm_turma']}</option>";
                    } elseif (!$this->possuiEnturmacaoTurmaDestino) {
                        $this->possuiEnturmacaoTurmaDestino = true;
                    }
                }
                $selectEnturmacoes .= "</select>";
            } else {
                if ($enturmacoes[0]['ref_cod_turma'] == $this->ref_cod_turma) {
                    $this->possuiEnturmacaoTurmaDestino = true;
                    $this->turmaOrigemMesmaDestino = true;
                }
                $selectEnturmacoes = "<input id='ref_cod_turma_origem' type='hidden' value = '{$enturmacoes[0]['ref_cod_turma']}'/>{$enturmacoes[0]['nm_turma']}";
            }
            $this->addDetalhe(array('<b>Enturmação</b>', $selectEnturmacoes));
        }
        if (!$this->possuiEnturmacaoTurmaDestino) {
            $this->addDetalhe(array('Data da enturmação', '<input onkeypress="formataData(this,event);" value="' . date('d/m/Y') . '" class="geral" type="text" name="data_enturmacao" id="data_enturmacao" size="9" maxlength="10"/>'));
        }
        $this->addDetalhe(array('-', sprintf('
        <form name="formcadastro" method="post" action="educar_matricula_turma_cad.php">
          <input type="hidden" name="ref_cod_matricula" value="">
          <input type="hidden" name="ref_cod_serie" value="">
          <input type="hidden" name="ref_cod_escola" value="">
          <input type="hidden" name="ref_cod_turma_origem" value="%d">
          <input type="hidden" name="ref_cod_turma_destino" value="">
          <input type="hidden" name="data_enturmacao" value="">
          <input type="hidden" name="sequencial" value="%d">
        </form>
      ', $this->ref_cod_turma_origem, $this->sequencial)));
        if ($registro['max_aluno'] - $total_alunos <= 0) {
            $escolaSerie = $this->getEscolaSerie($det_ref_cod_escola['cod_escola'], $det_ser['cod_serie']);
            if ($escolaSerie['bloquear_enturmacao_sem_vagas'] != 1) {
                $msg = sprintf('Atenção! Turma sem vagas! Deseja continuar com a enturmação mesmo assim?');
                $jsEnturmacao = sprintf('if (!confirm("%s")) return false;', $msg);
            } else {
                $msg = sprintf('Enturmação não pode ser realizada,\\n\\no limite de vagas da turma já foi atingido e para esta série e escola foi definido bloqueio de enturmação após atingir tal limite.');
                $jsEnturmacao = sprintf('alert("%s"); return false;', $msg);
            }
        } else {
            $jsEnturmacao = 'if (!confirm("Confirma a enturmação?")) return false;';
        }
        $script = sprintf('
      <script type="text/javascript">

        function enturmar(ref_cod_matricula, ref_cod_turma_destino, tipo){
          document.formcadastro.ref_cod_turma_origem.value = "";

          if(tipo == "transferir") {
            var turmaOrigemId = document.getElementById("ref_cod_turma_origem");
            if (turmaOrigemId && turmaOrigemId.value)
              document.formcadastro.ref_cod_turma_origem.value = turmaOrigemId.value;
            else {
              alert("Por favor, selecione a enturmação a ser transferida.");
              return false;
            }
          }

          %s

          document.formcadastro.ref_cod_matricula.value = ref_cod_matricula;
          document.formcadastro.ref_cod_turma_destino.value = ref_cod_turma_destino;
          document.formcadastro.data_enturmacao.value = document.getElementById("data_enturmacao").value;
          document.formcadastro.submit();
        }

        function removerEnturmacao(ref_cod_matricula, ref_cod_turma_destino) {

          if (! confirm("Confirma remoção da enturmação?"))
            return false;

          document.formcadastro.ref_cod_turma_origem.value = "remover-enturmacao-destino";
          document.formcadastro.ref_cod_matricula.value = ref_cod_matricula;
          document.formcadastro.ref_cod_turma_destino.value = ref_cod_turma_destino;
          document.formcadastro.submit();
        }

      </script>', $jsEnturmacao);
        print $script;
        $canCreate = new clsPermissoes();
        $canCreate = $canCreate->permissao_cadastra(578, $this->pessoa_logada, 7);
        if ($this->possuiEnturmacaoTurmaDestino && $canCreate) {
            $this->array_botao = array('Remover (enturmação) da turma selecionada');
            $this->array_botao_url_script = array("removerEnturmacao({$this->ref_cod_matricula}, {$this->ref_cod_turma})");
        }
        if (!$this->turmaOrigemMesmaDestino && $canCreate) {
            //mover enturmação
            if ($this->possuiEnturmacao) {
                $this->array_botao[] = 'Transferir para turma selecionada';
                $this->array_botao_url_script[] = "enturmar({$this->ref_cod_matricula}, {$this->ref_cod_turma}, \"transferir\")";
            }
            //nova enturmação
            if (!$this->possuiEnturmacaoTurmaDestino && $canCreate) {
                $this->array_botao[] = 'Enturmar na turma selecionada';
                $this->array_botao_url_script[] = "enturmar({$this->ref_cod_matricula}, {$this->ref_cod_turma}, \"nova\")";
            }
        }
        $this->array_botao[] = 'Voltar';
        $this->array_botao_url_script[] = "go(\"educar_matricula_turma_lst.php?ref_cod_matricula={$this->ref_cod_matricula}\");";
        $this->largura = '100%';
    }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '
      <script>
        alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
        window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
      </script>';
         return TRUE;
     }
     $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
     $det_escola = $obj_escola->detalhe();
     $this->nm_escola = $det_escola['nome'];
     $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
     $det_instituicao = $obj_instituicao->detalhe();
     $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $eh_multi_seriado = FALSE;
     if (is_numeric($det_turma['ref_ref_cod_serie_mult'])) {
         $series = array();
         $series[$det_serie['cod_serie']] = $det_serie['nm_serie'];
         $obj_serie = new clsPmieducarSerie($det_turma['ref_ref_cod_serie_mult']);
         $det_serie = $obj_serie->detalhe();
         $this->nm_serie .= ' / ' . $det_serie['nm_serie'];
         $series[$det_serie['cod_serie']] = $det_serie['nm_serie'];
         $eh_multi_seriado = TRUE;
     }
     $this->pdf = new clsPDF('Resultado Final', 'Resultado Final', 'A4', '', FALSE, FALSE);
     $this->pdf->OpenPage();
     $this->addCabecalho();
     $this->pdf->linha_relativa(30, 140, 540, 0);
     $this->pdf->linha_relativa(30, 140, 0, 30);
     $this->pdf->linha_relativa(570, 140, 0, 30);
     $this->pdf->linha_relativa(30, 170, 540, 0);
     $this->pdf->linha_relativa(60, 140, 0, 30);
     $this->pdf->linha_relativa(320, 140, 0, 30);
     $this->pdf->linha_relativa(380, 140, 0, 30);
     $this->pdf->linha_relativa(490, 140, 0, 30);
     $this->pdf->linha_relativa(380, 155, 190, 0);
     $this->pdf->linha_relativa(530, 155, 0, 15);
     $this->pdf->linha_relativa(450, 155, 0, 15);
     $this->pdf->escreve_relativo('Ord', 35, 150, 20, 20, NULL, 10);
     $this->pdf->escreve_relativo('Nome do aluno', 70, 150, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('Aprovado', 325, 150, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('Reprovado', 410, 142, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('Desempenho', 384, 156, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('Faltas', 455, 156, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('Alf.', 500, 156, 160, 20, NULL, 10);
     $this->pdf->escreve_relativo('N. Alf.', 535, 156, 160, 20, NULL, 10);
     $obj_matricula = new clsPmieducarMatriculaTurma();
     $obj_matricula->setOrderby('m.ref_ref_cod_serie, nome_ascii');
     if ($this->is_padrao) {
         $this->semestre = NULL;
     }
     $lst_matricula = $obj_matricula->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, NULL, TRUE, NULL, NULL, NULL, $det_turma['ref_ref_cod_serie_mult'], $this->semestre);
     $qtd_quebra = 43;
     $base = 155;
     $linha = 1;
     $total_aprovados = 0;
     $total_reprovados_desempenho = 0;
     $total_reprovados_nota = 0;
     $total_analfabetos = 0;
     $total_nao_analfabetos = 0;
     $ordem_mostra = 0;
     if (is_array($lst_matricula)) {
         foreach ($lst_matricula as $ordem => $matricula) {
             $obj_matricula = new clsPmieducarMatricula($matricula['ref_cod_matricula']);
             $det_matricula = $obj_matricula->detalhe();
             // Verifica se o aluno está aprovado ou reprovado
             $situacoes = array(App_Model_MatriculaSituacao::APROVADO, App_Model_MatriculaSituacao::REPROVADO);
             if (in_array($det_matricula['aprovado'], $situacoes)) {
                 $ordem_mostra++;
                 $ordem_mostra = sprintf('%02d', $ordem_mostra);
                 if ($linha % $qtd_quebra == 0) {
                     //nova pagina
                     $this->pdf->ClosePage();
                     $this->pdf->OpenPage();
                     $base = 30;
                     $linha = 0;
                     $this->pdf->linha_relativa(30, 30, 540, 0);
                     $qtd_quebra = 51;
                 }
                 $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(30, $base + 15 + $linha * 15, 540, 0);
                 $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
                 // fim
                 $this->pdf->escreve_relativo($ordem_mostra, 40, $base + 3 + $linha * 15, 15, 15, NULL, 8);
                 if ($eh_multi_seriado) {
                     $this->pdf->escreve_relativo($matricula['nome'] . ' (' . $series[$det_matricula['ref_ref_cod_serie']] . ')', 65, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                 } else {
                     $this->pdf->escreve_relativo($matricula['nome'], 65, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                 }
                 /**
                  * Instancia o service de boletim e requisita os dados da situação
                  * do aluno. Graças ao service, são "apenas" 147 linhas de código
                  * mal-escrito a menos.
                  */
                 $boletim = new Avaliacao_Service_Boletim(array('matricula' => $matricula['ref_cod_matricula']));
                 $situacao = $boletim->getSituacaoAluno();
                 if (TRUE == $situacao->aprovado) {
                     $this->pdf->escreve_relativo('X', 345, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                     $total_aprovados++;
                 } elseif (TRUE == $situacao->retidoFalta) {
                     $total_reprovados_desempenho++;
                     $this->pdf->escreve_relativo('X', 465, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                 } else {
                     $total_reprovados_nota++;
                     $this->pdf->escreve_relativo('X', 410, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                 }
                 // analfabeto
                 $obj_aluno = new clsPmieducarAluno($det_matricula['ref_cod_aluno']);
                 $obj_aluno->setCamposLista('analfabeto');
                 $det_aluno = $obj_aluno->detalhe();
                 if ($det_aluno['analfabeto'] == 0) {
                     $this->pdf->escreve_relativo('X', 507, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                     // não alfabetizado
                     $total_analfabetos++;
                 } else {
                     $this->pdf->escreve_relativo('X', 545, $base + 3 + $linha * 15, 250, 15, NULL, 8);
                     // alfabetizado
                     $total_nao_analfabetos++;
                 }
                 $this->pdf->linha_relativa(320, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(380, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(490, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(530, $base + $linha * 15, 0, 15);
                 $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
                 $linha++;
             }
         }
     }
     // Escrever total
     $this->pdf->linha_relativa(30, $base + $linha * 15, 0, 15);
     $this->pdf->escreve_relativo("Total", 35, $base + 3 + $linha * 15, 20, 15, NULL, 8);
     $this->pdf->escreve_relativo($total_aprovados, 345, $base + 3 + $linha * 15, 250, 15, null, 8);
     // aprovado
     $this->pdf->escreve_relativo($total_reprovados_desempenho, 465, $base + 3 + $linha * 15, 250, 15, NULL, 8);
     // desempenho
     $this->pdf->escreve_relativo($total_reprovados_nota, 410, $base + 3 + $linha * 15, 250, 15, NULL, 8);
     // faltas
     $this->pdf->escreve_relativo($total_analfabetos, 507, $base + 3 + $linha * 15, 250, 15, NULL, 8);
     // não alfabetizado
     $this->pdf->escreve_relativo($total_nao_analfabetos, 545, $base + 3 + $linha * 15, 250, 15, NULL, 8);
     // alfabetizado
     $this->pdf->linha_relativa(60, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(320, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(380, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(490, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(530, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(450, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(570, $base + $linha * 15, 0, 15);
     $this->pdf->linha_relativa(30, $base + ($linha + 1) * 15, 540, 0);
     $this->pdf->ClosePage();
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo sprintf('
   <script>
     window.onload = function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br /><a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }
 function Inicializar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     $this->ref_cod_matricula = $_GET["ref_cod_matricula"];
     $this->ref_cod_turma = $_GET["ref_cod_turma"];
     $this->ref_sequencial_matricula_turma = $_GET["ref_sequencial_matricula_turma"];
     $this->modulo = $_GET["modulo"];
     $this->reprova_falta = $_GET["falta"];
     $obj_permissoes = new clsPermissoes();
     $obj_permissoes->permissao_cadastra(642, $this->pessoa_logada, 7, "educar_falta_nota_aluno_lst.php");
     if (is_numeric($this->ref_cod_matricula) && is_numeric($this->ref_cod_turma) && is_numeric($this->ref_sequencial_matricula_turma)) {
         $obj_matricula_turma = new clsPmieducarMatriculaTurma();
         $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);
             $obj_curso = new clsPmieducarCurso($registro['ref_cod_curso']);
             $det_curso = $obj_curso->detalhe();
             if (!$det_curso['edicao_final']) {
                 echo "<script language='javascript'>alert('Edição de nota não permitido');window.location='educar_falta_nota_aluno_det.php?ref_cod_matricula={$registro["ref_cod_matricula"]}&ref_cod_turma={$registro["ref_cod_turma"]}&sequencial={$registro["sequencial"]}';</script>";
                 die;
             }
         }
         if ($registro) {
             foreach ($registro as $campo => $val) {
                 // passa todos os valores obtidos no registro para atributos do objeto
                 $this->{$campo} = $val;
             }
         }
         if (is_numeric($this->modulo)) {
             $retorno = "Editar";
         } else {
             $retorno = "Novo";
         }
     } else {
         header("Location: educar_falta_nota_aluno_lst.php");
         die;
     }
     $this->url_cancelar = $retorno == "Editar" ? "educar_falta_nota_aluno_det.php?ref_cod_matricula={$this->ref_cod_matricula}&ref_cod_turma={$this->ref_cod_turma}&sequencial={$this->ref_sequencial_matricula_turma}" : "educar_falta_nota_aluno_lst.php";
     $this->nome_url_cancelar = "Cancelar";
     return $retorno;
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = "Faltas/Notas Aluno - Listagem";
     // Passa todos os valores obtidos no GET para atributos do objeto
     foreach ($_GET as $var => $val) {
         $this->{$var} = $val === '' ? NULL : $val;
     }
     $lista_busca = array('Aluno', 'Matrícula', 'Turma', 'Série', 'Curso');
     $obj_permissao = new clsPermissoes();
     $nivel_usuario = $obj_permissao->nivel_acesso($this->pessoa_logada);
     if ($nivel_usuario == 1) {
         $lista_busca[] = 'Escola';
         $lista_busca[] = 'Institui&ccedil;&atilde;o';
     } else {
         if ($nivel_usuario == 2) {
             $lista_busca[] = 'Escola';
         }
     }
     $this->addCabecalhos($lista_busca);
     $this->campoTexto('nm_aluno', 'Aluno', $this->nm_aluno, 30, 255, FALSE, FALSE, FALSE, '', "<img border=\"0\" onclick=\"pesquisa_aluno();\" id=\"ref_cod_aluno_lupa\" name=\"ref_cod_aluno_lupa\" src=\"imagens/lupa.png\"\\/>", '', '', TRUE);
     $this->campoOculto('ref_cod_aluno', $this->ref_cod_aluno);
     $get_escola = TRUE;
     $get_curso = TRUE;
     $sem_padrao = TRUE;
     $get_escola_curso_serie = TRUE;
     $get_turma = TRUE;
     include 'include/pmieducar/educar_campo_lista.php';
     if ($this->ref_cod_escola) {
         $this->ref_ref_cod_escola = $this->ref_cod_escola;
     }
     $opcoes = array('' => 'Selecione', 1 => 'Aprovado', 2 => 'Reprovado', 3 => 'Em Andamento');
     $this->campoLista('aprovado', 'Situa&ccedil;&atilde;o', $opcoes, $this->aprovado, '', '', '', '', FALSE, FALSE);
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_nota_aluno = new clsPmieducarMatriculaTurma();
     $obj_nota_aluno->setOrderby('ref_cod_matricula ASC');
     $obj_nota_aluno->setLimite($this->limite, $this->offset);
     $aparece = TRUE;
     $lista = $obj_nota_aluno->lista($this->ref_cod_matricula, $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, $this->ref_cod_instituicao, $this->ref_cod_aluno, NULL, $this->aprovado, NULL, NULL, NULL, TRUE, FALSE, NULL, 1, TRUE, TRUE, NULL, NULL, NULL, NULL, $aparece);
     $total = $obj_nota_aluno->_total;
     // monta a lista
     if (is_array($lista) && count($lista)) {
         $ref_cod_serie = '';
         $nm_serie = '';
         $ref_cod_escola = '';
         $nm_escola = '';
         foreach ($lista as $registro) {
             if ($registro['ref_ref_cod_serie'] != '' && $ref_cod_serie != $registro['ref_ref_cod_serie']) {
                 $obj_ref_cod_serie = new clsPmieducarSerie($registro['ref_ref_cod_serie']);
                 $det_ref_cod_serie = $obj_ref_cod_serie->detalhe();
                 $ref_cod_serie = $registro['ref_ref_cod_serie'];
                 $nm_serie = $det_ref_cod_serie['nm_serie'];
             } elseif ($registro['ref_ref_cod_serie'] == '') {
                 $ref_cod_serie = '';
                 $nm_serie = '';
             }
             if ($registro['ref_ref_cod_escola'] != '' && $ref_cod_escola != $registro['ref_ref_cod_escola']) {
                 $obj_ref_cod_escola = new clsPmieducarEscola($registro['ref_ref_cod_escola']);
                 $det_ref_cod_escola = $obj_ref_cod_escola->detalhe();
                 $ref_cod_escola = $registro['ref_ref_cod_escola'];
                 $nm_escola = $det_ref_cod_escola['nome'];
             } elseif ($registro['ref_ref_cod_escola'] == '') {
                 $ref_cod_escola = '';
                 $nm_escola = '';
             }
             // Itens a mostrar na listagem de alunos
             $lista_busca = array();
             // Variáveis para a geração do link
             $path = '/module/Avaliacao/boletim';
             $params = array('query' => array('matricula' => $registro['ref_cod_matricula']));
             // Instância de UrlHelper
             $url = CoreExt_View_Helper_UrlHelper::getInstance();
             $lista_busca[] = $url->l($registro['nome'], $path, $params);
             $lista_busca[] = $url->l($registro['ref_cod_matricula'], $path, $params);
             $lista_busca[] = $url->l($registro['nm_turma'], $path, $params);
             $lista_busca[] = $url->l($registro['ref_ref_cod_serie'] ? $registro['ref_ref_cod_serie'] : '', $path, $params);
             $lista_busca[] = $url->l($registro['nm_curso'], $path, $params);
             if ($nivel_usuario == 1) {
                 $lista_busca[] = $url->l($registro['ref_ref_cod_escola'] ? $nm_escola : '-', $path, $params);
                 $lista_busca[] = $url->l($registro['nm_instituicao'], $path, $params);
             } elseif ($nivel_usuario == 2) {
                 $lista_busca[] = $url->l($registro['ref_ref_cod_escola'] ? $registro['ref_ref_cod_escola'] : '-', $path, $params);
             }
             $this->addLinhas($lista_busca);
         }
     }
     $this->addPaginador2('educar_falta_nota_aluno_lst.php', $total, $_GET, $this->nome, $this->limite);
     $this->largura = '100%';
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     // Instancia o objeto clsPDF
     $this->pdf = new clsPDF('Boletim', 'BolTit', 'A4', '');
     $this->pdf->largura = 842.0;
     $this->pdf->altura = 595.0;
     $this->pdf->topmargin = 5;
     $this->pdf->bottommargirn = 5;
     $altura_linha = 13;
     // Instituição
     $instituicao = App_Model_IedFinder::getInstituicoes();
     $instituicao = $instituicao[$this->ref_cod_instituicao];
     // Escola
     $escola = new clsPmieducarEscola();
     $escola->cod_escola = $this->ref_cod_escola;
     $escola = $escola->detalhe();
     $escola = $escola['nome'];
     // Carrega as informações do curso
     $serie = new clsPmieducarSerie($this->ref_ref_cod_serie, NULL, NULL, $this->ref_cod_curso);
     // Dados da série
     $serie = $serie->detalhe();
     // Recupera a regra da série
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $regra = $regraMapper->find($serie['regra_avaliacao_id']);
     // Carrega alunos matriculados
     $matriculaTurma = new clsPmieducarMatriculaTurma();
     $matriculaTurma->setOrderby('nome_aluno');
     $matriculados = $matriculaTurma->lista($this->ref_cod_matricula, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, NULL, NULL, NULL, $this->ano, NULL, TRUE);
     foreach ($matriculados as $matriculado) {
         $this->pdf->OpenPage();
         $this->page_y = 10;
         $codMatricula = $matriculado['ref_cod_matricula'];
         $nomeAluno = $matriculado['nome_aluno'];
         $turma = $matriculado['nm_turma'];
         $boletim = new Avaliacao_Service_Boletim(array('matricula' => $codMatricula));
         $matriculaData = $boletim->getOption('matriculaData');
         $curso = $matriculaData['curso_nome'];
         $serie = $matriculaData['serie_nome'];
         $this->addCabecalho($instituicao, $escola, $codMatricula, $nomeAluno, $curso, $turma, $serie);
         $this->inicio_y = $this->page_y - 25;
         $this->_notasFaltasComponentes($boletim);
         $situacao = $boletim->getSituacaoAluno();
         $this->page_y += 25;
         $this->rodape($codMatricula, $nomeAluno, $matriculaData['aprovado']);
         $this->pdf->ClosePage();
     }
     $this->pdf->CloseFile();
     $this->get_link = $this->pdf->GetLink();
     echo sprintf('
   <script>
     window.onload = function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br /><a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if ($this->escola_sem_avaliacao == 1) {
         $this->escola_sem_avaliacao = true;
     } elseif ($this->escola_sem_avaliacao == 2) {
         $this->escola_sem_avaliacao = false;
     } else {
         $this->escola_sem_avaliacao = null;
     }
     $obj_escola_instituicao = new clsPmieducarEscola();
     $lst_escola_instituicao = $obj_escola_instituicao->lista($this->ref_cod_escola, null, null, $this->ref_cod_instituicao, null, null, null, null, null, null, 1, null, $this->escola_sem_avaliacao);
     $this->pdf = new clsPDF("Alunos Matriculados - Sintético - {$this->ano}", "Alunos Matriculados - Sintético", "A4", "", false, false);
     if ($this->is_padrao || $this->ano == 2007) {
         $this->semestre = null;
     }
     if (is_array($lst_escola_instituicao) && count($lst_escola_instituicao)) {
         foreach ($lst_escola_instituicao as $escola) {
             $page_open = false;
             $this->ref_cod_escola = $escola['cod_escola'];
             if ($this->ref_cod_escola) {
                 $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
                 $det_escola = $obj_escola->detalhe();
                 $this->nm_escola = $det_escola['nome'];
                 $obj_instituicao = new clsPmieducarInstituicao($this->ref_cod_instituicao);
                 $det_instituicao = $obj_instituicao->detalhe();
                 $this->nm_instituicao = $det_instituicao['nm_instituicao'];
                 if ($det_escola['ref_idpes']) {
                     $obj_endereco_escola = new clsEndereco($det_escola['ref_idpes']);
                     $det_enderedo_escola = $obj_endereco_escola->detalhe();
                     $this->nm_localidade = $this->nm_municipio = $det_enderedo_escola['cidade'];
                     if (!$det_enderedo_escola) {
                         $obj_endereco_externo_escola = new clsEnderecoExterno($det_escola['ref_idpes']);
                         $det_enderedo_externo_escola = $obj_endereco_externo_escola->detalhe();
                         $this->nm_localidade = $this->nm_municipio = $det_enderedo_externo_escola['cidade'];
                     }
                 } else {
                     $obj_escola_complemento = new clsPmieducarEscolaComplemento($this->ref_cod_escola);
                     $det_escola_complemento = $obj_escola_complemento->detalhe();
                     $this->nm_localidade = $this->nm_municipio = $det_escola_complemento['municipio'];
                 }
             }
             $total_geral_escola_nao_enturmado_feminino = 0;
             $total_geral_escola_nao_enturmado_masculino = 0;
             $total_geral_escola_enturmado_feminino = 0;
             $total_geral_escola_enturmado_masculino = 0;
             $obj_cursos = new clsPmieducarCurso();
             $obj_cursos->setOrderby("cod_curso asc");
             $lst_cursos = $obj_cursos->lista($this->ref_cod_curso, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, $this->ref_cod_instituicao);
             if ($lst_cursos) {
                 foreach ($lst_cursos as $curso) {
                     $obj_serie_curso = new clsPmieducarSerie();
                     $obj_serie_curso->setOrderby('etapa_curso asc');
                     $lst_serie_curso = $obj_serie_curso->lista($this->ref_cod_serie, null, null, $curso['cod_curso'], null, null, null, null, null, null, null, null, 1, $this->ref_cod_instituicao, null, null, null, $this->ref_cod_escola);
                     $existe_matriculas = false;
                     if ($lst_serie_curso) {
                         $total = 0;
                         foreach ($lst_serie_curso as $key_serie => $serie) {
                             $obj_turmas = new clsPmieducarTurma();
                             $lst_turmas = $obj_turmas->lista(null, null, null, $serie['cod_serie'], $escola['cod_escola'], null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, true);
                             if (!$lst_turmas) {
                                 $obj_turmas = new clsPmieducarTurma();
                                 $lst_turmas = $obj_turmas->lista(null, null, null, null, null, null, null, null, null, null, null, null, null, null, 1, null, null, null, null, null, null, null, null, null, null, null, null, null, $escola['cod_escola'], $serie['cod_serie']);
                             }
                             if ($lst_turmas) {
                                 if (!$page_open) {
                                     $x_quadrado = 30;
                                     $this->page_y = 80;
                                     $altura_caixa = 20;
                                     $this->pdf->OpenPage();
                                     $this->addCabecalho();
                                     $this->addCabecalho2();
                                     $page_open = true;
                                 }
                                 $existe_matriculas = true;
                                 $total_enturmados_turma_masculino = 0;
                                 $total_enturmados_turma_feminino = 0;
                                 $total_nao_enturmados_turma_masculino = 0;
                                 $total_nao_enturmados_turma_feminino = 0;
                                 foreach ($lst_turmas as $key_turma => $turma) {
                                     if ($turma['hora_inicial']) {
                                         if ($turma['hora_inicial'] <= '12:00') {
                                             $turno = 'Matutino';
                                         } elseif ($turma['hora_inicial'] > '12:00' && $turma['hora_inicial'] <= '18:00') {
                                             $turno = 'Vespert.';
                                         } else {
                                             $turno = 'Noturno';
                                         }
                                     }
                                     $this->pdf->quadrado_relativo($x_quadrado, $this->page_y, 535, $altura_caixa);
                                     $this->pdf->escreve_relativo("{$escola['cod_escola']}", 25, $this->page_y + 5, 45, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     $this->pdf->linha_relativa(60, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->pdf->escreve_relativo("{$curso['nm_curso']}", 67, $this->page_y + 5, 258, $altura_caixa, $fonte, 8, $corTexto, 'left');
                                     $this->pdf->linha_relativa(250, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->pdf->escreve_relativo("{$serie['nm_serie']} / {$turma['nm_turma']}", 250, $this->page_y + 2, 70, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     $this->pdf->linha_relativa(320, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->pdf->escreve_relativo("{$turno}", 323, $this->page_y + 5, 258, $altura_caixa, $fonte, 8, $corTexto, 'left');
                                     $this->pdf->linha_relativa(360, $this->page_y, 0, $altura_caixa, '0.1');
                                     $obj_matriculas_turma = new clsPmieducarMatriculaTurma();
                                     $lst_matriculas_turma = $obj_matriculas_turma->lista(null, $turma['cod_turma'], null, null, null, null, null, null, 1, $serie['cod_serie'], $curso['cod_curso'], $escola['cod_escola'], $this->ref_cod_instituicao, null, null, array(1, 2, 3), null, null, $this->ano, null, null, null, 1, true, null, null, null, null, $this->semestre);
                                     $enturmados_turma_masculino = 0;
                                     $enturmados_turma_feminino = 0;
                                     if ($lst_matriculas_turma) {
                                         $total_enturmados_turma_geral = count($lst_matriculas_turma);
                                         //aqui verificar aluno que estao na multiseriada
                                         foreach ($lst_matriculas_turma 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();
                                             /**
                                              * verifica se o aluno possui transferencia
                                              * e nao exibe na enturmacao
                                              */
                                             //$obj_transf = new clsPmieducarTransferenciaSolicitacao();
                                             //$lst_transf = $obj_transf->lista(null,null,null,null,null,$matricula['ref_cod_matricula'],null,null,null,null,null,null,null,null,null,null,$this->ref_cod_escola,$this->ref_ref_cod_serie);
                                             //if($lst_transf)
                                             //	continue;
                                             if (strtoupper($det_pessoa['sexo']) == 'M') {
                                                 $enturmados_turma_masculino++;
                                             } else {
                                                 $enturmados_turma_feminino++;
                                             }
                                         }
                                     }
                                     $total_enturmados_turma_masculino += $enturmados_turma_masculino;
                                     $total_enturmados_turma_feminino += $enturmados_turma_feminino;
                                     $total_geral_escola_enturmado_masculino += $enturmados_turma_masculino;
                                     $total_geral_escola_enturmado_feminino += $enturmados_turma_feminino;
                                     /***************************INVERTIDO ABAIXO*******************************************************/
                                     //enturmados
                                     /*$this->pdf->escreve_relativo( "{$enturmados_turma_feminino}", 355, $this->page_y + 5 , 40, $altura_caixa, $fonte, 8, $corTexto, 'center' );
                                     		$this->pdf->escreve_relativo( "{$enturmados_turma_masculino}", 385, $this->page_y + 5 , 40, $altura_caixa, $fonte, 8, $corTexto, 'center' );*/
                                     $this->pdf->escreve_relativo("{$enturmados_turma_masculino}", 355, $this->page_y + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     $this->pdf->escreve_relativo("{$enturmados_turma_feminino}", 385, $this->page_y + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     /**************************************************************************************************/
                                     $this->pdf->escreve_relativo($enturmados_turma_masculino + $enturmados_turma_feminino, 425, $this->page_y + 5, 30, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     $this->pdf->linha_relativa(460, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->pdf->linha_relativa(390, $this->page_y, 0, $altura_caixa, '0.1');
                                     $this->pdf->linha_relativa(420, $this->page_y, 0, $altura_caixa, '0.1');
                                     //$obj_matriculas = new clsPmieducarMatricula();
                                     //									$lst_matriculas = $obj_matriculas->lista(null, null, $escola['cod_escola'], $serie['cod_serie'], null, null, null, null, null, null, null, null, 1, $this->ano, $curso['cod_curso'], $this->ref_cod_instituicao );
                                     if (!$executou) {
                                         $obj_nao_enturmados = new clsPmieducarMatriculaTurma();
                                         $lst_nao_enturmados = $obj_nao_enturmados->dadosAlunosNaoEnturmados($escola['cod_escola'], $serie['cod_serie'], $curso['cod_curso'], $this->ano, true);
                                         $executou = true;
                                         //$total_nao_enturmados_turma_masculino = $total_nao_enturmados_turma_feminino = 0;
                                         if ($lst_nao_enturmados) {
                                             foreach ($lst_nao_enturmados as $matricula) {
                                                 ////$obj_aluno = new clsPmieducarAluno($matricula['ref_cod_aluno']);
                                                 //$det_aluno = $obj_aluno->detalhe();
                                                 //$obj_pessoa = new clsFisica($det_aluno['ref_idpes']);
                                                 //$det_pessoa = $obj_pessoa->detalhe();
                                                 if (strtoupper($matricula['sexo']) == 'M') {
                                                     $total_nao_enturmados_turma_masculino++;
                                                 } else {
                                                     $total_nao_enturmados_turma_feminino++;
                                                 }
                                             }
                                         }
                                     }
                                     if ($this->page_y + $altura_caixa >= 800) {
                                         $this->page_y = 80;
                                         $this->pdf->ClosePage();
                                         $this->pdf->OpenPage();
                                         $page_open = true;
                                         $this->addCabecalho();
                                         $this->addCabecalho2();
                                     }
                                     $this->page_y += $altura_caixa;
                                 }
                                 if ($key_serie < count($lst_serie_curso)) {
                                     $mult = count($lst_turmas);
                                     $centraliza = $altura_caixa * ($mult + 1) / 2;
                                     $this->pdf->quadrado_relativo(460, $this->page_y - $altura_caixa * $mult, 105, $altura_caixa * $mult);
                                     $this->pdf->linha_relativa(498, $this->page_y - $altura_caixa * $mult, 0, $altura_caixa * $mult, '0.1');
                                     //nao enturmados
                                     $total_geral_escola_nao_enturmado_feminino += $tot_fem = $total_nao_enturmados_turma_feminino;
                                     $total_geral_escola_nao_enturmado_masculino += $tot_masc = $total_nao_enturmados_turma_masculino;
                                     /**********************************INVERTIDO********************************************/
                                     /*$this->pdf->escreve_relativo( $tot_fem , 463, $this->page_y + 5 - $centraliza , 35, $altura_caixa, $fonte, 8, $corTexto, 'center' );
                                     		$this->pdf->escreve_relativo( $tot_masc, 500, $this->page_y + 5 - $centraliza, 35, $altura_caixa, $fonte, 8, $corTexto, 'center' );*/
                                     $this->pdf->escreve_relativo($tot_masc, 463, $this->page_y + 5 - $centraliza, 35, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     $this->pdf->escreve_relativo($tot_fem, 500, $this->page_y + 5 - $centraliza, 35, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                     /***************************************************************************************/
                                     $this->pdf->linha_relativa(538, $this->page_y - $altura_caixa * $mult, 0, $altura_caixa * $mult, '0.1');
                                     $this->pdf->escreve_relativo($tot_fem + $tot_masc, 530, $this->page_y + 5 - $centraliza, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                                 }
                             }
                         }
                     }
                 }
             }
             if ($page_open) {
                 //total geral
                 $this->pdf->quadrado_relativo(320, $this->page_y, 40, $altura_caixa);
                 $this->pdf->escreve_relativo("TOTAL", 327, $this->page_y + 5, 258, $altura_caixa, $fonte, 9, $corTexto, 'left');
                 $this->pdf->quadrado_relativo(360, $this->page_y, 205, $altura_caixa);
                 /***************************************INVERTIDO******************************************/
                 //enturmados
                 /*$this->pdf->escreve_relativo( "{$total_geral_escola_enturmado_feminino}", 355, $this->page_y + 5 , 40, $altura_caixa, $fonte, 8, $corTexto, 'center' );
                 		$this->pdf->escreve_relativo( "{$total_geral_escola_enturmado_masculino}", 385, $this->page_y + 5 , 40, $altura_caixa, $fonte, 8, $corTexto, 'center' );*/
                 $this->pdf->escreve_relativo("{$total_geral_escola_enturmado_masculino}", 355, $this->page_y + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 $this->pdf->escreve_relativo("{$total_geral_escola_enturmado_feminino}", 385, $this->page_y + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 /******************************************************************************************/
                 $this->pdf->escreve_relativo($total_geral_escola_enturmado_feminino + $total_geral_escola_enturmado_masculino, 425, $this->page_y + 5, 30, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 $this->pdf->linha_relativa(460, $this->page_y, 0, $altura_caixa, '0.1');
                 $this->pdf->linha_relativa(390, $this->page_y, 0, $altura_caixa, '0.1');
                 $this->pdf->linha_relativa(420, $this->page_y, 0, $altura_caixa, '0.1');
                 $this->pdf->linha_relativa(498, $this->page_y, 0, $altura_caixa, '0.1');
                 /***************************************INVERTIDO******************************************/
                 //nao enturmados
                 /*$this->pdf->escreve_relativo( "$total_geral_escola_nao_enturmado_feminino", 463, $this->page_y + 5 , 35, $altura_caixa, $fonte, 8, $corTexto, 'center' );
                 		$this->pdf->escreve_relativo( "$total_geral_escola_nao_enturmado_masculino", 500, $this->page_y + 5, 35, $altura_caixa, $fonte, 8, $corTexto, 'center' );*/
                 $this->pdf->escreve_relativo("{$total_geral_escola_nao_enturmado_masculino}", 463, $this->page_y + 5, 35, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 $this->pdf->escreve_relativo("{$total_geral_escola_nao_enturmado_feminino}", 500, $this->page_y + 5, 35, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 /******************************************************************************************/
                 $this->pdf->linha_relativa(538, $this->page_y, 0, $altura_caixa, '0.1');
                 $this->pdf->escreve_relativo($total_geral_escola_nao_enturmado_masculino + $total_geral_escola_nao_enturmado_feminino, 530, $this->page_y + 5, 40, $altura_caixa, $fonte, 8, $corTexto, 'center');
                 if ($page_open && $existe_matriculas) {
                     $this->pdf->ClosePage();
                     $page_open = false;
                 }
             }
         }
         $this->pdf->CloseFile();
         $this->get_link = $this->pdf->GetLink();
         echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');window.location='download.php?filename=" . $this->get_link . "'}</script>";
         echo "<html><center>Se o download não iniciar automaticamente <br /><a target='_blank' href='" . $this->get_link . "' style='font-size: 16px; color: #000000; text-decoration: underline;'>clique aqui!</a><br><br>\n\t\t\t\t<span style='font-size: 10px;'>Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>\n\n\t\t\t\tClique na Imagem para Baixar o instalador<br><br>\n\t\t\t\t<a href=\"http://www.adobe.com.br/products/acrobat/readstep2.html\" target=\"new\"><br><img src=\"imagens/acrobat.gif\" width=\"88\" height=\"31\" border=\"0\"></a>\n\t\t\t\t</span>\n\t\t\t\t</center>";
     } else {
         echo "<script>window.onload=function(){parent.EscondeDiv('LoadImprimir');}</script>";
         echo "<script>\n\t\t\t\t\t\t\talert('Nenhuma informação a ser apresentada');\n\t\t\t\t\t\t\twindow.parent.fechaExpansivel('div_dinamico_'+(window.parent.DOM_divs.length-1));\n\t\t\t\t\t  </script>";
     }
 }
 function Editar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     @session_write_close();
     if ($this->matriculas_turma) {
         foreach ($this->ref_cod_matricula as $matricula => $campo) {
             $obj = new clsPmieducarMatriculaTurma($matricula, $this->ref_cod_turma, NULL, $this->pessoa_logada, NULL, NULL, 1, NULL, $campo['sequencial_']);
             $existe = $obj->existe();
             if (!$existe) {
                 $cadastrou = $obj->cadastra();
                 if (!$cadastrou) {
                     $this->mensagem = 'Cadastro n&atilde;o realizado.<br>';
                     return FALSE;
                 }
             }
         }
         $this->mensagem .= 'Cadastro efetuada com sucesso.<br>';
         header('Location: educar_matriculas_turma_lst.php');
         die;
     }
     header('Location: educar_matriculas_turma_lst.php');
     die;
 }
 function Gerar()
 {
     @session_start();
     $this->pessoa_logada = $_SESSION['id_pessoa'];
     session_write_close();
     $this->titulo = 'Listagem - Selecione a turma para realizar a transferência';
     $this->ref_cod_matricula = $_GET['ref_cod_matricula'];
     if (!$this->ref_cod_matricula) {
         header('Location: educar_matricula_lst.php');
         die;
     }
     $obj_matricula = new clsPmieducarMatricula($this->ref_cod_matricula);
     $det_matricula = $obj_matricula->detalhe();
     $this->ref_cod_curso = $det_matricula['ref_cod_curso'];
     $this->ref_cod_serie = $det_matricula['ref_ref_cod_serie'];
     $this->ref_cod_escola = $det_matricula['ref_ref_cod_escola'];
     $this->ref_cod_turma = $_GET['ref_cod_turma'];
     $this->addBanner('imagens/nvp_top_intranet.jpg', 'imagens/nvp_vert_intranet.jpg', 'Intranet');
     $this->addCabecalhos(array('Turma'));
     // Busca dados da matricula
     $obj_ref_cod_matricula = new clsPmieducarMatricula();
     $detalhe_aluno = array_shift($obj_ref_cod_matricula->lista($this->ref_cod_matricula));
     $obj_aluno = new clsPmieducarAluno();
     $det_aluno = array_shift($obj_aluno->lista($detalhe_aluno['ref_cod_aluno'], NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1));
     $obj_escola = new clsPmieducarEscola($this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
     $det_escola = $obj_escola->detalhe();
     if ($det_escola['nome']) {
         $this->campoRotulo('nm_escola', 'Escola', $det_escola['nome']);
     }
     $this->campoRotulo('nm_pessoa', 'Nome do Aluno', $det_aluno['nome_aluno']);
     // Filtros de foreign keys
     $opcoes = array('' => 'Selecione');
     // Opções de turma
     $objTemp = new clsPmieducarTurma();
     $lista = $objTemp->lista(NULL, NULL, NULL, $this->ref_cod_serie, $this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_curso);
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             $opcoes[$registro['cod_turma']] = $registro['nm_turma'];
         }
     }
     $this->campoLista('ref_cod_turma_', 'Turma', $opcoes, $this->ref_cod_turma);
     // outros filtros
     $this->campoOculto('ref_cod_matricula', $this->ref_cod_matricula);
     $this->campoOculto('ref_cod_serie', '');
     $this->campoOculto('ref_cod_turma', '');
     $this->campoOculto('ref_cod_escola', '');
     // Paginador
     $this->limite = 20;
     $this->offset = $_GET['pagina_' . $this->nome] ? $_GET['pagina_' . $this->nome] * $this->limite - $this->limite : 0;
     $obj_matricula_turma = new clsPmieducarTurma();
     $obj_matricula_turma->setOrderby('data_cadastro ASC');
     $obj_matricula_turma->setLimite($this->limite, $this->offset);
     $lista = $obj_matricula_turma->lista($this->ref_cod_turma, NULL, NULL, $this->ref_cod_serie, $this->ref_cod_escola, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, TRUE);
     if (is_numeric($this->ref_cod_serie) && is_numeric($this->ref_cod_curso) && is_numeric($this->ref_cod_escola)) {
         $sql = "\nSELECT\n  t.cod_turma, t.ref_usuario_exc, t.ref_usuario_cad, t.ref_ref_cod_serie,\n  t.ref_ref_cod_escola, t.ref_cod_infra_predio_comodo, t.nm_turma, t.sgl_turma,\n  t.max_aluno, t.multiseriada, t.data_cadastro, t.data_exclusao, t.ativo,\n  t.ref_cod_turma_tipo, t.hora_inicial, t.hora_final, t.hora_inicio_intervalo,\n  t.hora_fim_intervalo, t.ref_cod_regente, t.ref_cod_instituicao_regente,\n  t.ref_cod_instituicao, t.ref_cod_curso, t.ref_ref_cod_serie_mult,\n  t.ref_ref_cod_escola_mult\nFROM\n  pmieducar.turma t\nWHERE\n  t.ref_ref_cod_serie_mult = {$this->ref_cod_serie}\n  AND t.ref_ref_cod_escola={$this->ref_cod_escola}\n  AND t.ativo = '1'\n  AND t.ref_ref_cod_escola = '{$this->ref_cod_escola}'";
         $db = new clsBanco();
         $db->Consulta($sql);
         $lista_aux = array();
         while ($db->ProximoRegistro()) {
             $lista_aux[] = $db->Tupla();
         }
         if (is_array($lista_aux) && count($lista_aux)) {
             if (is_array($lista) && count($lista)) {
                 $lista = array_merge($lista, $lista_aux);
             } else {
                 $lista = $lista_aux;
             }
         }
         $total = count($lista);
     } else {
         $total = $obj_matricula_turma->_total;
     }
     $tmp_obj = new clsPmieducarMatriculaTurma();
     $det_obj = $tmp_obj->lista($this->ref_cod_matricula, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
     if ($det_obj) {
         $det_obj = array_shift($det_obj);
     }
     // Monta a lista
     if (is_array($lista) && count($lista)) {
         foreach ($lista as $registro) {
             if ($registro['cod_turma'] != $det_obj['ref_cod_turma']) {
                 $script = sprintf('onclick="enturmar(\'%s\',\'%s\',\'%s\',\'%s\');"', $this->ref_cod_escola, $registro['ref_ref_cod_serie'], $this->ref_cod_matricula, $registro['cod_turma']);
                 $this->addLinhas(array(sprintf('<a href="#" %s>%s</a>', $script, $registro['nm_turma'])));
             }
         }
     }
     $this->addPaginador2("educar_matricula_turma_lst.php", $total, $_GET, $this->nome, $this->limite);
     $obj_permissoes = new clsPermissoes();
     $this->array_botao[] = 'Voltar';
     $this->array_botao_url[] = "educar_matricula_det.php?cod_matricula={$this->ref_cod_matricula}";
     $this->largura = '100%';
 }
 function enturmacaoMatricula($matriculaId, $turmaDestinoId)
 {
     $enturmacaoExists = new clsPmieducarMatriculaTurma();
     $enturmacaoExists = $enturmacaoExists->lista($matriculaId, $turmaDestinoId, NULL, NULL, NULL, NULL, NULL, NULL, 1);
     $enturmacaoExists = is_array($enturmacaoExists) && count($enturmacaoExists) > 0;
     if (!$enturmacaoExists) {
         $enturmacao = new clsPmieducarMatriculaTurma($matriculaId, $turmaDestinoId, $this->pessoa_logada, $this->pessoa_logada, NULL, NULL, 1);
         $enturmacao->data_enturmacao = $this->data_matricula;
         return $enturmacao->cadastra();
     }
     return false;
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '
     <script>
       alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     if ($this->ref_cod_escola) {
         $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
         $det_escola = $obj_escola->detalhe();
         $this->nm_escola = $det_escola['nome'];
         $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
         $det_instituicao = $obj_instituicao->detalhe();
         $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     }
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']);
     $det = $obj_pessoa->detalhe();
     $this->nm_professor = $det['nome'];
     if (!$lista_calendario) {
         echo '
     <script>
       alert("Escola não possui calendário definido para este ano");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return TRUE;
     }
     $titulo = 'Diário de Classe - ' . $this->ano;
     $prox_mes = $this->mes + 1;
     $this->pdf = new clsPDF($titulo, $titulo, 'A4', '', FALSE, FALSE);
     $altura_linha = 15;
     $inicio_escrita_y = 175;
     $altura_pagina = 760;
     $obj = new clsPmieducarSerie();
     $obj->setOrderby('cod_serie, etapa_curso');
     $lista_serie_curso = $obj->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     // Recupera a lista de componentes curriculares da escola/série
     $componentes = App_Model_IedFinder::getEscolaSerieDisciplina($this->ref_cod_serie, $this->ref_cod_escola);
     if (0 == count($componentes)) {
         echo '
     <script>
       alert("Turma não possui matriculas");
       window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
     </script>';
         return;
     } else {
         foreach ($componentes as $id => $componente) {
             $this->nm_disciplina = $componente->nome;
             $this->page_y = 139;
             // Número de semanas dos meses
             $obj_quadro = new clsPmieducarQuadroHorario();
             $obj_quadro->setCamposLista('cod_quadro_horario');
             $quadro_horario = $obj_quadro->lista(NULL, NULL, NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, 1);
             if (!$quadro_horario && $det_curso['avaliacao_globalizada'] == 't') {
                 echo '
         <script>
           alert("Turma não possui quadro de horários");
           window.location = "educar_relatorio_diario_classe.php";
         </script>';
                 break;
             }
             $obj_quadro_horarios = new clsPmieducarQuadroHorarioHorarios();
             $obj_quadro_horarios->setCamposLista('dia_semana');
             $obj_quadro_horarios->setOrderby('1 asc');
             $lista_quadro_horarios = $obj_quadro_horarios->lista($quadro_horario, $this->ref_cod_serie, $this->ref_cod_escola, $disciplina, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
             if (!$this->em_branco) {
                 $obj_matricula_turma = new clsPmieducarMatriculaTurma();
                 $obj_matricula_turma->setOrderby('nome_ascii');
                 $lista_matricula = $obj_matricula_turma->lista(NULL, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, TRUE, NULL, NULL, TRUE);
             }
             $num_aluno = 1;
             if ($lista_matricula || $this->em_branco) {
                 $this->pdf->OpenPage();
                 $this->addCabecalho();
                 if ($this->em_branco) {
                     $lista_matricula = array();
                     $this->numero_registros = $this->numero_registros ? $this->numero_registros : 20;
                     for ($i = 0; $i < $this->numero_registros; $i++) {
                         $lista_matricula[] = '';
                     }
                 }
                 foreach ($lista_matricula as $matricula) {
                     if ($this->page_y > $altura_pagina) {
                         $this->desenhaLinhasVertical();
                         $this->pdf->ClosePage();
                         $this->pdf->OpenPage();
                         $this->page_y = 139;
                         $this->addCabecalho();
                     }
                     $this->pdf->quadrado_relativo(30, $this->page_y, 540, $altura_linha);
                     $this->pdf->escreve_relativo($num_aluno, 38, $this->page_y + 4, 30, 15, $fonte, 7, $corTexto, 'left');
                     $this->pdf->escreve_relativo($matricula['nome_aluno'], 55, $this->page_y + 4, 160, 15, $fonte, 7, $corTexto, 'left');
                     $num_aluno++;
                     $this->page_y += $altura_linha;
                 }
                 $this->desenhaLinhasVertical();
                 $this->rodape();
                 $this->pdf->ClosePage();
             }
         }
         $this->pdf->CloseFile();
         $this->get_link = $this->pdf->GetLink();
     }
     echo sprintf('
   <script>
     window.onload=function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br>
       <a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">
         Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }
 protected function getMatriculas()
 {
     $matriculas = array();
     if ($this->canGetMatriculas()) {
         $alunos = new clsPmieducarMatriculaTurma();
         $alunos->setOrderby('ref_cod_curso, ref_ref_cod_serie, ref_cod_turma, sequencial_fechamento, nome');
         $alunos = $alunos->lista($this->getRequest()->matricula_id, $this->getRequest()->turma_id, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->getRequest()->serie_id, $this->getRequest()->curso_id, $this->getRequest()->escola_id, $this->getRequest()->instituicao_id, $this->getRequest()->aluno_id, NULL, NULL, NULL, NULL, $this->getRequest()->ano, NULL, TRUE, NULL, NULL, TRUE, NULL, NULL, NULL, NULL, NULL, NULL);
         if (!is_array($alunos)) {
             $alunos = array();
         }
         $situacoesMatricula = array('aprovado' => App_Model_MatriculaSituacao::APROVADO, 'reprovado' => App_Model_MatriculaSituacao::REPROVADO, 'em-andamento' => App_Model_MatriculaSituacao::EM_ANDAMENTO);
         foreach ($alunos as $aluno) {
             $situacaoMatricula = $this->getSituacaoMatricula($aluno['ref_cod_matricula']);
             if (in_array($situacaoMatricula, $situacoesMatricula)) {
                 $matricula = array();
                 $matriculaId = $aluno['ref_cod_matricula'];
                 $matricula['matricula_id'] = $matriculaId;
                 $matricula['aluno_id'] = $aluno['ref_cod_aluno'];
                 $matricula['nome'] = $this->toUtf8($aluno['nome_aluno']);
                 $matricula['nome_curso'] = $this->toUtf8($aluno['nm_curso']);
                 $matricula['nome_serie'] = $this->toUtf8($this->getNomeSerie($aluno['ref_ref_cod_serie']));
                 $matricula['nome_turma'] = $this->toUtf8($aluno['nm_turma']);
                 $matricula['situacao_historico'] = $this->getSituacaoHistorico($aluno['ref_cod_aluno'], $this->getRequest()->ano, $matriculaId, $reload = true);
                 $matricula['link_to_historico'] = $this->getLinkToHistorico($aluno['ref_cod_aluno'], $this->getRequest()->ano, $matriculaId);
                 $matriculas[] = $matricula;
             }
         }
     }
     return $matriculas;
 }
 function renderHTML()
 {
     if ($_POST) {
         foreach ($_POST as $key => $value) {
             $this->{$key} = $value;
         }
     }
     if ($this->ref_ref_cod_serie) {
         $this->ref_cod_serie = $this->ref_ref_cod_serie;
     }
     $this->ref_cod_modulo = explode('-', $this->ref_cod_modulo);
     $this->ref_cod_modulo = array_pop($this->ref_cod_modulo);
     $fonte = 'arial';
     $corTexto = '#000000';
     if (empty($this->ref_cod_turma)) {
         echo '<script>
          alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!");
          window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
        </script>';
         return TRUE;
     }
     if ($this->ref_cod_escola) {
         $obj_escola = new clsPmieducarEscola($this->ref_cod_escola);
         $det_escola = $obj_escola->detalhe();
         $this->nm_escola = $det_escola['nome'];
         $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']);
         $det_instituicao = $obj_instituicao->detalhe();
         $this->nm_instituicao = $det_instituicao['nm_instituicao'];
     }
     $obj_calendario = new clsPmieducarEscolaAnoLetivo();
     $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL);
     $obj_turma = new clsPmieducarTurma($this->ref_cod_turma);
     $det_turma = $obj_turma->detalhe();
     $this->nm_turma = $det_turma['nm_turma'];
     $obj_serie = new clsPmieducarSerie($this->ref_cod_serie);
     $det_serie = $obj_serie->detalhe();
     $this->nm_serie = $det_serie['nm_serie'];
     $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']);
     $det = $obj_pessoa->detalhe();
     $this->nm_professor = $det['nome'];
     //
     $regraMapper = new RegraAvaliacao_Model_RegraDataMapper();
     $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']);
     if (!$lista_calendario) {
         echo '<script>
          alert("Escola não possui calendário definido para este ano");
          window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1));
        </script>';
         return TRUE;
     }
     $obj = new clsPmieducarSerie();
     $obj->setOrderby('cod_serie, etapa_curso');
     $lista_serie_curso = $obj->lista(NULL, NULL, NULL, $this->ref_cod_curso, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_instituicao);
     $obj_curso = new clsPmieducarCurso($this->ref_cod_curso);
     $det_curso = $obj_curso->detalhe();
     $this->nm_curso = $det_curso['nm_curso'];
     // Seleciona os alunos da turma
     $obj_matricula_turma = new clsPmieducarMatriculaTurma();
     $obj_matricula_turma->setOrderby('nome_ascii');
     $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, TRUE, NULL, NULL, TRUE, NULL, $this->semestre);
     $componentes = $array_disc = $array_cab = array();
     if ('f' == $this->tipo && $this->regra->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) {
         $array_disc = $array_cab = array("FALTAS");
     } else {
         try {
             $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma);
         } catch (App_Model_Exception $e) {
         }
     }
     if ($lst_matricula_turma) {
         $titulo = sprintf('Espelho de Notas Bimestral %dº Bimestre Ano %d', $this->ref_cod_modulo, $this->ano);
         $subtitulo = sprintf("%s\n%s\n%s\n%s -  Turma: %s             %s", $this->nm_instituicao, $this->nm_escola, $this->nm_curso, $this->nm_serie, $this->nm_turma, date('d/m/Y'));
         $relatorio = new relatorios($titulo, 210, FALSE, 'Espelho de Notas Bimestral', 'A4', $subtitulo);
         $relatorio->setMargem(20, 20, 50, 50);
         $relatorio->exibe_produzido_por = FALSE;
         if (0 == count($array_disc) && 0 < count($componentes)) {
             foreach ($componentes as $componente) {
                 $array_disc[$componente->id] = $componente;
                 $array_cab[] = str2upper($componente->abreviatura);
             }
             asort($array_disc);
             sort($array_cab);
         }
         $array_cab = array_merge(array('Cód.', 'Nome do Aluno'), $array_cab);
         $divisoes = array(40, 165);
         $divisoes_texto = array(40, 165);
         $tamanho_divisao = 32 + (10 - count($array_disc)) * 5;
         for ($ct = 0; $ct < 20; $ct++) {
             $divisoes[] = $tamanho_divisao;
             $divisoes_texto[] = $tamanho_divisao;
         }
         $relatorio->novalinha($array_cab, 0, 16, TRUE, 'arial', $divisoes, '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE);
         foreach ($lst_matricula_turma as $matricula) {
             $boletim = new Avaliacao_Service_Boletim(array('matricula' => $matricula['ref_cod_matricula'], 'RegraDataMapper' => $regraMapper));
             $tam_fonte = NULL;
             $tam_linha = 16;
             $componentes = $boletim->getComponentes();
             foreach ($array_disc as $cid => $componente) {
                 // Presença geral, seleciona apenas a quantidade de faltas da etapa
                 if (0 == $cid) {
                     $faltas[$cid] = $boletim->getFalta($this->ref_cod_modulo);
                     break;
                 }
                 if (!in_array($cid, array_keys($componentes))) {
                     $notas[$cid] = 'D';
                     $faltas[$cid] = 'D';
                     continue;
                 }
                 $notas[$cid] = $boletim->getNotaComponente($cid, $this->ref_cod_modulo);
                 $faltas[$cid] = $boletim->getFalta($this->ref_cod_modulo, $cid);
             }
             // @todo WTF?!
             if (strlen($matricula['nome']) > 24) {
                 $matricula['nome'] = explode(' ', $matricula['nome']);
                 if (is_array($matricula['nome'])) {
                     $nome_aluno = array_shift($matricula['nome']);
                 }
                 if (is_array($matricula['nome'])) {
                     $nome_aluno .= ' ' . array_shift($matricula['nome']);
                 }
                 if (is_array($matricula['nome'])) {
                     $nome_aluno .= ' ' . array_pop($matricula['nome']);
                 }
                 $matricula['nome'] = $nome_aluno;
             }
             unset($array_val);
             $array_val = array();
             $array_val[] = $matricula['ref_cod_aluno'];
             $array_val[] = $matricula['nome'];
             foreach ($array_disc as $cid => $disc) {
                 if ($this->tipo == 'n') {
                     $array_val[] = $notas[$cid]->notaArredondada;
                     continue;
                 } else {
                     $array_val[] = $faltas[$cid]->quantidade;
                     continue;
                 }
                 $array_val[] = '';
             }
             $relatorio->novalinha($array_val, 0, $tam_linha, FALSE, 'arial', $divisoes_texto, '#515151', '#d3d3d3', '#FFFFFF', FALSE, TRUE, NULL, $tam_fonte);
         }
         $this->get_link = $relatorio->fechaPdf();
     }
     echo sprintf('
   <script>
     window.onload=function()
     {
       parent.EscondeDiv("LoadImprimir");
       window.location="download.php?filename=%s"
     }
   </script>', $this->get_link);
     echo sprintf('
   <html>
     <center>
       Se o download não iniciar automaticamente <br>
       <a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br>
       <span style="font-size: 10px;">
         Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br>
         Clique na Imagem para Baixar o instalador<br><br>
         <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a>
       </span>
     </center>
   </html>', $this->get_link);
 }