<?php

$jSon['retorno'] = "Retorno da Ação!";

$getPost = filter_input_array(INPUT_POST, FILTER_DEFAULT);
$setPost = array_map("strip_tags", $getPost);
$post = array_map("trim", $setPost);

//print_r($post);
$action = $post['action'];
$jSon = array();

unset($post['action']);
unset($post['SendPostForm']);

if ($action):
    require ('../../../_app/Config.inc.php');
    require('../../_models/AdminUsuario.class.php');
endif;

switch ($action):
    case 'create':
        $Login = new Login(1);

        unset($post['confirmar_senha']);
        $post['usuario_data_cad'] = date("Y-m-d H:i:s");
        $post['usuario_senha'] = $Login->PassGeneration();

        ///plano
        $ReadPlano = new Read;
        $ReadPlano->ExeRead("tp_planos", "WHERE plano_id = :id", "id={$post['plano_id']}");

        $meses = $ReadPlano->getResult()[0]['plano_periodo'];
        $data = mktime(date("H"), date("i"), date("s"), date("m") + $meses, date("d"), date("Y"));
        $post['usuario_data_exp'] = date("Y-m-d", $data);

        $cadastra = new AdminUsuario;
        $cadastra->ExeCreate($post);

        if (!$cadastra->getResult()):
//                WSErro($cadastra->getError()[0], $cadastra->getError()[1]);
            $jSon['error'] = ['Ocorreu um erro no cadastro. Por favor entre em contato com o suporte do sistema.', WS_ERROR];
        else:
            $jSon['error'] = ['O usuario foi cadastrado com sucesso!', WS_ACCEPT];
//                header('Location: painel.php?exe=usuario/index&create=true');
            $Read = new Read;
            $Read->FullRead("SELECT usuario_nome, usuario_email, usuario_senha FROM tp_usuarios WHERE usuario_email = :email", "email={$post['usuario_email']}");

            if ($Read->getRowCount() > 0):
                extract($Read->getResult()[0]);

                $usuario_senha = base64_decode($usuario_senha);

                //montando os dados para o envio do email
                $Dados['Assunto'] = 'Bem Vindo a OGEFX';
                $Dados['DestinoNome'] = $usuario_nome;
                $Dados['DestinoEmail'] = $usuario_email;
                $Dados['RemetenteNome'] = 'Equipe OGEFX';
                $Dados['RemetenteEmail'] = 'suporte@ogefx.com.br';
                $Dados['Mensagem'] = '<img src="http://www.ogefx.com.br/painel/images/logo-ogefx.png" align="center"><hr><h3>Olá, ' . $usuario_nome . ',</h3> <br> Segue seus dados de acesso a nossa plataforma.<br><br>Usuário: ' . $usuario_email . '<br><br>Senha: ' . $usuario_senha . '<br><br>Link direto da plataforma : <a href="http://www.ogefx.com.br/painel">Clique aqui</a><br><br><br>Atenciosamente,<br><br>Equipe OGEFX<br><br><i><small>Não é necessário responder a esse e-mail.</small></i>';

                $Email = new Email;
                $Email->Enviar($Dados);
                if ($Email->getError()[1] == WS_ACCEPT):
                    $jSon['error'] = ["Sua senha foi encontrada e enviada para seu e-mail: <b>{$usuario_email}</b>.", WS_ACCEPT];
                else:
                    $jSon['error'] = [$Email->getError()[0], $Email->getError()[1]];
                endif;

            endif;
        endif;

        break;
    case 'read':
        break;
    case 'update':
        $userid = $post['usuario_id'];
        ///plano
        $ReadPlano = new Read;
        $ReadPlano->ExeRead("tp_planos", "WHERE plano_id = :id", "id={$post['plano_id']}");

        $meses = $ReadPlano->getResult()[0]['plano_periodo'];

        $dta = $post['usuario_data_cad'];
        $dt = date("Y-m-d", strtotime(date("Y-m-d", strtotime($dta)) . " +{$meses} month"));
        $post['usuario_data_exp'] = $dt;

        unset($post['usuario_id'], $post['usuario_data_cad']);

        $update = new AdminUsuario;
        $update->ExeUpdate($userid, $post);

        if (!$update->getResult()):
            $jSon['error'] = ['Ocorreu um erro na atualização. Por favor entre em contato com o suporte do sistema.', WS_ERROR];
        else:
            $jSon['error'] = ['O usuario foi atualizado com sucesso!', WS_ACCEPT];
        endif;
        break;
    case 'delete':
        $id = $post['id'];
        $Read = new Read;
        $Read->ExeRead("tp_usuarios", "WHERE usuario_id = :id", "id={$id}");
        $id_user = $Read->getResult()['usuario_id'];

        $Read->ExeRead("tp_aluno", "WHER usuario_id = :id", "id={$id}");
        if ($Read->getResult()):
            $jSon['error'] = ['Esse usuario possui alunos cadastrados, Antes de excluir vc precisa deletar os alunos'];
        endif;

        $Delete = new Delete;
        $Delete->ExeDelete("tp_usuarios", "WHERE usuario_id = :id", "id={$post['usuario_id']}");
        break;
    case 'plano':
        $userid = $post['usuario_id'];
        ///plano
        $ReadPlano = new Read;
        $ReadPlano->ExeRead("tp_planos", "WHERE plano_id = :id", "id={$post['plano_id']}");

        $meses = $ReadPlano->getResult()[0]['plano_periodo'];
        
        $ReadUser = new Read;
        $ReadUser->ExeRead("tp_usuarios", "WHERE usuario_id = :id", "id={$userid}");
        $dta = $ReadUser->getResult()[0]['usuario_data_exp'];

        $dt = date("Y-m-d", strtotime(date("Y-m-d", strtotime($dta)) . " +{$meses} month"));
        $post['usuario_data_exp'] = $dt;

        unset($post['usuario_id'], $post['action']);

        $update = new Update;
        $update->ExeUpdate("tp_usuarios", $post, "WHERE usuario_id = :id", "id={$userid}");

        if (!$update->getResult()):
            $jSon['error'] = ['Ocorreu um erro na atualização. Por favor entre em contato com o suporte do sistema.', WS_ERROR];
        else:
            $jSon['error'] = ["Atualizado com sucesso!", WS_ACCEPT];
        endif;
        break;
    case 'email':
        $email = $post['usuario_email'];

        if (isset($post['id'])):
            $where = "WHERE usuario_email = :email AND usuario_id != :id";
            $parse = "email={$email}&id={$post['id']}";
        else:
            $where = "WHERE usuario_email = :email";
            $parse = "email={$email}";
        endif;
        $Read = new Read;
        $Read->ExeRead("tp_usuarios", $where, $parse);
        if ($Read->getRowCount() > 0):
            echo 'false';
            exit();
        else:
            echo 'true';
            exit();
        endif;
        break;
    case 'cpf':
        $cpf = $post['usuario_cpf'];

        print_r($post);
        if (isset($post['id'])):
            $where = "WHERE usuario_cpf = :cpf AND usuario_id != :id";
            $parse = "cpf={$cpf}&id={$post['id']}";
        else:
            $where = "WHERE usuario_cpf = :cpf";
            $parse = "cpf={$cpf}";
        endif;
        $Read = new Read;
        $Read->ExeRead("tp_usuario", $where, $parse);
        if ($Read->getRowCount() > 0):
            echo 'false';
            exit();
        else:
            echo 'true';
            exit();
        endif;
        break;
    case 'cnpj':
        $cnpj = $post['usuario_cnpj'];
        if (isset($post['id'])):
            $where = "WHERE usuario_cnpj = :cnpj AND usuario_id != :id";
            $parse = "cnpj={$cnpj}&id={$post['id']}";
        else:
            $where = "WHERE usuario_cnpj = :cnpj";
            $parse = "cnpj={$cnpj}";
        endif;
        $Read = new Read;
        $Read->ExeRead("tp_usuario", $where, $parse);
        if ($Read->getRowCount() > 0):
            echo 'false';
            exit();
        else:
            echo 'true';
            exit();
        endif;
        break;
    default :
        $jSon['error'] = ["Erro ao selecionar Ação!", "error"];
endswitch;

echo json_encode($jSon);
