show user active
This commit is contained in:
parent
eeae60d88e
commit
c57bbeace3
@ -2,6 +2,12 @@
|
||||
|
||||
# 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
|
||||
|
||||
- Expired Pool
|
||||
|
@ -36,6 +36,17 @@ switch ($action) {
|
||||
|
||||
$ui->display('autoload.tpl');
|
||||
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':
|
||||
|
||||
$s = addslashes(_get('s'));
|
||||
|
@ -12,9 +12,6 @@ $action = $routes['1'];
|
||||
$admin = Admin::_info();
|
||||
$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') {
|
||||
r2(U . "dashboard", 'e', $_L['Do_Not_Access']);
|
||||
@ -34,7 +31,8 @@ switch ($action) {
|
||||
->order_by_desc('id')->find_many();
|
||||
} else {
|
||||
$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));
|
||||
|
@ -1,13 +1,14 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||
**/
|
||||
* PHP Mikrotik Billing (https://github.com/hotspotbilling/phpnuxbill/)
|
||||
**/
|
||||
_admin();
|
||||
$ui->assign('_title', $_L['Dashboard']);
|
||||
$admin = Admin::_info();
|
||||
$ui->assign('_admin', $admin);
|
||||
if(!in_array($admin['user_type'],['Admin','Sales'])){
|
||||
r2(U."home",'e',$_L['Do_Not_Access']);
|
||||
if (!in_array($admin['user_type'], ['Admin', 'Sales'])) {
|
||||
r2(U . "home", 'e', $_L['Do_Not_Access']);
|
||||
}
|
||||
|
||||
$fdate = date('Y-m-01');
|
||||
@ -17,59 +18,67 @@ $first_day_month = date('Y-m-01');
|
||||
$mdate = date('Y-m-d');
|
||||
$month_n = date('n');
|
||||
|
||||
$iday = ORM::for_table('tbl_transactions')->where('recharged_on',$mdate)->sum('price');
|
||||
if($iday == ''){
|
||||
$iday = ORM::for_table('tbl_transactions')->where('recharged_on', $mdate)->sum('price');
|
||||
if ($iday == '') {
|
||||
$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');
|
||||
if($imonth == ''){
|
||||
$imonth = ORM::for_table('tbl_transactions')->where_gte('recharged_on', $first_day_month)->where_lte('recharged_on', $mdate)->sum('price');
|
||||
if ($imonth == '') {
|
||||
$imonth = '0.00';
|
||||
}
|
||||
$ui->assign('imonth',$imonth);
|
||||
$ui->assign('imonth', $imonth);
|
||||
|
||||
$u_act = ORM::for_table('tbl_user_recharges')->where('status','on')->count();
|
||||
if($u_act == ''){
|
||||
$u_act = ORM::for_table('tbl_user_recharges')->where('status', 'on')->count();
|
||||
if ($u_act == '') {
|
||||
$u_act = '0';
|
||||
}
|
||||
$ui->assign('u_act',$u_act);
|
||||
$ui->assign('u_act', $u_act);
|
||||
|
||||
$u_all = ORM::for_table('tbl_user_recharges')->count();
|
||||
if($u_all == ''){
|
||||
if ($u_all == '') {
|
||||
$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
|
||||
$expire = ORM::for_table('tbl_user_recharges')->where('expiration',$mdate)->order_by_desc('id')->find_many();
|
||||
$ui->assign('expire',$expire);
|
||||
$expire = ORM::for_table('tbl_user_recharges')->where('expiration', $mdate)->order_by_desc('id')->find_many();
|
||||
$ui->assign('expire', $expire);
|
||||
|
||||
//activity log
|
||||
$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();
|
||||
$ui->assign('log',$log);
|
||||
$ui->assign('log', $log);
|
||||
|
||||
// Count stock
|
||||
$tmp = $v = ORM::for_table('tbl_plans')->select('id')->select('name_plan')->find_many();
|
||||
$plans = array();
|
||||
$stocks = array("used"=>0,"unused"=>0);
|
||||
$stocks = array("used" => 0, "unused" => 0);
|
||||
$n = 0;
|
||||
foreach($tmp as $plan){
|
||||
foreach ($tmp as $plan) {
|
||||
$plans[$n]['name_plan'] = $plan['name_plan'];
|
||||
$plans[$n]['unused'] = ORM::for_table('tbl_voucher')
|
||||
->where('id_plan',$plan['id'])
|
||||
->where('status',0)->count();;
|
||||
->where('id_plan', $plan['id'])
|
||||
->where('status', 0)->count();;
|
||||
$stocks["unused"] += $plans[$n]['unused'];
|
||||
$plans[$n]['used'] = ORM::for_table('tbl_voucher')
|
||||
->where('id_plan',$plan['id'])
|
||||
->where('status',1)->count();;
|
||||
->where('id_plan', $plan['id'])
|
||||
->where('status', 1)->count();;
|
||||
$stocks["used"] += $plans[$n]['used'];
|
||||
$n++;
|
||||
}
|
||||
|
||||
$ui->assign('stocks',$stocks);
|
||||
$ui->assign('plans',$plans);
|
||||
$ui->assign('stocks', $stocks);
|
||||
$ui->assign('plans', $plans);
|
||||
|
||||
run_hook('view_dashboard'); #HOOK
|
||||
$ui->display('dashboard.tpl');
|
||||
$ui->display('dashboard.tpl');
|
||||
|
@ -24,34 +24,37 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-striped">
|
||||
<table class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{$_L['Manage']}</th>
|
||||
<th></th>
|
||||
<th>{$_L['Username']}</th>
|
||||
<th>{$_L['Full_Name']}</th>
|
||||
<th>{Lang::T('Balance')}</th>
|
||||
<th>{$_L['Phone_Number']}</th>
|
||||
<th>{$_L['Email']}</th>
|
||||
<th>{$_L['Created_On']}</th>
|
||||
<th>{$_L['Recharge']}</th>
|
||||
<th>{$_L['Manage']}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr>
|
||||
<td align="center">
|
||||
<a href="{$_url}customers/view/{$ds['id']}" id="{$ds['id']}"
|
||||
class="btn btn-success btn-sm">{Lang::T('View')}</a>
|
||||
<td align="center" api-get-text="{$_url}autoload/customer_is_active/{$ds['id']}">
|
||||
<span class="label label-default">-</span>
|
||||
</td>
|
||||
<td>{$ds['username']}</td>
|
||||
<td>{$ds['fullname']}</td>
|
||||
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'" style="cursor:pointer;">{$ds['username']}</td>
|
||||
<td onclick="window.location.href = '{$_url}customers/view/{$ds['id']}'" style="cursor: pointer;">{$ds['fullname']}</td>
|
||||
<td>{Lang::moneyFormat($ds['balance'])}</td>
|
||||
<td>{$ds['phonenumber']}</td>
|
||||
<td>{$ds['email']}</td>
|
||||
<td>{Lang::dateTimeFormat($ds['created_at'])}</td>
|
||||
<td align="center"><a href="{$_url}prepaid/recharge-user/{$ds['id']}" id="{$ds['id']}"
|
||||
class="btn btn-primary btn-sm">{$_L['Recharge']}</a></td>
|
||||
<td align="center">
|
||||
<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>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
|
@ -33,7 +33,7 @@
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<div class="small-box bg-yellow">
|
||||
<div class="inner">
|
||||
<h4>{$u_act}</h4>
|
||||
<h4>{$u_act}/{$u_all}</h4>
|
||||
|
||||
<p>{$_L['Users_Active']}</p>
|
||||
</div>
|
||||
@ -47,7 +47,7 @@
|
||||
<div class="col-lg-3 col-xs-6">
|
||||
<div class="small-box bg-red">
|
||||
<div class="inner">
|
||||
<h4>{$u_all}</h4>
|
||||
<h4>{$c_all}</h4>
|
||||
|
||||
<p>{$_L['Total_Users']}</p>
|
||||
</div>
|
||||
|
@ -22,6 +22,13 @@
|
||||
$(document).ready(function() {
|
||||
$('.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>
|
||||
{/literal}
|
||||
|
||||
|
@ -1,45 +1,58 @@
|
||||
</section>
|
||||
</div>
|
||||
{if isset($_c['CompanyFooter'])}
|
||||
<footer class="main-footer">
|
||||
{$_c['CompanyFooter']}
|
||||
</footer>
|
||||
{else}
|
||||
<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>
|
||||
</footer>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
{if isset($_c['CompanyFooter'])}
|
||||
<footer class="main-footer">
|
||||
{$_c['CompanyFooter']}
|
||||
</footer>
|
||||
{else}
|
||||
<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>
|
||||
</footer>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<script src="ui/ui/scripts/jquery.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/jquery.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/plugins/select2.min.js"></script>
|
||||
<script src="ui/ui/scripts/custom.js"></script>
|
||||
<script src="ui/ui/scripts/plugins/select2.min.js"></script>
|
||||
<script src="ui/ui/scripts/custom.js"></script>
|
||||
|
||||
{if isset($xfooter)}
|
||||
{$xfooter}
|
||||
{/if}
|
||||
{if isset($xfooter)}
|
||||
{$xfooter}
|
||||
{/if}
|
||||
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/if}
|
||||
{if $_c['tawkto'] != ''}
|
||||
<!--Start of Tawk.to Script-->
|
||||
<script type="text/javascript">
|
||||
var Tawk_API = Tawk_API || {},
|
||||
Tawk_LoadStart = new Date();
|
||||
(function() {
|
||||
var s1 = document.createElement("script"),
|
||||
s0 = document.getElementsByTagName("script")[0];
|
||||
s1.async = true;
|
||||
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
|
||||
s1.charset = 'UTF-8';
|
||||
s1.setAttribute('crossorigin', '*');
|
||||
s0.parentNode.insertBefore(s1, s0);
|
||||
})();
|
||||
</script>
|
||||
<!--End of Tawk.to Script-->
|
||||
{/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>
|
@ -1,3 +1,3 @@
|
||||
{
|
||||
"version": "2023.9.6"
|
||||
"version": "2023.9.7"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user