<?php
include_once '../classes/pagina.php';
include_once '../classes/prova.php';

class CRUDProva extends Pagina {
    
    public function __construct() {
        parent::checarPermissao(array('administrador'));
        parent::__construct();
        if(empty($_REQUEST[executarAcao]) AND empty($_REQUEST[acao])) $this->includehead = "<style>body{max-width: 95%;}</style>";
    }
    
    public function corpo() {
        if(empty($_REQUEST[acao]) AND empty($_REQUEST[executarAcao])) echo "<div><a href='home.php' class='voltar'>Voltar para a tela inicial</a></div><br/>";
        
        if($_REQUEST[executarAcao] == 'inserir' OR $_REQUEST[executarAcao] == 'editar' OR $_REQUEST[executarAcao] == 'excluir'){
            $this->salvar($_REQUEST[executarAcao]);
        }elseif($_REQUEST[acao] == 'inserir' OR $_REQUEST[acao] == 'editar' OR $_REQUEST[acao] == 'excluir'){
            $this->formulario($_REQUEST[acao], $_REQUEST[id]);
        }else{
            $this->lista();
        }
    }
    
    public function lista(){
        echo "<div align='center'><a href='crudprova.php?acao=inserir' target='_blank' class='adicionar'>Inserir Nova Prova</a></div><br/>";
        
        echo "<form action='crudprova.php' method='POST'>";
        echo "<fieldset><legend>Filtro</legend>";
        echo "Descrição: <input type='text' name='descricao' value='$_REQUEST[descricao]' size='30' />";
        echo "<div align='center'><input type='submit' value='Filtrar' class='pesquisar' /></div>";
        echo "</fieldset>";
        echo "</form>";
        echo "<br/>";
        
        $where[] = '1=1';
        if(!empty($_REQUEST[descricao])) $where[] = "prova.descricao LIKE '%$_REQUEST[descricao]%'";
        $where = implode(' AND ', $where);
        
        $atributos[select] = "prova.descricao AS prova, DATE_FORMAT(prova.datainscricaoinicio1, '%d/%m/%Y') AS data_inscricao_inicio_1, DATE_FORMAT(prova.datainscricaofim1, '%d/%m/%Y') AS data_inscricao_fim_1, DATE_FORMAT(prova.datainscricaoinicio2, '%d/%m/%Y') AS data_inscricao_inicio_2, DATE_FORMAT(prova.datainscricaofim2, '%d/%m/%Y') AS data_inscricao_fim_2"
                . ", DATE_FORMAT(provafase1.datainicio, '%d/%m/%Y') AS data_inicio_fase_1, DATE_FORMAT(provafase1.datafim, '%d/%m/%Y') AS data_fim_fase_1"
                . ", DATE_FORMAT(provafase2.datainicio, '%d/%m/%Y') AS data_inicio_fase_2, DATE_FORMAT(provafase2.datafim, '%d/%m/%Y') AS data_fim_fase_2"
                . ", DATE_FORMAT(provafase3.datainicio, '%d/%m/%Y') AS data_inicio_fase_3, DATE_FORMAT(provafase3.datafim, '%d/%m/%Y') AS data_fim_fase_3"
                . ", prova.isentopagamento AS isento_pagamento, prova.status ";
        $atributos[from] = "imediaco_geo.prova "
                . "LEFT JOIN imediaco_geo.provafase provafase1 ON prova.id = provafase1.prova_id AND provafase1.fase = 1 "
                . "LEFT JOIN imediaco_geo.provafase provafase2 ON prova.id = provafase2.prova_id AND provafase2.fase = 2 "
                . "LEFT JOIN imediaco_geo.provafase provafase3 ON prova.id = provafase3.prova_id AND provafase3.fase = 3 ";
        $atributos[where] = $where;
        $atributos[orderBy] = 'prova.datainscricaoinicio1 DESC, prova.id DESC';
        $atributos[chave] = 'prova.id';
        $atributos[limit] = 200;
        
        $links[] = array('endereco'=>'crudprova.php', 'acao'=>'editar', 'imagem'=>"../imagens/editar.png", 'target'=>'_blank');
        $links[] = array('endereco'=>'crudprova.php', 'acao'=>'excluir', 'imagem'=>"../imagens/excluir.png", 'target'=>'_blank');
        
        parent::tabela($atributos, $links);
    }

    public function formulario($acao, $id=null){
        if(!empty($id)){
            $prova = new Prova();
            $obj = $prova->encontrar($id);
        }
        
        echo "<h1>Cadastro de Provas</h1>";
        
        echo "<form action='crudprova.php' method='POST'>";
        echo "<input type='hidden' name='executarAcao' value='$acao' />";
        echo "<input type='hidden' name='id' value='$id' />";
        
        echo "<table class='formulario'>";
        
        $default = (empty($obj->status))? 'ATIVO' : $obj->status;
        echo "<tr><th>STATUS:</th><td>";echo parent::montaSelect('status', array('ATIVO', 'INATIVO'), $default, true);echo "</td></tr>";
        echo "<tr><th>Descrição:</th><td><input type='text' name='descricao' value='$obj->descricao' size='60' required /></td></tr>";
        echo "<tr><th>Isento de Pagamento:</th><td>";echo parent::montaSelect('isentopagamento', array('SIM', 'NÃO'), $obj->isentopagamento, true);echo "</td></tr>";
        echo "<tr><td colspan='2'><br/></td></tr>";
        echo "<tr><th>Data Inscrição 1 Início:</th><td><input type='text' class='data' name='datainscricaoinicio1' value='".parent::decodificarData($prova->datainscricaoinicio1, false)."' required /></td></tr>";
        echo "<tr><th>Data Inscrição 1 Fim:</th><td><input type='text' class='data' name='datainscricaofim1' value='".parent::decodificarData($prova->datainscricaofim1, false)."' required /></td></tr>";
        echo "<tr><th>Data Inscrição 2 Início:</th><td><input type='text' class='data' name='datainscricaoinicio2' value='".parent::decodificarData($prova->datainscricaoinicio2, false)."' required /></td></tr>";
        echo "<tr><th>Data Inscrição 2 Fim:</th><td><input type='text' class='data' name='datainscricaofim2' value='".parent::decodificarData($prova->datainscricaofim2, false)."' required /></td></tr>";
        echo "<tr><td colspan='2'><br/></td></tr>";
        echo "<tr><th>Data Início Fase 1:</th><td><input type='text' class='data' name='datainiciofase1' value='".parent::decodificarData($prova->datainiciofase1, false)."' required /></td></tr>";
        echo "<tr><th>Data Fim Fase 1:</th><td><input type='text' class='data' name='datafimfase1' value='".parent::decodificarData($prova->datafimfase1, false)."' required /></td></tr>";
        echo "<tr><th>Data Início Fase 2:</th><td><input type='text' class='data' name='datainiciofase2' value='".parent::decodificarData($prova->datainiciofase2, false)."' required /></td></tr>";
        echo "<tr><th>Data Fim Fase 2:</th><td><input type='text' class='data' name='datafimfase2' value='".parent::decodificarData($prova->datafimfase2, false)."' required /></td></tr>";
        echo "<tr><th>Data Início Fase 3:</th><td><input type='text' class='data' name='datainiciofase3' value='".parent::decodificarData($prova->datainiciofase3, false)."' required /></td></tr>";
        echo "<tr><th>Data Fim Fase 3:</th><td><input type='text' class='data' name='datafimfase3' value='".parent::decodificarData($prova->datafimfase3, false)."' required /></td></tr>";
        echo "</td></tr>";
        
        echo "</table>";
        
        echo "<br/>";
        echo "<div align='center'>";
        echo "<input type='submit' name='cadastrar' value='".ucwords($acao)."' class='confirmar'/> &nbsp;&nbsp; ";
        echo "<input type='button' name='cancelar' value='Cancelar' onclick=\"window.close();\" class='cancelar' />";
        echo "</div>";
        
        echo "</form>";
    }
    
    public function salvar($acao){
        $prova = new Prova();
        
        if(!empty($_POST[id])) $prova->encontrar($_POST[id]);
        
        $prova->status = parent::acertarString($_POST[status]);
        $prova->descricao = parent::acertarString($_POST[descricao]);
        $prova->isentopagamento = parent::acertarString($_POST[isentopagamento]);
        $prova->datainscricaoinicio1 = parent::codificarData($_POST[datainscricaoinicio1], false) . ' 00:00:00';
        $prova->datainscricaofim1 = parent::codificarData($_POST[datainscricaofim1], false) . ' 23:59:59';
        $prova->datainscricaoinicio2 = parent::codificarData($_POST[datainscricaoinicio2], false) . ' 00:00:00';
        $prova->datainscricaofim2 = parent::codificarData($_POST[datainscricaofim2], false) . ' 23:59:59';
        $prova->datainiciofase1 = parent::codificarData($_POST[datainiciofase1], false) . ' 00:00:00';
        $prova->datafimfase1 = parent::codificarData($_POST[datafimfase1], false) . ' 23:59:59';
        $prova->datainiciofase2 = parent::codificarData($_POST[datainiciofase2], false) . ' 00:00:00';
        $prova->datafimfase2 = parent::codificarData($_POST[datafimfase2], false) . ' 23:59:59';
        $prova->datainiciofase3 = parent::codificarData($_POST[datainiciofase3], false) . ' 00:00:00';
        $prova->datafimfase3 = parent::codificarData($_POST[datafimfase3], false) . ' 23:59:59';
        
        switch($acao){
            case 'inserir':
                $executou = $prova->inserir();
                break;
            case 'editar':
                $executou = $prova->editar();
                break;
            case 'excluir':
                $executou = $prova->excluir();
                break;
        }
        
        echo "<script type='text/javascript'>window.opener.location.reload(); window.close();</script>";
    }
}

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