diff --git a/system/cron.php b/system/cron.php index 84204db7..13a4837f 100644 --- a/system/cron.php +++ b/system/cron.php @@ -1,7 +1,8 @@ find_many(); -foreach($result as $value){ - $config[$value['setting']]=$value['value']; +foreach ($result as $value) { + $config[$value['setting']] = $value['value']; } date_default_timezone_set($config['timezone']); -$d = ORM::for_table('tbl_user_recharges')->where('status','on')->find_many(); +$textExpired = $config['user_notification_expired_text']; + +$d = ORM::for_table('tbl_user_recharges')->where('status', 'on')->find_many(); run_hook('cronjob'); #HOOK -foreach ($d as $ds){ - if($ds['type'] == 'Hotspot'){ - $date_now = strtotime(date("Y-m-d H:i:s")); - $expiration = strtotime($ds['expiration'].' '.$ds['time']); - echo $ds['expiration']." : ".$ds['username']; - if ($date_now >= $expiration){ - echo " : EXPIRED \r\n"; - $u = ORM::for_table('tbl_user_recharges')->where('id',$ds['id'])->find_one(); - $c = ORM::for_table('tbl_customers')->where('id',$ds['customer_id'])->find_one(); - $m = ORM::for_table('tbl_routers')->where('name',$ds['routers'])->find_one(); +foreach ($d as $ds) { + if ($ds['type'] == 'Hotspot') { + $date_now = strtotime(date("Y-m-d H:i:s")); + $expiration = strtotime($ds['expiration'] . ' ' . $ds['time']); + echo $ds['expiration'] . " : " . $ds['username']; + if ($date_now >= $expiration) { + echo " : EXPIRED \r\n"; + $u = ORM::for_table('tbl_user_recharges')->where('id', $ds['id'])->find_one(); + $c = ORM::for_table('tbl_customers')->where('id', $ds['customer_id'])->find_one(); + $m = ORM::for_table('tbl_routers')->where('name', $ds['routers'])->find_one(); - if(!$_c['radius_mode']){ + if (!$_c['radius_mode']) { $client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']); - Mikrotik::setHotspotLimitUptime($client,$c['username']); - Mikrotik::removeHotspotActiveUser($client,$c['username']); + Mikrotik::setHotspotLimitUptime($client, $c['username']); + Mikrotik::removeHotspotActiveUser($client, $c['username']); + Message::sendExpiredNotification($c['phonenumber'], $c['fullname'], $u['namebp'], $textExpired, $config['user_notification_expired']); + } + //update database user dengan status off + $u->status = 'off'; + $u->save(); + } else echo " : ACTIVE \r\n"; + } else { + $date_now = strtotime(date("Y-m-d H:i:s")); + $expiration = strtotime($ds['expiration'] . ' ' . $ds['time']); + echo $ds['expiration'] . " : " . $ds['username']; + if ($date_now >= $expiration) { + echo " : EXPIRED \r\n"; + $u = ORM::for_table('tbl_user_recharges')->where('id', $ds['id'])->find_one(); + $c = ORM::for_table('tbl_customers')->where('id', $ds['customer_id'])->find_one(); + $m = ORM::for_table('tbl_routers')->where('name', $ds['routers'])->find_one(); + + if (!$_c['radius_mode']) { + $client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']); + Mikrotik::disablePpoeUser($client, $c['username']); + Mikrotik::removePpoeActive($client, $c['username']); + Message::sendExpiredNotification($c['phonenumber'], $c['fullname'], $u['namebp'], $textExpired, $config['user_notification_expired']); } - //update database user dengan status off - $u->status = 'off'; - $u->save(); - }else echo " : ACTIVE \r\n"; - }else{ - $date_now = strtotime(date("Y-m-d H:i:s")); - $expiration = strtotime($ds['expiration'].' '.$ds['time']); - echo $ds['expiration']." : ".$ds['username']; - if ($date_now >= $expiration){ - echo " : EXPIRED \r\n"; - $u = ORM::for_table('tbl_user_recharges')->where('id',$ds['id'])->find_one(); - $c = ORM::for_table('tbl_customers')->where('id',$ds['customer_id'])->find_one(); - $m = ORM::for_table('tbl_routers')->where('name',$ds['routers'])->find_one(); - - if(!$_c['radius_mode']){ - $client = Mikrotik::getClient($m['ip_address'], $m['username'], $m['password']); - Mikrotik::disablePpoeUser($client,$c['username']); - Mikrotik::removePpoeActive($client,$c['username']); - } - - $u->status = 'off'; - $u->save(); - }else echo " : ACTIVE \r\n"; - } + $u->status = 'off'; + $u->save(); + } else echo " : ACTIVE \r\n"; + } }