<?php
include_once '../classes/relatorio.php';
include_once '../classes/questao.php';
include_once '../classes/resposta.php';
include_once '../classes/sessao.php';
include_once '../classes/equipe.php';

class Prova extends Relatorio {
    
    public function __construct() {
//        parent::checarPermissao(array('administrador', 'editarequipes'));
        parent::__construct();
        $this->exibirLinkVoltar = false;
        $this->tiposPermitidos = array('html', 'pdf');
    }
    
    public function filtro() {
        echo "<fieldset><legend>Filtro</legend>";
        echo "<table align='center'>";
        echo "<tr style='display:block'><td>";
        if(parent::temPermissao(array('administrador', 'editarequipes'))){
            echo "Número da Equipe: <input type='text' name='equipe_id' value='$_REQUEST[equipe_id]' size='5' required /> &nbsp; ";
        }
        echo "Fase: <input type='text' name='fase' value='$_REQUEST[fase]' size='2' required /> &nbsp; ";
        echo "Exibir Data/Hora Registro: ";parent::montaSelect('exibirDataHoraRegistro', array('SIM', 'NÃO'), $_REQUEST[exibirDataHoraRegistro]);echo " &nbsp; ";
        echo "</td></tr>";
        echo "</table>";
        echo "</fieldset>";
    }

    public function conteudo(){
        if(parent::temPermissao(array('administrador', 'editarequipes'))){
            $equipe_id = $_REQUEST[equipe_id];
        }else{
            $equipe_id = $_SESSION[equipe_id];
        }
        
        if(empty($equipe_id) OR empty($_REQUEST[fase])){
            echo "<div class='erro'>Sem sessão!</div>";
            echo "<meta http-equiv = 'Refresh' content = '10;URL=login.php' />Redirecionando para o login... <a href='login.php'>Clique aqui</a> caso não seja redirecionado.";
            exit();
        }
        
        $questao = new Questao();
        $resposta = new Resposta();
        
        $sql = "SELECT prova.descricao AS prova, equipe.* FROM imediaco_geo.equipe INNER JOIN imediaco_geo.prova ON equipe.prova_id = prova.id WHERE equipe.id = '$equipe_id'";
        $this->bd->executarSQL($sql);
        $objequipe = $this->bd->getObjeto();
        echo "<h1>$objequipe->prova<br/>FASE $_REQUEST[fase]</h1>";
        echo "<h2>$equipe_id - $objequipe->nome</h2>";
        
        $sql = "SELECT integranteequipe.* FROM imediaco_geo.integranteequipe WHERE integranteequipe.equipe_id = '$equipe_id'";
        $this->bd->executarSQL($sql);
        while($obj = $this->bd->getObjeto()){
            echo "<h4>$obj->nome</h4>";
        }
        
        $sql = "SELECT sessao.* FROM imediaco_geo.sessao INNER JOIN imediaco_geo.provafase ON sessao.provafase_id = provafase.id WHERE sessao.equipe_id = '$equipe_id' AND provafase.fase = '$_REQUEST[fase]'";
        $this->bd->executarSQL($sql);
        $objsessao = $this->bd->getObjeto();
        
        echo "<p>Início: ".parent::decodificarData($objsessao->datahora)."</p>";
        
        $sql = "SELECT questao.*, COALESCE(categoria.descricao, 'CATEGORIA ABERTA') AS categoria 
                FROM imediaco_geo.questao 
                LEFT JOIN imediaco_geo.categoria ON questao.categoria_id = categoria.id 
                WHERE questao.status = 'ATIVO' AND questao.provafase_id = '$objsessao->provafase_id'
                ORDER BY questao.numero, categoria.descricao, categoria.id, questao.numero";
        $this->bd->executarSQL($sql);
        $categoria_id = null;
        $gabarito = null;
        echo "<table>";
        $questoessemresposta = 0;
        while($objquestao = $this->bd->getObjeto()){
            if($categoria_id != $objquestao->categoria_id){
                echo "<tr><td colspan='2'><h3>$objquestao->categoria</h3></td></tr>";
                $categoria_id = $objquestao->categoria_id;
            }
            $numeroquestao = $this->formataNumeroQuestao($objquestao->numero);
            echo "<tr><td style='vertical-align: top;'><p><b>$numeroquestao-</b> </p></td><td>$objquestao->descricao</td></tr>";
            echo "<tr><td colspan='2'><br/></td></tr>";
            $listaalternativas = $questao->encontrarAlternativas($objquestao->id);
            $marcada = false;
            foreach($listaalternativas as $alternativa){
                $datahoraresposta = null;
                $resposta_id = $resposta->existe($equipe_id, $objquestao->id, $alternativa->id);
                if($resposta_id){
                    if($_REQUEST[exibirDataHoraRegistro] == 'SIM'){
                        $resposta->encontrar($resposta_id);
                        $datahoraresposta = "Respondido em: " . parent::decodificarData($resposta->datahoraregistro) . "";
                    }
                    $checked = "X(<ins><b><font color='blue'>$alternativa->letra</font></b></ins>)";
                    $gabarito[] = "$objquestao->numero-$alternativa->letra";
                    $marcada = true;
                }else{
                    $checked = "(<font color='grey'>$alternativa->letra</font>)";
                }
                echo "<tr><td style='vertical-align: top;'><p class='linhasemquebra'>$checked</p></td><td>$datahoraresposta $alternativa->descricao</td></tr>";
                echo "<tr><td colspan='2'><br/></td></tr>";
            }
             if($objquestao->peso == 0){
                $marcada = true;
            }
            if(!$marcada){
                $questoessemresposta++;
                echo "<tr><td colspan='2'><div class='mensagemalerta'>Questão sem responsta!</div></td></tr>";
            }
            echo "<tr><td colspan='2'>";
            echo "<hr/>";
            echo "</td></tr>";
        }
        echo "</table>";
        
        echo "<br/><div align='center'>";
        if(!empty($objsessao->datahorafinalizacao)){
            echo "<br/><div align='center'>";
            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";
            echo "</div>";
        }else{
            echo "Essa prova não foi finalizada.";
        }
        echo "</div>";
    }
}

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