/**
  * Porção visível do widget
  * Exibir eventos atuais e numeros
  */
 public static function widget()
 {
     $eventos = Eventos::getInstance()->getFuturos();
     foreach ($eventos as $evento) {
         /* @var $evento Evento */
         echo "<span style='font-size: 15px;'><a href='admin.php?page=Eventos&action=view&id={$evento->id}'>{$evento->titulo}</a></span><br>";
         if ($evento->data) {
             echo "<span style='font-size: 11px;'><i>" . PLib::days_between_dates($evento->data) . " dias para o evento</i></span><br>";
         }
         // Pré-inscritos
         $pre = $evento->qtdPreInscritos();
         // Inscritos
         $ins = $evento->qtdInscritos();
         // Confirmados
         $con = $evento->qtdConfirmados();
         if ($con != null && $con > 0) {
             echo "<b>Confirmados: {$con} - {$evento->conversaoInscritosConfirmados}</b><br>";
         }
         if ($ins != null && $ins > 0) {
             echo "Inscritos: {$ins} - {$evento->conversaoVisitantesInscritos}<br>";
         }
         if ($pre != null && $pre > 0) {
             echo "Pré-inscritos: {$pre}<br>";
         }
         echo "<br>";
     }
 }
 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;
 }
 function column_default($item, $column_name)
 {
     $idEvento = $item['id'];
     /* @var $evento Evento */
     $evento = $this->itemsObj[$idEvento];
     //        var_dump($evento);
     //        var_dump($item);
     switch ($column_name) {
         // Obter total de visitantes
         case 'inscritos':
             global $wpdb;
             $return = null;
             $qtd = $evento->qtdPreInscritos();
             if ($qtd > 0) {
                 $return = 'Pré-inscritos: ' . $qtd . '<br>';
             }
             $return .= $evento->qtdInscritos() . " / " . $evento->qtdConfirmados() . '<br>';
             if ($evento->pago == 'pago') {
                 $return .= "Visitantes Inscritos: <b>{$evento->conversaoVisitantesInscritos}</b><br>";
                 if (!$evento->preInscricao()) {
                     $return .= "Inscritos Confirmados: <b>{$evento->conversaoInscritosConfirmados}</b><br>";
                 }
             }
             return $return;
             break;
             // Obter total de visitantes e pageviews
         // Obter total de visitantes e pageviews
         case 'visitas':
             global $wpdb;
             // Visitantes unicos
             $qtd = getVisitantesEvento($idEvento);
             // PageView
             $qtd2 = getPageViewsEvento($idEvento);
             return $qtd . " / " . $qtd2;
             break;
         case 'data':
             if ($item['data'] == null) {
                 return null;
             }
             $data = PLib::date_relative($item['data'] . " " . $item['hora'], false, false);
             if (strtotime($item['data']) > time()) {
                 $dias = PLib::days_between_dates($item['data']);
                 if ($dias > 0) {
                     $data .= "<br>" . $dias . " dias restantes";
                 }
             }
             return $data;
             break;
         case 'algomais':
             $return = null;
             if ($evento->noFuturo()) {
                 if ($evento->beta) {
                     $return = '[BETA]<br>';
                 }
                 if ($evento->preInscricao()) {
                     $return .= '[PRÉ-INSCRIÇÃO]<BR>';
                 }
                 if ($evento->pago == 'pago' && !$evento->preInscricao()) {
                     $preco = $evento->getPrecoAtual();
                     if ($preco != null) {
                         $vagasRestantes = $preco->getVagasRestantes();
                         if ($vagasRestantes <= 2) {
                             $vagasRestantes = "<span style='color:orangered;'>{$vagasRestantes}</span>";
                         }
                         if ($vagasRestantes <= 0) {
                             $vagasRestantes = "<span style='color:red;'>{$vagasRestantes}</span>";
                         }
                         $return .= "<b>Lote:</b> " . $preco->titulo . ' - ' . PLib::format_cash($evento->valor()) . ' - Vagas Restantes Lote: ' . $vagasRestantes . '<br>';
                     }
                 }
                 if ($evento->noFuturo() && !$evento->preInscricao()) {
                     $vagasDisponiveis = $evento->vagasDisponiveis();
                     if ($vagasDisponiveis <= 2) {
                         $vagasDisponiveis = "<span style='color:orangered;'>{$vagasDisponiveis}</span>";
                     }
                     if ($vagasDisponiveis <= 0) {
                         $vagasDisponiveis = "<span style='color:red;'>{$vagasDisponiveis}</span>";
                     }
                     $return .= "<b>Vagas Disponíveis Evento:</b> " . $vagasDisponiveis;
                 }
                 $erros = $evento->getErros();
                 if (count($erros['error']) > 0) {
                     $return .= '<br><span style="color:red;"><b>Erros: </b>' . count($erros['error']) . '</span>';
                 }
             } else {
                 if ($evento->hasAvaliacao()) {
                     $avaliacao1 = $evento->getAvaliacaoMediaPergunta(1);
                     $avaliacao2 = $evento->getAvaliacaoMediaPergunta(2);
                     $avaliacao3 = $evento->getAvaliacaoMediaPergunta(3);
                     $avaliacao = ($avaliacao1 + $avaliacao2 + $avaliacao3) / 3;
                     $avaliacao = number_format(round(($avaliacao1 + $avaliacao2 + $avaliacao3) / 3, 1), 1, '.', '');
                     $return .= 'Avaliação<br><div id="score_' . $evento->id . '"></div>';
                     $return .= "\n                            <script>\n                                jQuery(document).ready(function () {\n                                    jQuery('#score_{$evento->id}').raty({\n                                        score: {$avaliacao},\n                                        readOnly: true,\n                                        starHalf : 'star-half-big.png',\n                                        starOff : 'star-off-big.png',\n                                        starOn  : 'star-on-big.png',\n                                        path: '" . plugins_url('/Eventos/public/img/') . "'\n                                    });\n                                });\n                            </script>";
                 }
             }
             return $return;
             break;
         default:
             return $item[$column_name];
             //return print_r($item,true); //Show the whole array for troubleshooting purposes
     }
 }
 /**
  * Retorna a situação da inscrição em string para exibição amigável
  */
 public function getSituacaoString()
 {
     $return = null;
     // Fila de espera?
     if ($this->id_situacao == 10) {
         $return .= '<b>Fila Espera</b><br>';
     }
     // Presente? Confirmado?
     if ($this->presente == 1) {
         $return .= '<b>Confirmada e Presente</b>';
     }
     if ($this->presente != 1 && $this->confirmado == '1') {
         $return .= '<b>Confirmada</b>';
     }
     if ($this->confirmado == '1' && $this->data_confirmacao != null) {
         $return .= '<br>' . PLib::date_relative($this->data_confirmacao, true) . '<br>';
     } else {
         if ($this->confirmado === '0') {
             $return .= '<b>Cancelada</b><br>';
             if ($this->data_cancelamento != null) {
                 $return .= 'Cancelamento: ' . PLib::date_relative($this->data_cancelamento) . '<br>';
             }
         } else {
             if ($this->pre_inscricao == 1) {
                 $return .= '<b>Pré-inscrição</b><br>';
             }
         }
     }
     if ($this->confirmado == null) {
         $return .= '<b>Não confirmada</b><br>';
         if ($this->meio_pagamento != null) {
             $return .= 'Meio de Pagamento: ' . $this->meio_pagamento . '<br>';
         }
     }
     // Algo de pagamento?
     if ($this->forma_pagamento) {
         $return .= "Forma Pagamento: " . $this->forma_pagamento . '<br>';
     }
     if ($this->id_pessoa_confirmacao && $this->valor_pago) {
         $return .= "Pessoa Recebimento: " . $this->pessoa_confirmacao()->nome . '<br>';
     } else {
         if ($this->id_pessoa_confirmacao) {
             $return .= "Pessoa Confirmação: " . $this->pessoa_confirmacao()->nome . '<br>';
         }
     }
     if ($this->forma_pagamento_gateway) {
         $return .= "Forma Pgto Gateway: " . PagSeguroUtil::getFormaPagamentoTituloString($this->forma_pagamento_gateway) . '<br>';
     }
     if ($this->status_gateway) {
         $return .= "Status PagSeguro: " . PagSeguroUtil::getStatusTituloString($this->status_gateway) . '<br>';
     }
     if (PLib::coalesce($this->valor_pago, 0) > 0) {
         $return .= "Valor pago: " . PLib::format_cash($this->valor_pago) . '<br>';
     }
     if ($this->valor_liquido !== $this->valor_pago) {
         $return .= "Valor líquido: " . PLib::format_cash(PLib::coalesce($this->valor_liquido, $this->valor_inscricao)) . '<br>';
     }
     if ($this->data_atualizacao_gateway) {
         $return .= "Atualização: " . PLib::date_relative($this->data_atualizacao_gateway, true) . " (" . PLib::days_between_dates($this->data_atualizacao_gateway) . " dias)<br>";
     }
     return $return;
 }