show user active
This commit is contained in:
parent
eeae60d88e
commit
c57bbeace3
@ -2,6 +2,12 @@
|
|||||||
|
|
||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## 2023.9.7
|
||||||
|
|
||||||
|
- Fix PPPOE Delete Customer
|
||||||
|
- Remove active Customer before deleting
|
||||||
|
- Show IP and Mac even if it not Hotspot
|
||||||
|
|
||||||
## 2023.9.6
|
## 2023.9.6
|
||||||
|
|
||||||
- Expired Pool
|
- Expired Pool
|
||||||
|
@ -36,6 +36,17 @@ switch ($action) {
|
|||||||
|
|
||||||
$ui->display('autoload.tpl');
|
$ui->display('autoload.tpl');
|
||||||
break;
|
break;
|
||||||
|
case 'customer_is_active':
|
||||||
|
$d = ORM::for_table('tbl_user_recharges')->where('customer_id', $routes['2'])->findOne();
|
||||||
|
if ($d) {
|
||||||
|
if ($d['status'] == 'on') {
|
||||||
|
die('<span class="label label-success" title="Expired ' . Lang::dateAndTimeFormat($d['expiration'], $d['time']) . '">on</span>');
|
||||||
|
} else {
|
||||||
|
die('<span class="label label-danger" title="Expired ' . Lang::dateAndTimeFormat($d['expiration'], $d['time']) . '">off</span>');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
die('<span class="label label-danger">off</span>');
|
||||||
|
}
|
||||||
case 'customer_select2':
|
case 'customer_select2':
|
||||||
|
|
||||||
$s = addslashes(_get('s'));
|
$s = addslashes(_get('s'));
|
||||||
|
@ -12,9 +12,6 @@ $action = $routes['1'];
|
|||||||
$admin = Admin::_info();
|
$admin = Admin::_info();
|
||||||
$ui->assign('_admin', $admin);
|
$ui->assign('_admin', $admin);
|
||||||
|
|
||||||
use PEAR2\Net\RouterOS;
|
|
||||||
|
|
||||||
require_once 'system/autoload/PEAR2/Autoload.php';
|
|
||||||
|
|
||||||
if ($admin['user_type'] != 'Admin' and $admin['user_type'] != 'Sales') {
|
if ($admin['user_type'] != 'Admin' and $admin['user_type'] != 'Sales') {
|
||||||
r2(U . "dashboard", 'e', $_L['Do_Not_Access']);
|
r2(U . "dashboard", 'e', $_L['Do_Not_Access']);
|
||||||
@ -34,7 +31,8 @@ switch ($action) {
|
|||||||
->order_by_desc('id')->find_many();
|
->order_by_desc('id')->find_many();
|
||||||
} else {
|
} else {
|
||||||
$paginator = Paginator::bootstrap('tbl_customers');
|
$paginator = Paginator::bootstrap('tbl_customers');
|
||||||
$d = ORM::for_table('tbl_customers')->offset($paginator['startpoint'])->limit($paginator['limit'])->order_by_desc('id')->find_many();
|
$d = ORM::for_table('tbl_customers')
|
||||||
|
->offset($paginator['startpoint'])->limit($paginator['limit'])->order_by_desc('id')->find_many();
|
||||||
}
|
}
|
||||||
|
|
||||||
$ui->assign('search', htmlspecialchars($search));
|
$ui->assign('search', htmlspecialchars($search));
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||||
**/
|
**/
|
||||||
_admin();
|
_admin();
|
||||||
$ui->assign('_title', $_L['Dashboard']);
|
$ui->assign('_title', $_L['Dashboard']);
|
||||||
$admin = Admin::_info();
|
$admin = Admin::_info();
|
||||||
$ui->assign('_admin', $admin);
|
$ui->assign('_admin', $admin);
|
||||||
if(!in_array($admin['user_type'],['Admin','Sales'])){
|
if (!in_array($admin['user_type'], ['Admin', 'Sales'])) {
|
||||||
r2(U."home",'e',$_L['Do_Not_Access']);
|
r2(U . "home", 'e', $_L['Do_Not_Access']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$fdate = date('Y-m-01');
|
$fdate = date('Y-m-01');
|
||||||
@ -17,59 +18,67 @@ $first_day_month = date('Y-m-01');
|
|||||||
$mdate = date('Y-m-d');
|
$mdate = date('Y-m-d');
|
||||||
$month_n = date('n');
|
$month_n = date('n');
|
||||||
|
|
||||||
$iday = ORM::for_table('tbl_transactions')->where('recharged_on',$mdate)->sum('price');
|
$iday = ORM::for_table('tbl_transactions')->where('recharged_on', $mdate)->sum('price');
|
||||||
if($iday == ''){
|
if ($iday == '') {
|
||||||
$iday = '0.00';
|
$iday = '0.00';
|
||||||
}
|
}
|
||||||
$ui->assign('iday',$iday);
|
$ui->assign('iday', $iday);
|
||||||
|
|
||||||
$imonth = ORM::for_table('tbl_transactions')->where_gte('recharged_on',$first_day_month)->where_lte('recharged_on',$mdate)->sum('price');
|
$imonth = ORM::for_table('tbl_transactions')->where_gte('recharged_on', $first_day_month)->where_lte('recharged_on', $mdate)->sum('price');
|
||||||
if($imonth == ''){
|
if ($imonth == '') {
|
||||||
$imonth = '0.00';
|
$imonth = '0.00';
|
||||||
}
|
}
|
||||||
$ui->assign('imonth',$imonth);
|
$ui->assign('imonth', $imonth);
|
||||||
|
|
||||||
$u_act = ORM::for_table('tbl_user_recharges')->where('status','on')->count();
|
$u_act = ORM::for_table('tbl_user_recharges')->where('status', 'on')->count();
|
||||||
if($u_act == ''){
|
if ($u_act == '') {
|
||||||
$u_act = '0';
|
$u_act = '0';
|
||||||
}
|
}
|
||||||
$ui->assign('u_act',$u_act);
|
$ui->assign('u_act', $u_act);
|
||||||
|
|
||||||
$u_all = ORM::for_table('tbl_user_recharges')->count();
|
$u_all = ORM::for_table('tbl_user_recharges')->count();
|
||||||
if($u_all == ''){
|
if ($u_all == '') {
|
||||||
$u_all = '0';
|
$u_all = '0';
|
||||||
}
|
}
|
||||||
$ui->assign('u_all',$u_all);
|
$ui->assign('u_all', $u_all);
|
||||||
|
|
||||||
|
|
||||||
|
$c_all = ORM::for_table('tbl_customers')->count();
|
||||||
|
if ($u_all == '') {
|
||||||
|
$c_all = '0';
|
||||||
|
}
|
||||||
|
$ui->assign('c_all', $u_all);
|
||||||
|
|
||||||
//user expire
|
//user expire
|
||||||
$expire = ORM::for_table('tbl_user_recharges')->where('expiration',$mdate)->order_by_desc('id')->find_many();
|
$expire = ORM::for_table('tbl_user_recharges')->where('expiration', $mdate)->order_by_desc('id')->find_many();
|
||||||
$ui->assign('expire',$expire);
|
$ui->assign('expire', $expire);
|
||||||
|
|
||||||
//activity log
|
//activity log
|
||||||
$dlog = ORM::for_table('tbl_logs')->limit(5)->order_by_desc('id')->find_many();
|
$dlog = ORM::for_table('tbl_logs')->limit(5)->order_by_desc('id')->find_many();
|
||||||
$ui->assign('dlog',$dlog);
|
$ui->assign('dlog', $dlog);
|
||||||
$log = ORM::for_table('tbl_logs')->count();
|
$log = ORM::for_table('tbl_logs')->count();
|
||||||
$ui->assign('log',$log);
|
$ui->assign('log', $log);
|
||||||
|
|
||||||
// Count stock
|
// Count stock
|
||||||
$tmp = $v = ORM::for_table('tbl_plans')->select('id')->select('name_plan')->find_many();
|
$tmp = $v = ORM::for_table('tbl_plans')->select('id')->select('name_plan')->find_many();
|
||||||
$plans = array();
|
$plans = array();
|
||||||
$stocks = array("used"=>0,"unused"=>0);
|
$stocks = array("used" => 0, "unused" => 0);
|
||||||
$n = 0;
|
$n = 0;
|
||||||
foreach($tmp as $plan){
|
foreach ($tmp as $plan) {
|
||||||
$plans[$n]['name_plan'] = $plan['name_plan'];
|
$plans[$n]['name_plan'] = $plan['name_plan'];
|
||||||
$plans[$n]['unused'] = ORM::for_table('tbl_voucher')
|
$plans[$n]['unused'] = ORM::for_table('tbl_voucher')
|
||||||
->where('id_plan',$plan['id'])
|
->where('id_plan', $plan['id'])
|
||||||
->where('status',0)->count();;
|
->where('status', 0)->count();;
|
||||||
$stocks["unused"] += $plans[$n]['unused'];
|
$stocks["unused"] += $plans[$n]['unused'];
|
||||||
$plans[$n]['used'] = ORM::for_table('tbl_voucher')
|
$plans[$n]['used'] = ORM::for_table('tbl_voucher')
|
||||||
->where('id_plan',$plan['id'])
|
->where('id_plan', $plan['id'])
|
||||||
->where('status',1)->count();;
|
->where('status', 1)->count();;
|
||||||
$stocks["used"] += $plans[$n]['used'];
|
$stocks["used"] += $plans[$n]['used'];
|
||||||
$n++;
|
$n++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ui->assign('stocks',$stocks);
|
$ui->assign('stocks', $stocks);
|
||||||
$ui->assign('plans',$plans);
|
$ui->assign('plans', $plans);
|
||||||
|
|
||||||
run_hook('view_dashboard'); #HOOK
|
run_hook('view_dashboard'); #HOOK
|
||||||
$ui->display('dashboard.tpl');
|
$ui->display('dashboard.tpl');
|
@ -24,34 +24,37 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-bordered table-striped">
|
<table class="table table-bordered table-striped table-condensed">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{$_L['Manage']}</th>
|
<th></th>
|
||||||
<th>{$_L['Username']}</th>
|
<th>{$_L['Username']}</th>
|
||||||
<th>{$_L['Full_Name']}</th>
|
<th>{$_L['Full_Name']}</th>
|
||||||
<th>{Lang::T('Balance')}</th>
|
<th>{Lang::T('Balance')}</th>
|
||||||
<th>{$_L['Phone_Number']}</th>
|
<th>{$_L['Phone_Number']}</th>
|
||||||
<th>{$_L['Email']}</th>
|
<th>{$_L['Email']}</th>
|
||||||
<th>{$_L['Created_On']}</th>
|
<th>{$_L['Created_On']}</th>
|
||||||
<th>{$_L['Recharge']}</th>
|
<th>{$_L['Manage']}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{foreach $d as $ds}
|
{foreach $d as $ds}
|
||||||
<tr>
|
<tr>
|
||||||
<td align="center">
|
<td align="center" api-get-text="{$_url}autoload/customer_is_active/{$ds['id']}">
|
||||||
<a href="{$_url}customers/view/{$ds['id']}" id="{$ds['id']}"
|
<span class="label label-default">-</span>
|
||||||
class="btn btn-success btn-sm">{Lang::T('View')}</a>
|
|
||||||
</td>
|
</td>
|
||||||
<td>{$ds['username']}</td>
|
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'" style="cursor:pointer;">{$ds['username']}</td>
|
||||||
<td>{$ds['fullname']}</td>
|
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'" style="cursor: pointer;">{$ds['fullname']}</td>
|
||||||
<td>{Lang::moneyFormat($ds['balance'])}</td>
|
<td>{Lang::moneyFormat($ds['balance'])}</td>
|
||||||
<td>{$ds['phonenumber']}</td>
|
<td>{$ds['phonenumber']}</td>
|
||||||
<td>{$ds['email']}</td>
|
<td>{$ds['email']}</td>
|
||||||
<td>{Lang::dateTimeFormat($ds['created_at'])}</td>
|
<td>{Lang::dateTimeFormat($ds['created_at'])}</td>
|
||||||
<td align="center"><a href="{$_url}prepaid/recharge-user/{$ds['id']}" id="{$ds['id']}"
|
<td align="center">
|
||||||
class="btn btn-primary btn-sm">{$_L['Recharge']}</a></td>
|
<a href="{$_url}customers/view/{$ds['id']}" id="{$ds['id']}" style="margin: 0px;"
|
||||||
|
class="btn btn-success btn-xs"> {Lang::T('View')} </a>
|
||||||
|
<a href="{$_url}prepaid/recharge-user/{$ds['id']}" id="{$ds['id']}" style="margin: 0px;"
|
||||||
|
class="btn btn-primary btn-xs">{$_L['Recharge']}</a>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tbody>
|
</tbody>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<div class="col-lg-3 col-xs-6">
|
<div class="col-lg-3 col-xs-6">
|
||||||
<div class="small-box bg-yellow">
|
<div class="small-box bg-yellow">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<h4>{$u_act}</h4>
|
<h4>{$u_act}/{$u_all}</h4>
|
||||||
|
|
||||||
<p>{$_L['Users_Active']}</p>
|
<p>{$_L['Users_Active']}</p>
|
||||||
</div>
|
</div>
|
||||||
@ -47,7 +47,7 @@
|
|||||||
<div class="col-lg-3 col-xs-6">
|
<div class="col-lg-3 col-xs-6">
|
||||||
<div class="small-box bg-red">
|
<div class="small-box bg-red">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<h4>{$u_all}</h4>
|
<h4>{$c_all}</h4>
|
||||||
|
|
||||||
<p>{$_L['Total_Users']}</p>
|
<p>{$_L['Total_Users']}</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,6 +22,13 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
$('.select2').select2({theme: "bootstrap"});
|
$('.select2').select2({theme: "bootstrap"});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var listAtts = document.querySelectorAll(`[api-get-text]`);
|
||||||
|
listAtts.forEach(function(el) {
|
||||||
|
$.get(el.getAttribute('api-get-text'), function(data) {
|
||||||
|
el.innerHTML = data;
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
{/literal}
|
{/literal}
|
||||||
|
|
||||||
|
@ -6,23 +6,25 @@
|
|||||||
</footer>
|
</footer>
|
||||||
{else}
|
{else}
|
||||||
<footer class="main-footer">
|
<footer class="main-footer">
|
||||||
PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener" target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener" target="_blank">AdminLTE</a>
|
PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener"
|
||||||
|
target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener"
|
||||||
|
target="_blank">AdminLTE</a>
|
||||||
</footer>
|
</footer>
|
||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="ui/ui/scripts/jquery.min.js"></script>
|
<script src="ui/ui/scripts/jquery.min.js"></script>
|
||||||
<script src="ui/ui/scripts/bootstrap.min.js"></script>
|
<script src="ui/ui/scripts/bootstrap.min.js"></script>
|
||||||
<script src="ui/ui/scripts/adminlte.min.js"></script>
|
<script src="ui/ui/scripts/adminlte.min.js"></script>
|
||||||
|
|
||||||
<script src="ui/ui/scripts/plugins/select2.min.js"></script>
|
<script src="ui/ui/scripts/plugins/select2.min.js"></script>
|
||||||
<script src="ui/ui/scripts/custom.js"></script>
|
<script src="ui/ui/scripts/custom.js"></script>
|
||||||
|
|
||||||
{if isset($xfooter)}
|
{if isset($xfooter)}
|
||||||
{$xfooter}
|
{$xfooter}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{if $_c['tawkto'] != ''}
|
{if $_c['tawkto'] != ''}
|
||||||
<!--Start of Tawk.to Script-->
|
<!--Start of Tawk.to Script-->
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var Tawk_API = Tawk_API || {},
|
var Tawk_API = Tawk_API || {},
|
||||||
@ -38,8 +40,19 @@
|
|||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
<!--End of Tawk.to Script-->
|
<!--End of Tawk.to Script-->
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
</body>
|
{literal}
|
||||||
|
<script>
|
||||||
|
var listAtts = document.querySelectorAll(`[api-get-text]`);
|
||||||
|
listAtts.forEach(function(el) {
|
||||||
|
$.get(el.getAttribute('api-get-text'), function(data) {
|
||||||
|
el.innerHTML = data;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{/literal}
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
</html>
|
</html>
|
@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": "2023.9.6"
|
"version": "2023.9.7"
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user