private static function showForm($action) { // Postando? if (count($_POST) > 0) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13); /* @var $evento Evento */ $questionario = $inscricao->evento()->getQuestionarioAvaliacao(); $perguntas = $questionario->getPerguntas(); $jaRespondeu = $inscricao->hasAvaliacaoResposta(1); $mensagem = null; foreach ($perguntas as $pergunta) { $resp = trim($_POST['input_' . $pergunta->id]); // var_dump($resp); if ($pergunta->obrigatoria && $resp == '') { setFlashError("Por favor, responda as perguntas obrigatórias (marcadas com *)"); break; } if ($resp != '') { $resposta = Respostas::getInstance()->createResposta($pergunta, $inscricao, $resp); $mensagem .= $pergunta->titulo . ': ' . $resp . '<br>'; } } if (!hasFlashError()) { setFlash("sucesso"); // Enviar email com respostas // $mensagem="Respostas:<br><br>".$mensagem; // $inscricao->evento()->organizador()->enviarEmail( // $inscricao->evento()->organizador()->email, // "Resposta - ".$questionario->titulo." - ".$inscricao->evento()->titulo." - ". $inscricao->pessoa()->nome, // $mensagem // ); // Creditar o gamification if (TGO_EVENTO_GAMIFICATION === true && !$jaRespondeu) { Gamification::getInstance()->broadcast('event_feedback', $inscricao->id_pessoa, $inscricao); } } } else { // Obter inscrição $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13); if ($inscricao == null) { die("Inscrição não localizada"); } // Validar inscrição if ($inscricao->confirmado != '1') { die("Inscrição não confirmada"); } } return 'avaliacao.php'; }
function column_title($item) { /* @var $inscricao Inscricao */ $inscricao = $this->itemsObj[$item['id']]; $link = $inscricao->getLinkPagamento(); if ($inscricao->pessoa() == null) { return "Inscrição sem pessoa?"; } // Começar retorno $return = '<a href="admin.php?page=Pessoas&action=view&id=' . $item['id_pessoa'] . '">' . PLib::capitalize_name($inscricao->pessoa->nome, 35) . '</a><br> <img src="' . $inscricao->pessoa()->getPictureUrl(80) . '" style="width:80px; margin-right: 8px; float:left;">'; $return .= '</b> '; // Ações $actions = array('link' => '<a href="' . $link . '" target=_blank>Link Wizard</a>', 'edit' => '<a href="admin.php?page=Inscricoes&action=edit&id=' . $item['id'] . '">Editar</a>'); if (PLib::coalesce($inscricao->confirmado, 0) == 0) { $actions['delete'] = '<a href="admin.php?page=Inscricoes&action=delete&id=' . $item['id'] . '&id_evento=' . $item['id_evento'] . '">Excluir</a>'; } // Contar inscrições $inscricoes = count(Inscricoes::getInstance()->getByPessoa($item['id_pessoa'])); if ($inscricoes == 1) { $inscricoes = "*"; } else { $inscricoes = "({$inscricoes})"; } $return .= $inscricoes . '<br>Ticket: ' . $item['id']; $return .= '<br>Inscrição: ' . Plib::date_relative($item['data_inscricao'], true) . " (" . PLib::days_between_dates($item['data_inscricao']) . " dias)"; if ($item['id_preco'] != "") { $return .= '<br>Categoria: ' . $inscricao->categoria()->titulo; } if ($item['id_preco'] != "") { $return .= '<br>Lote: ' . $inscricao->preco()->titulo; } if ($inscricao->valor_inscricao) { $return .= '<br>Valor Inscrição: ' . PLib::format_cash($inscricao->valor_inscricao); } // if ($item['codigo_gateway']){ //$return.= '<br>'.$item['codigo_gateway']; // } $return = '<div class=list_inscricoes_title>' . $return . '</div>'; $return .= ' ' . $this->row_actions($actions); return $return; }
public static function dispatcher() { header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_STRICT); $app = new \Slim\Slim(); \Slim\Slim::registerAutoloader(); $app->contentType('application/json; charset=utf-8'); $app->config('debug', true); // echo "<pre>"; if (WP_DEBUG) { $root = strtolower($app->request()->getRootUri()) . '/api'; } else { $root = "/api"; } // var_dump($root); // $root = "/api"; // $root = strtolower($app->request()->getRootUri()) . '/api'; // else // $root = "/api"; // var_dump($root); // $root = null; // $root = var_dump($app->request()->getRootUri()); // die(); // }); // var_dump($app->request->headers); $app->hook('slim.before.dispatch', function () use($app) { // Conferir se é url que exige autenticação $req = $_SERVER['REQUEST_URI']; if (strpos($req, '/autenticar/') !== false) { return; } $headers = self::request_headers(); // var_dump($headers);die(); $app = \Slim\Slim::getInstance(); $erro = null; $api_user_id = $headers['X-API-USER-ID']; $api_token = $headers['X-API-TOKEN']; if ($api_user_id == null || $api_token == null) { $erro = "É preciso informar X-API-USER-ID e X-API-TOKEN no header."; } else { // Sanitizar user_id /* @var $pessoa Pessoa */ $pessoa = Pessoas::getInstance()->getById($api_user_id); // Sanitizar token if ($pessoa == null) { $erro = 'Não te encontramos em nossa base de dados...'; } else { if (md5($pessoa->id . '_' . $pessoa->password) != $api_token) { $erro = 'Password inválido'; } } } if ($erro) { $app->response->headers['X-Authenticated'] = 'False'; $app->halt('401', '{"error":{"text": "' . $erro . '" }}'); } }); $app->group($root, function () use($app) { // '/' $app->get('/', function () use($app) { echo json_encode(array("bem vindo", "a API")); }); // Autenticate $app->post('/autenticar/', function () use($app) { // Obter pessoa, e usuário $email = $_POST['email']; $password = $_POST['password']; if ($email == '' || !filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(array('Erro' => 'Informe um endereço de email válido.')); return; } /* @var $pessoa Pessoa */ $pessoa = Pessoas::getInstance()->getByEmail($email); if ($pessoa == null) { echo json_encode(array('Erro' => 'Não te encontramos em nossa base de dados...')); return; } // Validar senha, antes de mais nada // @TODO Buscar user do wordpress que seja esta pessoa e verificar se está ativo, senão, é pessoa normal // Aqui, só pode ser um participante do grupo ou inscrito em algum evento $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); $return = PLib::object_to_array($return); // $return = PLib::array_utf8_encode($return); echo json_encode($return, JSON_NUMERIC_CHECK); return; }); $app->group('/gamification', function () use($app) { $app->get('/ranking', function () use($app) { $ranking = Gamification::getInstance()->getUsersPointsRanking(300); // var_dump($ranking); $nRanking = ControllerApi::decorateRanking($ranking); echo json_encode($nRanking); }); $app->get('/user/:id', function ($id) use($app) { $pessoa = ControllerApi::getPessoa($id, true); if ($pessoa) { /* @var $gamification Gamification */ $gamification = Gamification::getInstance(); $gamification->setUserId($id); $nPessoa = ControllerApi::decorateUserGamification($pessoa); $badges = $gamification->getBadges(); $nBadges = ControllerApi::decorateBadges($badges); $return = array('user' => $nPessoa, 'badge' => $nBadges); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); }); // '/' $app->get('/notificacao/', function () use($app) { die("notificação"); }); // Retorna uma inscrição $app->get('/inscricao/:idInscricao/simples/', function ($idInscricao) use($app) { if (strlen($idInscricao) > 10) { $transactionId = $idInscricao; $inscricao = Inscricoes::getInstance()->callbackPagamento(1, $transactionId); if (get_class($inscricao) != 'Inscricao') { $erro = 'Transação não identificada..'; } } else { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { $erro = 'Inscrição não localizada (' . $idInscricao . ')'; } } if ($erro) { echo json_encode(array('erro' => $erro)); } else { if ($erro == null) { if ($inscricao->confirmado == true) { $mensagem = "wizard_fim_pagamento_confirmado"; } else { $mensagem = "wizard_fim_pagamento_aguardando_confirmacao"; } $mensagem = Mensagens::getInstance()->get($mensagem, $inscricao->evento(), $inscricao->pessoa(), $inscricao, true); $nInscricao = array('confirmado' => $inscricao->confirmado, 'mensagem' => $mensagem); $return = array('inscricao' => $nInscricao); $nInscrito = PLib::object_to_array($return); echo json_encode($nInscrito, JSON_NUMERIC_CHECK); } } }); // Redireciona para URL de pagamento no gateway - Por enquanto só funciona pro devfest $app->get('/inscricao/:idInscricao/pagar/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada (' . $idInscricao . ')')); return; } $urlRetorno = BASE_URL . '/confirmacao?ticket=' . $inscricao->id * 333; $url = \lib\PagSeguroUtil::getUrlPagamento($inscricao, $urlRetorno); $return = array('url' => $url); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Retorna dados de uma pessoa $app->get('/pessoa/:idPessoa/', function ($idPessoa) use($app) { $pessoa = ControllerApi::getPessoa($idPessoa, true); if ($pessoa) { $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); // $return = PLib::array_utf8_encode($return); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); // Retorna as inscrições de uma pessoa $app->get('/pessoa/:idPessoa/inscricoes/', function ($idPessoa) use($app) { $pessoa = ControllerApi::getPessoa($idPessoa, true); if ($pessoa) { // Obter inscrições da pessoa $inscricoes = Inscricoes::getInstance()->getByPessoa($pessoa->id); $nInscricoes = array(); if ($inscricoes == null) { echo json_encode(array('mensagem' => 'Sem inscrições desta pessoa')); return; } foreach ($inscricoes as $inscricao) { $nInscricoes[] = ControllerApi::decorateInscricaoTeceiros($inscricao); } $return = array('inscricoes' => $nInscricoes); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); } }); // Realiza uma inscrição $app->post('/inscrever/:idEvento/', function ($idEvento) use($app) { $idPessoa = $_POST['id_pessoa']; $nome = trim(ucfirst($_POST['nome'])); $email = trim(strtolower($_POST['email'])); $cpf = trim($_POST['cpf']); $celular = PLib::only_numbers($_POST['celular']); if (strpos($celular, '55') === 0) { $celular = substr($celular, 2); } /* @var $evento Evento */ $evento = Eventos::getInstance()->getById($idEvento); if ($evento == null) { echo json_encode(array('erro' => 'Evento não localizado na base de dados (' . $idEvento . ')')); return; } $validacao = PLib::coalesce($evento->validacao_pessoa, 'email'); if ($idPessoa == null && ($nome == null || $celular == null || $email == null || ${$validacao} == null)) { echo json_encode(array('erro' => 'Envie todos os dados (' . $nome . $email . $celular . ').' . print_r($_POST, true))); return; } if ($idPessoa == null && !filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(array('erro' => 'Email inválido')); return; } if ($idPessoa == null && strlen($celular) < 8) { echo json_encode(array('erro' => 'Celular inválido')); return; } // Mesmo sem id de pessoa, tentar encontrar pessoa por email if ($idPessoa == null) { $pessoa = Pessoas::getInstance()->getByMd5($email); if ($pessoa != null) { $idPessoa = $pessoa->id; } } // $validacao='cpf'; // if ($validacao=='cpf' && $cpf!=null && !PLib::validade_cpf($cpf)){ // echo json_encode(array('erro' => 'CPF inválido ('.$cpf.')')); // return; // } // Incluir pessoa /* @var $pessoa Pessoa */ if ($idPessoa == null) { /* @var $pessoa Pessoa */ $pessoa = new Pessoa(); $pessoa->nome = $nome; $pessoa->email = $email; $pessoa->celular = $celular; if ($validacao == 'cpf') { $pessoa->cpf = PLib::str_mask(PLib::only_numbers($cpf), '###.###.###-##'); } // PLib::var_dump($pessoa); $pessoa = Pessoas::getInstance()->insert($pessoa); } else { $pessoa = Pessoas::getInstance()->getById($idPessoa); if ($nome != null && strlen($nome) > 2) { $pessoa->nome = $nome; } if ($celular != null && strlen($celular) > 2) { $pessoa->celular = $celular; } $pessoa->save(); } // Extras? Pegar do post.... xeu pensar - ter como limitar e tal.. como tornar mais seguro? $extras = array(); foreach ($_POST as $key => $value) { if ($key == 'id_pessoa' || $key == 'nome' || $key == 'cpf' || $key == 'celular' || $key == 'email') { continue; } $extra = array('titulo' => $key, 'valor' => $value); $extras[$key] = $extra; } if (count($extras) > 0) { $pessoa->setExtras($extras); $pessoa->save(); } //PLib::var_dump($pessoa->getExtrasArray()); //PLib::var_dump($pessoa);die(); $idPessoa = $pessoa->id; // Verificar se já está inscrita.... hum, tem algumas situações aqui $inscricao = Inscricoes::getInstance()->getByEventoPessoaConfirmado($idEvento, $idPessoa); if ($inscricao != null) { echo json_encode(array('erro' => "Você já está inscrito e confirmado para este evento!")); return; } // Já salvar registro de inscrição $inscricao = Inscricoes::getInstance()->certificarInscricao($evento, $pessoa, $evento->confirmacao == "preinscricao"); $nInscrito = ControllerApi::decorateInscricao($inscricao); $return = array('inscricao' => $nInscrito); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/', function () use($app) { $eventos = Eventos::getInstance()->getAll(); if ($eventos == null) { echo json_encode(array('erro' => 'Nenhum evento registrado....')); return; } $events = array(); /* @var $evento Evento */ foreach ($eventos as $evento) { if ($evento->preInscricao()) { continue; } $nEvento = ControllerApi::decorateEvento($evento, false); $events[] = $nEvento; } $events = PLib::object_to_array($events); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/futuros/', function () use($app) { $eventos = Eventos::getInstance()->getAcontecendoFuturos(); if ($eventos) { $events = array(); /* @var $evento Evento */ foreach ($eventos as $evento) { $nEvento = ControllerApi::decorateEvento($evento, false); $events[] = $nEvento; } $events = PLib::object_to_array($events); echo json_encode($events, JSON_NUMERIC_CHECK); } }); // Return "current" events $app->get('/eventos/atual/', function () use($app) { $evento = ControllerApi::getEventoAtual(); if ($evento == null) { echo json_encode(array('erro' => 'Não existe um evento atual')); return; } $evento = ControllerApi::decorateEvento($evento, false); $events = PLib::object_to_array($evento); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Return "current" events $app->get('/eventos/terceiros/', function () use($app) { // Obter eventos de outros sites de eventos // $sites = array( // ); // $eventosArray = array(); // foreach ($sites as $site) { // // Initiate curl // $ch = curl_init(); // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // curl_setopt($ch, CURLOPT_URL, $site . '/api/eventos/futuros/'); // $result = curl_exec($ch); // curl_close($ch); //// var_dump($result); // if ($result) { // $eventosJson = json_decode($result, true); //// var_dump($eventosJson); // if ($eventosJson) { // foreach ($eventosJson as $evento) { //// $evento = Eventos::getInstance()->populate($evento); // $eventosArray[] = $evento; // } // } else { // echo "nune " . $site; // } // } else { //// echo "none ".$site; // } // } // // Ordernar //// var_dump($eventosArray); // usort($eventosArray, 'ControllerApi::ordem'); //// Eventos::getInstance()->ordenar($eventosArray,true); //// $eventosReturn=array(); //// foreach($eventosArray as $evento) { //// $eventosReturn[]= ControllerApi::decorateEvento($evento, false); //// } // // $eventosReturn = PLib::object_to_array($eventosArray); // echo json_encode($eventosReturn, JSON_NUMERIC_CHECK); }); // Retorna um evento e seus dados $app->get('/evento/:idEvento/', function ($idEvento) use($app) { $evento = Eventos::getInstance()->getById($idEvento); if ($evento == null) { echo json_encode(array('erro' => 'Evento não localizado na base de dados (' . $idEvento . ')')); return; } $nEvento = ControllerApi::decorateEvento($evento, true); $events = PLib::object_to_array($nEvento); echo json_encode($events, JSON_NUMERIC_CHECK); }); // Retorna os inscritos no evento $app->get('/inscritos/:idEvento/', function ($idEvento) use($app) { $inscritos = Inscricoes::getInstance()->getByEvento($idEvento, null, "ev_pessoas.nome"); // var_dump($inscritos); $registrations = array(); /* @var $inscrito Inscricao */ foreach ($inscritos as $inscrito) { $nInscrito = ControllerApi::decorateInscricao($inscrito); $registrations[] = $nInscrito; } $registrations = PLib::object_to_array($registrations); echo json_encode($registrations, JSON_NUMERIC_CHECK); }); // Dá presença a um inscrito $app->post('/inscricao/self_chekin/', function () use($app) { /* @var $inscricao Inscricao */ $inscricao = null; $identificacao = $_POST['identificacao']; // email - ou id_evento-id_inscricao-id_pessoa if (substr_count($identificacao, '-') === 2) { $id_evento = substr($identificacao, 0, strpos($identificacao, '-')); $id_inscricao = substr($identificacao, strpos($identificacao, '-') + 1); $id_pessoa = substr($id_inscricao, strpos($identificacao, '-') + 1); $id_inscricao = substr($id_inscricao, 0, strpos($identificacao, '-')); // var_dump($id_evento); // var_dump($id_inscricao); // var_dump($id_pessoa); $inscricao = Inscricoes::getInstance()->getById($id_inscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada...')); return; } else { if ($inscricao->id_pessoa != $id_pessoa) { echo json_encode(array('erro' => 'As informações não batem! Inscrição X Pessoa')); return; } else { if ($inscricao->id_evento != $id_evento) { echo json_encode(array('erro' => 'As informações não batem! Inscrição X Evento')); return; } } } } else { if (filter_var($identificacao, FILTER_VALIDATE_EMAIL) !== false) { // $evento = $evento = ControllerApi::getEventoAtual(); if ($evento == null) { echo json_encode(array('erro' => 'Não existe um evento atual')); return; } $pessoa = Pessoas::getInstance()->getByEmail(strtolower(trim($identificacao))); if ($pessoa == null) { echo json_encode(array('erro' => 'Não te encontramos em nossa base de dados (' . $identificacao . ')')); return; } $inscricao = Inscricoes::getInstance()->getByEventoPessoa($evento->id, $pessoa->id); if ($inscricao == null) { echo json_encode(array('erro' => 'Você não se inscreveu pra este evento!')); return; } } else { echo json_encode(array('erro' => 'Do que você está falando afinal?')); return; } } // Fazer - retornar $inscricao->presenca(); $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $return = PLib::object_to_array($nInscrito); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Setar dados da inscrição - por enquanto apenas categoria $app->post('/inscricao/:idInscricao/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } // Categoria - Como bloquear mudar a categoria? Depois de que momento não pode mudar mais? $id_categoria = $_POST['id_categoria']; $inscricao->setCategoria($id_categoria); $inscricao->save(); $return = array('inscricao' => $inscricao); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Retorna uma inscrição $app->get('/inscricao/:idInscricao/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao, e o evento referente */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nInscrito = PLib::object_to_array($nInscrito); echo json_encode($nInscrito, JSON_NUMERIC_CHECK); }); // Confirma um inscrito $app->post('/inscricao/:idInscricao/confirmar/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } // Se evento pago, verificar se informações vieram no post if ($inscricao->valor_inscricao > 0 && $_POST['forma_pagamento'] == null) { $return = array('erro' => 'É preciso informar a forma de pagamento da insrição.'); } else { if ($inscricao->valor_inscricao > 0 && $_POST['id_pessoa_confirmacao'] == null) { $return = array('erro' => 'É preciso informar a pessoa que está confirmando o pagamento.'); } else { if ($_POST['id_pessoa_confirmacao'] == null) { $return = array('erro' => 'É preciso informar a pessoa que está confirmando a inscrição.'); } else { if (Pessoas::getInstance()->getById($_POST['id_pessoa_confirmacao'])->id_user == null) { $return = array('erro' => 'O usuário confirmando precisa ser um admin.'); } else { $inscricao->id_pessoa_confirmacao = $_POST['id_pessoa_confirmacao']; if ($inscricao->confirmado != 1) { $inscricao = $inscricao->confirmar($_POST['forma_pagamento'], $inscricao->valor_inscricao); } $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nEvento = ControllerApi::decorateEvento($inscricao->evento(), true); $return = array('evento' => $nEvento, 'inscricao' => $nInscrito); } } } } $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Dá presença a um inscrito $app->get('/inscricao/:idInscricao/presente/', function ($idInscricao) use($app) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($idInscricao); if ($inscricao == null) { echo json_encode(array('erro' => 'Inscrição não localizada na base de dados (' . $idInscricao . ')')); return; } $inscricao = $inscricao->presenca(); $nInscrito = ControllerApi::decorateInscricao($inscricao, true); $nEvento = ControllerApi::decorateEvento($inscricao->evento(), true); $return = array('evento' => $nEvento, 'inscricao' => $nInscrito); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Atualiza dados de uma pessoa $app->post('/pessoa/:identificacao/', function ($identificacao) use($app) { /* @var $pessoa Pessoa */ $identificacao = urldecode($identificacao); $pessoa = Pessoas::getInstance()->getByMd5($identificacao); if ($pessoa == null) { echo json_encode(array('erro' => 'Pessoa nao localizada na base de dados (' . $identificacao . ')')); return; } // Extras? $extras = $_POST['extras']; if ($extras) { foreach ($extras as $chave => $valor) { $pessoa->setExtra($chave, ucfirst($chave), $valor); } $pessoa->save(); } $pessoa = Pessoas::getInstance()->getByMd5($identificacao); $nPessoa = ControllerApi::decoratePessoa($pessoa); $return = array('pessoa' => $nPessoa); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // Obter todas pessoas $app->get('/pessoas/todas/', function () use($app) { /* @var $pessoas Pessoa[] */ $pessoas = Pessoas::getInstance()->getAll(); $return = array(); foreach ($pessoas as $pessoa) { if ($pessoa->getCountConfirmados()) { $return[] = ControllerApi::decoratePessoa($pessoa); } } $return = array('pessoas' => $return); $return = PLib::object_to_array($return); echo json_encode($return, JSON_NUMERIC_CHECK); }); // $app->get('/reset/', function () use ($app) { // // Zera todos os dados do site... // if (DB_NAME == 'emjf_wpjf' || DB_NAME == 'emjf') { // /* @var $wpdb wpdb */ // $sql = "UPDATE ev_inscricoes SET confirmado=NULL, data_pagamento=NULL, data_confirmacao=NULL, valor_pago=NULL, taxa_cobranca=NULL, valor_liquido=NULL,codigo_pagamento=NULL, formapagamento_pagseguro=NULL,presente=NULL,status_gateway=NULL,forma_pagamento_gateway=NULL,codigo_gateway=NULL,data_atualizacao_gateway=NULL,vencido=NULL,data_vencido=NULL,data_cancelamento=NULL,forma_pagamento=NULL,id_situacao=NULL"; // $return = array('sucesso' => 'Dados resetados'); // echo json_encode($return, JSON_NUMERIC_CHECK); // } else { // $return = array('erro' => 'Ops.. aqui não pode!'); // echo json_encode($return, JSON_NUMERIC_CHECK); // } // }); }); $app->run(); }
$exibirTitulo = false; $exibirResumo = false; $exibirResumo = $template == 3; $exibirTitulo = $template == 3; // Ter evento em mãos $evento = get_the_evento(); //var_dump($evento); // Postando if (count($_POST) > 0) { // Sanitizar e validar entrada de dados $dados = false; $erro = null; $avancar = false; // Etapa 1 if ($etapa == 1) { $result = Inscricoes::getInstance()->aplicarTicket($evento, $_POST['ticket']); if ($result !== true) { $erro = $result; } else { $etapa = $etapa + 1; } } // Etapa 2 if ($etapa == 2) { $nome = sanitize_text_field($_POST['nome']); if (!$nome) { $erro = "Informe seu nome"; } $dados = $nome != null; } }
/** * Retorna se a pessoa está inscrito no evento informado */ public function hasInscricaoEventoConfirmado($idEvento) { return Inscricoes::getInstance()->getByEventoPessoaConfirmado($idEvento, $this->id) != null; }
<?php use lib\PagSeguroUtil; use TiagoGouvea\PLib; $perguntas = Perguntas::getInstance()->getByQuestionario(1); $inscritosAvaliacao = Inscricoes::getInstance()->getPresentesComAvaliacao($evento->id); ?> <div class="wrap"> <?php menuEvento($evento, 'evento-inscricoes', null, 'Avaliações'); ?> <div id="poststuff"> <?php require_once 'avaliacoes_resumo.php'; ?> <div id="postbox-container-2" class="postbox-container"> <div id="postexcerpt" class="postbox "> <h3 class="hndle"><span>Avaliações</span></h3> <div class="inside"> <table width="100%"> <tr> <th>Pessoa</th> <?php foreach ($perguntas as $pergunta) { ?> <th><?php echo $pergunta->titulo; ?> </th>
public static function import() { die("Ops! Apagar tudo?"); try { $gamification = Gamification::getInstance(); echo "<H1>Importando dados...</H1>"; // Resetar Gamification $gamification->clearAllData(); // Modelo GDG // Obter todos usuários // Obter eventos de 1 de agosto em diante $eventos = Eventos::getInstance()->getPassados(); foreach ($eventos as $evento) { if (strtotime($evento->data) < strtotime('2015-08-01')) { continue; } // Obter todas presenças - pontuar echo "Evento {$evento->id} - {$evento->titulo} - {$evento->data} - "; $inscricoes = Inscricoes::getInstance()->getPresentes($evento->id); echo count($inscricoes) . " presentes <br>"; foreach ($inscricoes as $inscricao) { // if ($inscricao->id_pessoa!=23) continue; /* @var @inscricao Inscricao */ $gamification->setUserId($inscricao->id_pessoa); $dino = false; $inicio = $evento->data . ($evento->hora ? " " . $evento->hora : ''); // Clean Code if ($evento->id == 1065) { // var_dump("dino?"); // Dino? if ($inscricao->pessoa()->getCountConfirmadoAntesCleanCode() > 0) { $gamification->executeEvent('before_gamification', $inscricao, $inicio); $dino = true; } } // Primeira presença? if (!$dino && $inscricao->pessoa()->getCountPresentes() == 1 && $inscricao->pessoa()->getCountConfirmados() <= 2) { $gamification->executeEvent('first_presence', $inscricao, $inicio); } else { // Só esteve presente, pontuar $gamification->executeEvent('event_presence', $inscricao, $inicio); } // Se respondeu pesquisa, pontuar if ($inscricao->hasAvaliacao()) { $gamification->executeEvent('event_feedback', $inscricao, $inscricao->getAvaliacaoResposta(1)->dat_resposta); } } } // The End echo "<br>Gamification points fully updated!<br>"; self::showLevelRanking(); } catch (Exception $e) { echo "Exception: " . $e->getMessage(); } }
function template_include_evento($template_path) { // O conteudo é um post type tgo_evento if (get_post_type() == 'tgo_evento') { if (is_single()) { // Obter o evento // É uma inscrição? if (get_query_var('inscricao') != null) { if ($_GET['cancelar'] != null) { // Cancelando inscrição, validar pessoa na url /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($_GET['ticket']); if ($inscricao->id_pessoa != $_GET['cancelar']) { die; } $inscricao->cancelar(); } else { // Chamar wizard da inscrição (outra classe) $etapa = $_POST['etapa']; // Instanciar Wizard $idEvento = get_the_ID(); $ticket = $_GET['ticket']; $wizard = new WizardInscricao($idEvento, $ticket); // var_dump($etapa); if ($etapa != '' && $etapa >= 1) { $evento = get_the_evento(); if ($evento->fb_conversion_track) { add_action('wp_head', 'getEventoFacebookPixel'); } if ($evento->tw_conversion_track) { add_action('wp_head', 'getEventoTwConversionTrack'); } } return PLUGINPATH . '/templates/wizard-inscricao.php'; } } else { if (get_query_var('servico') && get_query_var('ticket') != null) { // Serviço de pagamento externo ControllerInscricoes::direcionarServicoPagamento(get_query_var('servico'), get_query_var('ticket')); return; } else { if (is_avaliacao()) { $template = ControllerQuestionarios::dispatcher('responder'); } else { if (is_certificado()) { ControllerInscricoes::certificado(get_query_var('certificado') / 13); return; } else { if (get_query_var('mobile') != null) { $template = 'mobile.php'; } else { if (get_query_var('aplicarDesconto') != null) { // Chamar form para aplicar desconto $template = 'wizard-desconto.php'; } else { if (get_query_var('set_meio_pagamento') != null) { // Setar meio de pagamento ControllerInscricoes::setMeioPagamento($_SESSION['id_inscricao'], $_GET['set_meio_pagamento']); return; } else { $template = 'single-tgo_evento.php'; } } } } } } } if ($template) { $template_path = templateLocate($template); } if ($template_path == null) { die("Sem template ({$template}) para inclusão."); } } } return $template_path; }
public static function setMeioPagamento($id_inscricao, $set_meio_pagamento) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById($id_inscricao); $inscricao->meio_pagamento = ucfirst($set_meio_pagamento); $inscricao->evento()->organizador()->enviarEmail($inscricao->evento()->organizador()->email, 'Meio de Pagamento - Inscrição: ' . $id_inscricao . ' - ' . $set_meio_pagamento, Mensagens::getInstance()->get('email_definido_meio_pagamento_organizador', $inscricao->evento(), $inscricao->pessoa(), $inscricao)); }
private static function showFormSms($filter, Evento $evento) { // Postando? if (count($_POST) > 0) { $mensagem = nl2br($_POST['mensagem']); // Enviar emails if ($filter == 'confirmados') { $inscritos = Inscricoes::getInstance()->getConfirmados($evento->id); } else { if ($filter == 'naoConfirmados') { //$inscritos = Inscricao::obterPorEventoNaoConfirmados($evento->id); } else { if ($filter == 'rejeitados') { //$inscritos = Inscricao::obterPorEventoRejeitados($evento->id); } } } $subTitulo = $filter; echo "<h2>Envio de SMS para {$subTitulo}</h2><br>"; $enviados = 0; foreach ($inscritos as $inscrito) { /* @var $inscrito Inscricao */ if ($inscrito->pessoa()->celular == null) { continue; } $mensagemEnviar = Mensagens::getInstance()->substituirVariaveis($mensagem, $evento, $inscrito->pessoa(), $inscrito); $mensagemEnviar = stripslashes($mensagemEnviar); $enviado = $evento->organizador()->enviarSms($inscrito->pessoa()->celular, $mensagemEnviar); if ($enviado) { echo "SMS enviado para " . $inscrito->pessoa()->nome . ' (' . $inscrito->pessoa()->celular . ')<Br>'; $enviados++; } else { echo "Erro ao enviar email SMS " . $inscrito->pessoa()->nome . ' (' . $inscrito->pessoa()->celular . ')<Br>'; } } echo "<br><br>SMS enviado para {$enviados} pessoas.<br><br>"; } else { $subTitulo = $filter; $titulo = "SMS para {$subTitulo} no " . $evento->titulo; require_once PLUGINPATH . '/view/comunicacao/form_sms.php'; } }
public function callbackPagamento($id_integracao, $transaction_id) { //echo "<h1>$transaction_id</h1>"; //?transaction_id=42E40F60-032A-4590-A357-D067CAA5858F // Validar o pagamento // Incluir PagSeguro include_once PLUGINPATH . '/vendor/PagSeguro/PagSeguroLibrary.php'; // Obter a transação retornada // Verificar situação /* @var $integracao Integracao */ $integracao = Integracoes::getInstance()->getById($id_integracao); $credentials = new PagSeguroAccountCredentials($integracao->client, $integracao->token); $transaction = PagSeguroTransactionSearchService::searchByCode($credentials, $transaction_id); $inscricao = Inscricoes::getInstance()->processarTransacaoPagSeguro($transaction); return $inscricao; }
/** * Obtem a quantidade de participantes na fila de espera */ public function qtdFilaEspera() { return PLib::coalesce(Inscricoes::getInstance()->getFilaEsperaCount($this->id), 0); }
/** * Save current record * @return null */ public function save() { return Inscricoes::getInstance()->save($this->id, $this); }
<?php get_header(); /* @var $inscricao Inscricao */ if (round(get_query_var('avaliacao') / 13) != get_query_var('avaliacao') / 13) { die; } $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13); if ($inscricao == null) { die; } if ($inscricao->id_evento != get_the_evento()->id) { die; } /* @var $evento Evento */ $questionario = $inscricao->evento()->getQuestionarioAvaliacao(); $perguntas = $questionario->getPerguntas(); ?> <div class="center pull-left" style="margin-bottom:20px;"> <div id="content" class="clearfix"> <h1><?php the_title(); ?> </h1> <p> </p> <?php if (hasFlash()) { ?> <p>Ótimo <?php echo ucfirst(mb_strtolower($inscricao->pessoa()->primeiro_nome()));
/** * http://url/crontab/hora/ */ public static function hora() { require 'wp-includes/pluggable.php'; // Eventos futuros $eventos = Eventos::getInstance()->getFuturos(); /* @var $evento Evento */ foreach ($eventos as $evento) { // Apenas eventos pagos if ($evento->pago != 'pago' || $evento->preInscricao()) { continue; } echo "<h1>{$evento->titulo}</h1>"; // Notificar inscrições ainda não pagas $inscricoesVencer = Inscricoes::getInstance()->getPagueAgora($evento->id); // var_dump($inscricoesVencer); // \TiagoGouvea\PLib::var_dump($inscricoesVencer); if (count($inscricoesVencer) > 0) { /* @var $inscricao Inscricao */ foreach ($inscricoesVencer as $inscricao) { if ($inscricao->pre_inscricao) { continue; } echo "Pedir que confirme agora " . $inscricao->id . "<br>"; $inscricao->confirmeAgora(); } } // Notificar inscrições vencidas por hora $inscricoesVencer = Inscricoes::getInstance()->getVencerHora($evento->id); // var_dump($inscricoesVencer); // \TiagoGouvea\PLib::var_dump($inscricoesVencer); if (count($inscricoesVencer) > 0) { /* @var $inscricao Inscricao */ foreach ($inscricoesVencer as $inscricao) { if ($inscricao->pre_inscricao) { continue; } echo "Vencer " . $inscricao->id . "<br>"; $inscricao->vencer(); } } } }
<div class="wrap"> <?php use TiagoGouvea\PLib; //menuEvento($evento,'evento-view'); ?> <div id="poststuff"> <?php // Inscritos $arquivo = get_stylesheet_directory() . '/list_inscritos_' . $evento->id . '.php'; if (file_exists($arquivo)) { require_once $arquivo; } else { if ($inscritos == null) { $inscritos = Inscricoes::getInstance()->getByEvento($evento->id); } $arquivo = PLUGINPATH . '/view/admin/list_inscritos.php'; require_once $arquivo; } ?> </div> </div>
<div id="postbox-container-2" class="postbox-container"> <div id="postexcerpt" class="postbox "> <h3 class="hndle"><span>Inscrições</span></h3> <div class="inside"> <table width="100%"> <tr> <th>Nome</th> <th>Forma Pagamento</th> <th>Valor Pago</th> <th>Valor líquido</th> <th>Situação</th> </tr> <?php $inscritos = Inscricoes::getInstance()->getByEvento($evento->id, 'confirmado=1', 'forma_pagamento, nome'); // Totalizadores $valorDisponivel = 0; $valorAReceber = 0; /* @var $inscrito Inscricao */ foreach ($inscritos as $inscrito) { if ($inscrito->status_gateway == 4) { $valorDisponivel = $valorDisponivel + PLib::coalesce($inscrito->valor_liquido, $inscrito->valor_pago); } else { if ($inscrito->status_gateway == 3) { $valorAReceber = $valorAReceber + PLib::coalesce($inscrito->valor_liquido, $inscrito->valor_pago); } } echo "<tr>\n <td>" . $inscrito->pessoa()->nome . '</td> <td>' . $inscrito->titulo_forma_pagamento() . '</td> <td>' . PLib::format_cash($inscrito->valor_pago) . '</td>