<?php
include_once '../classes/pagina.php';
include_once '../classes/equipe.php';
include_once '../classes/professor.php';
include_once '../classes/escolaprofessor.php';

class CRUDEquipe extends Pagina {
    
    const LINKCADUNICO = 'https://meucadunico.cidadania.gov.br/meu_cadunico/';
    
    public function __construct() {
        parent::__construct();
        if(empty($_REQUEST[executarAcao]) AND empty($_REQUEST[acao])) $this->includehead = "<style>body{max-width: 95%;}</style>";
    }
    
    public function corpo() {
        if(!parent::temPermissao(array('professor'))){
            $acao = ($_REQUEST[acao] == 'inserir' OR $_REQUEST[acao] == 'editar')? $_REQUEST[acao] : 'inserir';
        }else{
            $acao = $_REQUEST[acao];
        }
        
        if(empty($acao) AND empty($_REQUEST[executarAcao])) echo "<div><a href='home.php' class='voltar'>Voltar para a tela inicial</a></div><br/>";
        
        if($_REQUEST[executarFuncao] == 'dadosCPF'){
            $this->dadosCPF($_REQUEST[cpf]);
        }elseif($_REQUEST[executarFuncao] == 'dadosEscola'){
            $this->dadosEscola($_REQUEST[codigoinep]);
        }elseif($_REQUEST[executarAcao] == 'inserir' OR $_REQUEST[executarAcao] == 'editar'){
            $this->salvar($_REQUEST[executarAcao]);
        }elseif($acao == 'inserir' OR $acao == 'editar'){
            $this->formulario($acao);
        }elseif($acao == 'boleto'){
            $this->boleto($_REQUEST[id]);
        }else{
            $this->lista();
        }
    }
    
    public function lista(){
        parent::checarPermissao(array('professor'));
        
        echo "<div align='center'><a href='crudequipe.php?acao=inserir' target='_blank' class='adicionar'>Inserir Nova Equipe</a></div><br/>";
        
        $where[] = "professor_id = ".$_SESSION[professor_id]." AND prova.status = 'ATIVO'";

        if(!empty($prova_id)) $where[] = "equipe.prova_id = '$prova_id'";
        if(!empty($_REQUEST[id])) $where[] = "equipe.id = '$_REQUEST[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])) {
            if($_REQUEST[tipoescola] == 'PRIVADA') $where[] = "equipe.tipoescola LIKE 'PRIVADA'";
            else $where[] = "equipe.tipoescola NOT LIKE 'PRIVADA'";
        }
        if(!empty($_REQUEST[professor])) $where[] = "equipe.professor LIKE '%$_REQUEST[professor]%'";
        if(!empty($_REQUEST[municipio])) $where[] = "equipe.municipio LIKE '%$_REQUEST[municipio]%'";
        if(!empty($_REQUEST[uf])) $where[] = "equipe.uf LIKE '$_REQUEST[uf]'";
        if($_REQUEST[pago] == 'SIM' OR $_REQUEST[pago] == 'ISENTO') $where[] = "equipe.pago = '$_REQUEST[pago]'";
        if($_REQUEST[pago] == 'NÃO') $where[] = "(equipe.pago = 'NÃO' OR equipe.pago IS NULL)";
        if(!empty($_REQUEST[status])){
            $inativos = "(equipe.status LIKE 'INATIVO' OR ((equipe.pago = 'NÃO' OR equipe.pago IS NULL) AND prova.isentopagamento <> 'SIM'))";
            if($_REQUEST[status] == 'INATIVO') $where[] = $inativos;
            elseif($_REQUEST[status] == 'ATIVO') $where[] = "!($inativos)";
        }
        $where = implode(' AND ', $where);
        
        $atributos[select] = "equipe.id AS numero, equipe.escola, equipe.tipoescola AS tipo, equipe.nome, equipe.municipio, equipe.uf
                            , CASE WHEN (equipe.pago = 'NÃO' OR equipe.pago IS NULL) AND prova.isentopagamento <> 'SIM' THEN 'NÃO' ELSE equipe.pago END AS pago
                            , CASE WHEN (equipe.pago = 'NÃO' OR equipe.pago IS NULL) AND prova.isentopagamento <> 'SIM' THEN 'INATIVO' ELSE equipe.status END AS status";
        $atributos[from] = 'imediaco_geo.equipe INNER JOIN imediaco_geo.prova ON equipe.prova_id = prova.id';
        $atributos[where] = $where;
        $atributos[orderBy] = 'prova.datainscricaofim2 DESC, prova.descricao, equipe.id';
        $atributos[chave] = 'equipe.id';
        $atributos[limit] = 100;
        
        $links[] = array('endereco'=>'crudequipe.php', 'acao'=>'editar', 'imagem'=>"../imagens/editar.png", 'target'=>'_blank');
        
        //$links[] = array('endereco'=>'crudequipe.php', 'acao'=>'boleto', 'imagem'=>"../imagens/cartao.png", 'target'=>'_blank');

        if($_REQUEST[gerarlistaemail] == 'SIM'){
            echo "<a href='#listaemail'>Lista de E-mails</a>";
        }
        
        parent::tabela($atributos, $links);
        
        if($_REQUEST[gerarlistaemail] == 'SIM'){
            $sql = "SELECT equipe.professoremail FROM imediaco_geo.equipe INNER JOIN imediaco_geo.prova ON equipe.prova_id = prova.id WHERE $where";
            $this->bd->executarSQL($sql);
            if($this->bd->getQuantidadeRegistros() > 0){
                echo "<fieldset><legend>Lista de E-mails dos Professores</legend><a name='listaemail'></a>";
                $listaemails = null;
                while($obj = $this->bd->getObjeto()){
                    if($this->validarEmail($obj->professoremail) != false) $listaemails[$obj->professoremail] = '';
                }
                $i = 0;
                foreach($listaemails as $email=>$nada){
                    echo "$email, ";
                    $i++;
                    if($i == 50){
                        echo "<br/><br/>";
                        $i = 0;
                    }
                }
                echo "</fieldset>";
            }
        }
    }
    
    public function formulario($acao){
        $equipe = new Equipe();
       
        $sql = "SELECT prova.* 
                FROM imediaco_geo.prova 
                WHERE prova.datainscricaoinicio1 <= NOW() AND prova.datainscricaofim2 >= NOW() 
                ORDER BY prova.id DESC";
        $this->bd->executarSQL($sql);
        $quantidadeprovas = $this->bd->getQuantidadeRegistros();
        
        echo "<br/><br/>";
        //if($quantidadeprovas > 0 OR parent::temPermissao(array('administrador','editarequipes'))) 
            echo "<form action='crudequipe.php' method='POST'>";
        //else echo "<div class='mensagem'>Os dados da equipe não podem ser editados fora do período de inscrição!</div>";
        
        if($acao != 'inserir'){
            $equipe_id = (parent::temPermissao(array('professor')))? $_REQUEST[id] : $_SESSION[equipe_id];

            if(!empty($equipe_id)){
                $objequipe = $equipe->encontrar($equipe_id);
                if($equipe->professor_id != $_SESSION[professor_id]){
                    echo 'Não foi identificado o professor logado, sua sessão pode ter expirado. Por favor faça o login novamente';
                    exit();
                }
            }
        }else{
            $_SESSION[inseriuequipe_id] = null;
            if(!parent::temPermissao(array('administrador','editarequipes')) AND $quantidadeprovas == 0){
                echo "<div class='erro'>No momento não ha provas no período de inscrição!</div>";
                echo "<div><a href='login.php' class='voltar'>Voltar para a tela inicial</a></div><br/>";
                exit();
            }else{
                if($quantidadeprovas == 0){
                    $sql = "SELECT prova.* 
                            FROM imediaco_geo.prova 
                            INNER JOIN imediaco_geo.provafase provafase3 ON prova.id = provafase3.prova_id AND fase = '3' 
                            WHERE prova.datainscricaoinicio1 <= NOW() AND provafase3.datafim >= NOW() 
                            ORDER BY prova.id DESC";
                    $this->bd->executarSQL($sql);
                    $quantidadeprovas = $this->bd->getQuantidadeRegistros();
                }
                echo "<div align='center'><b>Prova:</b> ";
                echo "<select name='prova_id' required>";
                
                $i = 0;
                $prova_id = (!empty($_REQUEST[prova_id]))? $_REQUEST[prova_id] : $objequipe->prova_id;
                while($obj = $this->bd->getObjeto()){
                    if($i == 0 OR $obj->id == $prova_id){
                        $objprova = $obj;
                        $selected = 'selected';
                    }else{
                        $selected = null;
                    }
                    echo "<option value='$obj->id' $selected onchange=\"window.location='crudequipe.php?acao=$acao&id=$equipe_id&prova_id='+this.value;\">$obj->descricao</option>";
                    $i++;
                }
                if(empty($prova_id)) $prova_id = $objprova->id;
                echo "</select>";
                echo "</div>";
            }
        }
        
        echo "<input type='hidden' name='id' value='$equipe_id' style='display:none;' />";
        echo "<input type='hidden' name='executarAcao' value='$acao' style='display:none;' />";
        
        if($objprova->isentopagamento == 'SIM'){
            /*if($objprova->isentopagamento == 'SIM') echo "<div class='mensagem'>Essa prova é isenta de pagamento.</div>";
            else echo "<div class='mensagem'>Essa equipe é isenta de pagamento.</div>";
            echo "<input type='hidden' name='pago' value='ISENTO' style='display:none;' />";*/
        }else{
            if(parent::temPermissao(array('administrador','editarequipes'))){
                /*$checkedsim = ($equipe->pago == 'SIM')? "checked" : null;
                $checkednao = ($equipe->pago == 'NÃO')? "checked" : null;
                $checkedisento = ($equipe->pago == 'ISENTO')? "checked" : null;
                echo "<div align='center'><b>Pago:</b> "
                    . "<input type='radio' name='pago' value='SIM' $checkedsim />SIM &nbsp;&nbsp;&nbsp; "
                    . "<input type='radio' name='pago' value='NÃO' $checkednao id='pagonao' />NÃO &nbsp;&nbsp;&nbsp; "
                    . "<input type='radio' name='pago' value='ISENTO' $checkedisento />ISENTO &nbsp;&nbsp;&nbsp; "
                    . "</div>";
                //status
                if($equipe->status == 'INATIVO') {
                    $onevent = "onchange=\"if(this.value == 'INATIVO' && document.getElementById('pagonao').checked == false){if(!confirm('ATENÇÃO: esta equipe pagou ou é isenta. Você quer mesmo inativá-la?')){this.value = 'ATIVO';}}\"";
                    echo "<div align='center'><b>Status:</b> ";
                    parent::montaSelect('status', array('ATIVO', 'INATIVO'), $equipe->status, true, $onevent);
                    echo "</div>";
                }
                //registros log
                if(!empty($objequipe->id)){
                    echo "<div><b>Registros de Alterações:</b> ";
                    $sql = "SELECT log.* 
                                FROM imediaco_geo.log
                                WHERE log.operacao IN ('inserir equipe', 'editar equipe', 'excluir equipe', 'inativar equipe') AND log.identificacaotupla = '$objequipe->id'
                                ORDER BY log.id DESC";
                        $this->bd->executarSQL($sql);
                        echo "<font size='1'>";
                        while($objlog = $this->bd->getObjeto()){
                            echo "<br/>$objlog->datahoraregistro | $objlog->usuario | $objlog->operacao";
                        }
                        echo "</font>";
                    echo "</div>";
                }*/
            }else{
                if($acao != 'inserir'){
                    //pagamento
                    if($equipe->pago != 'SIM' AND $equipe->pago != 'ISENTO' AND $objequipe->isentopagamento != 'SIM'){
                        echo "<div class='erro'>O pagamento da inscrição não foi confirmado!</div>";
                        if($quantidadeprovas > 0 OR parent::temPermissao(array('administrador'))) echo "<div class='mensagem'>" . parent::botaoGerarBoleto($equipe_id) . "</div>";
                    }else{
                        if($objequipe->isentopagamento == 'SIM') echo "<div class='mensagemsucesso'>Prova isenta de pagamento!</div>";
                        elseif($equipe->pago == 'ISENTO') echo "<div class='mensagemsucesso'>Essa equipe é isenta de pagamento!</div>";
                        else echo "<div class='mensagemsucesso'>Essa equipe pagou a inscrição!</div>";
                    }
                }
            }
        }
        
        if($acao != 'inserir'){
            $numeroagora = date('YmdHis');
            $fimfase3 = false;
            //finalizacao
            $sql = "SELECT sessao.*
                , provafase.fase, DATE_FORMAT(provafase.datainicio,'%Y%m%d%H%i%s') AS numerodatahorainicio, DATE_FORMAT(provafase.datafim,'%Y%m%d%H%i%s') AS numerodatahorafim 
                    FROM imediaco_geo.sessao 
                    INNER JOIN imediaco_geo.provafase ON sessao.provafase_id = provafase.id 
                    WHERE sessao.equipe_id = '$equipe_id' 
                    ORDER BY provafase.fase";
            $this->bd->executarSQL($sql);
            if($this->bd->getQuantidadeRegistros() > 0){
                /*
                echo "<fieldset><legend align='center'>Protocolos de Finalização</legend>";
                while($objsessao = $this->bd->getObjeto()){
                    echo "<div align='center'>";
                    echo "Fase: $objsessao->fase<br/>";
                    echo "Número da Equipe: $objsessao->equipe_id<br/>";
                    echo "Data Hora de Finalização: " . parent::decodificarData($objsessao->datahorafinalizacao, true) . "<br/>";
                    echo "Protocolo: $objsessao->protocolo<br/>";
                    if($objsessao->numerodatahorafim < $numeroagora){
                        $pontuacao = $this->pontuacao($objsessao->equipe_id, $objsessao->provafase_id);
                        if($objequipe->prova_id != 5) echo "Pontuação: ".round($pontuacao, 2)."<br/>";
                        $pontuacaototalprovafase = $this->pontuacaoTotalProvaFase($objsessao->provafase_id);
                        if($objequipe->prova_id != 5) echo "Pontuação Total da Prova: ".round($pontuacaototalprovafase, 2)."<br/>";
                        $fimfase3 = true;
                    }
                    echo "Prova: <a href='../relatorios/prova.php?tipo=html&equipe_id=$objsessao->equipe_id&fase=$objsessao->fase&exibirDataHoraRegistro=SIM' target='_blank'>clique aqui para visualizar</a>";
                    echo "</div><br/>";
                }
                echo "</fieldset>";*/
            }
            $pontuacaototalequipe = $this->pontuacao($objequipe->id, -1);
            if(!empty($pontuacaototalequipe)) $fimfase3 = true;
            //medalha, colocacao
            if($fimfase3 AND ( ($objequipe->pago == 'SIM' OR $objequipe->pago == 'ISENTO') OR parent::temPermissao(array('administrador', 'editarequipes')) ) ){
                //echo "<fieldset><legend align='center'>Colocação/Medalha/Certificado</legend>";
                //echo "<div align='center'>";
            
                if($objequipe->prova_id == 5){
/*
                    //CIENCIAS DA TERRA
                    echo "<p>Ciências da Terra</p>";
                    $dadosarquivo = $equipe->getDadosArquivo($objequipe->id, 'cienciasdaterra');
                    echo "Pontuação na Prova: ".($dadosarquivo[notaprova])."<br/>";
                    echo "Pontuação no Projeto: ".($dadosarquivo[notaprojeto])."<br/>";
                    echo "Pontuação Total: ".($dadosarquivo[notafinal])."<br/>";
                    if(!empty($dadosarquivo[colocacao])) echo "Colocação: {$dadosarquivo[colocacao]}º<br/>";
                    if(!empty(trim($dadosarquivo[medalha]))) echo "Medalha: $dadosarquivo[medalha]<br/>";
                    echo "Certificado de Ciências da Terra: <a href='../relatorios/certificadoTE2.php?tipo=pdf&tipoprova=cienciasdaterra&equipe_id=$objequipe->id' target='_blank'>clique aqui para visualizar</a>";
                    //GEOGRAFIA
                    echo "<p>Geografia</p>";
                    $dadosarquivo = $equipe->getDadosArquivo($objequipe->id, 'geografia');
                    echo "Pontuação na Prova: ".($dadosarquivo[notaprova])."<br/>";
                    echo "Pontuação no Projeto: ".($dadosarquivo[notaprojeto])."<br/>";
                    echo "Pontuação Total: ".($dadosarquivo[notafinal])."<br/>";
                    if(!empty($dadosarquivo[colocacao])) echo "Colocação: {$dadosarquivo[colocacao]}º<br/>";
                    if(!empty(trim($dadosarquivo[medalha]))) echo "Medalha: $dadosarquivo[medalha]<br/>";
                    echo "Certificado de Geografia: <a href='../relatorios/certificadoTE2.php?tipo=pdf&tipoprova=geografia&equipe_id=$objequipe->id' target='_blank'>clique aqui para visualizar</a>";*/
//                    }
                }else{
                    /*if(parent::temPermissao(array('administrador', 'editarequipes'))){
                        echo "Colocação no Estado: <input type='text' name='colocacao' value='$objequipe->colocacao' size='4' class='inteiro' />º<br/>";
                        echo "Medalha: "; echo parent::montaSelect('medalha', array('OURO', 'PRATA', 'BRONZE','Ouro', 'Prata', 'Bronze'), $objequipe->medalha);echo "<br/>";
                        echo "Certificado: <a href='../relatorios/certificado.php?tipo=pdf&equipe_id=$objequipe->id' target='_blank'>clique aqui para visualizar</a>";
                    }else{
                        if(!empty($objequipe->colocacao)){
                            echo "Colocação no Estado: {$objequipe->colocacao}º<br/>";
                            if(!empty($objequipe->medalha)){
                                echo "Medalha: $objequipe->medalha<br/>";
                            }else{
                                echo "Sem medalha<br/>";
                            }
                        }
                        echo "Certificado: <a href='../relatorios/certificado.php?tipo=pdf' target='_blank'>clique aqui para visualizar</a>";
                    }*/
                }
                //echo "</div>";
                //echo "</fieldset>";
            }
        }
        echo "<br/>";
        
        if(!empty($equipe_id)) echo "<tr><th>Número:</th><td>$equipe_id</td></tr>";
        echo "</td></tr>";
        echo "<fieldset><legend>Equipe</legend>";
        echo "<table class='formulario'>";
        echo "<tr><th>Escola: </th>"; parent::selectEscolaProfessor($objequipe->escolaprofessor_id, true,null,'professor_id = '.$_SESSION[professor_id]);
        echo "<tr><th>Nome da Equipe:</th><td><input type='text' name='nome' value='$objequipe->nome' size='60' required placeholder='sugestão: nome da escola e a turma' /></td></tr>";
        echo "<tr><th>Senha:</th><td><input type='password' name='senha' value='$objequipe->senha' size='30' required placeholder='no mínimo 6 caracteres' /></td>";
        echo"</tr>";
        echo "</table>";
        echo "</fieldset>";
        
        echo "<fieldset><legend>Alunos</legend>";
        echo "<table class='formulario'>";
        for($i = 0; $i < 3; $i++){
            $required = ($i < 2)? "required" : null;
            $aluno = $equipe->alunos[$i];
            echo "<tr><th style='text-align:left;'>Aluno ".($i+1)."</th></tr>";
            
            echo "<tr><td>";
            
            echo "<b>Nome Completo:</b><input type='text' name='alunonome[$i]' value='$aluno->nome' size='60' $required placeholder='nome completo sem abreviações' /> &nbsp;<br/> ";
            
            echo "<b>Nome Completo da Mãe:</b><input type='text' name='alunocaduniconomemae[$i]' value='$aluno->caduniconomemae' size='60' maxlength='100' placeholder='nome completo da mãe conforme consta no CadUnico' class='dadoscadunico' /> &nbsp;<br/> ";
            
            echo "<b>Data de Nascimento:</b><input type='text' name='alunodatanascimento[$i]' value='".Pagina::decodificarData($aluno->datanascimento, false)."' class='data' $required /><br/>";
            
            echo "<b>Gênero:</b>";parent::montaSelect("alunosexo[$i]", array('FEMININO', 'MASCULINO', 'OUTRO', 'PREFIRO NÃO ESPECIFICAR'), $aluno->sexo, $required ? true : false);echo " &nbsp; ";
            
            echo "<b>Cor ou Raça:</b>";parent::montaSelect("alunocor[$i]", array('BRANCA', 'PRETA', 'PARDA', 'AMARELA', 'INDÍGENA'), $aluno->cor,$required ? true : false);echo "<br/>";
           
            echo "<b>O aluno pertence a alguma(s) dessas categorias:</b><br/>";$this->selecionaCategorias("alunocategorias_".$i."[]", $aluno->categorias);echo "<br/>";

            echo "<b>NIS:</b><input type='text' name='alunocaduniconis[$i]' value='$aluno->caduniconis' size='20' maxlength='14' placeholder='caso tenha o nº NIS' class='dadoscadunico' $onchangenis /> &nbsp; <font size='1'>*Número de Identificação Social usado em programas sociais do Governo Federal</font><br/> ";

            echo "</td></tr>";

            echo "<tr><td><hr/></td></tr>";
        }
        echo "</table>";
        $displaycadunico = ((!empty($equipe->alunos[0]->caduniconis) OR !empty($equipe->alunos[1]->caduniconis) OR !empty($equipe->alunos[2]->caduniconis)
                OR !empty($equipe->alunos[0]->caduniconome) OR !empty($equipe->alunos[1]->caduniconome) OR !empty($equipe->alunos[2]->caduniconome))
                AND $objequipe->categoriaadministrativa != 'Privada' AND 1==2)? 'table-row' : 'none';
        $permiteisencao = $equipe->getPermiteIsencao($prova_id, $objequipe);

        if(($objprova->isentopagamento != 'SIM' AND $permiteisencao) OR $objequipe->pago == 'ISENTO'){
            echo "<table class='formulario'>";
            $checkedsim = ($objequipe->pago == 'ISENTO')? 'checked' : null;
            $checkednao = (empty($checkedsim))? 'checked' : null;
            echo "<tr id='linhasolicitaisencao' style='display:$displaycadunico !important'><th>Solicitar Isenção da Taxa de Inscrição:</th><td>
                <input type='radio' name='solicitarisencao' value='NÃO' $onchangeisencao $checkednao />NÃO &nbsp; 
                <input type='radio' name='solicitarisencao' value='SIM' $onchangeisencao $checkedsim />SIM</td></tr>";

            echo "</table>";
        }
        
        echo "</fieldset>";
        
        if(!parent::temPermissao(array('administrador', 'editarequipes')) AND $acao == 'inserir'){
            echo "<br/><div align='center'><input type='checkbox' required name='concordacomregulamento' value='SIM' /><b> Ao realizar essa inscrição estou ciente e concordo com o regulamento desse evento.</b></div>";
        }
        
        $onclickcancelar = (parent::temPermissao(array(professor)) OR $_REQUEST[fechar] == 'sim')? "window.close();" : "window.location='home.php'";
        echo "<br/><div align='center'>";
        
        //Restringir para edição das equipes serem só no período de inscrição
        //if($quantidadeprovas > 0 OR parent::temPermissao(array('administrador', 'editarequipes'))) 
        
        echo "<input type='submit' value='".ucfirst($acao)."' class='confirmar' /> &nbsp;&nbsp; ";

        echo "<input type='button' value='Voltar' class='cancelar' onclick=\"$onclickcancelar\" />";
        echo "</div>";
        
        if($quantidadeprovas > 0 OR parent::temPermissao(array('administrador', 'editarequipes'))) echo "</form>";
        
        echo "<br/><font size='1'>* NIS - Número de Identificação Social usado em programas sociais do Governo Federal. Mais informações em: https://programabolsafamilia.com.br/bolsa-familia-nis/</font>";
    }
    
    public function salvar($acao){

        $equipe = new Equipe();
        $professor = new Professor();
        $professorescola = new EscolaProfessor();
        echo "alert(aqui)";
        if($acao != 'inserir'){
            $equipe_id = (!parent::temPermissao(array('professor')))? $_SESSION[equipe_id] : $_REQUEST[id];
        }else{
            $equipe_id = null;
            if(!parent::temPermissao(array('administrador','editarequipes'))){
                if(!empty($_SESSION[inseriuequipe_id])){
                    $acao = 'semacao';
                    $equipe_id = $_SESSION[inseriuequipe_id];
                }
            }
        }
        
        if(!empty($equipe_id)){
            $equipe->encontrar($equipe_id);
            if($equipe->professor_id != $_SESSION[professor_id]){
                echo 'Não foi identificado o professor logado, sua sessão pode ter expirado. Por favor faça o login novamente';
                exit();
            }
        }else{
            $equipe->prova_id = $_POST[prova_id];
        }

        $objescolaprofessor = $professorescola->encontrar($_POST[escolaprofessor_id]);
        $objprofessor = $professor->encontrar($objescolaprofessor->professor_id);
        
        if(isset($_POST[status]) AND !empty($_POST[status])) $equipe->status = parent::acertarString($_POST[status]);
        elseif(empty($equipe->status)) $equipe->status = 'ATIVO';
            
        $equipe->nome = parent::acertarString($this->removerCaracterEspecialSimples($_POST[nome]));
        $equipe->email = parent::acertarString(strtolower($_POST[email]));
        $equipe->escola = parent::acertarString($objescolaprofessor->nome);
        if(!empty($objescolaprofessor->tipo)) $equipe->tipoescola = parent::acertarString($objescolaprofessor->tipo);
        $equipe->codigoinep = parent::acertarString($objescolaprofessor->codigoinep);
        $equipe->logradouro = parent::acertarString($objescolaprofessor->logradouro);
        $equipe->bairro = parent::acertarString($objescolaprofessor->bairro);
        $equipe->complemento = parent::acertarString($objescolaprofessor->complemento);
        $equipe->municipio = parent::acertarNome($objescolaprofessor->municipio);
        $equipe->uf = strtoupper(parent::acertarString($objescolaprofessor->uf));
        $equipe->cep = parent::acertarString($objescolaprofessor->cep);
        $equipe->telefone = parent::acertarString($_POST[telefone]);
        $equipe->professor = parent::acertarString($this->removerCaracterEspecialSimples($objprofessor->nome));
        $equipe->professorcpf = parent::soNumeros($objprofessor->cpf);
        $equipe->professorsexo = parent::acertarString($objprofessor->sexo);
        $equipe->professorcor = parent::acertarString($objprofessor->cor);
        $equipe->professorcategorias = $this->concatenarArray($objprofessor->categorias);
        $equipe->professoremail = parent::acertarString(strtolower($objprofessor->email));
        $equipe->professortelefone = parent::acertarString($objprofessor->telefone);
        $equipe->professorcelular = parent::acertarString($objprofessor->celular);
        $equipe->diretor = parent::acertarString($_POST[diretor]);
        $equipe->cnpj = parent::acertarString($_POST[escolacnpj]);
        $equipe->escolaprofessor_id = $objescolaprofessor->id;
        $equipe->professor_id = $objprofessor->id;
        if($_POST[senha] != $equipe->senha AND !empty($_POST[senha])){
            $pwd = $_POST[senha];
            $pwd = html_entity_decode($pwd);
            $equipe->senha = md5(parent::acertarString($pwd));
        }
        
        if(isset($_POST[pago])) $equipe->pago = parent::acertarString($_POST[pago]);
        
        if(isset($_POST[colocacao])) $equipe->colocacao = parent::soNumeros($_POST[colocacao]);
        if(isset($_POST[medalha])) $equipe->medalha = $_POST[medalha];
        
        $equipe->alunos = null;
        foreach($_POST[alunonome] as $i=>$alunonome){
            if(!empty($alunonome)){
                $aluno = new stdClass();
                $aluno->nome = parent::acertarString($_POST[alunonome][$i]);               
                $aluno->nomesocial = parent::acertarString($_POST[nomesocial][$i]);
                $aluno->datanascimento = parent::codificarData($_POST[alunodatanascimento][$i], false);
                $aluno->sexo = parent::acertarString($_POST[alunosexo][$i]);
                $aluno->cor = parent::acertarString($_POST[alunocor][$i]);
                $aluno->categorias = $this->concatenarArray($_POST['alunocategorias_'.$i]);
                $aluno->caduniconis = strtoupper(parent::soNumeros($_POST[alunocaduniconis][$i]));
                $aluno->caduniconomemae = strtoupper(parent::soLetrasNumeros($_POST[alunocaduniconomemae][$i]));
                //dados do cadunico
                if(!empty($_POST[alunocaduniconis][$i])){
                    $aluno->cadunicocpf = strtoupper(parent::soNumeros($_POST[alunocadunicocpf][$i]));
                    $aluno->cadunicorgnumero = strtoupper(parent::soLetrasNumeros($_POST[alunocadunicorgnumero][$i]));
                    $aluno->cadunicorgorgao = strtoupper(parent::soLetrasNumeros($_POST[alunocadunicorgorgao][$i]));
                    $aluno->cadunicorgdata = strtoupper(parent::soNumeros($_POST[alunocadunicorgdata][$i]));
                    $aluno->caduniconome = (!empty($_POST[alunocaduniconome][$i]))? strtoupper(parent::soLetrasNumeros($_POST[alunocaduniconome][$i])) : strtoupper(parent::soLetrasNumeros($aluno->nome));
                    $aluno->cadunicodatanascimento = (!empty($_POST[alunocadunicodatanascimento][$i]))? strtoupper(parent::soNumeros($_POST[alunocadunicodatanascimento][$i])) : strtoupper(parent::soNumeros($_POST[alunodatanascimento][$i]));
                    $aluno->cadunicosexo = strtoupper(parent::soLetrasNumeros($_POST[alunocadunicosexo][$i]));
                }
                //insencao para escolas estatual e municipal ate a data 10-05-2021
                if(in_array($objescolaprofessor->tipo, array('Estadual', 'Municipal')) AND date('Ymd') <= '20210430'){
                    $equipe->pago = 'ISENTO';
                }
                $equipe->alunos[] = $aluno;
                //analise de resultado inserido pelo administrador
                if(parent::temPermissao(array('administrador', 'editarequipes')) AND isset($_POST[cadunicoanaliseresultado][$i])){
                    $caduniconis = parent::soNumeros($_POST[alunocaduniconis][$i]);
                    $cadunicoanalise = $equipe->getCadUnicoAnalise($caduniconis);
                    $cadunicoresultado = parent::soLetrasNumeros($_POST[cadunicoanaliseresultado][$i]);
                    if($cadunicoanalise->resultado != $cadunicoresultado){
                        $cadunicoprotocolo = md5($aluno->caduniconome.$aluno->caduniconis.$aluno->cadunicodatanascimento.$aluno->cadunicosexo.$aluno->cadunicorgnumero.$aluno->cadunicorgdata.$aluno->cadunicorgorgao.$aluno->cadunicocpf.$aluno->caduniconomemae);
                        $equipe->analisarCadUnico($caduniconis, $cadunicoresultado, null, $cadunicoprotocolo);
                    }
                }
            }
        }
        
        $executou = true;
        switch($acao){
            case 'inserir':
                $executou = $equipe->inserir();
                break;
            case 'editar':
                $executou = $equipe->editar();
                break;
            case 'excluir':
                $executou = $equipe->excluir();
                break;
        }
        
        //cadastrando a escola caso ainda nao exista o cadastro
        $sql = "SELECT * FROM imediaco_geo.escola WHERE codigoinep = '$objescolaprofessor->codigoinep' ORDER BY id DESC LIMIT 1";
        $this->bd->executarSQL($sql);
        if($this->bd->getQuantidadeRegistros() == 0 AND !empty($objescolaprofessor->nome) AND !empty($objescolaprofessor->codigoinep)){
            $endereco = $equipe->logradouro.'. '.$equipe->bairro.'. '.$equipe->cep.'. '.$equipe->municipio.' - '.$equipe->uf;
            $categoriaadministrativa = (strtolower($objescolaprofessor->tipo) == 'privada')? 'Privada' : 'Pública';
            $sql = "INSERT INTO imediaco_geo.escola(nome, codigoinep, uf, municipio, categoriaadministrativa, endereco) 
                VALUES('$objescolaprofessor->nome', '$objescolaprofessor->codigoinep', '$objescolaprofessor->uf', '$objescolaprofessor->municipio, '$categoriaadministrativa', '$endereco')";
            $this->bd->executarSQL($sql);
        }
        
        if(parent::temPermissao(array('administrador', 'editarequipes'))){
            echo "<script type='text/javascript'>window.opener.location.reload(); window.close();</script>";
        }else{
            if($executou){
                if($acao == 'inserir' OR $acao == 'semacao'){
                    if(empty($_SESSION[inseriuequipe_id])) $_SESSION[inseriuequipe_id] = $equipe->id;
                    echo "<div class='mensagemsucesso'>Inscrição gerada com sucesso!</div>";
                    if($equipe->pago == 'ISENTO'){
                        $mensagem = "<div>"
                            . "A inscrição da sua equipe foi realizada com o número <b>$equipe->id</b>.<br/>"
                            . "A inscrição da sua equipe foi <b>ISENTA</b> de pagamento.<br/>"
                            . "Você poderá editar a inscrição acessando a <a href='http://$_SERVER[HTTP_HOST]/olimpiadageografia/professor/login.php'>página de autenticação</a><br/>"
                            . "</div>";
                    }else{
                        $mensagem = "<div>"
                            . "A inscrição da sua equipe foi realizada com o número <b>$equipe->id</b>.<br/>"
                            . "A inscrição deve ser paga. Para efetuar o pagamento gere o boleto.<br/>"
                            . "</div>";
                        $mensagem .= "<div class='mensagem'>" . parent::botaoGerarBoleto($equipe->id) . "</div>";
                        $mensagem .= "<div>Você poderá gerar novamente o boleto, editar a inscrição ou acompanhar a confirmação do pagamento acessando a <a href='http://$_SERVER[HTTP_HOST]/olimpiadageografia/professor/login.php'>página de autenticação</a></div>";
                    }
                    echo $mensagem;
                    if($acao == 'inserir'){
                        $body = $mensagem . $mensagem2;
                        parent::enviaEmail($objprofessor->email, "Realização da inscrição na Olimpíada Brasileira de Geografia", $body);
                    }
                }else{
                    $_SESSION[mensagemsucesso] = "Operação $acao equipe executada com sucesso";
                    echo "<script type='text/javascript'>window.close();</script>";
                }   
            }else{
                echo "<div class='erro'>Erro ao gerar a inscrição! Tente novamente.</div>";
            }
        }
    }
    
    public function removerCaracterEspecialSimples($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 function pontuacao($equipe_id, $provafase_id=-1){
        $bd = new BD();
        $sql = "SELECT imediaco_geo.pontuacao($equipe_id, $provafase_id) AS pontuacao";
        $bd->executarSQL($sql);
        $obj = $bd->getObjeto();
        
        return $obj->pontuacao;
    }
    
    public function pontuacaoTotalProvaFase($provafase_id=-1){
        $bd = new BD();
        $sql = "SELECT questao.*, COALESCE(categoria.descricao, 'CATEGORIA ABERTA') AS categoria, categoria.peso AS pesocategoria 
                FROM imediaco_geo.questao 
                LEFT JOIN imediaco_geo.categoria ON questao.categoria_id = categoria.id 
                WHERE questao.status IN ('ATIVO') AND questao.provafase_id = '$provafase_id'
                ORDER BY questao.numero, categoria.descricao, categoria.id, questao.numero";
        $bd->executarSQL($sql);
        $valortotal = 0;
        while($objquestao = $bd->getObjeto()){
            $peso = ($objquestao->peso != null AND $objquestao->peso != '')? $objquestao->peso : 1;
            if($objquestao->pesocategoria != null AND $objquestao->pesocategoria != '') $peso = $peso * $objquestao->pesocategoria;
            if($objquestao->status == 'ATIVO') $valortotal += $peso;
        }
        
        return $valortotal;
    }
    
    public function selecionaCategorias($name, $defaultcategorias=null){
        $valores = array('indígenas', 'comunidade riberinha', 'população negra', 'quilombolas', 'pessoa com deficiência', 'outras comunidades tradicionais');
        $arraydefault = explode(',', $defaultcategorias);
        foreach($valores as $valor){
            $checked = (in_array($valor, $arraydefault))? 'checked' : null;
            echo "<nobr>[<input type='checkbox' name='$name' value='$valor' $checked />$valor]</nobr> &nbsp; ";
        }
    }
    
    public function concatenarArray($vetor, $separador=','){
        if(empty($vetor)) return null;
        $valores = ($vetor);
        $array = null;
        if(!empty($valores)){
            foreach($valores as $valor){
                $array[] = parent::acertarString($valor);
            }
        }
        return implode($separador, $array);
    }
    
    public function dadosCPF($cpf){
        $equipe = new Equipe();
        
        $obj = $equipe->getDadosEquipeProfessor($cpf);
        
        echo "<script type='text/javascript' class='modoajax'>";
        echo "if(document.getElementById('professor').value == ''){marcarCheckbox('professorcategorias[]', '$obj->professorcategorias', ',');}";
        echo "if(document.getElementById('professor').value == ''){document.getElementById('professor').value = '$obj->professor';}";
        echo "if(document.getElementById('professoremail').value == ''){document.getElementById('professoremail').value = '$obj->professoremail';}";
        echo "if(document.getElementById('professortelefone').value == ''){document.getElementById('professortelefone').value = '$obj->professortelefone';}";
        echo "if(document.getElementById('professorcelular').value == ''){document.getElementById('professorcelular').value = '$obj->professorcelular';}";
        echo "if(document.getElementById('professorsexo').value == ''){document.getElementById('professorsexo').value = '$obj->professorsexo';}";
        echo "if(document.getElementById('professorcor').value == ''){document.getElementById('professorcor').value = '$obj->professorcor';}";
        echo "</script>";
    }
    
    public function dadosEscola($codigoinep){
        $codigoinep = parent::soNumeros($codigoinep);
        
        $sql = "SELECT * FROM imediaco_geo.escola WHERE codigoinep = '$codigoinep' ORDER BY id DESC LIMIT 1";
        $this->bd->executarSQL($sql);
        $obj = $this->bd->getObjeto();
        
        echo "<script type='text/javascript' class='modoajax'>";
        echo "document.getElementById('escola').value = '$obj->nome';";
        echo "document.getElementById('municipio').value = '$obj->municipio';";
        echo "document.getElementById('uf').value = '$obj->uf';";
        $endereco = parent::acertarString(str_replace('"', '', $obj->endereco));
        echo "document.getElementById('logradouro').value = '$endereco';";
        echo "document.getElementById('complemento').value = '';";
        echo "document.getElementById('bairro').value = '$obj->localizacao';";
        echo "document.getElementById('cep').value = '37130000';";
        echo "document.getElementById('categoriaadministrativa').value = '$obj->categoriaadministrativa';";
        echo "if('$obj->nome' == '' && '$codigoinep' != ''){
//                document.getElementById('nomeescola').innerHTML = \"<font color='red'>Não encontrado codigo $codigoinep. Verifique se o código está correto e caso esteja, solicite o cadastro enviando e-mail para <a href='mailto:".parent::EMAIL."'>".parent::EMAIL."</a> informando o código INEP, o nome completo da escola, o município e a UF.</font>\";
//                alert('Código $codigoinep não encontrado na nossa base de dados.\\nVerifique se realmente o código está correto e caso esteja, por favor solicite o cadastro enviando um e-mail para ".parent::EMAIL.".');
                //se quiser fazer com que o proprio professor ao cadastrar preencha os campos para cadastrar a escola, comentar as 2 linhas acima e descomentar as abaixo
                document.getElementById('nomeescola').innerHTML = \"<font color='red'>Não encontrado código $codigoinep. Verifique se o código está correto e caso esteja:<br/>- preencha os campos abaixo relacionados a escola;<br/>- envie para o e-mail ".parent::EMAIL." o Comprovante de Inscrição e Situação Cadastral emitido pela receita federal (encontrado no endereço: http://servicos.receita.fazenda.gov.br/Servicos/cnpjreva/cnpjreva_solicitacao.asp).<br/>O não preenchimento correto e não comprovação da situação da escola poderá ocasionar a suspensão da mesma desta olimpíada.</font>\";
                alert('Código $codigoinep não encontrado na nossa base de dados.\\nVerifique se realmente o código está correto.');
                document.getElementById('escola').type = 'text';
                document.getElementById('municipio').type = 'text';
                document.getElementById('uf').type = 'text';
                document.getElementById('linhaendereco').style.display = 'table-row';
            }else{
                document.getElementById('nomeescola').innerHTML = '$obj->nome';
                document.getElementById('municipioescola').innerHTML = '$obj->municipio';
                document.getElementById('ufescola').innerHTML = '$obj->uf';
                document.getElementById('categoriaadministrativaescola').innerHTML = '$obj->categoriaadministrativa';
                document.getElementById('escola').type = 'hidden';
                document.getElementById('municipio').type = 'hidden';
                document.getElementById('uf').type = 'hidden';
                document.getElementById('linhaendereco').style.display = 'none';
            }";
        
        echo "if('$obj->categoriaadministrativa' == 'Privada'){document.getElementById('linhasolicitaisencao').style.display='none';}";
        
        echo "</script>";
    }
    public function boleto($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';
            $bairro = 'Centro';
            $cep = '37130001';
            $cidade = 'Alfenas';
            $uf = 'MG';
            $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);
            
            $enderecoboleto = "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";
            
            echo "<a href='$enderecoboleto' target='_blank' class='cartao'>Gerar Boleto $$ Clique aqui para gerar</a>";

            echo "<meta http-equiv='Refresh' content='0;URL={$enderecoboleto}' />";
            exit();
        }else{
            echo "<div class='erro'>DADOS DA EQUIPE NÃO ENCONTRADO!</div>";
        }
    }
}

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