From 9c35962264e14723ec70c966de22b55805f23974 Mon Sep 17 00:00:00 2001 From: Ibnu Maksum Date: Wed, 16 Aug 2023 09:48:07 +0700 Subject: [PATCH] Fix edit/change Active Plan --- system/autoload/Package.php | 36 ++++++++++++++++++++++++++++++++++ system/controllers/prepaid.php | 5 ++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/system/autoload/Package.php b/system/autoload/Package.php index 87c20744..0a803dfc 100644 --- a/system/autoload/Package.php +++ b/system/autoload/Package.php @@ -265,4 +265,40 @@ class Package } return true; } + + public static function changeTo($username, $plan_id) + { + global $_c; + $c = ORM::for_table('tbl_customers')->where('username', $username)->find_one(); + $p = ORM::for_table('tbl_plans')->where('id', $plan_id)->where('enabled', '1')->find_one(); + $b = ORM::for_table('tbl_user_recharges')->where('customer_id', $c['id'])->find_one(); + $mikrotik = Mikrotik::info($p['routers']); + if ($p['type'] == 'Hotspot') { + if ($b) { + if (!$_c['radius_mode']) { + $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + Mikrotik::removeHotspotUser($client, $c['username']); + Mikrotik::addHotspotUser($client, $p, $c); + } + } else { + if (!$_c['radius_mode']) { + $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + Mikrotik::addHotspotUser($client, $p, $c); + } + } + } else { + if ($b) { + if (!$_c['radius_mode']) { + $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + Mikrotik::removePpoeUser($client, $c['username']); + Mikrotik::addPpoeUser($client, $p, $c); + } + } else { + if (!$_c['radius_mode']) { + $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); + Mikrotik::addPpoeUser($client, $p, $c); + } + } + } + } } diff --git a/system/controllers/prepaid.php b/system/controllers/prepaid.php index d57433e6..0ba294d0 100644 --- a/system/controllers/prepaid.php +++ b/system/controllers/prepaid.php @@ -87,6 +87,7 @@ switch ($action) { $ui->assign('in', $in); $ui->assign('date', date("Y-m-d H:i:s")); $ui->display('invoice.tpl'); + _log('[' . $admin['username'] . ']: ' . 'Recharge '.$c['username'].' ['.$in['plan_name'].']['.Lang::moneyFormat($in['price']).']', 'Admin', $admin['id']); }else{ r2(U . 'prepaid/recharge', 'e', "Failed to recharge account"); } @@ -141,6 +142,7 @@ switch ($action) { } $d->delete(); } + _log('[' . $admin['username'] . ']: ' . 'Delete Plan for Customer '.$c['username'].' ['.$in['plan_name'].']['.Lang::moneyFormat($in['price']).']', 'Admin', $admin['id']); r2(U . 'prepaid/list', 's', $_L['Delete_Successfully']); } break; @@ -165,7 +167,8 @@ switch ($action) { $d->recharged_on = $recharged_on; $d->expiration = $expiration; $d->save(); - //TODO set mikrotik for editedd plan + Package::changeTo($username,$id_plan); + _log('[' . $admin['username'] . ']: ' . 'Edit Plan for Customer '.$d['username'].' to ['.$d['plan_name'].']['.Lang::moneyFormat($d['price']).']', 'Admin', $admin['id']); r2(U . 'prepaid/list', 's', $_L['Updated_Successfully']); } else { r2(U . 'prepaid/edit/' . $id, 'e', $msg);