function column_default($item, $column_name)
 {
     /* @var $desconto Desconto */
     $desconto = $this->itemsObj[$item['id']];
     switch ($column_name) {
         case 'desconto':
             if ($item['desconto_por'] == 'percentual') {
                 return $item['desconto'] . '%';
             } else {
                 return PLib::format_cash($item['desconto']);
             }
             break;
         case 'inscritos':
             $inscritos = $desconto->getQtdInscritos();
             if ($inscritos > 0) {
                 $inscritos = "<span style='color:blue;'>" . $inscritos . "</span>";
             }
             $confirmados = PLib::coalesce($desconto->getQtdConfirmados(), 0);
             $restantes = $desconto->getQuantidadeRestante();
             if ($confirmados > 0 && $restantes == 0) {
                 $confirmados = "<span style='color:green;'>" . $confirmados . "</span>";
             } else {
                 if ($confirmados > 0) {
                     $confirmados = "<span style='color:blue;'>" . $confirmados . "</span>";
                 }
             }
             return $inscritos . '/' . $confirmados;
             break;
         case 'pessoa':
             return '<a href="admin.php?page=Pessoas&action=view&id=' . $desconto->id_pessoa . '">' . $desconto->pessoa()->nome . '</a>';
             break;
         case 'validade':
             return PLib::date_relative($desconto->data_validade);
             break;
         case 'vagas':
             $restantes = $desconto->getQuantidadeRestante();
             if ($restantes == 0) {
                 $restantes = "<span style='color:green;'>" . $restantes . "</span>";
             }
             return $desconto->quantidade . '/' . $restantes;
             break;
         default:
             return $item[$column_name];
             //return print_r($item,true); //Show the whole array for troubleshooting purposes
     }
 }
 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;
 }
    ?>
        <?php 
    if ($pergunta->tip_pergunta == 'star') {
        ?>
        $('#rate_<?php 
        echo $pergunta->id;
        ?>
').raty(
            {
                number: 5,
                scoreName: 'input_<?php 
        echo $pergunta->id;
        ?>
',
                score: <?php 
        echo \TiagoGouvea\PLib::coalesce($_POST['input_' . $pergunta->id], 0);
        ?>
,
                target: '#div_<?php 
        echo $pergunta->id;
        ?>
',
                hints: ['Ruim', 'Regular', 'Bom', 'Ótimo', 'Excelente']
            });
        <?php 
    }
    ?>
        <?php 
}
?>
    </script>
 public static function decorateEvento(Evento $evento, $todosDetalhes = false)
 {
     $nEvento = array();
     $nEvento[id] = $evento->id;
     $nEvento[titulo] = $evento->titulo;
     $nEvento[data] = $evento->data;
     $nEvento[pago] = $evento->pago == 'pago';
     $nEvento[realizado] = $evento->realizado();
     $nEvento[acontecendo] = $evento->acontecendo();
     $nEvento[no_futuro] = $evento->noFuturo();
     $nEvento[aconteceu_em_dois_dias] = $evento->aconteceuEmDoisDias();
     $nEvento[comeca_em_duas_horas] = $evento->comecaEmDuasHoras();
     $nEvento[vagas] = PLib::coalesce($evento->vagas, 0);
     $nEvento[qtd_inscritos] = $evento->qtdInscritos();
     $nEvento[qtd_confirmados] = $evento->qtdConfirmados();
     if ($todosDetalhes) {
         $nEvento[vagas_disponiveis] = $evento->vagasDisponiveis();
         $nEvento[qtd_pre_inscritos] = $evento->qtdPreInscritos();
         $nEvento[qtd_nao_confirmados] = $evento->qtdNaoConfirmados();
         $nEvento[qtd_cancelados] = $evento->qtdCancelados();
         $nEvento[qtd_inscritos_novos] = $evento->qtdInscritosNovos();
         $nEvento[qtd_presentes] = $evento->qtdPresentes();
         $nEvento[qtd_fila_espera] = $evento->qtdFilaEspera();
         $nEvento[permite_inscricao] = $evento->inscricaoAberta();
         $nEvento[permite_confirmacao] = $evento->permiteConfirmar();
         $nEvento[permite_presenca] = $evento->permitirPresenca();
         $nEvento[validacao_pessoa] = PLib::coalesce($evento->validacao_pessoa, 'email');
         $nEvento[fila_espera] = PLib::coalesce($evento->fila_espera, 0) == 1;
         $nEvento[precos] = ControllerApi::decoratePrecos($evento->getPrecos());
         $nEvento[valor_pago] = $evento->getValorPago();
     }
     return $nEvento;
 }
 public function validarEtapaChave()
 {
     // De acordo com indetificação principal?
     if ($this->campoChave == 'cpf') {
         $this->valorChave = PLib::coalesce($_POST['cpf'], $_GET['cpf']);
         $cpf = PLib::validade_cpf($this->valorChave);
         if ($cpf === fase) {
             $this->erro = "Informe um CPF válido.";
         } else {
             $this->valorChave = Plib::str_mask(PLib::only_numbers($this->valorChave), "###.###.###-##");
         }
     } else {
         $this->valorChave = sanitize_email($_POST['email']);
         $email = is_email($this->valorChave);
         if (!$email) {
             $this->erro = "Informe um email válido.";
         } else {
             $this->valorChave = trim(strtolower($this->valorChave));
         }
     }
     if ($this->erro == null) {
         $this->avancar = true;
         $obterPor = 'getBy' . ucfirst($this->campoChave);
         // Tentar localizar pessoa
         $this->pessoa = Pessoas::getInstance()->{$obterPor}($this->valorChave);
         // Encontramos alguém?
         if ($this->pessoa != null) {
             // Trazer dados para sessão
             $_SESSION['id_pessoa'] = $this->pessoa->id;
             $this->pessoaNome = $this->pessoa->nome;
         } else {
             $this->pessoa = new Pessoa();
             // Tentar obter a pessoa por uma integração?
             /** @var $integracao Integracao */
             $integracao = Integracoes::getInstance()->getByServico('PhormarPessoa');
             if ($integracao) {
                 $pessoaIntegragao = $integracao->getPessoa($this->valorChave);
                 if ($pessoaIntegragao != null) {
                     $this->pessoa = $pessoaIntegragao;
                     //                        var_dump($pessoaIntegragao->extras);
                     //                        var_dump($this->pessoa);
                     //                        die('ok');
                     // Salvar pessoa, certificar que esteja registrada
                     $this->certificarPessoa();
                 }
                 //                    var_dump($pessoaIntegragao);
             }
             // Nova pessoa
             $this->pessoa->newsletter = true;
         }
         $_SESSION['inscricao_chave'] = $this->valorChave;
         //            if ($debug)
         //                PLib::var_dump($this->pessoa,"Pessoa");
         // Se confirmação imediata
         if ($this->evento->confirmacao == 'imediata' || $this->evento->confirmacao == 'posterior') {
             $this->avancarTexto = "Concluir Inscrição";
         }
     }
     if ($this->erro == null) {
         // Aplicar desconto?
         if ($_POST['ticket'] != null) {
             $result = Inscricoes::getInstance()->aplicarTicket($this->evento, $_POST['ticket']);
             if ($result !== true) {
                 $erro = $result;
             }
         }
     }
 }
                            <h3 class="hndle"><span><?php 
echo $titulo;
?>
</span></h3>
                            <input type="hidden" name="id" value="<?php 
echo $evento->id;
?>
">
                            <div class="inside">
                                <?php 
$assunto = stripslashes(PLib::coalesce($_POST['assunto'], $evento->post_title));
if ($subAction == 'confirmados') {
    $mensagem = PLib::coalesce($_POST['mensagem'], $evento->organizador()->email_confirmacao);
} else {
    if ($subAction == 'naoConfirmados') {
        $mensagem = PLib::coalesce($_POST['mensagem'], $evento->organizador()->email_semvagas);
    }
}
$mensagem = stripslashes(str_replace("<br />", "", $mensagem));
echo label('assunto', 'Assunto', input_texto_simples('assunto', 'Assunto', 80, $assunto));
echo label('mensagem', 'Mensagem', input_textarea_simples('mensagem', 20, $mensagem), "Variáveis disponíveis para utilização:<br>" . getVariaveis($event) . '<br><br>Ao final do email irá uma linha simples de assinatura contendo: ' . $evento->organizador()->titulo);
?>
                            </div>

                            <div id="major-publishing-actions">
                                <div id="publishing-action">
                                    <input type="hidden" name="preview" id="preview" value="">
                                    <input type="button" class="button button-primary button-large" value="Pré-visualizar" onclick="javascript:document.getElementById('preview').value='1';document.getElementById('form_email').submit();">
                                    <input type="submit" class="button button-primary button-large" value="Enviar"  onclick="javascript:document.getElementById('preview').value='';document.getElementById('form_email').submit();"></div>
                                <div class="clear"></div>
                            </div>
 /**
  * Gera a imagem de certificado do inscrito
  */
 public static function certificado($id_inscricao)
 {
     require_once PLUGINPATH . '/vendor/TiagoGouvea/PHPCertificate/PHPCertificate.php';
     /* @var $inscricao Inscricao */
     $inscricao = Inscricoes::getInstance()->getById($id_inscricao);
     if ($inscricao == null) {
         die;
     }
     $imagem = $inscricao->evento()->getCertificadoArquivo();
     // Criar e exibir certificado
     $certificate = new PHPCertificate($imagem);
     // Incluir nome
     $fontColor = array('r' => 0, 'g' => 0, 'b' => 0);
     $certificate->setFont('OpenSans-Light', 38, $fontColor);
     $certificate->setPosition(null, PLib::coalesce($inscricao->evento()->certificado_altura_nome, 420), 0);
     $certificate->setText(1, $inscricao->pessoa()->nome);
     $certificate->showImage();
 }
 /**
  * @return Questionario
  */
 public function getQuestionarioAvaliacao()
 {
     return Questionarios::getInstance()->getById(PLib::coalesce($this->id_questionario, 1));
 }
 /**
  * Retorna as ações para a inscrição
  * @param $ajax
  * @return null|string
  */
 public function getSituacaoAcoes($ajax)
 {
     $return = null;
     $actions = null;
     $evento = $this->evento();
     if ($ajax) {
         if (!$evento->realizado() && PLib::coalesce($this->confirmado, 0) == 0) {
             if (PLib::coalesce($this->valor_inscricao, 0) > 0) {
                 $actions = "\n                    <a href='#' onclick='javascript:confirmarInscricao(" . $this->id . ", \"" . $this->valor_inscricao . "\",\"Dinheiro\");return false;'>Confirmar (dinheiro)</a><br>\n                    <a href='#' onclick='javascript:confirmarInscricao(" . $this->id . ", \"" . $this->valor_inscricao . "\",\"Depósito\");return false;'>Confirmar (depósito)</a><br>";
             } else {
                 $actions = "\n                    <a href='#' onclick='javascript:confirmarInscricao(" . $this->id . ");return false;'>Confirmar Inscrição</a><br>";
             }
         }
         if (!$evento->realizado() || $evento->acontecendo()) {
             $actions .= "<a href='#' onclick='javascript:cancelarInscricao(" . $this->id . ");return false;'>Cancelar</a>";
         }
         if (!$evento->realizado() && $this->confirmado == 1 && $this->evento()->pago == 'pago' && PLib::coalesce($this->valor_pago, 0) == 0) {
             $actions .= "<a href='#' onclick='javascript:informarValorPagoInscricao(" . $this->id . ",'" . $this->valor_inscricao . "','Dinheiro');return false;'>Informar Valor Pago</a>";
         }
         if (($evento->acontecendo() || $evento->realizado()) && $this->presente == null) {
             $actions .= "<a href='#' onclick='javascript:marcarPresenca(" . $this->id . ");return false;'>Marca Presença</a>";
         }
         if ($evento->realizado() && $this->presente == 1 && $evento->hasCertificadoArquivo()) {
             $actions .= "<a href='" . $this->getLinkCertificado() . "' target=_blank>Certificado</a>";
         }
     } else {
         if (!$evento->realizado() && PLib::coalesce($this->confirmado, 0) == 0) {
             $actions = "<a href='?confirmarInscricao={$this->id}'>Confirmar</a>";
         }
     }
     $return = "<div class='row-actions'>\n                <span class='view'>" . $actions . "</span>\n            </div>";
     return $return;
 }
    }
    if (strpos($request, site_url() . '/crontab/hora/') !== false) {
        ControllerCrontab::hora();
    }
    die;
}
// Aunteticar?
if ($_POST && $_POST['controller'] == 'pessoa') {
    //    var_dump($_POST);
    if ($_POST['action'] == 'autenticar') {
        ControllerPessoas::autenticar();
    }
    if ($_POST['action'] == 'recuperar-senha') {
        ControllerPessoas::recuperarSenha();
    }
    if ($_POST['action'] == 'atualizar-perfil') {
        ControllerPessoas::atualizarPerfil();
    }
}
if (isset($_GET['logout'])) {
    ControllerPessoas::logout();
}
// Recebendo uma notificação de um gateway?
if (isset($_GET['notificacao_gateway']) && isset($_GET['id_integracao'])) {
    ControllerInscricoes::processarNotificacao($_GET['id_integracao'], PLib::coalesce($_POST['notificationCode'], $_GET['notificationCode']));
    exit;
}
if ($_GET['page'] == 'Eventos' && $_GET['id'] != null) {
    set_the_evento(Eventos::getInstance()->getById($_GET['id']));
}
validarPlugin();
/**
 * @param $evento Evento
 * @param $pessoa Pessoa
 * @param $inscricao Inscricao
 */
function etapaConteudo($evento, $pessoa, $inscricao)
{
    $estados = array("AC" => "Acre", "AL" => "Alagoas", "AM" => "Amazonas", "AP" => "Amapá", "BA" => "Bahia", "CE" => "Ceará", "DF" => "Distrito Federal", "ES" => "Espírito Santo", "GO" => "Goiás", "MA" => "Maranhão", "MT" => "Mato Grosso", "MS" => "Mato Grosso do Sul", "MG" => "Minas Gerais", "PA" => "Pará", "PB" => "Paraíba", "PR" => "Paraná", "PE" => "Pernambuco", "PI" => "Piauí", "RJ" => "Rio de Janeiro", "RN" => "Rio Grande do Norte", "RO" => "Rondônia", "RS" => "Rio Grande do Sul", "RR" => "Roraima", "SC" => "Santa Catarina", "SE" => "Sergipe", "SP" => "São Paulo", "TO" => "Tocantins");
    ?>
    <input type="hidden" name="c_utmz" id="c_utmz" value="" />
        <script type="text/javascript">
        function read_cookie(a){
            var b = a + "=";
            var c = document.cookie.split(";");
            for (var d = 0; d < c.length; d++) {
                var e = c[d];
                while (e.charAt(0) == " ")e = e.substring(1, e.length);
                if (e.indexOf(b)==0){
                    return e.substring(b.length,e.length)
                }
            }
            return 'tiago';
        }
        try{
            document.getElementById("c_utmz").value=read_cookie("__utmz");
        }catch(err){}
        </script>

    <h4>Nome</h4>
    <div class="field-wrapper">
        <?php 
    echo input_texto_simples('nome', '', 30, PLib::coalesce($_POST['nome'], $pessoa->nome));
    ?>
    </div>

    <h4>Email</h4>
    <div class="field-wrapper">
        <?php 
    echo input_texto_simples('email', '', 30, PLib::coalesce($_POST['email'], $pessoa->email));
    ?>
    </div>

    <h4>Celular</h4>
    <div class="field-wrapper">
        <?php 
    echo input_texto_simples('celular', '', 30, PLib::coalesce($_POST['celular'], $pessoa->celular));
    ?>
    </div>

    <?php 
    if ($evento->confirmacao != 'preinscricao' && $evento->id_organizador == 597) {
        ?>
        <h4>Endereço</h4>
        <div class="field-wrapper">
            <?php 
        echo input_texto_simples('end_cep', 'CEP', 30, $pessoa->end_cep, 'onkeypress="javascript:MascaraCep(this);"');
        ?>
        </div>
        <div class="field-wrapper">
            <?php 
        echo input_texto_simples('end_logradouro', 'Logradouro', 30, $pessoa->end_logradouro);
        ?>
        </div>
        <div class="fourcol column">
            <div class="field-wrapper">
                <?php 
        echo input_texto_simples('end_numero', 'Numero', 30, $pessoa->end_numero);
        ?>
            </div>
        </div>
        <div class="">
            <div class="field-wrapper">
                <?php 
        echo input_texto_simples('end_complemento', 'Complemento', 30, $pessoa->end_complemento);
        ?>
            </div>
        </div>
        <div class="">
            <div class="field-wrapper">
                <?php 
        echo input_texto_simples('end_bairro', 'Bairro', 30, $pessoa->end_bairro);
        ?>
            </div>
        </div>
        <div class="">
            <div class="field-wrapper">
                <?php 
        echo input_texto_simples('end_cidade', 'Cidade', 30, $pessoa->end_cidade);
        ?>
            </div>
        </div>
        <div class="">
            <div class="field-wrapper">
                <?php 
        echo input_select_simples('end_estado', 'Estado', $estados, $pessoa->end_estado);
        ?>
            </div>
        </div>
    <?php 
    }
    ?>

    <?php 
    // Existem campos extras?
    if ($evento->campos_extras != null) {
        //        echo "<br><h3>Informações extra</h3><p>Por favor, preencha adequadamente os campos abaixo, pois em determinados eventos aprovaremos a inscrição de acordo com estes dados.</p>";
        $camposExtra = '';
        // Obter extras da pessoa
        // Obter extras para exibição
        $pessoaExtras = $pessoa->extras;
        if ($pessoaExtras != null) {
            $pessoaExtras = json_decode($pessoaExtras);
        }
        $campos_extra = $evento->getCamposExtras();
        foreach ($campos_extra as $extraIndice => $extraTitulo) {
            ?>
            <?php 
            // Este dado já existe nesta pessoa?
            $pessoaExtra = $pessoaExtras->{$extraIndice};
            if ($_POST[$extraIndice] != null) {
                $pessoaExtra = $_POST[$extraIndice];
            } else {
                if ($pessoaExtra != null) {
                    $pessoaExtra = PLib::unicode_to_utf8($pessoaExtra->valor);
                }
            }
            ?>

            <div class="">
                <?php 
            if (strpos($extraTitulo, '[ ]') !== false) {
                $extraTitulo = str_replace('[ ]', '', $extraTitulo);
                echo input_checkbox_padrao($extraIndice, $extraTitulo, $pessoaExtra);
            } elseif (strpos($extraTitulo, '[file]') !== false) {
                $extraTitulo = str_replace('[file]', '', $extraTitulo);
                echo "<h4>{$extraTitulo}</h4>";
                echo "<div class=field-wrapper>";
                echo "<input type='file' name='{$extraIndice}' id='{$extraIndice}'>";
                echo "</div>";
            } elseif (strpos($extraTitulo, '[') !== false && strpos($extraTitulo, ']') !== false) {
                // Criar select
                $opcoes = substr($extraTitulo, strpos($extraTitulo, '['));
                $extraTitulo = str_replace($opcoes, "", $extraTitulo);
                $opcoes = substr($opcoes, 1, strlen($opcoes) - 2);
                $opcoes = explode(",", $opcoes);
                $select = array();
                foreach ($opcoes as $opcao) {
                    $select[$opcao] = $opcao;
                }
                echo "<h4>{$extraTitulo}</h4>";
                $return = "<select name={$extraIndice} id={$extraIndice} placeholder='{$extraTitulo}'>";
                foreach ($select as $chave => $valor) {
                    $selecionado = $_POST[$extraIndice];
                    $selected = $selecionado != null && $chave == $selecionado ? "selected" : "";
                    $return .= "<option value='{$chave}' {$selected}>{$valor}</option>";
                }
                $return .= "</select>";
                echo "<div class=field-wrapper>{$return}</div>";
            } elseif (strpos($extraTitulo, '( )') !== false) {
                // Criar Radios
                $opcoes = substr($extraTitulo, strpos($extraTitulo, '('));
                $extraTitulo = str_replace($opcoes, "", $extraTitulo);
                $opcoes = substr($opcoes, 0, strlen($opcoes));
                $opcoes = explode(",", $opcoes);
                $select = array();
                $i = 0;
                foreach ($opcoes as $opcao) {
                    $i++;
                    $id = "option_" . $i;
                    $opcao = str_replace("( )", "", trim($opcao));
                    $return .= label($id, $opcao, input_radio_padrao($extraIndice, $opcao, null, null, null, $id));
                }
                echo "<h4>{$extraTitulo}</h4>";
                echo "<div class=field-wrapper>{$return}</div>";
            } else {
                echo "<h4>{$extraTitulo}</h4>";
                echo "<div class=field-wrapper>";
                echo input_texto_simples($extraIndice, '', 30, $pessoaExtra);
                echo "</div>";
            }
            ?>
            </div>
        <?php 
        }
    }
    ?>

    <?php 
}
// 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>
                                    <td>' . PLib::format_cash(PLib::coalesce($inscrito->valor_liquido, $inscrito->valor_pago)) . '</td>
                                    <td>' . $inscrito->titulo_status_gateway() . '</td>
                                    </tr>';
}
?>
                    </table>

                    <br><br>
                    <h3>Gateway PagSeguro</h3>
                    Valor Disponível: <?php 
echo PLib::format_cash($valorDisponivel);
?>
<br>
                    Valor a Receber: <?php 
echo PLib::format_cash($valorAReceber);
?>