<?php
include_once 'bd.php';

class Escola 
{
    public $bd;
    
    public $id;
    public $restricaoatendimento;
    public $nome;
    public $codigoinep;
    public $uf;
    public $municipio;
    public $localizacao;
    public $localidade;
    public $categoriaadministrativa;
    public $endereco;
    public $telefone;
    public $dependenciaadministrativa;
    public $categoriaprivada;
    public $conveniadapoderpublico;
    public $regulamentacao;
    public $porte;
    public $etapamodalidadeensino;
    public $outrasofertas;
    public $latitude;
    public $longitude;

    public function __construct() {
        $this->bd = new BD();
    }
    
    public function inserir(){
        $sql = "INSERT INTO imediaco_geo.escola (restricaoatendimento, nome, codigoinep, uf, municipio, localizacao, localidade, categoriaadministrativa, endereco, telefone, dependenciaadministrativa, categoriaprivada, conveniadapoderpublico, regulamentacao, porte, etapamodalidadeensino, outrasofertas, latitude, longitude)
                VALUES ('$this->restricaoatendimento', '$this->nome', '$this->codigoinep', '$this->uf', '$this->municipio', '$this->localizacao', '$this->localidade', '$this->categoriaadministrativa', '$this->endereco', '$this->telefone', '$this->dependenciaadministrativa', '$this->categoriaprivada', '$this->conveniadapoderpublico', '$this->regulamentacao', '$this->porte', '$this->etapamodalidadeensino', '$this->outrasofertas', '$this->latitude', '$this->longitude')";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('inserir escola', $sql, null);
            return true;
        }else{
            $_SESSION[erro][] = "Erro ao inserir escola";
            return false;
        }
    }
    
    public function editar(){
        $sql = "UPDATE imediaco_geo.escola SET
                restricaoatendimento = '$this->restricaoatendimento'
                ,nome = '$this->nome'
                ,codigoinep = '$this->codigoinep'
                ,uf = '$this->uf'
                ,municipio = '$this->municipio'
                ,localizacao = '$this->localizacao'
                ,localidade = '$this->localidade'
                ,categoriaadministrativa = '$this->categoriaadministrativa'
                ,endereco = '$this->endereco'
                ,telefone = '$this->telefone'
                ,dependenciaadministrativa = '$this->dependenciaadministrativa'
                ,categoriaprivada = '$this->categoriaprivada'
                ,conveniadapoderpublico = '$this->conveniadapoderpublico'
                ,regulamentacao = '$this->regulamentacao'
                ,porte = '$this->porte'
                ,etapamodalidadeensino = '$this->etapamodalidadeensino'
                ,outrasofertas = '$this->outrasofertas'
                ,latitude = '$this->latitude'
                ,longitude = '$this->longitude'
                WHERE id = '$this->id'";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('editar escola', $sql, null);
            return true;
        }else{
            $_SESSION[erro][] = "Erro ao editar escola";
            return false;
        }
    }
    
    public function excluir(){
        $sql = "DELETE FROM imediaco_geo.escola WHERE id = '$this->id'";
        $executou = $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        if($executou){
            $this->bd->log('excluir escola', $sql, null);
            return true;
        }else{
            $_SESSION[erro][] = "Erro ao excluir escola";
            return false;
        }
    }
    
    public function encontrar($id, $setdados=true){
        if(empty($id)) return null;
        
        $sql = "SELECT * FROM imediaco_geo.escola WHERE id = '$id'";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $obj = $this->bd->getObjeto();
        
        if($setdados){
            $this->id = $obj->id;
            $this->restricaoatendimento = $obj->restricaoatendimento;
            $this->nome = $obj->nome;
            $this->codigoinep = $obj->codigoinep;
            $this->uf = $obj->uf;
            $this->municipio = $obj->municipio;
            $this->localizacao = $obj->localizacao;
            $this->localidade = $obj->localidade;
            $this->categoriaadministrativa = $obj->categoriaadministrativa;
            $this->endereco = $obj->endereco;
            $this->telefone = $obj->telefone;
            $this->dependenciaadministrativa = $obj->dependenciaadministrativa;
            $this->categoriaprivada = $obj->categoriaprivada;
            $this->conveniadapoderpublico = $obj->conveniadapoderpublico;
            $this->regulamentacao = $obj->regulamentacao;
            $this->porte = $obj->porte;
            $this->etapamodalidadeensino = $obj->etapamodalidadeensino;
            $this->outrasofertas = $obj->outrasofertas;
            $this->latitude = $obj->latitude;
            $this->longitude = $obj->longitude;
        }
        
        return $obj;
    }
    
    public function encontrarCodigoInep($codigoinep, $setdados=true){
        if(empty($codigoinep)) return null;
        
        $sql = "SELECT * FROM imediaco_geo.escola WHERE codigoinep = '$codigoinep'";
        $this->bd->executarSQL($this->bd->substituiVazioPorNull($sql));
        $objcodigo = $this->bd->getObjeto();
        if(!empty($objcodigo->id)){
            $obj = $this->encontrar($objcodigo->id, $setdados);
        }
        
        return $obj;
    }
    
    public function salvar(){
        $obj = $this->encontrarCodigoInep($this->codigoinep, false);
        if(empty($obj->id)){
            $executou = $this->inserir();
        }else{
            $this->id = $obj->id;
            $executou = $this->editar();
        }
        
        return $executou;
    }
}
