diff --git a/pages_template/Email.html b/pages_template/Email.html
index 8979a620..f58869aa 100644
--- a/pages_template/Email.html
+++ b/pages_template/Email.html
@@ -138,8 +138,9 @@
+
[[Company_Address]]
+ style="color: #9a9ea6; font-size: 16px; text-align: center;">[[Company_Address]]
|
diff --git a/system/autoload/Package.php b/system/autoload/Package.php
index a04d5e6d..3883a8e8 100644
--- a/system/autoload/Package.php
+++ b/system/autoload/Package.php
@@ -44,8 +44,12 @@ class Package
_alert(Lang::T('This account status') . ' : ' . Lang::T($c['status']), 'danger', "");
}
}else{
- $c['username'] = $channel;
- $c['fullname'] = $gateway;
+ $c = [
+ 'fullname' => $gateway,
+ 'email' => '',
+ 'username' => $channel,
+ 'password' => $channel,
+ ];
}
$add_cost = 0;
@@ -146,7 +150,8 @@ class Package
/**
* 1 Customer only can have 1 PPPOE and 1 Hotspot Plan, 1 prepaid and 1 postpaid
*/
- $b = ORM::for_table('tbl_user_recharges')
+
+ $query = ORM::for_table('tbl_user_recharges')
->select('tbl_user_recharges.id', 'id')
->select('customer_id')
->select('username')
@@ -162,14 +167,18 @@ class Package
->select('tbl_user_recharges.type', 'type')
->select('admin_id')
->select('prepaid')
- ->where('customer_id', $id_customer)
->where('tbl_user_recharges.routers', $router_name)
->where('tbl_user_recharges.Type', $p['type'])
# PPPOE or Hotspot only can have 1 per customer prepaid or postpaid
# because 1 customer can have 1 PPPOE and 1 Hotspot Plan in mikrotik
//->where('prepaid', $p['prepaid'])
- ->left_outer_join('tbl_plans', array('tbl_plans.id', '=', 'tbl_user_recharges.plan_id'))
- ->find_one();
+ ->left_outer_join('tbl_plans', array('tbl_plans.id', '=', 'tbl_user_recharges.plan_id'));
+ if($isVoucher){
+ $query->where('username', $c['username']);
+ }else{
+ $query->where('customer_id', $id_customer);
+ }
+ $b = $query->find_one();
run_hook("recharge_user");
diff --git a/system/controllers/login.php b/system/controllers/login.php
index 9190a2b3..c931e5c6 100644
--- a/system/controllers/login.php
+++ b/system/controllers/login.php
@@ -56,134 +56,235 @@ switch ($do) {
break;
case 'activation':
- $voucher = _post('voucher');
- $username = _post('username');
- $v1 = ORM::for_table('tbl_voucher')->where('code', $voucher)->find_one();
- if ($v1) {
- // voucher exists, check customer exists or not
- $user = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
- if (!$user) {
- $d = ORM::for_table('tbl_customers')->create();
- $d->username = alphanumeric($username, "+_.@-");
- $d->password = $voucher;
- $d->fullname = '';
- $d->address = '';
- $d->email = '';
- $d->phonenumber = (strlen($username) < 21) ? $username : '';
- if ($d->save()) {
- $user = ORM::for_table('tbl_customers')->where('username', $username)->find_one($d->id());
- if (!$user) {
- r2(U . 'login', 'e', Lang::T('Voucher activation failed'));
- }
- } else {
- _alert(Lang::T('Login Successful'), 'success', "dashboard");
- r2(U . 'login', 'e', Lang::T('Voucher activation failed') . '.');
+ if (!empty(_post('voucher_only'))) {
+ $voucher = _post('voucher_only');
+ $tur = ORM::for_table('tbl_user_recharges')
+ ->where('username', $voucher)
+ ->where('customer_id', '0') // Voucher Only will make customer ID as 0
+ ->find_one();
+ if ($tur) {
+ if ($tur['status'] == 'off') {
+ _alert(Lang::T('Internet Voucher Expired'), 'danger', "login");
}
- }
- if ($v1['status'] == 0) {
- $oldPass = $user['password'];
- // change customer password to voucher code
- $user->password = $voucher;
- $user->save();
- // voucher activation
- if (Package::rechargeUser($user['id'], $v1['routers'], $v1['id_plan'], "Voucher", $voucher)) {
- $v1->status = "1";
- $v1->user = $user['username'];
- $v1->save();
- $user->last_login = date('Y-m-d H:i:s');
- $user->save();
- // add customer to mikrotik
- if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) {
- try {
- $p = ORM::for_table('tbl_plans')->where('id', $v1['id_plan'])->find_one();
- $dvc = Package::getDevice($p);
- if ($_app_stage != 'demo') {
- if (file_exists($dvc)) {
- require_once $dvc;
- (new $p['device'])->connect_customer($user, $_SESSION['nux-ip'], $_SESSION['nux-mac'], $v1['routers']);
- if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
- } else {
- r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
- }
- } else {
- new Exception(Lang::T("Devices Not Found"));
- }
- }
- if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, you are connected to internet"));
+ $p = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
+ if ($p) {
+ $dvc = Package::getDevice($p);
+ if ($_app_stage != 'demo') {
+ if (file_exists($dvc)) {
+ if (file_exists($dvc)) {
+ require_once $dvc;
+ $c = [
+ 'fullname' => "Voucher",
+ 'email' => '',
+ 'username' => $voucher,
+ 'password' => $voucher,
+ ];
+ (new $p['device'])->add_customer($c, $p);
} else {
- r2(U . "login", 's', Lang::T("Voucher activation success, you are connected to internet"));
+ new Exception(Lang::T("Devices Not Found"));
}
- } catch (Exception $e) {
if (!empty($config['voucher_redirect'])) {
r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
} else {
r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
}
+ } else {
+ new Exception(Lang::T("Devices Not Found"));
}
}
if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ _alert(Lang::T("Voucher activation success, now you can login"), 'danger', $config['voucher_redirect']);
} else {
- r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ r2(U . "login", 's', Lang::T("Voucher activation success, you are connected to internet"));
}
} else {
- // if failed to recharge, restore old password
- $user->password = $oldPass;
- $user->save();
- r2(U . 'login', 'e', Lang::T("Failed to activate voucher"));
+ _alert(Lang::T('Internet Plan Expired'), 'danger', "login");
}
} else {
- // used voucher
- // check if voucher used by this username
- if ($v1['user'] == $user['username']) {
- $user->last_login = date('Y-m-d H:i:s');
- $user->save();
- if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) {
- try {
- $p = ORM::for_table('tbl_plans')->where('id', $v1['id_plan'])->find_one();
- $dvc = Package::getDevice($p);
- if ($_app_stage != 'demo') {
- if (file_exists($dvc)) {
- require_once $dvc;
- (new $p['device'])->connect_customer($user, $_SESSION['nux-ip'], $_SESSION['nux-mac'], $v1['routers']);
- if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ $v = ORM::for_table('tbl_voucher')->where('code', $voucher)->find_one();
+ if (!$v) {
+ _alert(Lang::T('Voucher invalid'), 'danger', "login");
+ }
+ if ($v['status'] == 0) {
+ if (Package::rechargeUser(0, $v['routers'], $v['id_plan'], "Voucher", $voucher)) {
+ $v->status = "1";
+ $v->save();
+ $tur = ORM::for_table('tbl_user_recharges')->where('username', $voucher)->find_one();
+ if ($tur) {
+ $p = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
+ if ($p) {
+ $dvc = Package::getDevice($p);
+ if ($_app_stage != 'demo') {
+ if (file_exists($dvc)) {
+ if (file_exists($dvc)) {
+ require_once $dvc;
+ $c = [
+ 'fullname' => "Voucher",
+ 'email' => '',
+ 'username' => $voucher,
+ 'password' => $voucher,
+ ];
+ (new $p['device'])->add_customer($c, $p);
+ } else {
+ new Exception(Lang::T("Devices Not Found"));
+ }
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
} else {
- r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ new Exception(Lang::T("Devices Not Found"));
}
+ }
+ if (!empty($config['voucher_redirect'])) {
+ _alert(Lang::T("Voucher activation success, now you can login"), 'danger', $config['voucher_redirect']);
} else {
- new Exception(Lang::T("Devices Not Found"));
+ r2(U . "login", 's', Lang::T("Voucher activation success, you are connected to internet"));
+ }
+ } else {
+ _alert(Lang::T('Internet Plan Expired'), 'danger', "login");
+ }
+ } else {
+ _alert(Lang::T('Voucher activation failed'), 'danger', "login");
+ }
+ } else {
+ _alert(Lang::T('Voucher activation failed'), 'danger', "login");
+ }
+ } else {
+ _alert(Lang::T('Internet Voucher Expired'), 'danger', "login");
+ }
+ }
+ } else {
+ $voucher = _post('voucher');
+ $username = _post('username');
+ $v1 = ORM::for_table('tbl_voucher')->where('code', $voucher)->find_one();
+ if ($v1) {
+ // voucher exists, check customer exists or not
+ $user = ORM::for_table('tbl_customers')->where('username', $username)->find_one();
+ if (!$user) {
+ $d = ORM::for_table('tbl_customers')->create();
+ $d->username = alphanumeric($username, "+_.@-");
+ $d->password = $voucher;
+ $d->fullname = '';
+ $d->address = '';
+ $d->email = '';
+ $d->phonenumber = (strlen($username) < 21) ? $username : '';
+ if ($d->save()) {
+ $user = ORM::for_table('tbl_customers')->where('username', $username)->find_one($d->id());
+ if (!$user) {
+ r2(U . 'login', 'e', Lang::T('Voucher activation failed'));
+ }
+ } else {
+ _alert(Lang::T('Login Successful'), 'success', "dashboard");
+ r2(U . 'login', 'e', Lang::T('Voucher activation failed') . '.');
+ }
+ }
+ if ($v1['status'] == 0) {
+ $oldPass = $user['password'];
+ // change customer password to voucher code
+ $user->password = $voucher;
+ $user->save();
+ // voucher activation
+ if (Package::rechargeUser($user['id'], $v1['routers'], $v1['id_plan'], "Voucher", $voucher)) {
+ $v1->status = "1";
+ $v1->user = $user['username'];
+ $v1->save();
+ $user->last_login = date('Y-m-d H:i:s');
+ $user->save();
+ // add customer to mikrotik
+ if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) {
+ try {
+ $p = ORM::for_table('tbl_plans')->where('id', $v1['id_plan'])->find_one();
+ $dvc = Package::getDevice($p);
+ if ($_app_stage != 'demo') {
+ if (file_exists($dvc)) {
+ require_once $dvc;
+ (new $p['device'])->connect_customer($user, $_SESSION['nux-ip'], $_SESSION['nux-mac'], $v1['routers']);
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
+ } else {
+ new Exception(Lang::T("Devices Not Found"));
+ }
+ }
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, you are connected to internet"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, you are connected to internet"));
+ }
+ } catch (Exception $e) {
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
}
}
+ }
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
+ } else {
+ // if failed to recharge, restore old password
+ $user->password = $oldPass;
+ $user->save();
+ r2(U . 'login', 'e', Lang::T("Failed to activate voucher"));
+ }
+ } else {
+ // used voucher
+ // check if voucher used by this username
+ if ($v1['user'] == $user['username']) {
+ $user->last_login = date('Y-m-d H:i:s');
+ $user->save();
+ if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) {
+ try {
+ $p = ORM::for_table('tbl_plans')->where('id', $v1['id_plan'])->find_one();
+ $dvc = Package::getDevice($p);
+ if ($_app_stage != 'demo') {
+ if (file_exists($dvc)) {
+ require_once $dvc;
+ (new $p['device'])->connect_customer($user, $_SESSION['nux-ip'], $_SESSION['nux-mac'], $v1['routers']);
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
+ } else {
+ new Exception(Lang::T("Devices Not Found"));
+ }
+ }
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, you are connected to internet"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
+ } catch (Exception $e) {
+ if (!empty($config['voucher_redirect'])) {
+ r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
+ } else {
+ r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
+ }
+ }
+ } else {
if (!empty($config['voucher_redirect'])) {
r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, you are connected to internet"));
} else {
r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
}
- } catch (Exception $e) {
- if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, now you can login"));
- } else {
- r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
- }
}
} else {
- if (!empty($config['voucher_redirect'])) {
- r2($config['voucher_redirect'], 's', Lang::T("Voucher activation success, you are connected to internet"));
- } else {
- r2(U . "login", 's', Lang::T("Voucher activation success, now you can login"));
- }
+ // voucher used by other customer
+ r2(U . 'login', 'e', Lang::T('Voucher Not Valid'));
}
- } else {
- // voucher used by other customer
- r2(U . 'login', 'e', Lang::T('Voucher Not Valid'));
}
+ } else {
+ _msglog('e', Lang::T('Invalid Username or Password'));
+ r2(U . 'login');
}
- } else {
- _msglog('e', Lang::T('Invalid Username or Password'));
- r2(U . 'login');
}
default:
run_hook('customer_view_login'); #HOOK
diff --git a/system/lan/english.json b/system/lan/english.json
index d37266f4..a8dfe950 100644
--- a/system/lan/english.json
+++ b/system/lan/english.json
@@ -653,7 +653,11 @@
"Http_Chap": "Http-Chap",
"Hotspot_Authentication_Method__Make_sure_you_have_changed_your_hotspot_login_page_": "Hotspot Authentication Method. Make sure you have changed your hotspot login page.",
"Business": "Business",
- "": "",
"Source": "Source",
- "Destination": "Destination"
+ "Destination": "Destination",
+ "Activate_Voucher": "Activate Voucher",
+ "Voucher_invalid": "Voucher invalid",
+ "Account_Not_Found": "Account Not Found",
+ "Voucher_activation_success__now_you_can_login": "Voucher activation success, now you can login",
+ "Internet_Voucher_Expired": "Internet Voucher Expired"
}
\ No newline at end of file
diff --git a/ui/ui/user-login-noreg.tpl b/ui/ui/user-login-noreg.tpl
index e3d186e7..c1163695 100644
--- a/ui/ui/user-login-noreg.tpl
+++ b/ui/ui/user-login-noreg.tpl
@@ -60,10 +60,12 @@