<?php

include_once '../classes/relatorio.php';
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
ini_set('display_errors', '1');

class Certificado extends Relatorio {

    const WHEREATIVOS = "!(equipe.status LIKE 'INATIVO' OR ((equipe.pago = 'NÃO' OR equipe.pago IS NULL) AND prova.isentopagamento <> 'SIM'))";

    public function __construct() {
//        parent::checarPermissao(array('administrador', 'editarequipes'));
        parent::__construct();
        if (!parent::temPermissao(array('administrador', 'editarequipes')))
            $this->exibirLinkVoltar = false;
        $this->tiposPermitidos = array('html');
    }

    public function filtro() {
        echo "<fieldset><legend>Filtro</legend>";
        echo "<table align='center'>";
        $prova_id = (isset($_REQUEST[prova_id])) ? $_REQUEST[prova_id] : $_SESSION[prova_id];
        echo "<tr style='display:block'><td>";
        echo "Prova: ";
        parent::selectProva($prova_id, true, null, "1=1");
        echo "</td></tr>";
        if (parent::temPermissao(array('administrador', 'editarequipes'))) {
            echo "<tr style='display:block'><td>";
            echo "Número da Equipe: <input type='text' name='equipe_id' value='$_REQUEST[equipe_id]' size='5' /> &nbsp; ";
            echo "Nome da Equipe: <input type='text' name='nome' value='$_REQUEST[nome]' size='30' /> &nbsp; ";
            echo "</td></tr>";
            echo "<tr style='display:block'><td>";
            echo "Escola: <input type='text' name='escola' value='$_REQUEST[escola]' size='30' /> &nbsp; ";
            echo "Professor: <input type='text' name='professor' value='$_REQUEST[professor]' size='30' /> &nbsp; ";
            echo "</td></tr>";
            echo "<tr style='display:block'><td>";
            echo "UF: ";parent::montaSelect('uf', array('AC','AL','AM','AP','BA','CE','DF','ES','GO','MA','MG','MS','MT','PA','PB','PE','PI','PR','RJ','RN','RO','RR','RS','SC','SE','SP','TO'), $_REQUEST[uf], false);;echo " &nbsp; ";
            echo "Colocação: <input type='text' name='colocacao' value='$_REQUEST[colocacao]' size='4' /> &nbsp; ";
            echo "Medalha: ";parent::montaSelect('medalha', array('OURO', 'PRATA', 'BRONZE'), $_REQUEST[medalha]);echo " &nbsp; ";
            echo "</td></tr>";
        } else {
            echo "<tr style='display:block'><td>";
            echo "CPF do Professor: <input type='text' name='professorcpf' value='$_REQUEST[professorcpf]' size='11' class='cpf' required /> &nbsp; ";
            echo "</td></tr>";
        }
        echo "</table>";
        echo "</fieldset>";
    }

    public function filtroEquipe() {
        $bd = new BD();

        $where[] = "equipe.prova_id = '$_REQUEST[prova_id]' AND ".self::WHEREATIVOS."";
        if (parent::temPermissao(array('administrador', 'editarequipes'))) {
            if (!empty($_REQUEST[equipe_id]))
                $where[] = "equipe.id = '$_REQUEST[equipe_id]'";
            if (!empty($_REQUEST[nome]))
                $where[] = "equipe.nome LIKE '%$_REQUEST[nome]%'";
            if (!empty($_REQUEST[escola]))
                $where[] = "equipe.escola LIKE '%$_REQUEST[escola]%'";
            if (!empty($_REQUEST[tipoescola]))
                $where[] = "equipe.tipoescola LIKE '$_REQUEST[tipoescola]'";
            if (!empty($_REQUEST[professor]))
                $where[] = "equipe.professor LIKE '%$_REQUEST[professor]%'";
            if(!empty($_REQUEST[uf])) $where[] = "equipe.uf LIKE '$_REQUEST[uf]'";
            if(!empty($_REQUEST[colocacao])) $where[] = "equipe.colocacao = '$_REQUEST[colocacao]'";
            if(!empty($_REQUEST[medalha])) $where[] = "equipe.medalha LIKE '$_REQUEST[medalha]'";
        } else {
            $cpf = Pagina::soNumeros($_REQUEST[professorcpf]);
            $where[] = "equipe.professorcpf = '$cpf'";
        }
        $where = implode(' AND ', $where);

        $sql = "SELECT equipe.*
                FROM imediaco_geo.equipe 
                INNER JOIN imediaco_geo.prova ON equipe.prova_id = prova.id
                WHERE $where 
                ORDER BY equipe.id";
        $bd->executarSQL($sql);

        if ($_REQUEST[tipo] != 'xls') {
            echo "<h1>Equipes</h1>";
            echo "<p>Total de registros: " . $bd->getQuantidadeRegistros() . "</p>";
        }

        echo "<table class='tabelaDados'>";
        echo "<tr>";
        echo "<th>Nº</th>";
        echo "<th>EQUIPE</th>";
        echo "<th>ESCOLA</th>";
        echo "<th>TIPO</th>";
        echo "<th>PROFESSOR</th>";
        echo "<th>CPF</th>";
        echo "<th>COLOCACAO</th>";
        echo "<th>MEDALHA</th>";
        echo "</tr>";
        $i = 0;
        while ($obj = $bd->getObjeto()) {
            echo "<tr>";
            echo "<td>$obj->id</td>";
            echo "<td>$obj->nome</td>";
            echo "<td>$obj->escola</td>";
            echo "<td>$obj->tipoescola</td>";
            echo "<td>$obj->professor</td>";
            echo "<td>$obj->professorcpf</td>";
            echo "<td>$obj->colocacao</td>";
            echo "<td>$obj->medalha</td>";
            echo "<td><a href='certificado.php?tipo=pdf&equipe_id=$obj->id' target='_blank'><img src='../imagens/confirmar.png' />Certificado</a></td>";
            echo "</tr>";
            $i++;
        }
        echo "</table>";
    }

    public function conteudo() {
        if (parent::temPermissao(array('administrador', 'editarequipes'))) {
            $equipe_id = $_REQUEST[equipe_id];
        } else {
            $equipe_id = (!empty($_REQUEST[equipe_id])) ? $_REQUEST[equipe_id] : $_SESSION[equipe_id];
        }

        if (empty($equipe_id) OR $_REQUEST[tipo] == 'html') {
            $this->filtroEquipe();
        } else {
            $this->conteudoCertificado($equipe_id);
        }
    }

    public function conteudoCertificado($equipe_id) {
        $sql = "SELECT equipe.* FROM imediaco_geo.equipe INNER JOIN imediaco_geo.prova ON equipe.prova_id = prova.id WHERE equipe.id = '$equipe_id' AND ".self::WHEREATIVOS."";
        $this->bd->executarSQL($sql);
        $objequipe = $this->bd->getObjeto();

        $sql = "SELECT integranteequipe.* FROM imediaco_geo.integranteequipe WHERE integranteequipe.equipe_id = '$equipe_id'";
        $this->bd->executarSQL($sql);
        $i = 0;
        $integrantes = null;
        while ($obj = $this->bd->getObjeto()) {
            $integrantes .= "<b>$obj->nome</b>";
            if ($i == 0)
                $integrantes .= ', ';
            elseif ($i == 1)
                $integrantes .= ' e ';
            $i++;
        }
        
        $imgheight = 210;
        $imgwidth = 297;

        if (!empty($objequipe->medalha)) {
            switch ($objequipe->medalha) {
                case 'OURO':
                    $img = "certificado-ouro.png";
                    break;
                case 'PRATA':
                    $img = "certificado-prata.png";
                    break;
                case 'BRONZE':
                    $img = "certificado-bronze.png";
                    break;
                default:
                    $img = "certificado-participacao.png";
                    break;
            }
        } else {
            $img = "certificado-participacao.png";
        }

        echo "<div style='background-image: url(../imagens/{$img}); height: {$imgheight}mm; width: {$imgwidth}mm;'>";


        if (!empty($objequipe->id)) {
            echo "<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>";
            //echo "<p style='text-align: right; font-size: 60px; font-weight: bold; margin: 50px 50px 50px 50px;'>";
            //if(!empty($objequipe->medalha)) echo "Medalha de ".ucfirst(strtolower($objequipe->medalha));
            //else echo "&nbsp;";
            //echo "</p>";
            //  ado, obtiveram MEDALHA DE OURO na Etapa Estadual  
            echo "<p style='margin: 100px 150px 100px 150px; text-align: justify; font-size: 18px'>";
            echo "A Comissão Organizadora 7ª Olimpíada GeoBrasil - 2022 certifica que os alunos/as $integrantes membros da equipe $objequipe->nome, sob a orientação do/a professor/a $objequipe->professor, da <b>ESCOLA $objequipe->escola, 
            $objequipe->municipio - $objequipe->uf</b>"; 
            if(!empty($objequipe->medalha)){ echo ", obtiveram a <b>MEDALHA DE $objequipe->medalha</b> na <b>Etapa Estadual</b> da <b>7ª Olimpíada Brasileira de Geografia e 5ª Olimpíada Brasileira de Ciências da Terra</b> ";
            }
            else{ 
                echo " participaram da <b>7ª Olimpíada Brasileira de Geografia e 5ª Olimpíada Brasileira de Ciências da Terra</b>";
            }
            echo ".";
            echo "</p>";
        } else {
            echo "Essa equipe não realizou a prova.";
        }
        echo "</div>";
    }

    public function montarPDF($conteudo) {
        $paperheight = 210;
        $paperwidth = 297;
        
        include_once '../lib/mpdf/mpdf.php';
        $estilizacaoTabela = "<style type='text/css'>
								
                                body { font-family: arial }
                                a { text-decoration: none; color: black; }
                                table { border-spacing: 0px; padding: 1px; border-collapse: collapse; }
                                th { background-color: white; font-size: 12px; border: 1px solid #000000; }
                                td { font-size: 11px; text-align: left; border: 1px solid #000000;}
                                //{$this->cssPersonalizado()}
                            </style>";

        $mpdf = new mPDF('', [$paperheight, $paperwidth], '', '', 0, 0, 0, 0, 0, 0, 'L');
//        $mpdf->SetHTMLHeader($this->cabecalhoPagina());
//        $mpdf->SetHTMLFooter($this->rodapePagina());
        $mpdf->WriteHTML($estilizacaoTabela . $conteudo);
        $mpdf->Output($this->nomeArquivo . '.pdf', 'I');
    }

    public function textoNoEstado($estado) {
        switch ($estado) {
            case 'Acre':
            case 'Amapá':
            case 'Amazonas':
            case 'Ceará':
            case 'Distrito Federal':
            case 'Espírito Santo':
            case 'Maranhão':
            case 'Mato Grosso':
            case 'Mato Grosso do Sul':
            case 'Pará':
            case 'Paraná':
            case 'Piauí':
            case 'Rio de Janeiro':
            case 'Rio Grande do Norte':
            case 'Rio Grande do Sul':
            case 'Maranhão':
            case 'Tocantins':
                return "do $estado";
                break;
            case 'Bahia':
            case 'Paraíba':
                return "da $estado";
                break;
            default:
                return "de $estado";
        }
    }

}

$pagina = new Certificado();
$pagina->montar();

