<?php
include_once 'bd.php';

class Prova 
{
    public $bd;
    
    public $id;
    public $status;
    public $descricao;
    public $isentopagamento;
    public $datainscricaoinicio1;
    public $datainscricaofim1;
    public $datainscricaoinicio2;
    public $datainscricaofim2;
    
    public $datainiciofase1;
    public $datafimfase1;
    public $datainiciofase2;
    public $datafimfase2;
    public $datainiciofase3;
    public $datafimfase3;

    public function __construct() {
        $this->bd = new BD();
    }
    
    public function inserir(){
        $sql = "INSERT INTO imediaco_geo.prova (status, descricao, isentopagamento, datainscricaoinicio1, datainscricaofim1, datainscricaoinicio2, datainscricaofim2)
                VALUES ('$this->status', '$this->descricao', '$this->isentopagamento', '$this->datainscricaoinicio1', '$this->datainscricaofim1', '$this->datainscricaoinicio2', '$this->datainscricaofim2')";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('inserir prova', $sql, null);
            
            $sql = "SELECT id FROM imediaco_geo.prova WHERE descricao = '$this->descricao' ORDER BY id DESC";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $obj = $this->bd->getObjeto();
            $this->id = $obj->id;
            //fase 1
            $sql = "INSERT INTO imediaco_geo.provafase (prova_id, fase, datainicio, datafim)
                    VALUES ('$this->id', '1', '$this->datainiciofase1', '$this->datafimfase1')";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('inserir provafase 1', $sql, null);
            //fase 2
            $sql = "INSERT INTO imediaco_geo.provafase (prova_id, fase, datainicio, datafim)
                    VALUES ('$this->id', '2', '$this->datainiciofase2', '$this->datafimfase2')";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('inserir provafase 2', $sql, null);
            //fase 3
            $sql = "INSERT INTO imediaco_geo.provafase (prova_id, fase, datainicio, datafim)
                    VALUES ('$this->id', '3', '$this->datainiciofase3', '$this->datafimfase3')";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('inserir provafase 3', $sql, null);
            
            return true;
        }else{
            $_SESSION[erro][] = "Erro ao inserir prova";
            return false;
        }
    }
    
    public function editar(){
        $sql = "UPDATE imediaco_geo.prova SET
                status = '$this->status'
                ,descricao = '$this->descricao'
                ,isentopagamento = '$this->isentopagamento'
                ,datainscricaoinicio1 = '$this->datainscricaoinicio1'
                ,datainscricaofim1 = '$this->datainscricaofim1'
                ,datainscricaoinicio2 = '$this->datainscricaoinicio2'
                ,datainscricaofim2 = '$this->datainscricaofim2'
                WHERE id = '$this->id'";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('editar prova', $sql, null);
            //fase 1
            $sql = "UPDATE imediaco_geo.provafase SET
                    datainicio = '$this->datainiciofase1'
                    ,datafim = '$this->datafimfase1'
                    WHERE prova_id = '$this->id' AND fase = 1";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('editar provafase 1', $sql, null);
            //fase 2
            $sql = "UPDATE imediaco_geo.provafase SET
                    datainicio = '$this->datainiciofase2'
                    ,datafim = '$this->datafimfase2'
                    WHERE prova_id = '$this->id' AND fase = 2";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('editar provafase 2', $sql, null);
            //fase 3
            $sql = "UPDATE imediaco_geo.provafase SET
                    datainicio = '$this->datainiciofase3'
                    ,datafim = '$this->datafimfase3'
                    WHERE prova_id = '$this->id' AND fase = 3";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            $this->bd->log('editar provafase 3', $sql, null);
            
            return true;
        }else{
            $_SESSION[erro][] = "Erro ao editar prova";
            return false;
        }
    }
    
    public function excluir(){
        $sql = "DELETE FROM imediaco_geo.prova WHERE id = '$this->id'";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('excluir prova', $sql, null);
            return true;
        }else{
            unset($_SESSION[erro]);
            $sql = "UPDATE imediaco_geo.prova SET status = 'INATIVO' WHERE id = '$this->id'";
            $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
            if($executou){
                $this->bd->log('inativar prova', $sql, null);
                return true;
            }else{
                $_SESSION[erro][] = "Erro ao excluir prova";
                return false;
            }
        }
    }
    
    public function encontrar($id){
        $sql = "SELECT * FROM imediaco_geo.prova WHERE id = '$id'";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $obj = $this->bd->getObjeto();
        
        $this->id = $obj->id;
        $this->status = $obj->status;
        $this->descricao = $obj->descricao;
        $this->isentopagamento = $obj->isentopagamento;
        $this->datainscricaoinicio1 = $obj->datainscricaoinicio1;
        $this->datainscricaofim1 = $obj->datainscricaofim1;
        $this->datainscricaoinicio2 = $obj->datainscricaoinicio2;
        $this->datainscricaofim2 = $obj->datainscricaofim2;
        //fase 1
        $sql = "SELECT * FROM imediaco_geo.provafase WHERE prova_id = '$id' AND fase = 1";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $obj1 = $this->bd->getObjeto();
        $this->datainiciofase1 = $obj1->datainicio;
        $this->datafimfase1 = $obj1->datafim;
        //fase 2
        $sql = "SELECT * FROM imediaco_geo.provafase WHERE prova_id = '$id' AND fase = 2";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $obj1 = $this->bd->getObjeto();
        $this->datainiciofase2 = $obj1->datainicio;
        $this->datafimfase2 = $obj1->datafim;
        //fase 3
        $sql = "SELECT * FROM imediaco_geo.provafase WHERE prova_id = '$id' AND fase = 3";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $obj1 = $this->bd->getObjeto();
        $this->datainiciofase3 = $obj1->datainicio;
        $this->datafimfase3 = $obj1->datafim;
        
        return $obj;
    }
}