Merge pull request #359 from Focuslinkstech/Development

Patch Update: Enhancement
This commit is contained in:
iBNu Maksum 2024-12-05 11:52:10 +07:00 committed by GitHub
commit 9ec090a621
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 98 additions and 56 deletions

View File

@ -72,6 +72,7 @@ DROP TABLE IF EXISTS `tbl_payment_gateway`;
CREATE TABLE `tbl_payment_gateway` ( CREATE TABLE `tbl_payment_gateway` (
`id` int NOT NULL, `id` int NOT NULL,
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user_id` int(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`gateway` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'xendit | midtrans', `gateway` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'xendit | midtrans',
`gateway_trx_id` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '', `gateway_trx_id` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`plan_id` int NOT NULL, `plan_id` int NOT NULL,
@ -150,6 +151,7 @@ CREATE TABLE `tbl_transactions` (
`id` int NOT NULL, `id` int NOT NULL,
`invoice` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `invoice` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`user_id` int(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`plan_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `plan_name` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`price` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, `price` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`recharged_on` date NOT NULL, `recharged_on` date NOT NULL,

View File

@ -283,6 +283,7 @@ class Package
$t = ORM::for_table('tbl_transactions')->create(); $t = ORM::for_table('tbl_transactions')->create();
$t->invoice = $inv = "INV-" . Package::_raid(); $t->invoice = $inv = "INV-" . Package::_raid();
$t->username = $c['username']; $t->username = $c['username'];
$t->user_id = $c['id'];
$t->plan_name = $p['name_plan']; $t->plan_name = $p['name_plan'];
if ($gateway == 'Voucher' && User::isUserVoucher($channel)) { if ($gateway == 'Voucher' && User::isUserVoucher($channel)) {
//its already paid //its already paid
@ -398,6 +399,7 @@ class Package
$t = ORM::for_table('tbl_transactions')->create(); $t = ORM::for_table('tbl_transactions')->create();
$t->invoice = $inv = "INV-" . Package::_raid(); $t->invoice = $inv = "INV-" . Package::_raid();
$t->username = $c['username']; $t->username = $c['username'];
$t->user_id = $c['id'];
$t->plan_name = $p['name_plan']; $t->plan_name = $p['name_plan'];
if ($gateway == 'Voucher' && User::isUserVoucher($channel)) { if ($gateway == 'Voucher' && User::isUserVoucher($channel)) {
$t->price = 0; $t->price = 0;
@ -480,6 +482,7 @@ class Package
$t = ORM::for_table('tbl_transactions')->create(); $t = ORM::for_table('tbl_transactions')->create();
$t->invoice = $inv = "INV-" . Package::_raid(); $t->invoice = $inv = "INV-" . Package::_raid();
$t->username = $customer['username']; $t->username = $customer['username'];
$t->user_id = $customer['id'];
$t->plan_name = $plan['name_plan']; $t->plan_name = $plan['name_plan'];
$t->price = $plan['price']; $t->price = $plan['price'];
$t->recharged_on = date("Y-m-d"); $t->recharged_on = date("Y-m-d");
@ -545,6 +548,7 @@ class Package
$t = ORM::for_table('tbl_transactions')->create(); $t = ORM::for_table('tbl_transactions')->create();
$t->invoice = $inv = "INV-" . Package::_raid(); $t->invoice = $inv = "INV-" . Package::_raid();
$t->username = $customer['username']; $t->username = $customer['username'];
$t->user_id = $customer['id'];
$t->plan_name = 'Custom Balance'; $t->plan_name = 'Custom Balance';
$t->price = $plan['price']; $t->price = $plan['price'];
$t->recharged_on = date("Y-m-d"); $t->recharged_on = date("Y-m-d");

View File

@ -333,15 +333,30 @@ switch ($action) {
if (empty($v)) { if (empty($v)) {
$v = 'activation'; $v = 'activation';
} }
if ($v == 'order') { switch ($v) {
case 'order':
$v = 'order'; $v = 'order';
$query = ORM::for_table('tbl_payment_gateway')->where('user_id', $customer['id'])->order_by_desc('id');
$order = Paginator::findMany($query);
if (empty($order) || $order < 5) {
$query = ORM::for_table('tbl_payment_gateway')->where('username', $customer['username'])->order_by_desc('id'); $query = ORM::for_table('tbl_payment_gateway')->where('username', $customer['username'])->order_by_desc('id');
$order = Paginator::findMany($query); $order = Paginator::findMany($query);
}
$ui->assign('order', $order); $ui->assign('order', $order);
} else if ($v == 'activation') { break;
case 'activation':
$query = ORM::for_table('tbl_transactions')->where('user_id', $customer['id'])->order_by_desc('id');
$activation = Paginator::findMany($query);
if (empty($activation) || $activation < 5) {
$query = ORM::for_table('tbl_transactions')->where('username', $customer['username'])->order_by_desc('id'); $query = ORM::for_table('tbl_transactions')->where('username', $customer['username'])->order_by_desc('id');
$activation = Paginator::findMany($query); $activation = Paginator::findMany($query);
}
$ui->assign('activation', $activation); $ui->assign('activation', $activation);
break;
} }
$ui->assign('packages', User::_billing($customer['id'])); $ui->assign('packages', User::_billing($customer['id']));
$ui->assign('v', $v); $ui->assign('v', $v);
@ -366,19 +381,19 @@ switch ($action) {
->where('customer_id', $id) ->where('customer_id', $id)
->find_many(); ->find_many();
if ($d) { if ($d) {
if(isset($routes['3']) && $routes['3'] == 'deletePhoto'){ if (isset($routes['3']) && $routes['3'] == 'deletePhoto') {
if($d['photo'] != '' && strpos($d['photo'], 'default') === false){ if ($d['photo'] != '' && strpos($d['photo'], 'default') === false) {
if(file_exists($UPLOAD_PATH.$d['photo']) && strpos($d['photo'], 'default') === false){ if (file_exists($UPLOAD_PATH . $d['photo']) && strpos($d['photo'], 'default') === false) {
unlink($UPLOAD_PATH.$d['photo']); unlink($UPLOAD_PATH . $d['photo']);
if(file_exists($UPLOAD_PATH.$d['photo'].'.thumb.jpg')){ if (file_exists($UPLOAD_PATH . $d['photo'] . '.thumb.jpg')) {
unlink($UPLOAD_PATH.$d['photo'].'.thumb.jpg'); unlink($UPLOAD_PATH . $d['photo'] . '.thumb.jpg');
} }
} }
$d->photo = '/user.default.jpg'; $d->photo = '/user.default.jpg';
$d->save(); $d->save();
$ui->assign('notify_t', 's'); $ui->assign('notify_t', 's');
$ui->assign('notify', 'You have successfully deleted the photo'); $ui->assign('notify', 'You have successfully deleted the photo');
}else{ } else {
$ui->assign('notify_t', 'e'); $ui->assign('notify_t', 'e');
$ui->assign('notify', 'No photo found to delete'); $ui->assign('notify', 'No photo found to delete');
} }
@ -652,44 +667,44 @@ switch ($action) {
if (function_exists('imagecreatetruecolor')) { if (function_exists('imagecreatetruecolor')) {
$hash = md5_file($_FILES['photo']['tmp_name']); $hash = md5_file($_FILES['photo']['tmp_name']);
$subfolder = substr($hash, 0, 2); $subfolder = substr($hash, 0, 2);
$folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos'. DIRECTORY_SEPARATOR; $folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR;
if(!file_exists($folder)){ if (!file_exists($folder)) {
mkdir($folder); mkdir($folder);
} }
$folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos'. DIRECTORY_SEPARATOR. $subfolder. DIRECTORY_SEPARATOR; $folder = $UPLOAD_PATH . DIRECTORY_SEPARATOR . 'photos' . DIRECTORY_SEPARATOR . $subfolder . DIRECTORY_SEPARATOR;
if(!file_exists($folder)){ if (!file_exists($folder)) {
mkdir($folder); mkdir($folder);
} }
$imgPath = $folder . $hash . '.jpg'; $imgPath = $folder . $hash . '.jpg';
if (!file_exists($imgPath)){ if (!file_exists($imgPath)) {
File::resizeCropImage($_FILES['photo']['tmp_name'], $imgPath, 1600, 1600, 100); File::resizeCropImage($_FILES['photo']['tmp_name'], $imgPath, 1600, 1600, 100);
} }
if (!file_exists($imgPath.'.thumb.jpg')){ if (!file_exists($imgPath . '.thumb.jpg')) {
if(_post('faceDetect') == 'yes'){ if (_post('faceDetect') == 'yes') {
try{ try {
$detector = new svay\FaceDetector(); $detector = new svay\FaceDetector();
$detector->setTimeout(5000); $detector->setTimeout(5000);
$detector->faceDetect($imgPath); $detector->faceDetect($imgPath);
$detector->cropFaceToJpeg($imgPath.'.thumb.jpg', false); $detector->cropFaceToJpeg($imgPath . '.thumb.jpg', false);
}catch (Exception $e) { } catch (Exception $e) {
File::makeThumb($imgPath, $imgPath.'.thumb.jpg', 200); File::makeThumb($imgPath, $imgPath . '.thumb.jpg', 200);
} catch (Throwable $e) { } catch (Throwable $e) {
File::makeThumb($imgPath, $imgPath.'.thumb.jpg', 200); File::makeThumb($imgPath, $imgPath . '.thumb.jpg', 200);
} }
}else{ } else {
File::makeThumb($imgPath, $imgPath.'.thumb.jpg', 200); File::makeThumb($imgPath, $imgPath . '.thumb.jpg', 200);
} }
} }
if(file_exists($imgPath)){ if (file_exists($imgPath)) {
if($c['photo'] != '' && strpos($c['photo'], 'default') === false){ if ($c['photo'] != '' && strpos($c['photo'], 'default') === false) {
if(file_exists($UPLOAD_PATH.$c['photo'])){ if (file_exists($UPLOAD_PATH . $c['photo'])) {
unlink($UPLOAD_PATH.$c['photo']); unlink($UPLOAD_PATH . $c['photo']);
if(file_exists($UPLOAD_PATH.$c['photo'].'.thumb.jpg')){ if (file_exists($UPLOAD_PATH . $c['photo'] . '.thumb.jpg')) {
unlink($UPLOAD_PATH.$c['photo'].'.thumb.jpg'); unlink($UPLOAD_PATH . $c['photo'] . '.thumb.jpg');
} }
} }
} }
$c->photo = '/photos/'. $subfolder. '/'. $hash. '.jpg'; $c->photo = '/photos/' . $subfolder . '/' . $hash . '.jpg';
} }
if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']); if (file_exists($_FILES['photo']['tmp_name'])) unlink($_FILES['photo']['tmp_name']);
} else { } else {
@ -829,9 +844,9 @@ switch ($action) {
$query = ORM::for_table('tbl_customers'); $query = ORM::for_table('tbl_customers');
$query->where("status", $filter); $query->where("status", $filter);
} }
if($order == 'lastname') { if ($order == 'lastname') {
$query->order_by_expr("SUBSTR(fullname, INSTR(fullname, ' ')) $orderby"); $query->order_by_expr("SUBSTR(fullname, INSTR(fullname, ' ')) $orderby");
}else{ } else {
if ($orderby == 'asc') { if ($orderby == 'asc') {
$query->order_by_asc($order); $query->order_by_asc($order);
} else { } else {

View File

@ -19,8 +19,14 @@ switch ($action) {
break; break;
case 'history': case 'history':
$ui->assign('_system_menu', 'history'); $ui->assign('_system_menu', 'history');
$query = ORM::for_table('tbl_payment_gateway')->where('user_id', $user['id'])->order_by_desc('id');
$d = Paginator::findMany($query);
if (empty($order) || $order < 5) {
$query = ORM::for_table('tbl_payment_gateway')->where('username', $user['username'])->order_by_desc('id'); $query = ORM::for_table('tbl_payment_gateway')->where('username', $user['username'])->order_by_desc('id');
$d = Paginator::findMany($query); $d = Paginator::findMany($query);
}
$ui->assign('d', $d); $ui->assign('d', $d);
$ui->assign('_title', Lang::T('Order History')); $ui->assign('_title', Lang::T('Order History'));
run_hook('customer_view_order_history'); #HOOK run_hook('customer_view_order_history'); #HOOK
@ -329,6 +335,7 @@ switch ($action) {
//sender //sender
$d = ORM::for_table('tbl_payment_gateway')->create(); $d = ORM::for_table('tbl_payment_gateway')->create();
$d->username = $user['username']; $d->username = $user['username'];
$d->user_id = $user['id'];
$d->gateway = $target['username']; $d->gateway = $target['username'];
$d->plan_id = $plan['id']; $d->plan_id = $plan['id'];
$d->plan_name = $plan['name_plan']; $d->plan_name = $plan['name_plan'];
@ -348,6 +355,7 @@ switch ($action) {
//receiver //receiver
$d = ORM::for_table('tbl_payment_gateway')->create(); $d = ORM::for_table('tbl_payment_gateway')->create();
$d->username = $target['username']; $d->username = $target['username'];
$d->user_id = $target['id'];
$d->gateway = $user['username']; $d->gateway = $user['username'];
$d->plan_id = $plan['id']; $d->plan_id = $plan['id'];
$d->plan_name = $plan['name_plan']; $d->plan_name = $plan['name_plan'];
@ -438,7 +446,7 @@ switch ($action) {
} }
case 'buy': case 'buy':
$gateway = _post('gateway'); $gateway = _post('gateway');
if($gateway == 'balance') { if ($gateway == 'balance') {
unset($_SESSION['gateway']); unset($_SESSION['gateway']);
r2(U . 'order/pay/' . $routes[2] . '/' . $routes[3]); r2(U . 'order/pay/' . $routes[2] . '/' . $routes[3]);
} }
@ -484,6 +492,7 @@ switch ($action) {
} }
$d = ORM::for_table('tbl_payment_gateway')->create(); $d = ORM::for_table('tbl_payment_gateway')->create();
$d->username = $user['username']; $d->username = $user['username'];
$d->user_id = $user['id'];
$d->gateway = $gateway; $d->gateway = $gateway;
$d->plan_id = 0; $d->plan_id = 0;
$d->plan_name = 'Custom'; $d->plan_name = 'Custom';
@ -547,6 +556,7 @@ switch ($action) {
if (empty($id)) { if (empty($id)) {
$d = ORM::for_table('tbl_payment_gateway')->create(); $d = ORM::for_table('tbl_payment_gateway')->create();
$d->username = $user['username']; $d->username = $user['username'];
$d->user_id = $user['id'];
$d->gateway = $gateway; $d->gateway = $gateway;
$d->plan_id = $plan['id']; $d->plan_id = $plan['id'];
$d->plan_name = $plan['name_plan']; $d->plan_name = $plan['name_plan'];
@ -569,6 +579,7 @@ switch ($action) {
$id = $d->id(); $id = $d->id();
} else { } else {
$d->username = $user['username']; $d->username = $user['username'];
$d->user_id = $user['id'];
$d->gateway = $gateway; $d->gateway = $gateway;
$d->plan_id = $plan['id']; $d->plan_id = $plan['id'];
$d->plan_name = $plan['name_plan']; $d->plan_name = $plan['name_plan'];

View File

@ -41,10 +41,16 @@ switch ($action) {
case 'list-activated': case 'list-activated':
$ui->assign('_system_menu', 'list-activated'); $ui->assign('_system_menu', 'list-activated');
$query = ORM::for_table('tbl_transactions')->where('username', $user['username'])->order_by_desc('id'); $query = ORM::for_table('tbl_transactions')->where('user_id', $user['id'])->order_by_desc('id');
$d = Paginator::findMany($query); $d = Paginator::findMany($query);
if (empty($d) || $d < 5) {
$query = ORM::for_table('tbl_transactions')->where('username', $user['username'])->order_by_desc('id');
$d = Paginator::findMany($query);
}
$ui->assign('d', $d); $ui->assign('d', $d);
$ui->assign('_title', Lang::T('Activation History'));
run_hook('customer_view_activation_list'); #HOOK run_hook('customer_view_activation_list'); #HOOK
$ui->display('customer/activation-list.tpl'); $ui->display('customer/activation-list.tpl');

View File

@ -174,5 +174,9 @@
], ],
"2024.10.31" : [ "2024.10.31" : [
"ALTER TABLE `tbl_customers` ADD `photo` VARCHAR(128) NOT NULL DEFAULT '/user.default.jpg' AFTER `password`;" "ALTER TABLE `tbl_customers` ADD `photo` VARCHAR(128) NOT NULL DEFAULT '/user.default.jpg' AFTER `password`;"
],
"2024.12.5" : [
"ALTER TABLE `tbl_transactions` ADD `user_id` INT(11) NULL AFTER `username`;",
"ALTER TABLE `tbl_payment_gateway` ADD `user_id` INT(11) NULL AFTER `username`;"
] ]
} }