Customer View show Active package
This commit is contained in:
parent
8e45ac40c4
commit
74ac7f3eb4
@ -1,28 +1,29 @@
|
||||
<?php
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||
**/
|
||||
|
||||
Class Paginator
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||
**/
|
||||
|
||||
class Paginator
|
||||
{
|
||||
public static function bootstrap($table, $w1='',$c1='', $w2='', $c2= '', $w3='',$c3='', $w4='', $c4= '', $per_page = '10')
|
||||
public static function bootstrap($table, $w1 = '', $c1 = '', $w2 = '', $c2 = '', $w3 = '', $c3 = '', $w4 = '', $c4 = '', $per_page = '10')
|
||||
{
|
||||
global $routes;
|
||||
global $routes;
|
||||
global $_L;
|
||||
$url = U.$routes['0'].'/'.$routes['1'].'/';
|
||||
$url = U . $routes['0'] . '/' . $routes['1'] . '/';
|
||||
$adjacents = "2";
|
||||
$page = (int)(!isset($routes['2']) ? 1 : $routes['2']);
|
||||
$pagination = "";
|
||||
|
||||
if($w1 != ''){
|
||||
$totalReq = ORM::for_table($table)->where($w1,$c1)->count();
|
||||
}elseif($w2 != ''){
|
||||
$totalReq = ORM::for_table($table)->where($w1,$c1)->where($w2,$c2)->count();
|
||||
}elseif($w3 != ''){
|
||||
$totalReq = ORM::for_table($table)->where($w1,$c1)->where($w2,$c2)->where($w3,$c3)->count();
|
||||
}elseif($w4 != ''){
|
||||
$totalReq = ORM::for_table($table)->where($w1,$c1)->where($w2,$c2)->where($w3,$c3)->where($w4,$c4)->count();
|
||||
}else{
|
||||
if ($w1 != '') {
|
||||
$totalReq = ORM::for_table($table)->where($w1, $c1)->count();
|
||||
} elseif ($w2 != '') {
|
||||
$totalReq = ORM::for_table($table)->where($w1, $c1)->where($w2, $c2)->count();
|
||||
} elseif ($w3 != '') {
|
||||
$totalReq = ORM::for_table($table)->where($w1, $c1)->where($w2, $c2)->where($w3, $c3)->count();
|
||||
} elseif ($w4 != '') {
|
||||
$totalReq = ORM::for_table($table)->where($w1, $c1)->where($w2, $c2)->where($w3, $c3)->where($w4, $c4)->count();
|
||||
} else {
|
||||
$totalReq = ORM::for_table($table)->count();
|
||||
}
|
||||
|
||||
@ -85,16 +86,103 @@ Class Paginator
|
||||
}
|
||||
|
||||
if ($page < $counter - 1) {
|
||||
$pagination .= "<li><a href='{$url}$next'>".$_L['Next']."</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lastpage'>".$_L['Last']."</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$next'>" . $_L['Next'] . "</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lastpage'>" . $_L['Last'] . "</a></li>";
|
||||
} else {
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>".$_L['Next']."</a></li>";
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>".$_L['Last']."</a></li>";
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>" . $_L['Next'] . "</a></li>";
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>" . $_L['Last'] . "</a></li>";
|
||||
}
|
||||
$pagination .= "</ul>";
|
||||
|
||||
|
||||
$gen = array("startpoint" => $startpoint, "limit" => $limit, "found" => $totalReq, "page" => $page, "lastpage" => $lastpage, "contents" => $pagination);
|
||||
return $gen;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static function bootstrapRaw($table, $w1 = '', $c1 = [], $per_page = '10')
|
||||
{
|
||||
global $routes;
|
||||
global $_L;
|
||||
$url = U . $routes['0'] . '/' . $routes['1'] . '/';
|
||||
$adjacents = "2";
|
||||
$page = (int)(!isset($routes['2']) ? 1 : $routes['2']);
|
||||
$pagination = "";
|
||||
|
||||
if ($w1 != '') {
|
||||
$totalReq = ORM::for_table($table)->where_raw($w1, $c1)->count();
|
||||
} else {
|
||||
$totalReq = ORM::for_table($table)->count();
|
||||
}
|
||||
|
||||
$i = 0;
|
||||
$page = ($page == 0 ? 1 : $page);
|
||||
$start = ($page - 1) * $per_page;
|
||||
|
||||
$prev = $page - 1;
|
||||
$next = $page + 1;
|
||||
$lastpage = ceil($totalReq / $per_page);
|
||||
|
||||
$lpm1 = $lastpage - 1;
|
||||
$limit = $per_page;
|
||||
$startpoint = ($page * $limit) - $limit;
|
||||
|
||||
if ($lastpage >= 1) {
|
||||
$pagination .= '<ul class="pagination pagination-sm">';
|
||||
if ($lastpage < 7 + ($adjacents * 2)) {
|
||||
for ($counter = 1; $counter <= $lastpage; $counter++) {
|
||||
if ($counter == $page)
|
||||
$pagination .= "<li class='active'><a href='javascript:void(0);'>$counter</a></li>";
|
||||
else
|
||||
$pagination .= "<li><a href='{$url}$counter'>$counter</a></li>";
|
||||
}
|
||||
} elseif ($lastpage > 5 + ($adjacents * 2)) {
|
||||
if ($page < 1 + ($adjacents * 2)) {
|
||||
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++) {
|
||||
if ($counter == $page)
|
||||
$pagination .= "<li class='active'><a href='javascript:void(0);'>$counter</a></li>";
|
||||
else
|
||||
$pagination .= "<li><a href='{$url}$counter'>$counter</a></li>";
|
||||
}
|
||||
$pagination .= "<li class='disabled'><a href='#'>...</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";
|
||||
} elseif ($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2)) {
|
||||
$pagination .= "<li><a href='{$url}1'>1</a></li>";
|
||||
$pagination .= "<li><a href='{$url}2'>2</a></li>";
|
||||
$pagination .= "<li class='disabled'><a href='#'>...</a></li>";
|
||||
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++) {
|
||||
if ($counter == $page)
|
||||
$pagination .= "<li class='active'><a href='javascript:void(0);'>$counter</a></li>";
|
||||
else
|
||||
$pagination .= "<li><a href='{$url}$counter'>$counter</a></li>";
|
||||
}
|
||||
$pagination .= "<li class='disabled'><a href='#'>...</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";
|
||||
} else {
|
||||
$pagination .= "<li><a href='{$url}1'>1</a></li>";
|
||||
$pagination .= "<li><a href='{$url}2'>2</a></li>";
|
||||
$pagination .= "<li><a href='#'>...</a></li>";
|
||||
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++) {
|
||||
if ($counter == $page)
|
||||
$pagination .= "<li class='active'><a class='disabled'>$counter</a></li>";
|
||||
else
|
||||
$pagination .= "<li><a href='{$url}$counter'>$counter</a></li>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($page < $counter - 1) {
|
||||
$pagination .= "<li><a href='{$url}$next'>" . $_L['Next'] . "</a></li>";
|
||||
$pagination .= "<li><a href='{$url}$lastpage'>" . $_L['Last'] . "</a></li>";
|
||||
} else {
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>" . $_L['Next'] . "</a></li>";
|
||||
$pagination .= "<li class='disabled'><a class='disabled'>" . $_L['Last'] . "</a></li>";
|
||||
}
|
||||
$pagination .= "</ul>";
|
||||
|
||||
$gen = array("startpoint" => $startpoint, "limit" => $limit, "found" => $totalReq, "page" => $page, "lastpage" => $lastpage, "contents" => $pagination);
|
||||
return $gen;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -42,16 +42,16 @@ switch ($action) {
|
||||
if (empty($s)) {
|
||||
$c = ORM::for_table('tbl_customers')->limit(30)->find_many();
|
||||
} else {
|
||||
$c = ORM::for_table('tbl_customers')->where_raw("(`username` LIKE '%$s%' OR `fullname` LIKE '%$s%' OR `phonenumber` LIKE '%$s%' OR `email` LIKE '%$s%')", [$s,$s,$s,$s])->limit(30)->find_many();
|
||||
$c = ORM::for_table('tbl_customers')->where_raw("(`username` LIKE '%$s%' OR `fullname` LIKE '%$s%' OR `phonenumber` LIKE '%$s%' OR `email` LIKE '%$s%')", [$s, $s, $s, $s])->limit(30)->find_many();
|
||||
}
|
||||
header('Content-Type: application/json');
|
||||
foreach ($c as $cust){
|
||||
foreach ($c as $cust) {
|
||||
$json[] = [
|
||||
'id' => $cust['id'],
|
||||
'text' => $cust['username'].' - '.$cust['fullname'].' - '.$cust['email']
|
||||
'text' => $cust['username'] . ' - ' . $cust['fullname'] . ' - ' . $cust['email']
|
||||
];
|
||||
}
|
||||
echo json_encode(['results'=>$json]);
|
||||
echo json_encode(['results' => $json]);
|
||||
die();
|
||||
break;
|
||||
default:
|
||||
|
@ -24,15 +24,11 @@ switch ($action) {
|
||||
case 'list':
|
||||
$ui->assign('xfooter', '<script type="text/javascript" src="ui/lib/c/customers.js"></script>');
|
||||
$search = _post('search');
|
||||
$what = _post('what');
|
||||
if (!in_array($what, ['username', 'fullname', 'phonenumber', 'email'])) {
|
||||
$what = 'username';
|
||||
}
|
||||
run_hook('list_customers'); #HOOK
|
||||
if ($search != '') {
|
||||
$paginator = Paginator::bootstrap('tbl_customers', 'username', '%' . $search . '%');
|
||||
$paginator = Paginator::bootstrapRaw('tbl_customers', "(`username` LIKE '%$search%' OR `fullname` LIKE '%$search%' OR `phonenumber` LIKE '%$search%' OR `email` LIKE '%$search%')", [$search, $search, $search, $search]);
|
||||
$d = ORM::for_table('tbl_customers')
|
||||
->where_like($what, '%' . $search . '%')
|
||||
->where_raw("(`username` LIKE '%$search%' OR `fullname` LIKE '%$search%' OR `phonenumber` LIKE '%$search%' OR `email` LIKE '%$search%')", [$search, $search, $search, $search])
|
||||
->offset($paginator['startpoint'])
|
||||
->limit($paginator['limit'])
|
||||
->order_by_desc('id')->find_many();
|
||||
@ -42,7 +38,6 @@ switch ($action) {
|
||||
}
|
||||
|
||||
$ui->assign('search', htmlspecialchars($search));
|
||||
$ui->assign('what', $what);
|
||||
$ui->assign('d', $d);
|
||||
$ui->assign('paginator', $paginator);
|
||||
$ui->display('customers.tpl');
|
||||
@ -53,10 +48,14 @@ switch ($action) {
|
||||
$ui->display('customers-add.tpl');
|
||||
break;
|
||||
|
||||
case 'viewu':
|
||||
$customer = ORM::for_table('tbl_customers')->where('username', $routes['2'])->find_one();
|
||||
case 'view':
|
||||
$id = $routes['2'];
|
||||
run_hook('view_customer'); #HOOK
|
||||
$customer = ORM::for_table('tbl_customers')->find_one($id);
|
||||
if(!$customer){
|
||||
$customer = ORM::for_table('tbl_customers')->find_one($id);
|
||||
}
|
||||
if ($customer) {
|
||||
$v = $routes['3'];
|
||||
if (empty($v) || $v == 'order') {
|
||||
@ -71,7 +70,7 @@ switch ($action) {
|
||||
->find_many();
|
||||
// $ui->assign('paginator', $paginator);
|
||||
$ui->assign('order', $order);
|
||||
}else if($v=='activation'){
|
||||
} else if ($v == 'activation') {
|
||||
// $paginator = Paginator::bootstrap('tbl_transactions', 'username', $customer['username']);
|
||||
$activation = ORM::for_table('tbl_transactions')
|
||||
->where('username', $customer['username'])
|
||||
@ -82,6 +81,8 @@ switch ($action) {
|
||||
// $ui->assign('paginator', $paginator);
|
||||
$ui->assign('activation', $activation);
|
||||
}
|
||||
$package = ORM::for_table('tbl_user_recharges')->where('username',$customer['username'])->find_one();
|
||||
$ui->assign('package', $package);
|
||||
$ui->assign('v', $v);
|
||||
$ui->assign('d', $customer);
|
||||
$ui->display('customers-view.tpl');
|
||||
|
@ -17,11 +17,12 @@ switch ($action) {
|
||||
break;
|
||||
case 'history':
|
||||
$ui->assign('_system_menu', 'history');
|
||||
$paginator = Paginator::bootstrap('tbl_payment_gateway', 'username', $user['username']);
|
||||
$d = ORM::for_table('tbl_payment_gateway')
|
||||
->where('username', $user['username'])
|
||||
->order_by_desc('id')
|
||||
->offset($paginator['startpoint'])->limit($paginator['limit'])
|
||||
->find_many();
|
||||
$paginator = Paginator::bootstrap('tbl_payment_gateway', 'username', $user['username']);
|
||||
$ui->assign('paginator', $paginator);
|
||||
$ui->assign('d', $d);
|
||||
$ui->assign('_title', Lang::T('Order History'));
|
||||
|
@ -359,18 +359,16 @@ $_L['Balance_Plans'] = 'Balance Plans';
|
||||
$_L['Buy_Balance'] = 'Buy Balance?';
|
||||
$_L['Price'] = 'Price';
|
||||
$_L['Validity'] = 'Validity';
|
||||
$_L['Disable_auto_renewal'] = 'Disable auto renewal?';
|
||||
$_L['Auto_Renewal_On'] = 'Auto Renewal On';
|
||||
$_L['Enable_auto_renewal'] = 'Enable auto renewal?';
|
||||
$_L['Auto_Renewal_Off'] = 'Auto Renewal Off';
|
||||
$_L['Refill_Balance'] = 'Refill Balance';
|
||||
$_L['Invoice_Footer'] = 'Invoice Footer';
|
||||
$_L['Pay_With_Balance'] = 'Pay With Balance';
|
||||
$_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite';
|
||||
$_L['Success_to_buy_package'] = 'Success to buy package';
|
||||
$_L['Auto_Renewal'] = 'Auto Renewal';
|
||||
$_L['View'] = 'View';
|
||||
$_L['View'] = 'View';
|
||||
$_L['View'] = 'View';
|
||||
$_L['View'] = 'View';
|
||||
$_L['View'] = 'View';
|
||||
$_L['Disable_auto_renewal'] = 'Disable auto renewal?';
|
||||
$_L['Auto_Renewal_On'] = 'Auto Renewal On';
|
||||
$_L['Enable_auto_renewal'] = 'Enable auto renewal?';
|
||||
$_L['Auto_Renewal_Off'] = 'Auto Renewal Off';
|
||||
$_L['Refill_Balance'] = 'Refill Balance';
|
||||
$_L['Invoice_Footer'] = 'Invoice Footer';
|
||||
$_L['Pay_With_Balance'] = 'Pay With Balance';
|
||||
$_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite';
|
||||
$_L['Success_to_buy_package'] = 'Success to buy package';
|
||||
$_L['Auto_Renewal'] = 'Auto Renewal';
|
||||
$_L['View'] = 'View';
|
||||
$_L['Back'] = 'Back';
|
||||
$_L['Active'] = 'Active';
|
||||
|
@ -2,9 +2,6 @@
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-4 col-md-4">
|
||||
<a href="{$_url}customers/list"
|
||||
class="btn btn-primary btn-sm btn-block">{Lang::T('Back')}</a>
|
||||
<br>
|
||||
<div class="box box-primary">
|
||||
<div class="box-body box-profile">
|
||||
<img class="profile-user-img img-responsive img-circle"
|
||||
@ -15,41 +12,42 @@
|
||||
|
||||
<ul class="list-group list-group-unbordered">
|
||||
<li class="list-group-item">
|
||||
<b>{$_L['Username']}</b> <a class="pull-right">{$d['username']}</a>
|
||||
<b>{$_L['Username']}</b> <span class="pull-right">{$d['username']}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<b>{$_L['Phone_Number']}</b> <a class="pull-right">{$d['phonenumber']}</a>
|
||||
<b>{$_L['Phone_Number']}</b> <span class="pull-right">{$d['phonenumber']}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<b>{$_L['Email']}</b> <a class="pull-right">{$d['email']}</a>
|
||||
<b>{$_L['Email']}</b> <span class="pull-right">{$d['email']}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<p class="text-muted">{Lang::nl2br($d['address'])}</p>
|
||||
<ul class="list-group list-group-unbordered">
|
||||
<li class="list-group-item">
|
||||
<b>{$_L['Password']}</b> <a class="pull-right" style="background-color: black; color:black;"
|
||||
onclick="this.select()">{$d['password']}</a>
|
||||
<b>{$_L['Password']}</b> <span class="pull-right" style="background-color: black; color:black;"
|
||||
onclick="this.select()">{$d['password']}</span>
|
||||
</li>
|
||||
{if $d['pppoe_password'] != ''}
|
||||
<li class="list-group-item">
|
||||
<b>PPPOE {$_L['Password']}</b> <a class="pull-right"
|
||||
<b>PPPOE {$_L['Password']}</b> <span class="pull-right"
|
||||
style="background-color: black; color:black;"
|
||||
onclick="this.select()">{$d['pppoe_password']}</a>
|
||||
onclick="this.select()">{$d['pppoe_password']}</span>
|
||||
</li>
|
||||
{/if}
|
||||
<li class="list-group-item">
|
||||
<b>{Lang::T('Balance')}</b> <a class="pull-right">{Lang::moneyFormat($d['balance'])}</a>
|
||||
<b>{Lang::T('Balance')}</b> <span class="pull-right">{Lang::moneyFormat($d['balance'])}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<b>{Lang::T('Auto Renewal')}</b> <a
|
||||
class="pull-right">{if $d['auto_renewal']}yes{else}no{/if}</a>
|
||||
<b>{Lang::T('Auto Renewal')}</b> <span
|
||||
class="pull-right">{if $d['auto_renewal']}yes{else}no{/if}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<b>{$_L['Created_On']}</b> <a class="pull-right">{Lang::dateTimeFormat($d['created_at'])}</a>
|
||||
<b>{$_L['Created_On']}</b> <span
|
||||
class="pull-right">{Lang::dateTimeFormat($d['created_at'])}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<b>{Lang::T('Last Login')}</b> <a
|
||||
class="pull-right">{Lang::dateTimeFormat($d['last_login'])}</a>
|
||||
<b>{Lang::T('Last Login')}</b> <span
|
||||
class="pull-right">{Lang::dateTimeFormat($d['last_login'])}</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="row">
|
||||
@ -64,8 +62,31 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.box-body -->
|
||||
</div>
|
||||
{if $package}
|
||||
<div class="box box-{if $package['status']=='on'}success{else}danger{/if}">
|
||||
<div class="box-body box-profile">
|
||||
<h4 class="text-center">{$package['type']} - {$package['namebp']}</h4>
|
||||
<ul class="list-group list-group-unbordered">
|
||||
<li class="list-group-item">
|
||||
{Lang::T('Active')} <span
|
||||
class="pull-right">{if $package['status']=='on'}yes{else}no{/if}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
{$_L['Created_On']} <span class="pull-right">{Lang::dateFormat($package['recharged_on'])}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
{$_L['Expires_On']} <span
|
||||
class="pull-right">{Lang::dateTimeFormat($package['expiration']+' '+$package['time'])}</span>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
{$package['routers']} <span class="pull-right">{$package['method']}</span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<a href="{$_url}customers/list" class="btn btn-primary btn-sm btn-block mt-1">{Lang::T('Back')}</a><br>
|
||||
</div>
|
||||
<div class="col-sm-8 col-md-8">
|
||||
<ul class="nav nav-tabs">
|
||||
|
@ -9,17 +9,8 @@
|
||||
<div class="col-md-8">
|
||||
<form id="site-search" method="post" action="{$_url}customers/list/">
|
||||
<div class="input-group">
|
||||
<div class="input-group-addon no-border">
|
||||
<select name="what">
|
||||
<option value="username" {if $what=='username'}selected{/if}>Username</option>
|
||||
<option value="fullname" {if $what=='fullname'}selected{/if}>Name</option>
|
||||
<option value="phonenumber" {if $what=='phonenumber'}selected{/if}>Phone
|
||||
</option>
|
||||
<option value="email" {if $what=='email'}selected{/if}>Email</option>
|
||||
</select>
|
||||
</div>
|
||||
<input type="text" name="search" value="{$search}" class="form-control"
|
||||
placeholder="{$_L['Search_by_Username']}...">
|
||||
placeholder="{Lang::T('Search')}...">
|
||||
<div class="input-group-btn">
|
||||
<button class="btn btn-success" type="submit"><span
|
||||
class="fa fa-search"></span></button>
|
||||
|
@ -107,7 +107,7 @@
|
||||
{foreach $expire as $expired}
|
||||
<tr>
|
||||
<td>{$no++}</td>
|
||||
<td>{$expired['username']}</td>
|
||||
<td><a href="{$_url}customers/viewu/{$expired['username']}">{$expired['username']}</a></td>
|
||||
<td>{date($_c['date_format'], strtotime($expired['recharged_on']))}
|
||||
</td>
|
||||
<td>{date($_c['date_format'], strtotime($expired['expiration']))} {$expired['time']}
|
||||
|
Loading…
x
Reference in New Issue
Block a user