<?php

class Lote extends CI_Controller {

    function __construct() {

        parent::__construct();

        $this->load->model('Auditoria_Model');
        $this->load->model('Certificado_Model');
        $this->load->model('Lote_Model');
        $this->load->library('codebar');
        $this->load->database();
    }

    public function certificadolote() {
        if (isset($_SESSION['admin']) == TRUE) {
            $dados = array('um' => $this->Lote_Model->quantidade(), 'dois' => NULL, 'tres' => NULL, 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'novos' => $this->Lote_Model->obtemcertificadonovos());
//            $dados = array('um' => $this->Lote_Model->quantidade(), 'dois' => $this->Lote_Model->quantidade_2(), 'tres' => $this->Lote_Model->quantidade_3(), 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'novos' => $this->Lote_Model->obtemcertificadonovos());
            $this->load->view('certificados/lote', $dados);
        } else {
            redirect();
        }
    }
    
    /*
     SELECT `h`.`id_aluno`, `c`.`id_certificado`, `a`.`nome` AS `nomealuno`, `a`.`endereco`, `a`.`numero`, `a`.`complemento`, `a`.`cep`, `a`.`bairro`, `a`.`cidade`, `a`.`estado`, `d`.`nome` AS `nomecurso`, COUNT( h.id_aluno ) AS quantidade 
      FROM 
      `certificado` `c` JOIN `historico` `h` ON `h`.`id_historico` = `c`.`id_historico` 
      JOIN `aluno` `a` ON `a`.`id_aluno` = `h`.`id_aluno` 
      JOIN `curso` `d` ON `d`.`id_curso` = `h`.`id_curso` 
      WHERE `h`.`certificado` = 1 
      AND `h`.`concluido` IN(1, 3) 
      AND `c`.`situacao` =0 GROUP BY `h`.`id_aluno` 
      HAVING `quantidade` >0 AND `quantidade` = 2 
      ORDER BY `quantidade` ASC, `a`.`estado` ASC, `h`.`id_aluno` 
      DESC LIMIT 100
     */
//    public function testelista() {
//        
//        $lote = $this->Lote_Model->lista(2, 50);
//        
//        echo '<pre>';
//        var_dump($lote);
//    }
    
    public function listacertificados() {

        $quantidade = $this->input->post('certificados');
        $limite = $this->input->post('limite');

        $this->form_validation->set_rules('certificados', 'certificados', 'trim|required', array('required' => 'Digite a quantidade de certificados a serem gerados'));
        $this->form_validation->set_rules('limite', 'limite', 'trim|required', array('required' => 'Escolha uma das opções'));

        if ($this->form_validation->run() == FALSE) {
            $form = validation_errors();
            $data = array('situacao' => 'form-erro', 'erro_form' => $form);
            echo json_encode($data);
        } else {
            $valorTotal = 0;
            $lote = $this->Lote_Model->lista($limite, $quantidade);
            foreach ($lote as $lotes) {
                $valorTotal += $lotes->quantidade;
            }

            if (!empty($lote)) {
                echo json_encode(array('total' => $valorTotal, 'situacao' => TRUE, 'result' => $lote, 'quantidade' => $quantidade, 'limite' => $limite));
            } else {
                echo json_encode(array('situacao' => FALSE));
            }
        }
    }

    public function listalote() {

        $lista = $this->Lote_Model->lista_lote();

        echo json_encode(array('situacao' => TRUE, 'result' => $lista));
    }

    public function envialote() {

        $id_lote = $this->input->post('id');

        $situacao = 1;

        $data = date('Y-m-d H:i:s', time());

        $atualiza = $this->Lote_Model->atualizalote($id_lote, $situacao, $data);

        // RECUPERA TODOS OS CERTIFICADOS INSERIDOS PARA O LOTE
        $recupera_certificado_lote = $this->Lote_Model->get_lote_certificado($id_lote);
        if ($recupera_certificado_lote != FALSE) {

            foreach ($recupera_certificado_lote as $recupera) {

                $this->Lote_Model->atualizacertificado($recupera->id_certificado, $situacao);

                $recupera_antigo = $this->Lote_Model->recupera_certificado($recupera->id_certificado);

                $obend = $this->Certificado_Model->obtemenderecoenvio($recupera->id_certificado);

                $string = preg_replace("[^0-9]", "", $obend['cep']);
                $string = substr($string, 0, 5) . '-' . substr($string, 5, 3);

                if ($obend['complemento'] != "") {
                    $endereco = mb_strtoupper($obend['endereco'] . ', ' . $obend['numero'] . ', ' . $obend['complemento'] . ', ' . $obend['bairro'] . ', ' . $obend['cidade'] . ', ' . $obend['estado'] . ', CEP: ' . $string);
                } else {
                    $endereco = mb_strtoupper($obend['endereco'] . ', ' . $obend['numero'] . ', ' . $obend['bairro'] . ', ' . $obend['cidade'] . ', ' . $obend['estado'] . ', CEP: ' . $string);
                }

                $dados = array('id_historico' => $recupera_antigo['id_historico'], 'codigo_programa' => $recupera_antigo['codigo_programa'], 'data_registro' => $data, 'situacao' => $situacao, 'rastreamento' => 0, 'transacao' => $recupera_antigo['transacao'], 'id_tipo' => $recupera_antigo['id_tipo'], 'endereco' => $endereco);

                $this->Lote_Model->inserecertificados($dados, $id_lote);
            }
            echo json_encode(array('situacao' => true));
            exit();
        } else {
            echo json_encode(array('situacao' => 'erro-lote-certificado'));
            exit();
        }
    }

    public function gerarlote() {
        
        $nome = $this->input->post('lote');
        $quantidade = $this->input->post('quantidade');
        $limite = $this->input->post('limite');

        $this->form_validation->set_rules('lote', 'lote', 'trim|required', array('required' => 'Digite o nome do lote do certificado'));

        if ($this->form_validation->run() == FALSE) {
            $form = validation_errors();
            $data = array('situacao' => 'form-erro', 'erro_form' => $form);
            echo json_encode($data);
        } else {

            // INSERE O LOTE
            $this->Lote_Model->inserelote($nome);
            // ÚLTIMO ID DO CERTIFICADO INSERIDO
            $ultimo = $this->Lote_Model->ultimo();
            $id = $ultimo['id_lote'];
            $arquivo = $ultimo['url']; // NOME DO LOTE
            // OBTEM A LISTA COM OS CERTIFICADOS A SEREM GERADOS  
            $lote = $this->Lote_Model->lista($quantidade, $limite);

            foreach ($lote as $lotes) {

                // RECUPERA OS CERTIFICADOS DO ALUNO
//                $certificado_aluno = $this->Lote_Model->getAllCertificadosAluno($lotes->id_aluno);
                $certificado_aluno = $this->Lote_Model->getCertificadoAluno($lotes->id_certificado);

                foreach ($certificado_aluno as $certificados) {

                    // VERIFICA SE OS CERTIFICADOS SELECIONADOS JÁ FAZEM PARTE DE UM LOTE
                    $verifica = $this->Lote_Model->verifica($certificados->id_certificado);

                    if ($verifica != 1) {
                        // INSERE OS CERTIFICADOS NO LOTE [TABELA CERTIFICADO_LOTE_CERTIFICADO]
                        $this->Lote_Model->certificado_lote_certificado($id, $verifica['id_certificado']);
                    } else {
                        echo json_encode(array('situacao' => 'erro-lote-certificado'));
                        exit();
                    }
                }
            }
            $pdf = new Codebar('P', 'mm', 'A4');
            $pdf->SetProtection(array('copy', 'print'), $user_pass = 'amazoniacursos10910194000116');
            $pdf->AliasNbPages();
            $ementa = '';
            // RECUPERA TODOS OS CERTIFICADOS INSERIDOS PARA O LOTE
            $recupera_certificado_lote = $this->Lote_Model->get_certificado_lote_certificado($id, $limite);

            if ($recupera_certificado_lote != FALSE) {

                foreach ($recupera_certificado_lote as $certificado) {

                    $situacao = 2;

                    $this->Lote_Model->atualizacertificado($certificado->identificador, $situacao);

                    $assina = $this->Certificado_Model->getAssinaturaAtual($certificado->id_aluno);

                    $pdf->AddPage();

                    $pdf->SetFont('Arial', 'B', 7);
                    $pdf->setXY("130", "46");
                    $pdf->setXY("130", "50");
                    $pdf->SetFont('Arial', 'B', 12);
                    $pdf->setXY("20", "42");
                    // ENDEREÇO 
                    $pdf->Cell(0, 5, utf8_decode("Endereçado"), 0, 1, ' ');

                    //Código de Barras
//                    $pdf->EAN13(90, 270, $certificado->id_certificado);
                    $pdf->SetFont('Arial', 'B', 10);
                    $pdf->setXY(23, 48);
                    $pdf->SetFont('Arial', '', 10);
                    $pdf->MultiCell(85, 5, utf8_decode(mb_strtoupper($certificado->nomealuno)." (".$certificado->id_certificado.")" . "\n" . mb_strtoupper($certificado->endereco) . ", " . $certificado->numero . ", " . $certificado->complemento . "\n" . mb_strtoupper($certificado->bairro) . "\n" . mb_strtoupper($certificado->cidade) . ", " . mb_strtoupper($certificado->estado) . "\n" . "CEP: " . mb_strtoupper($certificado->cep)), 0, '');

                    $pdf->AddPage();
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY("23", "71"); // ALTURA DO NOME DO ALUNO
                    $pdf->Cell(0, 5, "Aluno(a): " . utf8_decode(mb_strtoupper($certificado->nomealuno)), 0, 1, ' ');
                    $pdf->setXY(23, 75); // ALTURA DO CURSO 

                    if ($certificado->nota >= 50) { // ALTURA DO CH, TIPO E APROVEITAMENTO
                        $pdf->MultiCell(130, 3.2, "Curso: " . utf8_decode(mb_strtoupper(str_replace('?', '', $certificado->nomecurso)) . "\n" . "Carga Horária: " . $certificado->carga_horaria . " Horas" . "\n" . "Tipo: Capacitação/ Atualização" . "\n" . "Aproveitamento: " . number_format($certificado->nota, 1, ',', '.')), 0, '');
                    } else {
                        $pdf->MultiCell(130, 3.2, "Curso: " . utf8_decode(mb_strtoupper(str_replace('?', '', $certificado->nomecurso)) . "\n" . "Carga Horária: " . $certificado->carga_horaria . " Horas" . "\n" . "Tipo: Capacitação/ Atualização" . "\n"));
                    }
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY(158, 71); // ALTURA DO DOCUMENTO DO ALUNO
                    //RG:1 ; CPF:2 ; CNH:3
                    $tipo_doc = $assina['tipo_doc'];
                    if ($tipo_doc == 1) {
                        $pdf->Cell(0, 5, "RG: " . strtoupper($assina['documento']), 0, 1, 'L');
                    } else if ($tipo_doc == 2) {
                        $pdf->Cell(0, 5, "CPF: " . strtoupper($assina['documento']), 0, 1, 'L');
                    } else if ($tipo_doc == 3) {
                        $pdf->Cell(0, 5, "CNH: " . strtoupper($assina['documento']), 0, 1, 'L');
                    }
                    $pdf->setXY(158, 74.5); // ALTURA DA 1º PARTE DO PERÍODO
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, 5, utf8_decode('Período: ') . date("d/m/Y", strtotime($certificado->primeiro_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 78); // ALTURA DA 2º PARTE DO PERÍODO
                        $pdf->Cell(0, 5, utf8_decode('a ') . date("d/m/Y", strtotime($certificado->ultimo_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 89);
                    } else {
                        $pdf->Cell(0, 5, utf8_decode('Período: ') . date("d/m/Y", strtotime($certificado->primeiro_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 90);
                    }
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, -11, utf8_decode('Cert. Nº 008.') . $certificado->id_historico, 0, 1, 'L');
                    } else {
                        $pdf->Cell(0, -19, utf8_decode('Cert. Nº 008.') . $certificado->id_historico, 0, 1, 'L');
                    }
                    $pdf->setXY(158, 84.3); // ALTURA DA SITUAÇÃO DO ALUNO
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, 5, utf8_decode('Situação: Aprovado'), 0, 1, 'L');
                    }
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->Line(20, 92, 190, 92); // ALTURA DA LINHA    
                    } else {
                        $pdf->Line(20, 89, 190, 89); // ALTURA DA LINHA
                    }
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->setY(93); // ALTURA DO [CONTEÚDO DO CURSO]
                    } else {
                        $pdf->setY(90); // ALTURA DO [CONTEÚDO DO CURSO]    
                    }
                    $pdf->SetFont('Arial', 'B', 9);
                    $pdf->setX(92);
                    $pdf->Cell(0, 5, utf8_decode('Conteúdo do Curso '));

                    $pdf->setY(114);
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setX(25);

                    $conteudo = explode("<br />", nl2br(trim($certificado->ementa)));

                    $txt = str_replace('.', ' ', $conteudo);
                    foreach ($txt as $nomes) {
                        $ementa .= trim($nomes) . '; ';
                    }

                    $regra = substr($ementa, 0, -2);

                    $pos = strpos($regra, '<ol>');
                    if ($pos === false) {
                        
                    } else {
                        $implode_descricao = strip_tags($regra);
                    }

                    $pos = strpos($regra, '–');
                    if ($pos === false) {
                        
                    } else {
                        $implode_descricao = str_replace("–", "", $regra);
                    }

                    $implode_descricao = str_replace("\n", "", $regra);
                    $implode_descricao = utf8_decode($implode_descricao);
                    $implode_descricao = str_replace('?', '', $implode_descricao);
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->setXY(22, 98); // ALTURA DA EMENTA    
                    } else {
                        $pdf->setXY(22, 95); // ALTURA DA EMENTA    
                    }

                    $posit = strpos($regra, '; ;');
                    if ($posit === false) {
                        
                    } else {
                        $implode_descricao = utf8_decode(str_replace('; ;', ';', $regra));
                    }

                    $posi = strpos($regra, '<ol>');
                    if ($posi === false) {
                        if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                            $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '0', '1844'), 0, 'J');
                        } else {
                            $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '0', '1933'), 0, 'J');
                        }
                    } else {
                        $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '2', '1933'), 0, 'J');
                    }
                    $pdf->Line(20, 161, 190, 161); // ALTURA DA LINHA

                    $pdf->SetFont('Arial', '', 8);
                    $texto = utf8_decode("Base Legal: Lei Nº 9394/96, Art 40, Resolução CNE/CEB Nº 6/2012, Art. 25º. Decreto 5154/2004, Art. 3º");

                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY(20, 161);
                    $pdf->MultiCell(0, 5, $texto, 0, 'L');
                    $pdf->setXY(20, 165);
                    $pdf->MultiCell(0, 5, 'Autenticar em: www.amazoniacursos.com.br/certificados', 0, 'L');
                    $pdf->setXY(20, 169);
                    $pdf->MultiCell(0, 5, utf8_decode('Código de Autenticação: ') . $certificado->cod_autenticacao . utf8_decode(' Certificado gerado eletronicamente.'), 0, 'L');

                    $ementa = '';
                }
                $dir = $_SERVER["DOCUMENT_ROOT"] . '/gestao/lote_certificados/' . $arquivo;
                $pdf->Output($dir, 'F');
            }
            echo json_encode(array('situacao' => true));
        }
    }

    public function atualizacertificado() {

        $id = $this->input->post('id');

        $quantidade = $this->input->post('quantidade');
        $limite = $this->input->post('limite');
        $situacao = 3;
        $valorTotal = 0;

        // RECUPERA OS CERTIFICADOS DO ALUNO
        $certificado_aluno = $this->Lote_Model->getAllCertificadosAluno($id);
   
        if (!empty($certificado_aluno)) {
            foreach ($certificado_aluno as $certificados) {
                // ATUALIZA TODOS OS CERTIFICADOS PARA PENDENTE
                $this->Lote_Model->atualizacertificado($certificados->id_certificado, $situacao);
            }

            $lote = $this->Lote_Model->lista($quantidade, $limite);

            foreach ($lote as $lotes) {
                $valorTotal += $lotes->quantidade;
            }
            echo json_encode(array('total' => $valorTotal, 'situacao' => TRUE, 'result' => $lote, 'quantidade' => $quantidade, 'limite' => $limite));
        } else {
            echo json_encode(array('situacao' => FALSE));
        }
    }
    
    public function gerarlote_teste() {
        die;
//        $nome = $this->input->post('lote');
//        $quantidade = $this->input->post('quantidade');
        $quantidade = 0;//$this->input->post('quantidade');
//        $limite = $this->input->post('limite');
        $limite = 10;

//        $this->form_validation->set_rules('lote', 'lote', 'trim|required', array('required' => 'Digite o nome do lote do certificado'));

        if (1==1) {
            

            // INSERE O LOTE
//            $this->Lote_Model->inserelote($nome);
            // ÚLTIMO ID DO CERTIFICADO INSERIDO
//            $ultimo = $this->Lote_Model->ultimo();
            $id = 76;//$ultimo['id_lote'];
            $arquivo = 'Lote_76_amazonia_2019-04-15_18:46:16.pdf';//$ultimo['url']; // NOME DO LOTE
//            die($arquivo);
//            // OBTEM A LISTA COM OS CERTIFICADOS A SEREM GERADOS  
//            $lote = $this->Lote_Model->lista($quantidade, $limite);
//            var_dump($lote);die;
//            foreach ($lote as $lotes) {
//
//                // RECUPERA OS CERTIFICADOS DO ALUNO
////                $certificado_aluno = $this->Lote_Model->getAllCertificadosAluno($lotes->id_aluno);
//                $certificado_aluno = $this->Lote_Model->getCertificadoAluno($lotes->id_certificado);
//
//                foreach ($certificado_aluno as $certificados) {
//
//                    // VERIFICA SE OS CERTIFICADOS SELECIONADOS JÁ FAZEM PARTE DE UM LOTE
//                    $verifica = $this->Lote_Model->verifica($certificados->id_certificado);
//
//                    if ($verifica != 1) {
//                        // INSERE OS CERTIFICADOS NO LOTE [TABELA CERTIFICADO_LOTE_CERTIFICADO]
//                        $this->Lote_Model->certificado_lote_certificado($id, $verifica['id_certificado']);
//                    } else {
//                        echo json_encode(array('situacao' => 'erro-lote-certificado'));
//                        exit();
//                    }
//                }
//            }
            $pdf = new Codebar('P', 'mm', 'A4');
            $pdf->SetProtection(array('copy', 'print'), $user_pass = 'amazoniacursos10910194000116');
            $pdf->AliasNbPages();
            $ementa = '';
            // RECUPERA TODOS OS CERTIFICADOS INSERIDOS PARA O LOTE
            $recupera_certificado_lote = $this->Lote_Model->get_certificado_lote_certificado($id, $limite);
//            var_dump($recupera_certificado_lote);
//            die;
           if ($recupera_certificado_lote != FALSE) {

                foreach ($recupera_certificado_lote as $certificado) {

                    $situacao = 2;

                    $this->Lote_Model->atualizacertificado($certificado->identificador, $situacao);

                    $assina = $this->Certificado_Model->getAssinaturaAtual($certificado->id_aluno);

                    $pdf->AddPage();

                    $pdf->SetFont('Arial', 'B', 7);
                    $pdf->setXY("130", "46");
                    $pdf->setXY("130", "50");
                    $pdf->SetFont('Arial', 'B', 12);
                    $pdf->setXY("20", "42");
                    // ENDEREÇO 
                    $pdf->Cell(0, 5, utf8_decode("Endereçado"), 0, 1, ' ');

                    //Código de Barras
//                    $pdf->EAN13(90, 270, $certificado->id_certificado);
                    $pdf->SetFont('Arial', 'B', 10);
                    $pdf->setXY(23, 48);
                    $pdf->SetFont('Arial', '', 10);
                    $pdf->MultiCell(85, 5, utf8_decode(mb_strtoupper($certificado->nomealuno)." (".$certificado->id_certificado.")" . "\n" . mb_strtoupper($certificado->endereco) . ", " . $certificado->numero . ", " . $certificado->complemento . "\n" . mb_strtoupper($certificado->bairro) . "\n" . mb_strtoupper($certificado->cidade) . ", " . mb_strtoupper($certificado->estado) . "\n" . "CEP: " . mb_strtoupper($certificado->cep)), 0, '');

                    $pdf->AddPage();
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY("23", "71"); // ALTURA DO NOME DO ALUNO
                    $pdf->Cell(0, 5, "Aluno(a): " . utf8_decode(mb_strtoupper($certificado->nomealuno)), 0, 1, ' ');
                    $pdf->setXY(23, 75); // ALTURA DO CURSO 

                    if ($certificado->nota >= 50) { // ALTURA DO CH, TIPO E APROVEITAMENTO
                        $pdf->MultiCell(130, 3.2, "Curso: " . utf8_decode(mb_strtoupper(str_replace('?', '', $certificado->nomecurso)) . "\n" . "Carga Horária: " . $certificado->carga_horaria . " Horas" . "\n" . "Tipo: Capacitação/ Atualização" . "\n" . "Aproveitamento: " . number_format($certificado->nota, 1, ',', '.')), 0, '');
                    } else {
                        $pdf->MultiCell(130, 3.2, "Curso: " . utf8_decode(mb_strtoupper(str_replace('?', '', $certificado->nomecurso)) . "\n" . "Carga Horária: " . $certificado->carga_horaria . " Horas" . "\n" . "Tipo: Capacitação/ Atualização" . "\n"));
                    }
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY(158, 71); // ALTURA DO DOCUMENTO DO ALUNO
                    //RG:1 ; CPF:2 ; CNH:3
                    $tipo_doc = $assina['tipo_doc'];
                    if ($tipo_doc == 1) {
                        $pdf->Cell(0, 5, "RG: " . strtoupper($assina['documento']), 0, 1, 'L');
                    } else if ($tipo_doc == 2) {
                        $pdf->Cell(0, 5, "CPF: " . strtoupper($assina['documento']), 0, 1, 'L');
                    } else if ($tipo_doc == 3) {
                        $pdf->Cell(0, 5, "CNH: " . strtoupper($assina['documento']), 0, 1, 'L');
                    }
                    $pdf->setXY(158, 74.5); // ALTURA DA 1º PARTE DO PERÍODO
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, 5, utf8_decode('Período: ') . date("d/m/Y", strtotime($certificado->primeiro_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 78); // ALTURA DA 2º PARTE DO PERÍODO
                        $pdf->Cell(0, 5, utf8_decode('a ') . date("d/m/Y", strtotime($certificado->ultimo_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 89);
                    } else {
                        $pdf->Cell(0, 5, utf8_decode('Período: ') . date("d/m/Y", strtotime($certificado->primeiro_dia)), 0, 1, 'L');
                        $pdf->setXY(158, 90);
                    }
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, -11, utf8_decode('Cert. Nº 008.') . $certificado->id_historico, 0, 1, 'L');
                    } else {
                        $pdf->Cell(0, -19, utf8_decode('Cert. Nº 008.') . $certificado->id_historico, 0, 1, 'L');
                    }
                    $pdf->setXY(158, 84.3); // ALTURA DA SITUAÇÃO DO ALUNO
                    if ($certificado->nota >= 50) {
                        $pdf->Cell(0, 5, utf8_decode('Situação: Aprovado'), 0, 1, 'L');
                    }
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->Line(20, 92, 190, 92); // ALTURA DA LINHA    
                    } else {
                        $pdf->Line(20, 89, 190, 89); // ALTURA DA LINHA
                    }
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->setY(93); // ALTURA DO [CONTEÚDO DO CURSO]
                    } else {
                        $pdf->setY(90); // ALTURA DO [CONTEÚDO DO CURSO]    
                    }
                    $pdf->SetFont('Arial', 'B', 9);
                    $pdf->setX(92);
                    $pdf->Cell(0, 5, utf8_decode('Conteúdo do Curso '));

                    $pdf->setY(114);
                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setX(25);

                    $conteudo = explode("<br />", nl2br(trim($certificado->ementa)));

                    $txt = str_replace('.', ' ', $conteudo);
                    foreach ($txt as $nomes) {
                        $ementa .= trim($nomes) . '; ';
                    }

                    $regra = substr($ementa, 0, -2);

                    $pos = strpos($regra, '<ol>');
                    if ($pos === false) {
                        
                    } else {
                        $implode_descricao = strip_tags($regra);
                    }

                    $pos = strpos($regra, '–');
                    if ($pos === false) {
                        
                    } else {
                        $implode_descricao = str_replace("–", "", $regra);
                    }

                    $implode_descricao = str_replace("\n", "", $regra);
                    $implode_descricao = utf8_decode($implode_descricao);
                    $implode_descricao = str_replace('?', '', $implode_descricao);
                    if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                        $pdf->setXY(22, 98); // ALTURA DA EMENTA    
                    } else {
                        $pdf->setXY(22, 95); // ALTURA DA EMENTA    
                    }

                    $posit = strpos($regra, '; ;');
                    if ($posit === false) {
                        
                    } else {
                        $implode_descricao = utf8_decode(str_replace('; ;', ';', $regra));
                    }

                    $posi = strpos($regra, '<ol>');
                    if ($posi === false) {
                        if (strlen(mb_strtoupper(str_replace('?', '', $certificado->nomecurso))) >= 71) {
                            $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '0', '1844'), 0, 'J');
                        } else {
                            $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '0', '1933'), 0, 'J');
                        }
                    } else {
                        $pdf->MultiCell(170, 3.3, substr(strip_tags($implode_descricao), '2', '1933'), 0, 'J');
                    }
                    $pdf->Line(20, 161, 190, 161); // ALTURA DA LINHA

                    $pdf->SetFont('Arial', '', 8);
                    $texto = utf8_decode("Base Legal: Lei Nº 9394/96, Art 40, Resolução CNE/CEB Nº 6/2012, Art. 25º. Decreto 5154/2004, Art. 3º");

                    $pdf->SetFont('Arial', '', 8);
                    $pdf->setXY(20, 161);
                    $pdf->MultiCell(0, 5, $texto, 0, 'L');
                    $pdf->setXY(20, 165);
                    $pdf->MultiCell(0, 5, 'Autenticar em: www.amazoniacursos.com.br/certificados', 0, 'L');
                    $pdf->setXY(20, 169);
                    $pdf->MultiCell(0, 5, utf8_decode('Código de Autenticação: ') . $certificado->cod_autenticacao . utf8_decode(' Certificado gerado eletronicamente.'), 0, 'L');

                    $ementa = '';
                }
                $dir = $_SERVER["DOCUMENT_ROOT"] . '/gestao/lote_certificados/' . $arquivo;
                $pdf->Output($dir, 'F');
            }
            echo json_encode(array('situacao' => true));
        }
    }

}
