Esempio n. 1
0
 function SetHeader()
 {
     $this->SetFont('Arial', 'B', 16);
     $this->Image(image_url() . '/ufma.png', 10, 10);
     parent::Ln(7);
     $this->Cell(0, 7, specialChars('UNIVERSIDADE FEDERAL DO MARANHÃO'), 0, 0, 'C');
     parent::Ln(7);
     $this->SetFont('Arial', '', 11);
     $this->Cell(0, 7, specialChars('Fundação Instituída nos termos da Lei 5.152 de 21/10/1966'), 0, 0, 'C');
     parent::Ln(7);
     $this->Cell(0, 7, specialChars('São Luís - Maranhão'), 0, 0, 'C');
     parent::Ln(7);
 }
Esempio n. 2
0
 function makePdf($data)
 {
     setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese');
     date_default_timezone_set('America/Sao_Paulo');
     $files = array();
     $this->pdf = new PDF_mc_table();
     $this->pdf->AddPage();
     $this->pdf->AliasNbPages();
     $isPromo = substr($data['professor']['nivel']['nome_nivel'], -1) > substr($data['progressao']['nome_nivel_seguinte'], -1) ? '[ X ] Promoção [ ] Progressão' : '[  ] Promoção [ X ] Progressão';
     $isPromo2 = substr($data['professor']['nivel']['nome_nivel'], -1) > substr($data['progressao']['nome_nivel_seguinte'], -1) ? 'Promoção' : 'Progressão';
     $this->pdf->SetFill(false);
     //Primeira pagina
     //HEADER
     $this->pdf->SetHeader();
     //TITLE
     $this->pdf->SetTitleDoc(specialChars('ANEXO IV DA RESOLUÇÃO Nº 175-CONSAD, de 09 de novembro de 2015.'));
     $this->pdf->SetTitleDoc(specialChars('REQUERIMENTO'));
     $this->pdf->SetFont('Arial', '', 11);
     $this->pdf->Ln(28);
     $this->pdf->SetWidths(array(180));
     $this->pdf->BorderlessRow(array(specialChars("Ilustríssimo/a Senhor/a\nChefia imediata\n\n\n\n" . $data['professor']['nome'] . ", matrícula SIAPE nº " . $data['professor']['siape'] . ", requeiro a Vossa Senhoria, concessão de " . $isPromo2 . ", conforme Resolução 175-CONSAD, de 09 de novembro de 2015   que regulamenta os procedimentos do processo de avaliação de desempenho acadêmico da Carreira de Magistério Superior na Universidade Federal do Maranhão (UFMA), anexando ao presente Requerimento:")));
     $this->pdf->SetWidths(array(10, 20, 150));
     $this->pdf->BorderlessRow(array("", "I.", specialChars("Declaração do tempo de serviço expedida pelo SIstema Integrado de Gestão de Recursos Humanos (SIGRH);")));
     $this->pdf->BorderlessRow(array("", "II.", specialChars("Declaração de última progressão funcional expedida pelo SIGRH, quando houver;")));
     $this->pdf->BorderlessRow(array("", "III.", specialChars("Relatório Individual de Trabalho Docente no interstício, com a documentação comprobatória anexada;")));
     $this->pdf->BorderlessRow(array("", "IV.", specialChars("Relatório de Avaliação De Desempenho Didático gerado pelo SIGAA;")));
     $this->pdf->BorderlessRow(array("", "V.", specialChars("Memorial, quando for o caso;")));
     $this->pdf->BorderlessRow(array("", "VI.", specialChars("Tese Acadêmica, quando for o caso;")));
     $this->pdf->Ln();
     $this->pdf->Cell(0, 7, specialChars("Termos em que,"), 0, 0, 'R');
     $this->pdf->Ln();
     $this->pdf->Cell(0, 7, specialChars("Solicito Deferimento,"), 0, 0, 'R');
     $this->pdf->Ln(14);
     $this->pdf->Cell(0, 7, specialChars("São Luís, " . strftime('%d de %B de %Y', strtotime(date('m/d/y')))), 0, 0, 'R');
     $this->pdf->Ln(28);
     $this->pdf->Cell(0, 7, specialChars('_____________________________________'), 0, 0, 'C');
     $this->pdf->Ln();
     $this->pdf->Cell(0, 7, specialChars('Assinatura do Docente'), 0, 0, 'C');
     $this->pdf->Ln();
     $this->pdf->AddPage('L');
     $this->pdf->SetTitle("Relatorio Progressao");
     $this->pdf->SetLeftMargin(15);
     $this->pdf->SetRightMargin(15);
     $this->pdf->SetFillColor(200, 200, 200);
     //HEADER
     $this->pdf->SetHeader();
     $this->pdf->SetTitleDoc(specialChars('ANEXO V DA RESOLUÇÃO Nº 175-CONSAD, de 09 de novembro de 2015.'));
     $this->pdf->SetTitleDoc(specialChars('RELATÓRIO INDIVIDUAL DE TRABALHO DOCENTE'));
     $this->pdf->SetWidths(array(267));
     $this->pdf->SetAligns(array('C'));
     $this->pdf->BorderlessRow(array(specialChars('Para pontuação autodeclarada do docente (com menção da página do processo composto pelos documentos comprobatórios, com coluna de validação pela CAD ou CIT')));
     $this->pdf->Ln(7);
     $this->pdf->SetFont('Arial', '', 11);
     //demais campos
     $initFormArray = array(array('campo' => 'Processo Nº', 'valor' => ''), array('campo' => 'Nome do docente', 'valor' => $data['professor']['nome']), array('campo' => 'Subunidade Academica', 'valor' => $data['professor']['nome_depto']), array('campo' => 'Unidade Academica', 'valor' => $data['professor']['nome_unid_academica']), array('campo' => 'Matrícula SIAPE', 'valor' => $data['professor']['siape']), array('campo' => 'Classe e Nível atual', 'valor' => $data['professor']['nivel']['nome_nivel']), array('campo' => 'Classe e Nível requerido', 'valor' => $data['progressao']['nome_nivel_seguinte']), array('campo' => 'Objetivo do processo', 'valor' => $isPromo));
     foreach ($initFormArray as $linha) {
         $this->pdf->SetFont('Arial', '', 11);
         $this->pdf->Cell(60, 7, specialChars($linha['campo']), 1, 0, 'L');
         $this->pdf->SetFont('Arial', 'B', 11);
         $this->pdf->Cell(0, 7, specialChars($linha['valor']), 1, 0, 'L');
         $this->pdf->Ln();
     }
     //Hora de preencher!
     $totalPoints = 0;
     $numAnexos = 0;
     $possuiPendente = false;
     $itensPendentes = array();
     foreach ($data['estruturaProducoes'] as $eixo) {
         if (!is_array($eixo['subeixos'])) {
             continue;
         }
         $this->pdf->SetFont('Arial', 'B', 11);
         $nomeEixo = str_replace('.', ')', $eixo['nome_eixo']);
         $this->pdf->SetWidths(array(267));
         $this->pdf->SetAligns(array('L'));
         $this->pdf->BorderlessRow(array(specialChars($nomeEixo)));
         $this->pdf->Ln(7);
         foreach ($eixo['subeixos'] as $subeixo) {
             //SUBEIXO
             $this->pdf->SetWidths(array(147, 40, 40, 40));
             $this->pdf->SetFont('Arial', 'B', 11);
             $this->pdf->SetAligns(array('C', 'C', 'C', 'C'));
             $this->pdf->SetFill(true);
             $this->pdf->Row(array(specialChars($subeixo['nome_subeixo']), specialChars("Pontuação Autodeclarada"), specialChars("Documentação Anexada"), specialChars("Contagem da Comissão (CAD ou CIT)")));
             $this->pdf->SetFill(false);
             $this->pdf->SetFont('Arial', '', 11);
             $this->pdf->SetAligns(array('L', 'C', 'C', 'C'));
             $totalSubeixoPoints = 0;
             if (!is_array($subeixo['itens'])) {
                 continue;
             }
             foreach ($subeixo['itens'] as $item) {
                 $explodeNome = explode(' ', $item['nome_item'], 2);
                 $categoria = $explodeNome[0];
                 $descricao = $explodeNome[1];
                 if ($item['regra']['fk_tipoclass'] == 1) {
                     $pontos = $item['regra']['formula_regra'];
                     $pontos = str_replace('=', '', $pontos);
                     $pontos = str_replace('(', '', $pontos);
                     $pontos = str_replace(')', '', $pontos);
                     $pontos = str_replace('valor_informado', '', $pontos);
                     $pontos = str_replace('qualis_informado', '', $pontos);
                     $pontos = str_replace('classif_informado', '', $pontos);
                     if (isset($pontos[0]) && $pontos[0] == '*') {
                         $explodedPontos = explode('*', $pontos, 2);
                         $pontos = $explodedPontos[1];
                     } else {
                         if (isset($pontos[0]) && $pontos[0] == '/') {
                             $explodedPontos = explode('/', $pontos, 2);
                             $pontos = $explodedPontos[1];
                         }
                     }
                     $pontuacao = 0;
                     $quantidade = 0;
                     if ($item['producoes']['itemPoints'] > 0) {
                         $arquivos = '';
                         $pontuacao = $item['producoes']['itemPoints'];
                         $totalSubeixoPoints += $pontuacao;
                         foreach ($item['producoes'] as $prod) {
                             $quantidade += $prod['quantidade_producao'];
                             if (isset($prod['documento_producao'])) {
                                 array_push($files, array('item' => $item['nome_item'], 'path' => uploads_path() . '\\' . $prod['documento_producao'], 'alias' => $prod['nome_producao']));
                                 $numAnexos++;
                                 $arquivos .= "Anexo " . $numAnexos . "\n";
                             } else {
                                 if (isset($prod['quantidade_producao'])) {
                                     array_push($files, array('item' => $item['nome_item'], 'path' => 'pendente', 'alias' => $prod['nome_producao']));
                                     $possuiPendente = true;
                                     $numAnexos++;
                                     $arquivos .= "Anexo " . $numAnexos . "\n";
                                 }
                             }
                         }
                         $this->pdf->Row(array(specialChars($item['nome_item']), $pontuacao, $arquivos, ''));
                     } else {
                         $this->pdf->Row(array(specialChars($item['nome_item']), '', '', ''));
                     }
                 } else {
                     //Descrição do item somente
                     $this->pdf->SetWidths(array(267));
                     $this->pdf->Row(array(specialChars($item['nome_item'])));
                     //Pontuação para cada classificacação
                     foreach ($item['regra']['classificacao'] as $keyclass => $class) {
                         if ($class['regraclass']['valor'] <= 0) {
                             continue;
                         }
                         $limit = '';
                         if (isset($class['regraclass']['pontuacao_maxima'])) {
                             $limit = '	(limitado a ' . $class['regraclass']['pontuacao_maxima'] . ' pontos)';
                         }
                         //Agora preciso contar quantas produções existem com exatamente esta classificação
                         $quantidade = 0;
                         $pontuacao = 0;
                         $arquivos = '';
                         $regraId = $item['regra']['id_item'];
                         foreach ($item['producoes'] as $prod) {
                             if ($prod['id_item'] == $regraId && $prod['id_classificacao'] == $class['id_classificacao']) {
                                 $quantidade++;
                                 if (isset($prod['documento_producao'])) {
                                     array_push($files, array('item' => $item['nome_item'] . ' ' . $class['nome_classificacao'], 'path' => uploads_path() . '\\' . $prod['documento_producao'], 'alias' => $prod['nome_producao']));
                                     $numAnexos++;
                                     $arquivos .= "Anexo " . $numAnexos . "\n";
                                 } else {
                                     array_push($files, array('item' => $item['nome_item'] . ' ' . $class['nome_classificacao'], 'path' => 'pendente', 'alias' => $prod['nome_producao']));
                                     $numAnexos++;
                                     $possuiPendente = true;
                                     $arquivos .= "Anexo " . $numAnexos . "\n";
                                 }
                             }
                         }
                         if ($quantidade == 0) {
                             $this->pdf->SetWidths(array(147, 40, 40, 40));
                             $this->pdf->Row(array(specialChars($class['nome_classificacao'] . $limit), '', '', ''));
                             continue;
                         }
                         $pontuacao = $quantidade * $class['regraclass']['valor'];
                         if (isset($class['regraclass']['pontuacao_maxima']) && $pontuacao > $class['regraclass']['pontuacao_maxima']) {
                             $pontuacao = $class['regraclass']['pontuacao_maxima'];
                         }
                         $totalSubeixoPoints += $pontuacao;
                         $this->pdf->SetWidths(array(147, 40, 40, 40));
                         $this->pdf->Row(array(specialChars($class['nome_classificacao'] . $limit), $pontuacao, $arquivos, ''));
                     }
                     $this->pdf->SetWidths(array(147, 40, 40, 40));
                 }
             }
             if ($totalSubeixoPoints > $subeixo['pontmax_subeixo']) {
                 $totalSubeixoPoints = $subeixo['pontmax_subeixo'];
             }
             $totalPoints += $totalSubeixoPoints;
             $codSubeixo = explode(' ', $subeixo['nome_subeixo'], 2);
             $this->pdf->SetWidths(array(147, 40, 40, 40));
             $this->pdf->SetFill(true);
             $this->pdf->Row(array(specialChars('PONTUAÇÃO TOTAL EIXO ' . $codSubeixo[0]), $totalSubeixoPoints, '', ''));
             $this->pdf->SetFill(false);
             $this->pdf->Ln(7);
         }
         $this->pdf->Ln(7);
     }
     $this->pdf->Row(array(specialChars('PONTUAÇÃO TOTAL '), $totalPoints, '', ''));
     $this->pdf->Ln(7);
     $this->pdf->SetFont('Arial', '', 12);
     $this->pdf->SetWidths(array(267));
     $this->pdf->SetAligns('L');
     $this->pdf->BorderlessRow(array(specialChars('Data e Local : ' . date('d/m/y') . ', São Luís')));
     $this->pdf->Ln(7);
     $this->pdf->SetAligns('C');
     $this->pdf->BorderlessRow(array(specialChars('____________________________________________')));
     $this->pdf->Ln(4);
     $this->pdf->BorderlessRow(array(specialChars('Assinatura do Docente')));
     $this->pdf->Ln(7);
     //Lista de Anexos
     if ($possuiPendente) {
         $this->pdf->AddPage();
         $this->pdf->SetHeader();
         $this->pdf->SetTitleDoc(specialChars('LISTA DE ANEXOS'));
         $this->pdf->SetFont('Arial', 'B', 12);
         $this->pdf->SetWidths(array(15, 45, 110, 20));
         $this->pdf->SetAligns('L', 'L', 'L', 'L');
         $this->pdf->Row(array(specialChars("Num"), specialChars("Nome"), specialChars("Item"), specialChars("Status")));
         $this->pdf->SetFont('Arial', '', 12);
         $this->pdf->SetAligns('L', 'L', 'L', 'L');
         for ($i = 0; $i < count($files); $i++) {
             $status = $files[$i]['path'] == "pendente" ? "pendente" : "anexado";
             $this->pdf->Row(array($i + 1, specialChars($files[$i]['alias']), specialChars($files[$i]['item']), specialChars($status)));
         }
     }
     //var_dump(count($files));
     for ($i = 0; $i < count($files); $i++) {
         if ($files[$i]['path'] == 'pendente') {
             continue;
         }
         $pagecount = $this->pdf->setSourceFile($files[$i]['path']);
         //var_dump($files[$i]);
         for ($j = 0; $j < $pagecount; $j++) {
             $this->pdf->AddPage();
             $tplidx = $this->pdf->importPage($j + 1, '/MediaBox');
             $this->pdf->useTemplate($tplidx, 10, 10, 200);
             $this->pdf->SetFont('Arial', '', 13);
             $this->pdf->SetXY(160, 10);
             $this->pdf->Write(0, 'Anexo ' . ($i + 1));
         }
     }
     //var_dump($files);
     //phpinfo();
     ob_end_clean();
     $nomeArquivo = docs_url() . '\\' . $data['professor']['siape'] . $data['progressao']['id_prog_corrente'] . date('d-m-Y-h-i-s', time()) . '.pdf';
     $download = $data['professor']['siape'] . $data['progressao']['id_prog_corrente'] . date('d-m-Y-h-i-s', time()) . '.pdf';
     $this->pdf->Output('F', $nomeArquivo);
     //$this->pdf->Output('D',$download);
     return $download;
 }