Auto Delete User dan Voucher Expire Pada PHPMixBill


Auto Delete User dan Voucher Expire Pada PHPMixBillAuto Delete User dan Voucher Expire pada PHPMixBill – Pada artikel sebelumnya saya sudah membahas mengenai Cara Mengaktifkan Schedule User Expire pada PHPMixBill, yang mana script untuk schedulenya ini sudah disertakan secara default oleh Developer PHPMixBill.

Untuk artikel kali saya akan berbagi tutorial atau cara agar user-user expire atau voucher-voucher yang sudah digunakan bisa dihapus secara otomatis oleh PHPMixBill, caranya tetap sama dengan tutorial sebelumnya yaitu dengan mengaktifkan schedule pada server PHPMixBill atau schedule pada mikrotik, hanya saja script untuk ini tidak disertakan secara default oleh PHPMixBill. Disini saya akan membagikan script untuk Auto Delete User Expire dan Voucher Terpakai pada PHPMixBill yang mana script ini merupakan pengembangan dari script cron.php yang ada pada PHPMixBill.



Baca Juga :

Modifikasi Design Print Voucher PHPMixBill Part-2



Silahkan anda buat sebuah file php pada folder_phpmixbill_anda/system/ , nama file-nya silahkan anda tentukan sendiri. Kemudian copy paste script php berikut :



<?php 
 
 require('config.php');
 require('orm.php');
 
 use PEAR2\Net\RouterOS;
 require_once 'autoload/PEAR2/Autoload.php';
 
 ORM::configure("mysql:host=$db_host;dbname=$db_name");
 ORM::configure('username', $db_user);
 ORM::configure('password', $db_password);
 ORM::configure('return_result_sets', true);
 ORM::configure('logging', true);
 
 $result = ORM::for_table('tbl_appconfig')->find_many();
 foreach($result as $value){ $config[$value['setting']]=$value['value']; }
 date_default_timezone_set($config['timezone']);
 
 $z = ORM::for_table('tbl_user_recharges')->where('method','voucher')->find_many();
 
 foreach ($z as $zs){
 if($zs['type'] =='Hotspot'){
  $date_now = strtotime(date("Y-m-d H:i:s"));
  $expiration = strtotime($zs['expiration'].' '.$zs['time']);
  
  if ($date_now >= $expiration){
 
   $u = ORM::for_table('tbl_user_recharges')->where('id',$zs['id'])->find_one();
   $c = ORM::for_table('tbl_customers')->where('id',$zs['customer_id'])->find_one();
   $m = ORM::for_table('tbl_routers')->where('name',$zs['routers'])->find_one();
   
   try {
    $client = new RouterOS\Client($m['ip_address'], $m['username'], $m['password']);
   } catch (Exception $e) {
    die('Unable to connect to the router.');
   }
   
   $printRequest = new RouterOS\Request('/ip/hotspot/user/print');
   $printRequest->setArgument('.proplist', '.id');
   $printRequest->setQuery(RouterOS\Query::where('name', $c['username']));
   $id = $client->sendSync($printRequest)->getProperty('.id');
       
   $setRequest = new RouterOS\Request('/ip/hotspot/user/remove');
   $setRequest->setArgument('numbers', $id);
   $client->sendSync($setRequest);
   $u->delete();
   $c->delete();
  }   
 }
 }
 
 $x = ORM::for_table('tbl_voucher')->where('status','1')->find_many();
 
 foreach ($x as $xs){
 if($xs['type'] =='Hotspot'){
  
   $y = ORM::for_table('tbl_voucher')->where('id',$xs['id'])->find_one();
   $y->delete();
   echo "<br>VOUCHER TERPAKAI SUDAH DIHAPUS<br>";
 }
 }
 
 
 ?>

Silahkan di-save dan selanjutnya silahkan anda aktifkan schedule-nya pada server PHPMixBill anda atau pada MikroTik anda dan sesuaikan interval waktunya, saya pribadi menggunakan interval per 24 jam, yang dieksekusi setiap jam 06.00. Bagi yang belum mengetahui cara mengaktifkan schedulenya silahkan baca dulu artikel : Cara Mengaktifkan Schedule User Expire pada PHPMixBill.

Baca Juga :

Cara Mengaktifkan Schedule User Expire pada PHPMixBill

Perlu anda ketahui, script diatas hanya berlaku untuk user yang menggunakan kode voucher saja dan tidak berlaku untuk user-user yang ditambah secara manual di PHPMixBill.



Demikianlah artikel kali ini mengenai Auto Delete User dan Voucher Expire pada PHPMixBill, mudah-mudahan bermaanfaat dan menjadi motivasi untuk dikembangkan lagi. Ikuti terus TopSETTING.COM untuk mendapatkan artikel-artikel atau tutorial-tutorial menarik lainnya, terutama untuk pengembangan terhadap fitur-fitur PHPMixBill.

00votes
Article Rating

   
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

2 Comments
Newest
OldestMost Voted
Inline Feedbacks
View all comments
Ahsan
Ahsan
6 years ago

Very nice tutorial. Really appreciated. I tried this code for PPPOE but its not working. Please share with me that how can i do this in PPPOE environment. Thanks in advance.

2
0
Would love your thoughts, please comment.x
()
x