<?php
/*
 * Geothms/Forms/formGeoThmGCLCProverEuk.php
 * 
 * Copyright 2009, 2018 Pedro Quaresma <pedro@mat.uc.pt>
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 * MA 02110-1301, USA.
 */

  
// Caso em que a prova foi feita pelo GCLCproverEuk



// é igual ao ficheiro referente ao GCLCprover, isto dado que isto já
// está a montante da conversão. E dado que não se mostra a conversão
// do código Eukleides em XML


// cria uma pesquisa para obter a informação da figura, qualquer
// (eventual) referência bibliográfica que haja terá de ser obtida
// aparte para salguardar o caso em que não há nenhuma referência
// bibliográfica.

// vai obter a restante informação (sem ref bib)
$sqlDemPrv = "SELECT demId,code,proof,proofXML,dateSubmission,userId,status
                FROM demonstrations
               WHERE teoId='$pTeoId' 
                 AND proverId='$pPrvId'";

$resultadoDemPrv = mysqli_query($ligacao,$sqlDemPrv);
$linhaDemPrv = mysqli_fetch_assoc($resultadoDemPrv);


$pDemId          = trim($linhaDemPrv['demId']);
$pCode           = trim($linhaDemPrv['code']);
$pProof          = $linhaDemPrv['proof'];    // ficheiro PDF
$pProofXML       = $linhaDemPrv['proofXML']; // Ficheiro XML bzipado
$pDateSubmission = trim($linhaDemPrv['dateSubmission']);
$pUserIdPrv      = trim($linhaDemPrv['userId']);
//$pBibrefPrv      = trim($linhaDemPrv['bibrefId']);
$pStatus         = trim($linhaDemPrv['status']);

// Obtém o nome do Provador
$sqlPrv = "SELECT name,version
             FROM provers
            WHERE proverId='$pPrvId'";
$resultadoPrv = mysqli_query($ligacao,$sqlPrv);
$linhaPrv = mysqli_fetch_assoc($resultadoPrv);
  
// Obtém o identificador do Utilizador
$sqlUsr = "SELECT name,email
             FROM users
            WHERE userId='$pUserIdPrv'";
$resultadoUsr = mysqli_query($ligacao,$sqlUsr);
$linhaUsr = mysqli_fetch_assoc($resultadoUsr);


$pPrvName    = trim($linhaPrv['name']);
$pPrvVersion = trim($linhaPrv['version']);

$pUserName   = trim($linhaUsr['name']);
$pUserEmail  = trim($linhaUsr['email']);


// e agora o ficheiro PDF correspondente

$vNameProofPDF = 'proof'.$pUserId.'-'.$nDem.'.pdf';

ob_start();
print $pProof; 
$pdffile=fopen($vNameProofPDF,"w");
fwrite($pdffile,ob_get_contents()); 
fclose($pdffile); 
ob_end_clean();    

// e agora o ficheiro XML (primeiro o BZ2)

$vNameProofBZ2 = 'proof'.$pUserId.'-'.$nDem.'.xml.bz2';

ob_start();
print $pProofXML; 
$bz2file=fopen($vNameProofBZ2,"w");
fwrite($bz2file,ob_get_contents()); 
fclose($bz2file); 
ob_end_clean();    

// e agora descompacta este para obter o ficheiro XML

$vNameProofXML = 'proof'.$pUserId.'-'.$nDem.'.xml';
system("rm $vNameProofXML");
system("bunzip2 $vNameProofBZ2");


// obtêm os dados sobre as Medidas de eficiência

$sqlProofMeasures = "SELECT elimSteps,geoSteps,algSteps,timeCPU,
                            computerSpecs
                       FROM measures
                      WHERE measuresId='$pDemId'";

$resultadoProofMeasures = mysqli_query($ligacao,$sqlProofMeasures);


$linhaProofMeasures = mysqli_fetch_assoc($resultadoProofMeasures);

$vElimSteps     = trim($linhaProofMeasures['elimSteps']);
$vGeoSteps      = trim($linhaProofMeasures['geoSteps']);
$vAlgSteps      = trim($linhaProofMeasures['algSteps']);
$vTimeCPU       = trim($linhaProofMeasures['timeCPU']);
$vComputerSpecs = trim($linhaProofMeasures['computerSpecs']);


// a tabela
echo "<tr>";
echo "<tr>";
echo "<td width='25%' colspan='2'><span class='ficha'>Prover Name</span></td>";
echo "<td width='25%' colspan='2'>$pPrvName</td>";
echo "<td width='25%' colspan='2'><span class='ficha'>Prover Version</span></td>";
echo "<td width='25%' colspan='2'>$pPrvVersion</td>";
echo "</tr>";
echo "<tr>"; 
echo "<td width='25%' colspan='2'><span class='ficha'>Date of Submission</span></td>";
echo "<td width='25%' colspan='2'>$pDateSubmission</td>"; 
echo "<td width='25%' colspan='2'><span class='ficha'>Contributor's Name</span></td>";
echo "<td width='25%' colspan='2'>$pUserName</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='25%' colspan='2'><span class='ficha'>Bibliographic Reference</span></td>"; 
echo "<td width='75%' colspan='6'>$pBibrefPrv"; 
// Pode haver mais do que uma referência bibliográfica para a mesma
// figura, como tal cria-se uma tabela para as colocar
echo "<table>\n"; // vai conter uma só linha
echo "<tr>\n"; 

$sqlBibDem = "SELECT demonstrations.demId,teoId,bibrefId 
                FROM demonstrations INNER JOIN bibproofs 
                     ON demonstrations.demId=bibproofs.demId  
               WHERE teoId='$pTeoId'";

$resultadoBibDem = mysqli_query($ligacao,$sqlBibDem);


$nlinhasBibDem =  mysqli_num_rows($resultadoBibDem);

if ($nlinhasBibDem==0) {
  echo "<td>&nbsp;</td>";
}
else {
  // mostra cada uma das referências bibliográficas
  $nBibDem=0; // inicializa contador a zero
  while ($linhaBibDem = mysqli_fetch_assoc($resultadoBibDem)) {
    
    $nBibDem+=1; // incrementa o contador de imagens
    
    $pBibRefDem  = trim($linhaBibDem['bibrefId']);

    echo "<td>$pBibRefDem"; 

    if ($nBibDem<$nlinhasBibDem) // coloca um ";" a separar as diferentes referências bibliográficas
      echo ";</td>";
    else
      echo "</td>";
  }
}
echo "</tr>\n";    
echo "</table>\n"; 
echo "</td>\n";
echo "<tr>";
echo "<td width='12.5%' colspan='1'><span class='ficha'>Proof Status</span></td>";
if ($pStatus=='Proved')
  echo "<td width='25%' colspan='2'><font color='green'><b>$pStatus</b></font></td>";
else
  echo "<td width='25%' colspan='2'><font color='red'><b>$pStatus</b></font></td>";
echo "<td width='12.5%' colspan='1'><span class='ficha'>Proof (PDF file)</span></td>";
echo "<td width='50%' colspan='4'><a href='$vNameProofPDF'>$pTeoName $vNameProofPDF</a></td>";
echo "</tr>";
echo "<tr>";
echo "<td width='12.5%' colspan='1'><span class='ficha'>Proof (XML file)</span></td>";
echo "<td width='87.5%' colspan='7'><a href='$vNameProofXML'>$pThmName $vNameProofXML</a></td>";
echo "</tr>";
echo "<tr>";
echo "<tr>";
echo "<td width='100%' colspan='8' align='center'>Measures of efficiency</td>";
echo "</tr>";
echo "<tr>";
$totalSteps = $vElimSteps+$vGeoSteps+$vAlgSteps;
echo "<td width='25%' colspan='2'><span class='ficha'>Elimination Steps</span></td>";
echo "<td width='25%' colspan='2'>$vElimSteps</td>";
echo "<td width='25%' colspan='2'><span class='ficha'>Geometric Steps</span></td>";
echo "<td width='25%' colspan='2'>$vGeoSteps</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='25%' colspan='2'><span class='ficha'>Algebraic Steps</span></td>";
echo "<td width='25%' colspan='2'>$vAlgSteps</td>";
echo "<td width='25%' colspan='2'><span class='ficha'>Total Steps</span></td>";
echo "<td width='25%' colspan='2'>$totalSteps</td>";
echo "</tr>";
echo "<tr>";
echo "<td width='25%' colspan='2'><span class='ficha'>Time spent (seconds)</span></td>";
echo "<td width='25%' colspan='2' align='left'>$vTimeCPU</td>";
echo "<td width='50%' colspan='4' align='left'>$vComputerSpecs</td>";
echo "</tr>";

?>