diff --git a/README.md b/README.md
index 88c4b2ae..a27f2d56 100644
--- a/README.md
+++ b/README.md
@@ -3,11 +3,11 @@
@ibnux notes:
----
-> The project maybe has been abandoned
-> maybe the dev busy
-> and nobody donate to him
-> i will try to update as far as i can
-> any Modification will be update in here
+> The project maybe has been abandoned,
+> maybe the dev busy,
+> and nobody donate to him,
+> i will try to update as far as i can,
+> any Modification will be update in here.
### iBNuX Todos
diff --git a/system/controllers/customers.php b/system/controllers/customers.php
index 8c8fb6e4..d0df0663 100644
--- a/system/controllers/customers.php
+++ b/system/controllers/customers.php
@@ -113,11 +113,19 @@ switch ($action) {
$removeRequest->setArgument('numbers', $id);
$client->sendSync($removeRequest);
}
- $d->delete();
- $c->delete();
+ try{
+ $d->delete();
+ }catch(Exception $e){}
+ try{
+ $c->delete();
+ }catch(Exception $e){}
}else{
- $d->delete();
- $c->delete();
+ try{
+ $d->delete();
+ }catch(Exception $e){}
+ try{
+ $c->delete();
+ }catch(Exception $e){}
}
r2(U . 'customers/list', 's', $_L['User_Delete_Ok']);
diff --git a/system/controllers/prepaid.php b/system/controllers/prepaid.php
index 93026215..fda5e2cf 100644
--- a/system/controllers/prepaid.php
+++ b/system/controllers/prepaid.php
@@ -95,6 +95,7 @@ switch ($action) {
} catch (Exception $e) {
die('Unable to connect to the router.');
}
+
$printRequest = new RouterOS\Request(
'/ip hotspot user print .proplist=name',
RouterOS\Query::where('name', $c['username'])
diff --git a/system/controllers/register.php b/system/controllers/register.php
new file mode 100644
index 00000000..27cac6a9
--- /dev/null
+++ b/system/controllers/register.php
@@ -0,0 +1,235 @@
+where('code',$code)->where('status',0)->find_one();
+ if ($v1){
+ $msg = '';
+ if(Validator::Length($username,35,2) == false){
+ $msg .= 'Username should be between 3 to 55 characters'. '
';
+ }
+ if(Validator::Length($fullname,36,2) == false){
+ $msg .= 'Full Name should be between 3 to 25 characters'. '
';
+ }
+ if(!Validator::Length($password,35,2)){
+ $msg .= 'Password should be between 3 to 35 characters'. '
';
+
+ }
+ if($password != $cpassword){
+ $msg .= $_L['PasswordsNotMatch']. '
';
+ }
+
+ $d = ORM::for_table('tbl_customers')->where('username',$username)->find_one();
+ if($d){
+ $msg .= $_L['account_already_exist']. '
';
+ }
+ if($msg == ''){
+ $d = ORM::for_table('tbl_customers')->create();
+ $d->username = $username;
+ $d->password = $password;
+ $d->fullname = $fullname;
+ $d->address = $address;
+ $d->phonenumber = $phonenumber;
+ if($d->save()){
+ $user = $d->id();
+ //check voucher plan
+ $p = ORM::for_table('tbl_plans')->find_one($v1['id_plan']);
+ $c = ORM::for_table('tbl_customers')->find_one($user);
+ $p = ORM::for_table('tbl_plans')->find_one($v1['id_plan']);
+
+ $date_now = date("Y-m-d H:i:s");
+ $date_only = date("Y-m-d");
+ $time = date("H:i:s");
+
+ $mikrotik = Router::_info($v1['routers']);
+ $date_exp = date("Y-m-d", mktime(0,0,0,date("m"),date("d") + $p['validity'],date("Y")));
+
+ if($v1['type'] == 'Hotspot'){
+ try {
+ $client = new RouterOS\Client($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
+ } catch (Exception $e) {
+ die('Unable to connect to the router.');
+ }
+ $addRequest = new RouterOS\Request('/ip/hotspot/user/add');
+ $client->sendSync($addRequest
+ ->setArgument('name', $c['username'])
+ ->setArgument('profile', $p['name_plan'])
+ ->setArgument('password', $c['password'])
+ );
+
+ $d = ORM::for_table('tbl_user_recharges')->create();
+ $d->customer_id = $user;
+ $d->username = $c['username'];
+ $d->plan_id = $v1['id_plan'];
+ $d->namebp = $p['name_plan'];
+ $d->recharged_on = $date_only;
+ $d->expiration = $date_exp;
+ $d->time = $time;
+ $d->status = "on";
+ $d->method = "voucher";
+ $d->routers = $v1['routers'];
+ $d->type = "Hotspot";
+ $d->save();
+
+ // insert table transactions
+ $t = ORM::for_table('tbl_transactions')->create();
+ $t->invoice = "INV-"._raid(5);
+ $t->username = $c['username'];
+ $t->plan_name = $p['name_plan'];
+ $t->price = $p['price'];
+ $t->recharged_on = $date_only;
+ $t->expiration = $date_exp;
+ $t->time = $time;
+ $t->method = "voucher";
+ $t->routers = $v1['routers'];
+ $t->type = "Hotspot";
+ $t->save();
+
+ $v1->status = "1";
+ $v1->user = $c['username'];
+ $v1->save();
+
+ }else{
+ try {
+ $client = new RouterOS\Client($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
+ } catch (Exception $e) {
+ die('Unable to connect to the router.');
+ }
+ $addRequest = new RouterOS\Request('/ppp/secret/add');
+ $client->sendSync($addRequest
+ ->setArgument('name', $c['username'])
+ ->setArgument('service', 'pppoe')
+ ->setArgument('profile', $p['name_plan'])
+ ->setArgument('password', $c['password'])
+ );
+
+ $d = ORM::for_table('tbl_user_recharges')->create();
+ $d->customer_id = $user;
+ $d->username = $c['username'];
+ $d->plan_id = $v1['id_plan'];
+ $d->namebp = $p['name_plan'];
+ $d->recharged_on = $date_only;
+ $d->expiration = $date_exp;
+ $d->time = $time;
+ $d->status = "on";
+ $d->method = "voucher";
+ $d->routers = $v1['routers'];
+ $d->type = "PPPOE";
+ $d->save();
+
+ // insert table transactions
+ $t = ORM::for_table('tbl_transactions')->create();
+ $t->invoice = "INV-"._raid(5);
+ $t->username = $c['username'];
+ $t->plan_name = $p['name_plan'];
+ $t->price = $p['price'];
+ $t->recharged_on = $date_only;
+ $t->expiration = $date_exp;
+ $t->time = $time;
+ $t->method = "voucher";
+ $t->routers = $v1['routers'];
+ $t->type = "PPPOE";
+ $t->save();
+
+ $v1->status = "1";
+ $v1->user = $c['username'];
+ $v1->save();
+ }
+ r2(U . 'login', 's', $_L['Register_Success']);
+ }else{
+ $ui->assign('username', $username);
+ $ui->assign('fullname', $fullname);
+ $ui->assign('address', $address);
+ $ui->assign('phonenumber', $phonenumber);
+ $ui->assign('notify','