diff --git a/system/autoload/Lang.php b/system/autoload/Lang.php index 6c790bd4..e8f34793 100644 --- a/system/autoload/Lang.php +++ b/system/autoload/Lang.php @@ -31,4 +31,22 @@ class Lang return $phone; } } + + public static function dateFormat($date){ + global $config; + return date($config['date_format'], strtotime($date)); + } + + public static function dateTimeFormat($date){ + global $config; + return date($config['date_format']. ' H:i', strtotime($date)); + } + + public static function nl2br($text){ + return nl2br($text); + } + + public static function arrayCount($arr){ + return count($arr); + } } diff --git a/system/controllers/customers.php b/system/controllers/customers.php index 9c2c2805..c684ed0e 100644 --- a/system/controllers/customers.php +++ b/system/controllers/customers.php @@ -25,17 +25,17 @@ switch ($action) { $ui->assign('xfooter', ''); $search = _post('search'); $what = _post('what'); - if(!in_array($what,['username','fullname','phonenumber','email'])){ + if (!in_array($what, ['username', 'fullname', 'phonenumber', 'email'])) { $what = 'username'; } run_hook('list_customers'); #HOOK if ($search != '') { $paginator = Paginator::bootstrap('tbl_customers', 'username', '%' . $search . '%'); $d = ORM::for_table('tbl_customers') - ->where_like($what, '%' . $search . '%') - ->offset($paginator['startpoint']) - ->limit($paginator['limit']) - ->order_by_desc('id')->find_many(); + ->where_like($what, '%' . $search . '%') + ->offset($paginator['startpoint']) + ->limit($paginator['limit']) + ->order_by_desc('id')->find_many(); } else { $paginator = Paginator::bootstrap('tbl_customers'); $d = ORM::for_table('tbl_customers')->offset($paginator['startpoint'])->limit($paginator['limit'])->order_by_desc('id')->find_many(); @@ -53,6 +53,42 @@ switch ($action) { $ui->display('customers-add.tpl'); break; + case 'view': + $id = $routes['2']; + run_hook('view_customer'); #HOOK + $customer = ORM::for_table('tbl_customers')->find_one($id); + if ($customer) { + $v = $routes['3']; + if (empty($v) || $v == 'order') { + $v = 'order'; + // $paginator = Paginator::bootstrap('tbl_payment_gateway', 'username', $customer['username']); + // print_r($paginator); + $order = ORM::for_table('tbl_payment_gateway') + ->where('username', $customer['username']) + ->offset(0) + ->limit(30) + ->order_by_desc('id') + ->find_many(); + // $ui->assign('paginator', $paginator); + $ui->assign('order', $order); + }else if($v=='activation'){ + // $paginator = Paginator::bootstrap('tbl_transactions', 'username', $customer['username']); + $activation = ORM::for_table('tbl_transactions') + ->where('username', $customer['username']) + ->offset(0) + ->limit(30) + ->order_by_desc('id') + ->find_many(); + // $ui->assign('paginator', $paginator); + $ui->assign('activation', $activation); + } + $ui->assign('v', $v); + $ui->assign('d', $customer); + $ui->display('customers-view.tpl'); + } else { + r2(U . 'customers/list', 'e', $_L['Account_Not_Found']); + } + break; case 'edit': $id = $routes['2']; run_hook('edit_customer'); #HOOK @@ -74,22 +110,22 @@ switch ($action) { if ($c) { $mikrotik = Mikrotik::info($c['routers']); if ($c['type'] == 'Hotspot') { - if(!$config['radius_mode']){ + if (!$config['radius_mode']) { $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); - Mikrotik::removeHotspotUser($client,$c['username']); - Mikrotik::removeHotspotActiveUser($client,$c['username']); + Mikrotik::removeHotspotUser($client, $c['username']); + Mikrotik::removeHotspotActiveUser($client, $c['username']); } } else { - if(!$config['radius_mode']){ + if (!$config['radius_mode']) { $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); - Mikrotik::removePpoeUser($client,$c['username']); - Mikrotik::removePpoeActive($client,$c['username']); + Mikrotik::removePpoeUser($client, $c['username']); + Mikrotik::removePpoeActive($client, $c['username']); } } try { $d->delete(); } catch (Exception $e) { - } catch(Throwable $e){ + } catch (Throwable $e) { } try { $c->delete(); @@ -99,12 +135,12 @@ switch ($action) { try { $d->delete(); } catch (Exception $e) { - } catch(Throwable $e){ + } catch (Throwable $e) { } try { $c->delete(); } catch (Exception $e) { - } catch(Throwable $e){ + } catch (Throwable $e) { } } @@ -193,23 +229,23 @@ switch ($action) { if ($c) { $mikrotik = Mikrotik::info($c['routers']); if ($c['type'] == 'Hotspot') { - if(!$config['radius_mode']){ + if (!$config['radius_mode']) { $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); - Mikrotik::setHotspotUser($client,$c['username'],$password); - Mikrotik::removeHotspotActiveUser($client,$user['username']); + Mikrotik::setHotspotUser($client, $c['username'], $password); + Mikrotik::removeHotspotActiveUser($client, $user['username']); } $d->password = $password; $d->save(); } else { - if(!$config['radius_mode']){ + if (!$config['radius_mode']) { $client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']); - if(!empty($d['pppoe_password'])){ + if (!empty($d['pppoe_password'])) { Mikrotik::setPpoeUser($client, $c['username'], $d['pppoe_password']); - }else{ + } else { Mikrotik::setPpoeUser($client, $c['username'], $password); } - Mikrotik::removePpoeActive($client,$user['username']); + Mikrotik::removePpoeActive($client, $user['username']); } $d->password = $password; @@ -244,5 +280,5 @@ switch ($action) { break; default: - r2(U . 'customers/list', 'e', 'action not defined'); + r2(U . 'customers/list', 'e', 'action not defined'); } diff --git a/system/lan/english/common.lan.php b/system/lan/english/common.lan.php index 6032447e..0284c486 100644 --- a/system/lan/english/common.lan.php +++ b/system/lan/english/common.lan.php @@ -368,3 +368,9 @@ $_L['Invoice_Footer'] = 'Invoice Footer'; $_L['Pay_With_Balance'] = 'Pay With Balance'; $_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite'; $_L['Success_to_buy_package'] = 'Success to buy package'; +$_L['Auto_Renewal'] = 'Auto Renewal'; +$_L['View'] = 'View'; +$_L['View'] = 'View'; +$_L['View'] = 'View'; +$_L['View'] = 'View'; +$_L['View'] = 'View'; diff --git a/ui/ui/customers-view.tpl b/ui/ui/customers-view.tpl new file mode 100644 index 00000000..b440a662 --- /dev/null +++ b/ui/ui/customers-view.tpl @@ -0,0 +1,147 @@ +{include file="sections/header.tpl"} + +
+
+
+
+ avatar + +

{$d['fullname']}

+ + +

{Lang::nl2br($d['address'])}

+ +
+
+ +
+ +
+
+ +
+
+
+ +
+ + {if Lang::arrayCount($activation)} + + + + + + + + + + + + + {foreach $activation as $ds} + + + + + + + + + + {/foreach} + + {/if} + {if Lang::arrayCount($order)} + + + + + + + + + + + + + + + {foreach $order as $ds} + + + + + + + + + + + + {/foreach} + + {/if} +
{$_L['Username']}{$_L['Plan_Name']}{$_L['Plan_Price']}{$_L['Type']}{$_L['Created_On']}{$_L['Expires_On']}{$_L['Method']}
{$ds['username']}{$ds['plan_name']}{Lang::moneyFormat($ds['price'])}{$ds['type']}{date($_c['date_format'], strtotime($ds['recharged_on']))}{date($_c['date_format'], strtotime($ds['expiration']))} + {$ds['time']}{$ds['method']}
{$_L['Plan_Name']}{Lang::T('Gateway')}{Lang::T('Routers')}{$_L['Type']}{$_L['Plan_Price']}{$_L['Created_On']}{$_L['Expires_On']}{Lang::T('Date Done')}{$_L['Method']}
{$ds['plan_name']}{$ds['gateway']}{$ds['routers']}{$ds['payment_channel']}{Lang::moneyFormat($ds['price'])}{date("{$_c['date_format']} H:i", + strtotime($ds['created_date']))}{date("{$_c['date_format']} H:i", + strtotime($ds['expired_date']))}{if $ds['status']!=1}{date("{$_c['date_format']} H:i", + strtotime($ds['paid_date']))}{/if}{if $ds['status']==1}{$_L['UNPAID']} + {elseif $ds['status']==2}{$_L['PAID']} + {elseif $ds['status']==3}{$_L['FAILED']} + {elseif $ds['status']==4}{$_L['CANCELED']} + {elseif $ds['status']==5}{$_L['UNKNOWN']} + {/if}
+
+ {$paginator['contents']} +
+
+ +{include file="sections/footer.tpl"} \ No newline at end of file diff --git a/ui/ui/customers.tpl b/ui/ui/customers.tpl index 495e0e8e..b997bc50 100644 --- a/ui/ui/customers.tpl +++ b/ui/ui/customers.tpl @@ -13,15 +13,17 @@ -
- -
+
+ +
@@ -34,6 +36,7 @@ + @@ -41,27 +44,23 @@ - {foreach $d as $ds} + - + - {/foreach}
{$_L['Manage']} {$_L['Username']} {$_L['Full_Name']} {Lang::T('Balance')}{$_L['Email']} {$_L['Created_On']} {$_L['Recharge']}{$_L['Manage']}
+ {Lang::T('View')} + {$ds['username']} {$ds['fullname']} {Lang::moneyFormat($ds['balance'])} {$ds['phonenumber']} {$ds['email']}{$ds['created_at']}{Lang::dateTimeFormat($ds['created_at'])} {$_L['Recharge']} - {$_L['Edit']} - {$_L['Delete']} -