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

class CRUDUsuario extends Pagina {
    
    public function __construct() {
        parent::checarPermissao(array('administrador'));
        parent::__construct();
    }
    
    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='crudusuario.php?acao=inserir' target='_blank' class='adicionar'>Inserir Novo Usuário</a></div><br/>";
        
        $where[] = '1=1';
        $where = implode(' AND ', $where);
        
        $atributos[select] = 'usuario.email, usuario.nome, usuario.perfil';
        $atributos[from] = 'imediaco_geo.usuario';
        $atributos[where] = $where;
        $atributos[orderBy] = 'usuario.nome';
        $atributos[chave] = 'usuario.id';
        
        $links[] = array('endereco'=>'crudusuario.php', 'acao'=>'editar', 'imagem'=>"../imagens/editar.png", 'target'=>'_blank');
        $links[] = array('endereco'=>'crudusuario.php', 'acao'=>'excluir', 'imagem'=>"../imagens/excluir.png", 'target'=>'_blank');
        
        parent::tabela($atributos, $links);
    }

    public function formulario($acao, $id=null){
        if(!empty($id)){
            $usuario = new Usuario();
            $obj = $usuario->encontrar($id);
        }
        
        echo "<h1>Cadastro de Usuários de Questões</h1>";
        
        echo "<form action='crudusuario.php' method='POST'>";
        echo "<input type='hidden' name='executarAcao' value='$acao' />";
        echo "<input type='hidden' name='id' value='$id' />";
        
        echo "<table class='formulario'>";
        
        echo "<tr><th>E-mail:</th><td><input type='text' name='email' value='$obj->email' size='60' required /></td></tr>";
        
        $mensagem = (!empty($obj->senha))? "caso queira alterar a senha, apague e digite a nova senha neste campo" : null;
        echo "<tr><th>Senha:</th><td><input type='password' name='senha' value='$obj->senha' size='60' required /><i><font size='1'>$mensagem</font></i></td></tr>";
        
        echo "<tr><th>Nome:</th><td><input type='text' name='nome' value='$obj->nome' size='60' required /></td></tr>";
        
        $perfis = explode(',', $usuario->perfil);
        echo "<tr><th>Perfis:</th><td>";
        $checked = (in_array('administrador', $perfis))? 'checked' : null;
        echo "<input type='checkbox' name='perfil[]' value='administrador' $checked />Administrador &nbsp;&nbsp; <br/>";
        $checked = (in_array('elaboradorquestoes', $perfis))? 'checked' : null;
        echo "<input type='checkbox' name='perfil[]' value='elaboradorquestoes' $checked />Elaborar Questões &nbsp;&nbsp; <br/>";
        $checked = (in_array('editarequipes', $perfis))? 'checked' : null;
        echo "<input type='checkbox' name='perfil[]' value='editarequipes' $checked />Administrar Equipes (não confirma pagamento) &nbsp;&nbsp; <br/>";
        $checked = (in_array('confirmapagamento', $perfis))? 'checked' : null;
        echo "<input type='checkbox' name='perfil[]' value='confirmapagamento' $checked />Importar Arquivo Confirmação de Pagamento &nbsp;&nbsp; <br/>";
        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){
        $usuario = new Usuario();
        
        if(!empty($_POST[id])) $usuario->encontrar($_POST[id]);
        
        $usuario->email = parent::acertarString($_POST[email]);
        $usuario->senha = ($_POST[senha] == $usuario->senha)? $usuario->senha : md5($_POST[senha]);
        $usuario->nome = parent::acertarNome($_POST[nome]);
        $usuario->perfil = implode(',', $_POST[perfil]);
        
        switch($acao){
            case 'inserir':
                $executou = $usuario->inserir();
                break;
            case 'editar':
                $executou = $usuario->editar();
                break;
            case 'excluir':
                $executou = $usuario->excluir();
                break;
        }
        
        echo "<script type='text/javascript'>window.opener.location.reload(); window.close();</script>";
    }
}

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