echo $trab->titulo; ?> </td> <td class="td-revista"><?php echo $trab->revista; ?> </td> <?php if ($editable) { ?> <td class="td-data td-data_criacao"><?php echo date_to_br($trab->data_criacao); ?> </td> <td class="td-data td-data_modificacao"><?php echo date_to_br($trab->data_modificacao); ?> </td> <td class="td-downloads_count"><?php echo $trab->downloads_count; ?> </td> <?php } else { ?> <td class="td-primeira_pag"><?php echo $trab->primeira_pag; ?> </td> <td class="td-ultima_pag"><?php echo $trab->ultima_pag;
<th class="col-head col-valor"><span>Valor</span></th> <th class="col-head col-status"><span>Status</span></th> <th class="col-head"><span>Ver boleto</span></th> </tr> </thead> <tbody> <?php foreach ($boletos as $bol) { ?> <tr> <td><?php echo substr_replace(date_to_br($bol->data_criacao), "", 10); ?> </td> <td><?php echo substr_replace(date_to_br($bol->data_vencimento), "", 10); ?> </td> <td><?php echo $bol->servico; ?> </td> <td>R$ <?php echo number_format($bol->valor, 2, ',', '.'); ?> </td> <td class="data bol-statuspedido"> <?php switch ($bol->status_pedido) { case TrajettoriaBoletos::STATUS_PEDIDO_NAO_INICIADO: echo "Aguardando";
public static function pagina_painel_boletos() { global $wpdb; // abaixo: exemplos // echo self::_helper_boleto_link('JNDHF8Y4GRUFHDJF', '0087998', '35941385854'); // $prod_id = get_query_var('prod_id'); // echo "<br><br>prod_id = " . $prod_id; // echo "<br><br>valor da propriedade 'label': " . self::_get_setting('label_descricao'); if (current_user_can('manage_options')) { $menu = '<div class="alignright">'; $menu .= ' <ul class="nav nav-pills">'; $menu .= '<li '; if (!isset($_GET['modo']) || $_GET['modo'] != 'clientes') { $menu .= "class=active"; } $menu .= '><a href="?modo=todos">Boletos</a></li>'; $menu .= '<li '; if ($_GET['modo'] == 'clientes') { $menu .= "class=active"; } $menu .= '><a href="?modo=clientes">Clientes</a></li>'; $menu .= '</ul>'; $menu .= '</div>'; echo $menu; /* conta quantos boletos existem sempre que a página é carregada * * se não estivermos filtrando por CPF, contamos o total geral de boletos * senão, contamos os boletos do cliente do CPF em questão * */ if (!get_query_var("cpf")) { $totalBoletos = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM " . self::TRAJ_BOLETOS_TABLE)); } else { $totalBoletos = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE cpf=" . get_query_var("cpf"))); } /* conta quantos clientes existem sempre que a página é carregada * */ $totalClientes = $wpdb->get_var($wpdb->prepare("SELECT COUNT(distinct cpf) FROM " . self::TRAJ_BOLETOS_TABLE)); switch (get_query_var('modo')) { case 'clientes': // preparando paginação if (!isset($_GET['order_by'])) { $order = 'cpf'; } else { $order = get_query_var('order_by'); } if (!isset($_GET['sort'])) { $sort = 'desc'; } else { $sort = get_query_var('sort'); } if (!isset($_GET['limit'])) { $limit = 20; } else { $limit = get_query_var('limit'); } if (!isset($_GET['offset']) || $_GET['offset'] < 0) { $offset = 0; } else { $offset = get_query_var('offset'); } $clientes = $wpdb->get_results("SELECT * FROM " . self::TRAJ_BOLETOS_TABLE . " GROUP BY cpf ORDER BY {$order} {$sort} LIMIT {$limit} OFFSET {$offset}", OBJECT_K); ?> <form method="POST" enctype="multipart/form-data" action="" class="form-inline"> <table class="table table-striped table-custom-padding" id="clientes-table" > <thead> <tr class="bol-tpagination"> <th colspan="6" > <div class="row-fluid table-header"> <div class="span4 center text">Mostrando clientes <?php echo $offset + 1; ?> a <?php echo sizeof($clientes) + $offset; ?> de <?php echo $totalClientes; ?> </div> <div class="span4 center pagination-custom"> <ul> <li><a href="?modo=clientes&offset=0&limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; ?> "><button class="btn btn-small btn-primary" type="button"><<</button></a></li> <li><a href="?modo=clientes&offset=<?php if ($offset - $limit - 1 < 0) { echo 0; } else { echo $offset - $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; ?> "><button class="btn btn-small btn-primary" type="button"><</button></a></li> <li><input type="text" class="input-mini" id="ir-para-pagina" value="<?php echo floor($offset / $limit) + 1; ?> " /></li> <li><a href="?modo=clientes&offset=<?php if ($offset + $limit + 1 > $totalClientes) { echo $offset; } else { echo $offset + $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; ?> "><button class="btn btn-small btn-primary" type="button">></button></a></a></li> <li><a href="?modo=clientes&offset=<?php if ($totalClientes % $limit == 0) { echo $totalClientes - $limit; } else { echo $totalClientes - $totalClientes % $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; ?> "><button class="btn btn-small btn-primary" type="button">>></button></a></a></li> </ul> </div> <div class="span4 center form-inline"> <label for="boletos-por-pagina">Clientes por página:</label> <select name="limit" class="input-mini" id="boletos-por-pagina"> <option class="active"><?php echo $limit; // @todo popular dinamicamente essa select com a quantidade real de páginas até no máximo 20 ?> </option> <option value="1">1</option> <option value="5">5</option> <option value="10">10</option> <option value="15">15</option> <option value="20">20</option> </select> </div> </div> </th> </tr> <tr class="bol-thead"> <th class="col-head <?php if ($order == "cpf" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "cpf" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=clientes&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "cpf"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } ?> ">CPF</a> </th> <th class="col-head col-nome <?php if ($order == "nome" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "nome" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=clientes&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "nome"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } ?> ">Nome</a> </th> <th class="col-head <?php if ($order == "email" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "email" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=clientes&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "email"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } ?> ">E-mail</a> </th> <th class="col-head col-status-boleto <?php if ($order == "status_boleto" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "status_boleto" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=clientes&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "status_boleto"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } ?> ">Boleto em aberto?</a> </th> <th class="col-head col-status-pedido <?php if ($order == "status_pedido" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "status_pedido" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=clientes&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "status_pedido"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } ?> ">Pedido em aberto?</a> </th> <th class="col-head col-opcoes"> <span>Opções</span> </th> </tr> </thead> <tbody> <?php foreach ($clientes as $c) { ?> <tr class='cliente-$c->id'> <td class="data cliente-cpf"><?php echo $c->cpf; ?> </td> <td class="data cliente-nome"><?php echo $c->nome; ?> </td> <td class="data cliente-email"><?php echo $c->email; ?> </td> <td class="data cliente-statusbol"> <?php $totalBolAbertos = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE cpf = " . $c->cpf . " AND status_boleto = " . self::STATUS_BOLETO_EM_ABERTO)); if ($totalBolAbertos > 0) { echo "Sim"; } else { echo "Não"; } ?> </td> <td class="data cliente-statuspedido"> <?php $totalPedAbertos = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE cpf=" . $c->cpf . " AND ( status_pedido = " . self::STATUS_PEDIDO_EM_EXECUCAO . " OR status_pedido = " . self::STATUS_PEDIDO_NAO_INICIADO . " )")); if ($totalPedAbertos > 0) { echo "Sim"; } else { echo "Não"; } ?> </td> <td class="data cliente-opcoes"> <select name="cliente-opcao[<?php echo $c->cpf; ?> ]" class="opcao cliente-opcao"> <option value="selecione">Selecione</option> <option value="boletos_<?php echo $c->cpf; ?> ">Ver boletos/pedidos</option> <option value="dados_<?php echo $c->cpf; ?> ">Ver dados pessoais</option> </select> </td> </tr> <?php } ?> </tbody> </table> </form> <?php break; default: // tratando ação quick-change $msg["quick_change"] = ""; if (isset($_POST['submit_quickchange'])) { if (preg_match('/[^0-9]/', $_POST['nosso_numero']) == TRUE || $_POST['nosso_numero'] === "") { $msg["quick_change"] = '<div class="alert alert-error fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Por favor, preencha corretamente o campo "nosso número". Ele deve conter apenas números.</div>'; } else { $totalBoletos = $wpdb->get_var($wpdb->prepare("SELECT COUNT(id) FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE nosso_numero = {$_POST['nosso_numero']}")); if ($totalBoletos > 0) { switch ($_POST['submit_quickchange']) { case 'Marcar como pago': $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_PAGO), array('nosso_numero' => $_POST['nosso_numero'])); $msg["quick_change"] = '<div class="alert alert-success fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> foi marcado como pago!</div>'; break; case 'Marcar como não pago': // checa se boleto venceu $statusBoleto = $wpdb->get_var($wpdb->prepare("SELECT status_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE nosso_numero = " . $_POST['nosso_numero'])); if ($statusBoleto != self::STATUS_BOLETO_VENCIDO) { $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_EM_ABERTO), array('nosso_numero' => $_POST['nosso_numero'])); $msg["quick_change"] = '<div class="alert alert-success fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> foi marcado como não-pago!</div>'; } else { $msg["quick_change"] = '<div class="alert alert-error fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> passou da data de vencimento.</div>'; } break; case 'Cancelar': $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_CANCELADO), array('nosso_numero' => $_POST['nosso_numero'])); $msg["quick_change"] = '<div class="alert alert-success fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> foi cancelado!</div>'; break; case 'Excluir': $wpdb->delete(self::TRAJ_BOLETOS_TABLE, array('nosso_numero' => $_POST['nosso_numero'])); $msg["quick_change"] = '<div class="alert alert-success fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> foi deletado!</div>'; break; default: break; } } else { $msg["quick_change"] = '<div class="alert alert-error fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Boleto <strong>' . $_POST['nosso_numero'] . '</strong> inexistente...</div>'; } } } // tratando ação bol-opcao if (isset($_POST['bol-single'])) { foreach ($_POST['bol-single'] as $bolID => $option) { if ($option != "selecione") { switch ($option) { case "pago_{$bolID}": $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_PAGO), array('id' => $bolID)); break; case "nao-pago_{$bolID}": $statusBoleto = $wpdb->get_var($wpdb->prepare("SELECT status_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE id = " . $bolID)); if ($statusBoleto != self::STATUS_BOLETO_VENCIDO) { $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_EM_ABERTO), array('id' => $bolID)); } break; case "cancelar_{$bolID}": $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_CANCELADO), array('id' => $bolID)); break; case "nao-iniciado_{$bolID}": $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_pedido' => self::STATUS_PEDIDO_NAO_INICIADO), array('id' => $bolID)); break; case "em-execucao_{$bolID}": $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_pedido' => self::STATUS_PEDIDO_EM_EXECUCAO), array('id' => $bolID)); break; case "finalizado_{$bolID}": $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_pedido' => self::STATUS_PEDIDO_FINALIZADO), array('id' => $bolID)); break; case "excluir_{$bolID}": $wpdb->delete(self::TRAJ_BOLETOS_TABLE, array('id' => $bolID)); break; case "ver_{$bolID}": // talvez aqui seja melhor usar uma âncora alterando as query vars $key = $wpdb->get_var("SELECT key_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE id = " . $bolID); $link = self::_helper_boleto_link($key); echo "<meta http-equiv='refresh' content='0;url={$link}' />"; exit; break; case "segunda-via_{$bolID}": // @todo chamar página boleto pré-poluando os campos break; case "enviar_{$bolID}": // A opção “enviar para cliente” envia um e-mail ao cliente, contendo um link para “ver-boleto” usando a key como query string.$ids = implode(", ", $boletoID); $boleto = $wpdb->get_row("SELECT id, email, nome, key_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE id = " . $bolID, OBJECT); // @todo preparar texto de subject e content $content = self::_helper_boleto_link($boleto->key_boleto); self::_send_mail($boleto->email, "Boleto", $content); break; case "pedido_{$bolID}": // talvez aqui seja melhor usar uma âncora alterando as query vars break; default: break; } break; } } } // tratando ação bulk-action if (isset($_POST['boleto'])) { $boletoID = preg_replace('/[^-0-9]/', '', $_POST['boleto']); if ($_POST['bulk-action'] != "selecione") { switch ($_POST['bulk-action']) { case "pago": foreach ($boletoID as $id) { $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_PAGO), array('id' => $id)); } // @todo verificar se alterações no banco obtiveram mesmo sucesso para definir mensagem de resultado... aqui e em todas as $msg $msg["bulk_action"] = '<div class="alert fade in"><button type="button" class="close" data-dismiss="alert">×</button>Os boletos selecionados foram marcados como pagos!</div>'; break; case "nao-pago": // checa se boleto venceu foreach ($boletoID as $id) { $statusBoleto = $wpdb->get_var($wpdb->prepare("SELECT status_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE id = " . $id)); if ($statusBoleto != self::STATUS_BOLETO_VENCIDO) { $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_EM_ABERTO), array('id' => $id)); } } break; case "cancelar": foreach ($boletoID as $id) { $wpdb->update(self::TRAJ_BOLETOS_TABLE, array('status_boleto' => self::STATUS_BOLETO_CANCELADO), array('id' => $id)); } break; case "excluir": foreach ($boletoID as $id) { $wpdb->delete(self::TRAJ_BOLETOS_TABLE, array('id' => $id)); } break; case "enviar": // A opção “enviar para cliente” envia um e-mail ao cliente, contendo um link para “ver-boleto” usando a key como query string. $ids = implode(", ", $boletoID); $boletos = $wpdb->get_results("SELECT id, email, nome, key_boleto FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE id IN (" . $ids . ")", OBJECT_K); foreach ($boletos as $bol) { // @todo preparar texto de subject e content $content = self::_helper_boleto_link($bol->key_boleto); self::_send_mail($bol->email, "Boleto", $content); } break; default: break; } } } // preparando resumo de valores dos boletos $somaTotal = $wpdb->get_results("SELECT status_boleto, sum( valor ) as total FROM " . self::TRAJ_BOLETOS_TABLE . " GROUP BY status_boleto", OBJECT_K); if (array_key_exists(self::STATUS_BOLETO_EM_ABERTO, $somaTotal)) { $totalNaoPago = $somaTotal[self::STATUS_BOLETO_EM_ABERTO]->total; } else { $totalNaoPago = 0; } if (array_key_exists(self::STATUS_BOLETO_PAGO, $somaTotal)) { $totalPago = $somaTotal[self::STATUS_BOLETO_PAGO]->total; } else { $totalPago = 0; } if (array_key_exists(self::STATUS_BOLETO_VENCIDO, $somaTotal)) { $totalVencido = $somaTotal[self::STATUS_BOLETO_VENCIDO]->total; } else { $totalVencido = 0; } // preparando paginação if (!isset($_GET['order_by'])) { $order = 'data_vencimento'; } else { $order = get_query_var('order_by'); } if (!isset($_GET['sort'])) { $sort = 'desc'; } else { $sort = get_query_var('sort'); } if (!isset($_GET['limit'])) { $limit = 20; } else { $limit = get_query_var('limit'); } if (!isset($_GET['offset']) || $_GET['offset'] < 0) { $offset = 0; } else { $offset = get_query_var('offset'); } if (!isset($_GET['cpf'])) { $boletos = $wpdb->get_results("SELECT t1.*, t2.post_title FROM " . self::TRAJ_BOLETOS_TABLE . " AS t1 LEFT JOIN wp_posts AS t2 ON (t1.post_id = t2.ID) order by {$order} {$sort} LIMIT {$limit} OFFSET {$offset}", OBJECT_K); } else { $cpf = get_query_var('cpf'); $boletos = $wpdb->get_results("SELECT * FROM " . self::TRAJ_BOLETOS_TABLE . " WHERE cpf={$cpf} ORDER BY {$order} {$sort} LIMIT {$limit} OFFSET {$offset}", OBJECT_K); } ?> <div class="clear"></div> <div class="alert alert-info alert-big center" id="resumo-boletos"> <div class="row-fluid"> <div class="span4">Pago: <span>R$<?php echo number_format($totalPago, 2, ',', '.'); ?> </span></div> <div class="span4">Não pago: <span>R$<?php echo number_format($totalNaoPago, 2, ',', '.'); ?> </span></div> <div class="span4">Vencido: <span>R$<?php echo number_format($totalVencido, 2, ',', '.'); ?> </span></div> </div> </div> <div class="alert alert-info alert-big center" id="quick-change"> <form class="form-inline" method="POST" enctype="multipart/form-data" action=""> <label for="nosso_numero">Nosso Número:</label> <input type="text" name="nosso_numero" class="input-small" id="nosso-numero" /> <input type="submit" name="submit_quickchange" value="Marcar como pago" class="btn" id="button-marcar-pago" /> <input type="submit" name="submit_quickchange" value="Marcar como não pago" class="btn" id="button-marcar-naopago" /> <input type="submit" name="submit_quickchange" value="Cancelar" class="btn" id="button-cancelar" /> <input type="button" value="Excluir" class="btn" id="button-excluir" /> <div class="modal hide fade in" id="excluirBoleto" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="excluir-boleto-ModalLabel">Confirmar exclusão de boleto</h3> </div> <div class="modal-body"> <p>Tem certeza que deseja prosseguir? Essa ação não pode ser revertida.</p> </div> <div class="modal-footer"> <input type="submit" name="submit_quickchange" value="Excluir" class="btn" /> <button class="btn btn-primary close-modal" data-dismiss="modal" aria-hidden="true">Cancelar</button> </div> </div> </form> <?php echo $msg["quick_change"]; ?> <span id="msg-quick-change"></span> </div> <form method="POST" enctype="multipart/form-data" action="" class="form-inline" id="boletos"> <table class="table table-striped table-custom-padding" id="bol-table" > <thead> <tr class="bol-tpagination"> <th colspan="9" > <div class="row-fluid table-header"> <div class="span4 center text">Mostrando boletos <?php echo $offset + 1; ?> a <?php echo sizeof($boletos) + $offset; ?> de <?php echo $totalBoletos; ?> </div> <div class="span4 center pagination-custom"> <ul> <li><a href="?modo=todos&offset=0&limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> "><button class="btn btn-small btn-primary" type="button"><<</button></a></li> <li><a href="?modo=todos&offset=<?php if ($offset - $limit - 1 < 0) { echo 0; } else { echo $offset - $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> "><button class="btn btn-small btn-primary" type="button"><</button></a></li> <li><input type="text" class="input-mini" id="ir-para-pagina" value="<?php echo floor($offset / $limit) + 1; ?> " /></li> <li><a href="?modo=todos&offset=<?php if ($offset + $limit + 1 > $totalBoletos) { echo $offset; } else { echo $offset + $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> "><button class="btn btn-small btn-primary" type="button">></button></a></li> <li><a href="?modo=todos&offset=<?php if ($totalBoletos % $limit == 0) { echo $totalBoletos - $limit; } else { echo $totalBoletos - $totalBoletos % $limit; } ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> "><button class="btn btn-small btn-primary" type="button">>></button></a></li> </ul> </div> <div class="span4 center form-inline"> <label for="boletos-por-pagina">Boletos por página:</label> <select name="limit" class="input-mini" id="boletos-por-pagina"> <option class="active"><?php echo $limit; // @todo popular dinamicamente essa select com a quantidade real de páginas até no máximo 20 ?> </option> <option value="1">1</option> <option value="5">5</option> <option value="10">10</option> <option value="15">15</option> <option value="20">20</option> </select> </div> </div> </th> </tr> <tr class="bol-thead"> <th class="col-head"></th> <th class="col-head <?php if ($order == "nosso_numero" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "nosso_numero" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "nosso_numero"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Nosso Número</a> </th> <th class="col-head <?php if ($order == "data_criacao" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "data_criacao" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "data_criacao"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Emissão</a> </th> <th class="col-head <?php if ($order == "data_vencimento" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "data_vencimento" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "data_vencimento"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Vencimento</a> </th> <th class="col-head <?php if ($order == "nome" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "nome" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "nome"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Cliente</a> </th> <th class="col-head <?php if ($order == "post_title" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "post_title" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "post_title"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Serviço</a> </th> <th class="col-head <?php if ($order == "status_boleto" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "status_boleto" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "status_boleto"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Status Boleto</a> </th> <th class="col-head <?php if ($order == "status_pedido" && $sort == "asc") { echo "sort-asc"; } elseif ($order == "status_pedido" && $sort == "desc") { echo "sort-desc"; } else { echo "sort"; } ?> "> <a href="?modo=todos&offset=<?php echo $offset; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo "status_pedido"; ?> &sort=<?php if ($sort == "desc") { echo "asc"; } else { echo "desc"; } if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> ">Status Pedido</a> </th> <th class="col-head col-opcoes"> <span>Opções</span> </th> </tr> </thead> <tbody> <?php foreach ($boletos as $bol) { ?> <tr class='bol-$bol->id'> <td class="check bol-check"><input type='checkbox' name='boleto[]' value='<?php echo $bol->id; ?> ' /></td> <td class="data bol-nossonumero"><?php echo $bol->nosso_numero; ?> </td> <td class="data bol-dtemissao"><?php echo substr_replace(date_to_br($bol->data_criacao), "", 10); ?> </td> <td class="data bol-dtvencimento"><?php echo substr_replace(date_to_br($bol->data_vencimento), "", 10); ?> </td> <td class="data bol-cliente"><?php echo $bol->nome; ?> </td> <td class="data bol-servico"><?php echo $bol->post_title; ?> </td> <td class="data bol-statusbol"> <?php switch ($bol->status_boleto) { case self::STATUS_BOLETO_EM_ABERTO: echo "Aberto"; break; case self::STATUS_BOLETO_CANCELADO: echo "Cancelado"; break; case self::STATUS_BOLETO_PAGO: echo "Pago"; break; case self::STATUS_BOLETO_VENCIDO: echo "Vencido"; break; default: break; } ?> </td> <td class="data bol-statuspedido"> <?php switch ($bol->status_pedido) { case self::STATUS_PEDIDO_NAO_INICIADO: echo "Aguardando"; break; case self::STATUS_PEDIDO_EM_EXECUCAO: echo "Em execução"; break; case self::STATUS_PEDIDO_FINALIZADO: echo "Finalizado"; break; default: break; } ?> </td> <td class="data bol-opcoes"> <select name="bol-single[<?php echo $bol->id; ?> ]" class="opcao bol-opcao"> <option value="selecione">Selecione</option> <optgroup label="Mudar status do boleto:"> <option value="pago_<?php echo $bol->id; ?> ">Pago</option> <option value="nao-pago_<?php echo $bol->id; ?> ">Aberto</option> <option value="cancelar_<?php echo $bol->id; ?> ">Cancelado</option> </optgroup> <optgroup label="Mudar status do pedido:"> <option value="nao-iniciado_<?php echo $bol->id; ?> ">Aguardando</option> <option value="em-execucao_<?php echo $bol->id; ?> ">Em execução</option> <option value="finalizado_<?php echo $bol->id; ?> ">Finalizado</option> </optgroup> <option value="ver_<?php echo self::_helper_boleto_link($bol->key_boleto); ?> ">Ver boleto</option> <option value="pedido_<?php echo $bol->id; ?> ">Ver pedido</option> <option value="enviar_<?php echo $bol->id; ?> ">Enviar para cliente</option> <option value="segunda-via_<?php echo $bol->id; ?> ">Gerar segunda via</option> <option value="excluir_<?php echo $bol->id; ?> ">Excluir</option> </select> </td> </tr> <?php } ?> </tbody> </table> <div class="form-actions center"> <label for="bulk-action">Com marcados:</label> <select name="bulk-action" id="bulk-action"> <option value="selecione">Selecione</option> <option value="pago">Marcar como pago</option> <option value="nao-pago">Marcar como aberto</option> <option value="cancelar">Cancelar</option> <option value="excluir">Excluir</option> <option value="enviar">Enviar para cliente</option> </select> </div> </form> <?php break; } ?> <div class="modal hide fade in" id="excluir-boleto-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 id="excluir-boleto-ModalLabel">Confirmar exclusão de boleto</h3> </div> <div class="modal-body"> <p>Tem certeza que deseja prosseguir? Essa ação não pode ser revertida.</p> </div> <div class="modal-footer"> <input type="submit" id="excluir-boleto" value="Excluir" class="btn" /> <button class="btn btn-primary close-modal" data-dismiss="modal" aria-hidden="true">Cancelar</button> </div> </div> <div class="modal hide fade in" id="generic-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"></div> <script type="text/javascript"> jQuery(document).ready(function() { jQuery("#ir-para-pagina").keyup(function(e) { if(e.keyCode == 13) { var intRegex = /^\d+$/; var pagina = jQuery(this).val(); var offset = <?php echo $limit; ?> * (pagina - 1); if (pagina < 1 || pagina > <?php echo ceil($totalBoletos / $limit); ?> || !intRegex.test(pagina) ) { offset = <?php echo $offset; ?> } window.location.href = '<?php echo get_permalink() . "?modo=" . get_query_var('modo'); ?> &offset=' + offset + '&limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> '; } }); jQuery("#boletos-por-pagina").change(function() { window.location.href = '<?php echo get_permalink() . "?modo=" . get_query_var('modo'); ?> &offset=0&limit=' + jQuery(this).val() + '&order_by=<?php echo $order; ?> &sort=<?php echo $sort; if (get_query_var("cpf")) { echo "&cpf=" . get_query_var("cpf"); } ?> '; }); jQuery(".cliente-opcao").change(function() { var option = jQuery(this).val().split("_"); var cpf = option[1]; switch (option[0]) { case "boletos": window.location.href = '<?php echo get_permalink() . "?modo=todos&offset=0"; ?> &limit=<?php echo $limit; ?> &order_by=<?php echo $order; ?> &sort=<?php echo $sort; ?> &cpf=' + cpf; break; case "dados": jQuery.ajax({ url: "<?php echo plugins_url("popups.php", __FILE__); ?> ?popup=cliente&cpf=" + cpf, dataType: "html" }).done(function(data){ jQuery("#generic-modalLabel").html("Detalhes do cliente"); jQuery("#generic-modal").html(data); jQuery("#generic-modal").modal("show"); }); break; } }); jQuery(".bol-opcao").change(function() { var option = jQuery(this).val().split("_"); var id = option[1]; switch (option[0]) { case "excluir": // usar modal para confirmar exclusão do boleto jQuery("#excluir-boleto-modal").modal("show"); break; case "ver": // chama ver-boleto passando a key redireciona(id); break; case "segunda-via": // chama “boleto”, para que seja criado um NOVO boleto // (neste caso, os campos são pré-populados com os dados do cliente, // valor, etc., // MAS aplicando uma nova data de vencimento a partir da data atual de emissão). break; case "pedido": jQuery.ajax({ url: "<?php echo plugins_url("popups.php", __FILE__); ?> ?popup=pedido&bol-id=" + id, dataType: "html" }).done(function(data){ jQuery("#generic-modalLabel").html("Detalhes do pedido"); jQuery("#generic-modal").html(data); jQuery("#generic-modal").modal("show"); }); break; default: jQuery("#boletos").submit(); break; } }); jQuery("#bulk-action").change(function() { var option = jQuery(this).val(); switch (option) { case "excluir": jQuery("#excluir-boleto-modal").modal("show"); break; default: jQuery("#boletos").submit(); break; } }); jQuery("#button-excluir").click(function() { var nossoNumero = jQuery("#nosso-numero").val(); var intRegex = /^\d+$/; if ( !intRegex.test(nossoNumero) ) { jQuery("#msg-quick-change").html('<div class="alert alert-error fade in alert-custom-margin"><button type="button" class="close" data-dismiss="alert">×</button>Por favor, preencha corretamente o campo "nosso número". Ele deve conter apenas números.</div>'); } else { jQuery("#excluirBoleto").modal("show"); } }); jQuery("#excluir-boleto").click(function() { jQuery("#boletos").submit(); }); jQuery(".close-modal").click(function(){ jQuery(".opcao").val("Selecione"); jQuery("#bulk-action").val("Selecione"); }); function redireciona(url) { window.location.href = url; } }); </script> <?php } }