function renderHTML() { @session_start(); $this->pessoa_logada = $_SESSION['id_pessoa']; @session_write_close(); if ($_POST) { foreach ($_POST as $key => $value) { $this->{$key} = $value; } } if ($this->ref_ref_cod_serie) { $this->ref_cod_serie = $this->ref_ref_cod_serie; } $fonte = 'arial'; $corTexto = '#000000'; if (empty($this->ref_cod_turma)) { echo '<script> alert("Erro ao gerar relatório!\\nNenhuma turma selecionada!"); window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); </script>'; return TRUE; } if ($this->ref_cod_escola) { $obj_escola = new clsPmieducarEscola($this->ref_cod_escola); $det_escola = $obj_escola->detalhe(); $this->nm_escola = $det_escola['nome']; $obj_instituicao = new clsPmieducarInstituicao($det_escola['ref_cod_instituicao']); $det_instituicao = $obj_instituicao->detalhe(); $this->nm_instituicao = $det_instituicao['nm_instituicao']; } $obj_calendario = new clsPmieducarEscolaAnoLetivo(); $lista_calendario = $obj_calendario->lista($this->ref_cod_escola, $this->ano, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL); $obj_turma = new clsPmieducarTurma($this->ref_cod_turma); $det_turma = $obj_turma->detalhe(); $this->nm_turma = $det_turma['nm_turma']; $obj_serie = new clsPmieducarSerie($this->ref_cod_serie); $det_serie = $obj_serie->detalhe(); $this->nm_serie = $det_serie['nm_serie']; // Regra da série $regraMapper = new RegraAvaliacao_Model_RegraDataMapper(); $this->regra = $regraMapper->find($det_serie['regra_avaliacao_id']); $obj_pessoa = new clsPessoa_($det_turma['ref_cod_regente']); $det = $obj_pessoa->detalhe(); $this->nm_professor = $det['nome']; if (!$lista_calendario) { echo '<script> alert("Escola não possui calendário definido para este ano"); window.parent.fechaExpansivel(\'div_dinamico_\'+(window.parent.DOM_divs.length-1)); </script>'; return TRUE; } $obj_curso = new clsPmieducarCurso($this->ref_cod_curso); $det_curso = $obj_curso->detalhe(); $this->nm_curso = $det_curso['nm_curso']; $obj_tipo_avaliacao = new clsPmieducarTipoAvaliacao($det_curso['ref_cod_tipo_avaliacao']); $det_tipo_avaliacao = $obj_tipo_avaliacao->detalhe(); $conceitual = $det_tipo_avaliacao['conceitual']; $obj_matricula_turma = new clsPmieducarMatriculaTurma(); $obj_matricula_turma->setOrderby('nome_ascii'); $lst_matricula_turma = $obj_matricula_turma->lista($this->ref_cod_matricula, $this->ref_cod_turma, NULL, NULL, NULL, NULL, NULL, NULL, 1, $this->ref_cod_serie, $this->ref_cod_curso, $this->ref_cod_escola, $this->ref_cod_instituicao, NULL, NULL, array(1, 2, 3), NULL, NULL, $this->ano, NULL, NULL, NULL, NULL, TRUE); // Recupera os componentes curriculares da turma $componentes = App_Model_IedFinder::getComponentesTurma($this->ref_cod_serie, $this->ref_cod_escola, $this->ref_cod_turma); // Recupera a quantidade de módulos e o nome do módulo da escola/turma $modulo = App_Model_IedFinder::getModulo($this->ref_cod_escola, $this->ref_cod_curso, $this->ref_cod_turma, $this->ano); $nomeModulo = $modulo['nome'][0]; $modulos = $modulo['total']; if ($lst_matricula_turma) { $relatorio = new relatorios('Espelho de Notas Ano - ' . $this->ano, 210, FALSE, 'Espelho de Notas', 'A4', "{$this->nm_instituicao}\n{$this->nm_escola}\n{$this->nm_curso}\n{$this->nm_serie} - Turma: {$this->nm_turma} " . date('d/m/Y')); $relatorio->setMargem(20, 20, 20, 20); $relatorio->exibe_produzido_por = FALSE; $array_val = array(array(40, 'Cód.'), array(160, 'Nome do Aluno')); foreach (range(1, $modulos) as $num) { $array_val[] = array(30, $num . $nomeModulo); } $array_val[] = array(55, 'M.Parcial'); $array_val[] = array(50, 'Exame'); $array_val[] = array(50, 'M.Final'); $array_val[] = array(38, 'Faltas'); $arrFuncBody = ' $values = array(); foreach ($data as $d) { $values[] = $d[$index]; } return $values; '; $arrFunc = create_function('$data, $index', $arrFuncBody); foreach ($componentes as $componente) { $relatorio->novalinha(array($componente->nome), 0, 16, TRUE, 'arial', array(400), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); $relatorio->novalinha($arrFunc($array_val, 1), 0, 16, TRUE, 'arial', $arrFunc($array_val, 0), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); foreach ($lst_matricula_turma as $matricula) { $codMatricula = $matricula['ref_cod_matricula']; if (!isset($this->boletim[$codMatricula])) { $boletim = new Avaliacao_Service_Boletim(array('matricula' => $codMatricula, 'RegraDataMapper' => $regraMapper)); } else { $boletim = $this->boletim[$codMatricula]; } $media_final = $media_parcial = $nota_exame = ''; $medias = $boletim->getMediasComponentes(); $notas = $boletim->getNotasComponentes(); if ($boletim->getRegra()->get('tipoPresenca') == RegraAvaliacao_Model_TipoPresenca::GERAL) { $faltas = array_sum(CoreExt_Entity::entityFilterAttr($boletim->getFaltasGerais(), 'id', 'quantidade')); } else { $faltas = $boletim->getFaltasComponentes(); if (isset($faltas[$componente->id])) { $faltas = array_sum(CoreExt_Entity::entityFilterAttr($faltas[$componente->id], 'id', 'quantidade')); } else { $faltas = ''; } } $etapas = range(1, count($notas[$componente->id])); // Se tiver mais etapas nas notas lançadas, significa que prestou exame if (count($etapas) > $modulos) { array_pop($etapas); } $data = array(array(40, $matricula['ref_cod_aluno']), array(160, $matricula['nome'])); foreach ($etapas as $i) { $data[] = array(30, $boletim->getNotaComponente($componente->id, $i)->notaArredondada); $media_parcial = $medias[$componente->id][0]->mediaArredondada; if ($i == $modulos) { $media_final = $media_parcial; $media_parcial = ''; $nota_exame = $boletim->getNotaComponente($componente->id, 'Rc')->notaArredondada; } } // Adiciona entradas em branco no array de dados for ($i = 0, $loop = $modulos - count($etapas); $i < $loop; $i++) { $data[] = array(30, ''); } $data[] = array(55, $media_parcial); $data[] = array(50, $nota_exame); $data[] = array(50, $media_final); $data[] = array(38, $faltas); $relatorio->novalinha($arrFunc($data, 1), 0, 12, FALSE, 'arial', $arrFunc($data, 0), '#515151', '#D3D3D3', '#FFFFFF', FALSE, TRUE); } $relatorio->quebraPagina(); } $this->get_link = $relatorio->fechaPdf(); } echo sprintf(' <script> window.onload=function() { parent.EscondeDiv("LoadImprimir"); window.location="download.php?filename=%s" } </script>', $this->get_link); echo sprintf(' <html> <center> Se o download não iniciar automaticamente <br> <a target="blank" href="%s" style="font-size: 16px; color: #000000; text-decoration: underline;">clique aqui!</a><br><br> <span style="font-size: 10px;"> Para visualizar os arquivos PDF, é necessário instalar o Adobe Acrobat Reader.<br> Clique na Imagem para Baixar o instalador<br><br> <a href="http://www.adobe.com.br/products/acrobat/readstep2.html" target="new"><br><img src="imagens/acrobat.gif" width="88" height="31" border="0"></a> </span> </center> </html>', $this->get_link); }