<?php
include_once '../classes/relatorio.php';
include_once '../classes/questao.php';

class ProvaGabarito extends Relatorio {
    
    public function __construct() {
        parent::checarPermissao(array('administrador', 'elaboradorquestoes'));
        parent::__construct();
        $this->exibirLinkVoltar = true;
        $this->tiposPermitidos = array('html', 'pdf');
    }
    
    public function filtro() {
        echo "<fieldset><legend>Filtro</legend>";
        echo "<table align='center'>";
        echo "<tr style='display:block'><td>";
        $provafase_id = (isset($_REQUEST[provafase_id]))? $_REQUEST[provafase_id] : $_SESSION[provafase_id];
        echo "Prova Fase: ";parent::selectProvaFase($provafase_id, true);
        echo "</td></tr>";
        echo "</table>";
        echo "</fieldset>";
    }

    public function conteudo(){
        $questao = new Questao();
        
        echo "<h1>Gabarito da Prova</h1>";
        
        $where[] = "questao.status IN ('ATIVO', 'ANULADA')";
        if(!empty($_REQUEST[provafase_id])) $where[] = "questao.provafase_id = '$_REQUEST[provafase_id]'";
        else $where[] = '1=2';
        $where = implode(' AND ', $where);
        
        $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 $where
                ORDER BY questao.numero, categoria.descricao, categoria.id, questao.numero";
        $this->bd->executarSQL($sql);
        $categoria_id = null;
        echo "<table>";
        $valortotal = 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>";
            $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;
            echo "<tr><td colspan='2'>Peso: $peso<br/></td></tr>";
            $listaalternativas = $questao->encontrarAlternativas($objquestao->id);
            foreach($listaalternativas as $alternativa){
                if($alternativa->correta){
                    $correta = "&nbsp;&#10004;&nbsp;";
                    $color = "color='green'";
                }else{
                    $correta = "&nbsp;";
                    $color = '';
                }
                $letradescricao = ($alternativa->letra == 'V')? '' : (($alternativa->letra == 'F')? '' : $alternativa->letra);
                if($objquestao->status != 'ATIVO') $letradescricao = "<font color='red'>$objquestao->status</font> $letradescricao";
                echo "<tr><td style='vertical-align: top;'><p class='linhasemquebra'><font $color>({$correta}<b>$letradescricao</b>&nbsp;)</font></p></td><td>$alternativa->descricao</td></tr>";
                echo "<tr><td colspan='2'><br/></td></tr>";
            }
            echo "<tr><td colspan='2'>";
            echo "<hr/>";
            echo "</td></tr>";
        }
        echo "</table>";
        
        echo "<br/><br/><div align='center'><b>Total Pontos: </b>$valortotal</div>";
    }
}

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