<?php
//mostra os erros de interpretacao PHP
//AMBIENTE DE DESENVOLVIMENTO
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^E_WARNING);
ini_set('display_errors', '1');

if (!class_exists('BD')) {
    include_once 'bd.php';
}

/* 
 * Classe com funcoes basicas de uma pagina (html) do sistema
 */
class Pagina
{
    public $bd;
    public $titulo;
    public $nomesistema;
    public $onload;
    public $includehead;
    
    public $webmanifest;
    public $serviceworker;
    
    
    const EMAIL = 'obgeografia@unifal-mg.edu.br';//'obgeo@gmail.com';
    
    static public $UFESTADO = array('AC'=>'Acre', 'AL'=>'Alagoas', 'AP'=>'Amapá', 'AM'=>'Amazonas', 'BA'=>'Bahia', 'CE'=>'Ceará', 'DF'=>'Distrito Federal', 'ES'=>'Espírito Santo', 'GO'=>'Goiás', 'MA'=>'Maranhão', 'MT'=>'Mato Grosso', 'MS'=>'Mato Grosso do Sul', 'MG'=>'Minas Gerais', 'PA'=>'Pará', 'PB'=>'Paraíba', 'PR'=>'Paraná', 'PE'=>'Pernambuco', 'PI'=>'Piauí', 'RJ'=>'Rio de Janeiro', 'RN'=>'Rio Grande do Norte', 'RS'=>'Rio Grande do Sul', 'RO'=>'Rondônia', 'RR'=>'Roraima', 'SC'=>'Santa Catarina', 'SP'=>'São Paulo', 'SE'=>'Sergipe', 'TO'=>'Tocantins');

    public function __construct() {
        $this->bd = new BD();
        $this->nomesistema = "Olimpiada Brasileira de Geografia";
        
        $this->webmanifest = '/olimpiadageografia/manifest.webmanifest';
        $this->serviceworker = '/olimpiadageografia/serviceworker.js';
    }
    
    public function montar(){
        $this->cabecalho();
        
        $this->corpo();
        
        $this->rodape();
    }
    
    public function cabecalho(){
        echo "<!doctype html>";
        echo "<html lang='pt-br'>";
        
        echo "<head>";
        echo "<title>{$this->titulo} - {$this->nomesistema}</title>";
        echo "<meta charset=\"utf-8\">";
        echo "<meta name='viewport' content='width=device-width, initial-scale=1.0'>";
        echo "<meta name='Description' content='Olimpiada Geografia'/>";
        echo "<meta name='theme-color' content='#FFFFFF'/>";
        echo "<link rel='apple-touch-icon' href='/olimpiadageografia/imagens/icon-192x192.png'/>";
        if(!empty($this->webmanifest)) echo "<link rel='manifest' href='$this->webmanifest'/>";
        echo "<link rel='stylesheet' href='/olimpiadageografia/lib/style.css'/>";
        echo "<link rel='stylesheet' href='/olimpiadageografia/lib/stylemobile.css'/>";
        echo "<script src='/olimpiadageografia/lib/jquery-3.2.1.min.js'></script>";
        echo "<script src='/olimpiadageografia/lib/campos.js'></script>";
        echo "<script src='/olimpiadageografia/lib/jquery.mask.min.js'></script>";
        echo "<script src='/olimpiadageografia/lib/ajax.js'></script>";
        echo "<script src='/olimpiadageografia/lib/scripts.js'></script>";
        if(!empty($this->serviceworker)) echo "<script src='$this->serviceworker'></script>";
        echo $this->includehead;
        echo "</head>";
        
        echo "<body onload=\"{$this->onload}\">";
        
        echo "<noscript>
            <font size='12' color='red'>O javascript deve estar habilitado!</font>
            <div style='display:block; width:90%; height:100%; background:#F5A9A9; padding: 15px; border:2px solid; position:absolute; z-index:100; top:10%; left:5%;'>
            O sistema não irá funcionar adequadamente.<br/>Primeiro habilite o seu javascript.<br/><br/>
            Para obter ajuda nesse processo acesse o site <a href='http://www.enable-javascript.com/pt/' target='_blank'>http://www.enable-javascript.com/pt/</a> ou faça uma busca pelo tema.<br/><br/>
            Caso ainda você não consiga reverter esse problema, utilize esse sistema em outro navegador.
            </div>
            </noscript>";
        
        echo "<div align='center'><img src='/olimpiadageografia/imagens/obgeo_2023_1.png' alt='logo' style='opacity: 1; filter: alpha(opacity=0); width: auto; height: auto; max-width: 100%;' /></div>";
        
        $this->mostrarMensagens();
    }
    
    public function corpo(){
        //deve ser escrita pelas classes filhas
    }
    
    public function rodape(){
        echo "<div><br/><hr/></div>";
        echo "</body>";
        echo "</html>";
    }
    
    public function mostrarMensagens(){
        if(!empty($_SESSION[erro])){
            if(!is_array($_SESSION[erro])) $_SESSION[erro] = array($_SESSION[erro]);
            foreach ($_SESSION[erro] as $erro){
                echo "<div class='erro'>$erro</div>";
            }
        }else{
            if(!empty($_SESSION[mensagem])){
                if(!is_array($_SESSION[mensagem])) $_SESSION[mensagem] = array($_SESSION[mensagem]);
                foreach ($_SESSION[mensagem] as $mensagem){
                    echo "<div class='mensagem'>$mensagem</div>";
                }
            }
            if(!empty($_SESSION[mensagemalerta])){
                if(!is_array($_SESSION[mensagemalerta])) $_SESSION[mensagemalerta] = array($_SESSION[mensagemalerta]);
                foreach ($_SESSION[mensagemalerta] as $mensagem){
                    echo "<div class='mensagemalerta'>$mensagem</div>";
                }
            }
            if(!empty($_SESSION[mensagemsucesso])){
                if(!is_array($_SESSION[mensagemsucesso])) $_SESSION[mensagemsucesso] = array($_SESSION[mensagemsucesso]);
                foreach ($_SESSION[mensagemsucesso] as $mensagem){
                    echo "<div class='mensagemsucesso'>$mensagem</div>";
                }
            }
        }
        
        unset($_SESSION[erro]);
        unset($_SESSION[mensagem]);
        unset($_SESSION[mensagemalerta]);
        unset($_SESSION[mensagemsucesso]);
    }
    
    public function enviaEmail($recipients, $subject, $body, $from = 'sistemas@appmail.unifal-mg.edu.br', $fromname = null, $cc = null, $bcc = null, $anexos = null, $conta = 'unifal') {
//        $body = "$recipients<br/>$body";
//        $bcc = 'gustavoferreiraafonso@yahoo.com.br';
        
        require_once($_SERVER['DOCUMENT_ROOT'] . "/olimpiadageografia/lib/enviaemail.php");
        
        if($conta == 'gmail'){
            $enviou = enviaEmailGmail($recipients, $subject, $body, $from, $fromname, $cc, $bcc, $anexos);
        }else{
            $enviou = enviaEmailUnifal($recipients, $subject, $body, $from, $fromname, $cc, $bcc, $anexos);
        }
        
        if($enviou === false){
            require_once($_SERVER['DOCUMENT_ROOT'] . "/olimpiadageografia/lib/enviaemail_2.php");
            $enviou = enviaEmailSMTP($recipients, $subject, $body, $from, $fromname, $cc, $bcc, $anexos);
        }
            
        if ($enviou === true) {
            return true;
        } else {
            return false;
        }
    }
    
    public function checarPermissao($perfis){
        $existe = $this->temPermissao($perfis);
        if(!$existe){
            $_SESSION[erro] = 'Você não tem permissão para acessar essa página.<br/>Talvez sua sessão tenha expirado.<br/>Tente fazer o login novamente.';
            echo "<meta http-equiv = 'Refresh' content = '0;URL=login.php?sair=sim' />";
            exit();
        }
    }
    
    public function temPermissao($perfis){
        if(!empty($_SESSION[role]) AND !empty($perfis)){
            foreach($_SESSION[role] as $role){
                if(in_array($role, $perfis)){
                    return true;
                }
            }
        }
        
        return false;
    }
    
    public static function acertarString($string, $substituirPulaLinhaEnterTabulacao = false, $substituiAspasSimples = true, $retiraEspacosDuplos = true) {
        if ($substituiAspasSimples) {
            $string = str_replace("'", "`", $string);
            $string = str_replace("``", "`", $string);
        }
        if ($substituirPulaLinhaEnterTabulacao) {
            $string = str_replace("\t", ' ', $string);
            $string = str_replace("\r", ' ', $string);
            $string = str_replace("\n", ' ', $string);
        }
        if ($retiraEspacosDuplos){
            $string = preg_replace("/[[:blank:]]+/", " ", $string);
        }
        $string = addslashes($string);
        if ($retiraEspacosDuplos) {
            $string = trim($string);
        }

        return $string;
    }
    
    public static function acertarNome($nome) {
        $iniciaisminusculas = array('Á' => 'á', 'Â' => 'â', 'É' => 'é', 'Ê' => 'ê', 'Í' => 'í', 'Ó' => 'ó', 'Ú' => 'ú', 'Ç' => 'ç');
        $nome = trim(preg_replace('/\s\s+/', ' ', $nome));
        $nome = mb_strtolower($nome, 'UTF-8');
        $nome = self::acertarString($nome, true, true, true);
        $nome = explode(' ', $nome);
        for ($i = 0; $i < count($nome); $i++) {
            $inicial = substr($nome[$i], 0, 2);
            if (in_array($inicial, $iniciaisminusculas)) {
                $nome[$i] = substr_replace($nome[$i], array_search($inicial, $iniciaisminusculas), 0, 2);
            } else {
                if ($nome[$i] != 'de' AND $nome[$i] != 'da' AND $nome[$i] != 'do' AND $nome[$i] != 'das' AND $nome[$i] != 'dos' AND $nome[$i] != 'e') {
                    $nome[$i] = ucfirst($nome[$i]);
                }
            }
            $posicaoapostrofo = strpos($nome[$i], '`');
            if($posicaoapostrofo !== false){//para os casos como Sant`Anna, D`Martins etc
                $stringaposapostrofo = ucfirst(substr($nome[$i], $posicaoapostrofo+1));
                $inicial = substr($stringaposapostrofo, 0, 2);
                if (in_array($inicial, $iniciaisminusculas)) {
                    $stringaposapostrofo = substr_replace($stringaposapostrofo, array_search($inicial, $iniciaisminusculas), 0, 2);
                }
                $nome[$i] = substr_replace($nome[$i], $stringaposapostrofo, $posicaoapostrofo+1);
            }
        }
        $nome = implode(' ', $nome);
        return $nome;
    }
    
    public static function decodificarData($data, $hms=true){
        if(empty($data)) return null;
        $datahora = explode(' ', $data);
        $hora = (!empty($datahora[1]))? $datahora[1] : '00:00:00';
        if($hms) return substr($datahora[0],8,2).'/'.substr($datahora[0],5,2).'/'.substr($datahora[0],0,4).' '.$hora;
        else return substr($datahora[0],8,2).'/'.substr($datahora[0],5,2).'/'.substr($datahora[0],0,4);
    }
    
    public static function codificarData($data, $hms=true){
        if(empty($data)) return null;
        $datahora = explode(' ', $data);
        $hora = (!empty($datahora[1]))? $datahora[1] : '00:00:00';
        if($hms) return substr($datahora[0],6,4).'-'.substr($datahora[0],3,2).'-'.substr($datahora[0],0,2).' '.$hora;
        else return substr($datahora[0],6,4).'-'.substr($datahora[0],3,2).'-'.substr($datahora[0],0,2);
    }

    public function validarEmail($email){
        $email = strtolower($email);
        $email = str_replace(' ', '', $email);
        $email = preg_replace('/\s+/', '', $email);
        $email = $this->removerAcento($email);
        
        $valido = preg_match("/^([[:alnum:]_.-])+@([[:lower:][:digit:]_.-]+)(\.[[:lower:]]{2,3})(\.[[:lower:]]{2})?$/", $email);
        if($valido){
            return $email;
        }else{
            return false;
        }
    }
    
    public static function numeroParaNumeric($str){
        if($str == null) return null;
        $str = str_replace('.', '', $str);
        $str = str_replace(',', '.', $str);
        return floatval($str);
    }
    
    public static function numericParaNumero($str){
        if($str == null) return null;
        $str = floatval($str);
        $str = str_replace(',', '', $str);
        $str = str_replace('.', ',', $str);
        return $str;
    }
    
    public static function soNumeros($str){
        return preg_replace('/\D/', '', $str);
    }
    
    public static function soLetrasNumeros($str){
        $str = self::removerAcento($str);
        $str = self::removerCaracterEspecial($str);
        $str = self::acertarString($str);
        return preg_replace('/[\s\W]+ /', '', $str);
        return preg_replace("/[^a-zA-Z0-9] /", "", $str);
    }
    
    public static function removerCaracterEspecial($str){
        $str = str_replace('"', '', $str);
        $str = str_replace('!', '', $str);
        $str = str_replace('@', '', $str);
        $str = str_replace('#', '', $str);
        $str = str_replace('$', '', $str);
        $str = str_replace('%', '', $str);
        $str = str_replace('¨', '', $str);
        $str = str_replace('&', '', $str);
        $str = str_replace('*', '', $str);
        $str = str_replace('(', '', $str);
        $str = str_replace(')', '', $str);
        $str = str_replace('-', '', $str);
        $str = str_replace('_', '', $str);
        $str = str_replace('=', '', $str);
        $str = str_replace('+', '', $str);
        $str = str_replace('{', '', $str);
        $str = str_replace('}', '', $str);
        $str = str_replace('[', '', $str);
        $str = str_replace(']', '', $str);
        $str = str_replace('º', '', $str);
        $str = str_replace('ª', '', $str);
        $str = str_replace('|', '', $str);
        $str = str_replace('\\', '', $str);
        $str = str_replace("'", '', $str);
        $str = str_replace(',', '', $str);
        $str = str_replace('.', '', $str);
        $str = str_replace(';', '', $str);
        $str = str_replace('?', '', $str);
        $str = str_replace('/', '', $str);
        $str = str_replace('°', '', $str);
        $str = str_replace('<', '', $str);
        $str = str_replace('>', '', $str);
        
        return $str;
    }
    
    public static function removerAcento($str) {
        $str = str_replace('Á', 'A', $str);
        $str = str_replace('À', 'A', $str);
        $str = str_replace('Ã', 'A', $str);
        $str = str_replace('Â', 'A', $str);
        $str = str_replace('É', 'E', $str);
        $str = str_replace('Ê', 'E', $str);
        $str = str_replace('Í', 'I', $str);
        $str = str_replace('Ó', 'O', $str);
        $str = str_replace('Õ', 'O', $str);
        $str = str_replace('Ô', 'O', $str);
        $str = str_replace('Ú', 'U', $str);
        $str = str_replace('Ü', 'U', $str);
        $str = str_replace('Ç', 'C', $str);
        $str = str_replace('á', 'a', $str);
        $str = str_replace('à', 'a', $str);
        $str = str_replace('ã', 'a', $str);
        $str = str_replace('â', 'a', $str);
        $str = str_replace('é', 'e', $str);
        $str = str_replace('ê', 'e', $str);
        $str = str_replace('í', 'i', $str);
        $str = str_replace('ó', 'o', $str);
        $str = str_replace('õ', 'o', $str);
        $str = str_replace('ô', 'o', $str);
        $str = str_replace('ú', 'u', $str);
        $str = str_replace('ü', 'u', $str);
        $str = str_replace('ç', 'c', $str);

        return $str;
    }
    
    public function montaSelect($name, $valores, $default=null, $obrigatorio=false, $onevent=null, $id=null){
        $id = (!empty($id))? $id : $name;
        $required = ($obrigatorio)? 'required' : null;
        echo "<select name='$name' id='$id' $required $onevent>";
        echo "<option></option>";
        foreach($valores as $chave=>$valor){
            $chave = (is_int($chave))? $valor : $chave;
            $selected = ($default == $chave)? 'selected' : null;
            echo "<option $selected value='$chave'>$valor</option>";
        }
        echo "</select>";
    }

    public function tabela($atributos, $links=null){
        $sql = "SELECT $atributos[chave], $atributos[select] ";
        if(!empty($atributos[from])) $sql .= " FROM $atributos[from] ";
        if(!empty($atributos[where])) $sql .= " WHERE $atributos[where] ";
        if(!empty($atributos[orderBy])) $sql .= " ORDER BY $atributos[orderBy] ";
        if(!empty($atributos[groupBy])) $sql .= " GROUP BY  $atributos[groupBy] ";
        if(!empty($atributos[having])) $sql .= " HAVING $atributos[having] ";
        $sqlSemLimit = $sql;
        $limit = (!empty($_REQUEST[limit]))? $_REQUEST[limit] : $atributos[limit];
        $offSet = (!empty($_REQUEST[offSet]))? $_REQUEST[offSet] : $atributos[offSet];
        if(!empty($limit)) $sql .= " LIMIT $limit ";
        if(!empty($offSet)) $sql .= " OFFSET $offSet ";
        
        $inicio = (empty($offSet))? 0 : $offSet;
        $fim = (empty($limit))? 0 : $inicio + $limit;
        
        $this->bd->executarSQL($sqlSemLimit);
        $quantidaderegistrostotal = $this->bd->getQuantidadeRegistros();
        $quantidadecolunas = $this->bd->getQuantidadeColunas();
        
        echo "<fieldset>";
        echo "<table align='center' class='tabelaDados'>";
        //cabecalho
        for ($i = 1; $i < $quantidadecolunas; $i++) {
            $metaDadosColuna = $this->bd->getMetaDadosColuna($i);

            $tituloColuna = strtoupper(str_replace('_', ' ', $metaDadosColuna['name']));
            $cabecalhoTabela[$i] = "<th>$tituloColuna</th>";
            $colunas[$i] = $metaDadosColuna['name'];
        }
        echo "<tr>";
        foreach ($cabecalhoTabela as $colunaCabecalho) {
            echo $colunaCabecalho;
        }
        //corpo
        $this->bd->executarSQL($sql);
        echo "</tr>";
        //as linhas
        $ilinha = 0;
        while ($resultado = $this->bd->getLinha(PDO::FETCH_NUM)) {
            echo "<tr>";
            $i = 0;
            foreach ($resultado as $celula) {
                if ($i != 0) {//diferente de 0 porque o $resultado[0] é o id
                    echo "<td>$celula</td>";
                }
                $i++;
            }
            //links
            if(!empty($links)){
                foreach($links as $arraylink){
                    $nomelink = $arraylink[nome];
                    $imagemlink = "<img src='$arraylink[imagem]' alt='$arraylink[acao]' title='$arraylink[acao]' class='naoresponsivo' />";
                    $targetlink = (!empty($arraylink[target]))? $arraylink[target] : '_blank';
                    $hreflink = $arraylink[endereco];
                    if(!empty($arraylink[acao])) $hreflink .= '?acao='.$arraylink[acao].'&id='.$resultado[0];
                    $link = "<a href='$hreflink' target='$targetlink'>$imagemlink $nomelink</a>";
                    echo "<td>$link</td>";
                }
            }
            echo "</tr>";
            $ilinha++;
        }
        echo "</table>";
        echo "</fieldset>";
        echo "<div align='center'>Total Registros: $quantidaderegistrostotal</div>";
        if(!empty($limit)){
            foreach($_REQUEST as $chave=>$valor){
                if(!in_array($chave, array('limit', 'offSet'))) $request[] = "$chave=$valor";
            }
            $request = @implode('&', $request);
            echo "<div align='center'>";
            if($inicio > 0){
                $offSetAnterior = $offSet - $limit;
                if($offSetAnterior < 0) $offSetAnterior = 0;
                echo "<a href='?limit=$limit&offSet=$offSetAnterior&$request' class='voltar'>Anterior</a> &nbsp;&nbsp;&nbsp; ";
            }
            if($fim < $quantidaderegistrostotal){
                $offSetProximo = $offSet + $limit;
                echo "<a href='?limit=$limit&offSet=$offSetProximo&$request' class='avancar'>Proximo</a>";
            }
            echo "<br/>";
            echo "Mostrando de ".($inicio + 1)." a ".($fim);
            echo "</div>";
        }
    }
    
     
    public function selectProva($default=null, $obrigatorio=false, $onevent=null, $where="status='ATIVO'"){
        $required = ($obrigatorio)? 'required' : null;
        echo "<select name='prova_id' id='prova_id' $required $onevent >";
        echo "<option></option>";
        $sql = "SELECT * FROM imediaco_geo.prova WHERE $where ORDER BY datainscricaoinicio1 DESC";
        $this->bd->executarSQL($sql);
        while($obj = $this->bd->getObjeto()){
            $selected = ($default == $obj->id)? 'selected' : null;
            echo "<option value='$obj->id' $selected>$obj->descricao</option>";
        }
        echo "</select>";
    }

    public function selectEscolaProfessor($default=null, $obrigatorio=false, $onevent=null, $where="1=1"){
        $required = ($obrigatorio)? 'required' : null;
        echo "<td><select name='escolaprofessor_id' id='escolaprofessor_id' $required $onevent>";
        echo "<option></option>";
        $sql = "SELECT * FROM imediaco_geo.escolaprofessor WHERE $where ORDER BY nome ASC";
        $this->bd->executarSQL($sql);
        while($obj = $this->bd->getObjeto()){
            $selected = ($default == $obj->id)? 'selected' : null;
            echo "<option value='$obj->id' $selected>$obj->nome</option>";
        }
        echo "</select><td></tr>";
    }
    
    public function selectProvaFase($default=null, $obrigatorio=false, $onevent=null, $where="prova.status='ATIVO'", $naoselecionarfaseiniciou=false){
        $required = ($obrigatorio)? 'required' : null;
        echo "<select name='provafase_id' id='provafase_id' $required $onevent >";
        echo "<option></option>";
        $sql = "SELECT prova.descricao AS prova, provafase.*, DATE_FORMAT(provafase.datainicio, '%Y%m%d') AS ymddatalimite "
                . "FROM imediaco_geo.prova "
                . "INNER JOIN imediaco_geo.provafase ON prova.id = provafase.prova_id "
                . "WHERE $where "
                . "ORDER BY prova.datainscricaoinicio1 DESC, prova.id, provafase.fase ASC";
        $this->bd->executarSQL($sql);
        $hoje = date('Ymd');
        while($obj = $this->bd->getObjeto()){
            $selected = ($default == $obj->id)? 'selected' : null;
            $disabled = ($naoselecionarfaseiniciou AND $hoje > $obj->ymddatalimite AND empty($selected))? 'disabled' : null;
            echo "<option value='$obj->id' $selected $disabled>$obj->prova / Fase $obj->fase</option>";
        }
        echo "</select>";
    }
    
    public function selectCategoria($default=null, $obrigatorio=false, $onevent=null){
        $required = ($obrigatorio)? 'required' : null;
        echo "<select name='categoria_id' id='categoria_id' $required $onevent >";
        echo "<option></option>";
        $sql = "SELECT * FROM imediaco_geo.categoria WHERE status='ATIVO' ORDER BY descricao";
        $this->bd->executarSQL($sql);
        while($obj = $this->bd->getObjeto()){
            $selected = ($default == $obj->id)? 'selected' : null;
            echo "<option value='$obj->id' $selected>$obj->descricao</option>";
        }
        echo "</select>";
    }
    public function radioTipo($selected=null, $obrigatorio=false, $valores, $name, $default=null){
        $required = ($obrigatorio)? "required" : null;
        $finded = false;
            
        foreach($valores as $valor){

            if($selected == $valor){
                $finded = true; 
            }

            if(!$finded){
                $checked = ($default == $valor)? "checked" : null;    
            }
            
            else {
                $checked = ($selected == $valor)? "checked" : null;
            }

            echo "[<input type='radio' name='$name' id='$name' value='$valor' $checked $required />$valor] &nbsp; ";
        }
    }
    
    public function radioTipoEscola($default=null, $obrigatorio=false){
        $required = ($obrigatorio)? "required" : null;
        $valores = array('Estadual', 'Municipal', 'Federal', 'Escola Técnica', 'Militar Estadual', 'Militar Federal', 'Privada');
        
        $this->radioTipo($default, $obrigatorio, $valores, 'tipoescola');
    }

    public function botaoGerarBoleto($equipe_id){
        $sql = "SELECT equipe.* 
                FROM imediaco_geo.equipe 
                LEFT JOIN imediaco_geo.escola ON equipe.codigoinep = escola.codigoinep
                WHERE equipe.id = '$equipe_id'";
        $this->bd->executarSQL($sql);
        $obj = $this->bd->getObjeto();
        if(!empty($obj->id)){
            $cpf = $obj->professorcpf;
            $logradouro = 'UNIFAL-MG Gabriel Monteiro da Silva';//$this->soLetrasNumeros($obj->logradouro);
            $bairro = 'Centro';//$this->soLetrasNumeros($obj->bairro);
            $cep = '37130001';//$this->soNumeros($obj->cep);
            $cidade = 'Alfenas';//$this->soLetrasNumeros($obj->municipio);
            $uf = 'MG';//$this->soLetrasNumeros($obj->uf);
            $nomeequipe = $this->soLetrasNumeros($obj->nome);
            $tipoescola = $this->soLetrasNumeros($obj->tipoescola);
            $tipoinscricao = (in_array($obj->categoriaadministrativa, array('Privada', 'privada')))? 'privada' : 'pública';
            $nomeprofessor = $this->soLetrasNumeros($obj->professor);
            $nomeescola = $this->soLetrasNumeros($obj->escola);
            $html = "<a href='http://www.facepealfenas.org.br/facepe/boletos_olimpiada_geografia_2021.asp?equipe_id=$equipe_id&cpf=$cpf&logradouro=$logradouro&bairro=$bairro&cep=$cep&cidade=$cidade&uf=$uf&nomeequipe=$nomeequipe&tipoinscricao=$tipoinscricao&tipoescola=$tipoescola&nomeprofessor=$nomeprofessor&nomeescola=$nomeescola' target='_blank' class='cartao'>Gerar Boleto $$ Clique aqui para gerar</a>";
        }else{
            $html = "<div class='erro'>DADOS DA EQUIPE NÃO ENCONTRADO!</div>";
        }
        
        return $html;
    }
    
    
    public function formataNumeroQuestao($numero){
        if(strpos($numero, '.') !== false){
            $numeros = explode('.', $numero);
            $inteiro = $numeros[0];
            $fracao = ((strlen($numeros[1]) == 1))? str_pad($numeros[1], 2, '0') : $numeros[1];// para se for 1.1 fica 1.10, se for 1.01 permanece 1.01
            return $inteiro.'.'.$fracao;
        }else{
            return $numero;
        }
        
    }
    
}