first commit

This commit is contained in:
LAPTOP-V9RRD1TL\Michelle's Computer
2025-07-21 21:38:17 +08:00
commit f8f8fcaf96
2529 changed files with 227800 additions and 0 deletions
+188
View File
@@ -0,0 +1,188 @@
<?php
include $require_path.'main-config.php' ;
//set language
$language = [
'-' => 'English',
"_zh" => "Chinese",
"_my" => "Malay",
'_np' => "Nepali",
'_md' => "Burmese",
];
if ( $_GET['app_view'] != "yes" ){
// check login status
$system_login_cookies = $_COOKIE['system_login_cookies'] ;
if ($_SESSION['system_id'] != '' && $_SESSION['system_name'] != '' && $_SESSION['system_branch'] != '' && $_SESSION["system_permission"] != ""){
$mysqli_user = $mysqli->query("SELECT * FROM system_user
WHERE user_id = '".$_SESSION['system_id']."' AND user_name = '".$_SESSION['system_name']."' AND user_permission = '".$_SESSION['system_permission']."' AND user_branch = '".$_SESSION['system_branch']."' AND user_login_cookies = '".$system_login_cookies."' AND user_trash = '0' LIMIT 1") ;
if ($mysqli_user->num_rows == 0 || trim($system_login_cookies) == ''){
// unset user session
$all_session = array_keys($_SESSION);
foreach ($all_session as $key){
unset($_SESSION[$key]);
}
// unset user cookie
$expired_time = (time() - 3600) ;
setcookie("system_id", $_SESSION['system_id'], $expired_time, "/") ;
setcookie("system_name", $_SESSION['system_name'], $expired_time, "/") ;
setcookie("system_branch", $_SESSION['system_branch'], $expired_time, "/") ;
setcookie("system_permission", $_SESSION['system_permission'], $expired_time, "/") ;
setcookie("system_login_cookies", '', $expired_time, "/") ;
}else{
$check_user = true ;
$row_user = $mysqli_user->fetch_array(MYSQLI_ASSOC) ;
}
}
}
// check user permission
$system_permission = $_SESSION['system_permission'] ;
$boolean_admin = ($system_permission == 'admin' ? true : false) ;
$boolean_purchasing = ($system_permission == 'purchasing' ? true : false) ;
$boolean_account = ($system_permission == 'account' ? true : false) ;
$boolean_hr = ($system_permission == 'hr' ? true : false) ;
$boolean_office_marketing = ($system_permission == 'office-marketing' ? true : false) ;
$boolean_marketing = ($system_permission == 'marketing' ? true : false) ;
$boolean_store = ($system_permission == 'store' ? true : false) ;
$boolean_programmer = ($system_permission == 'programmer' ? true : false) ;
$boolean_customer = ($system_permission == 'customer' ? true : false) ;
// include file
$get_lang = ( $_COOKIE['Lang'] != '' ? $_COOKIE['Lang'] : 'en' ) ;
include __DIR__.'/../languages/'.$get_lang.'.php' ;
if($row_user['user_permission'] == 'user'){
$array_staff_branch_123 = json_decode($row_user['user_permission_branch'],true);
$user_branch_permission_sql_123 = ' and branch_id IN ('.implode(',', $array_staff_branch_123).') ';
$user_branch_permission_sql = ' and branch_id IN ('.implode(',', $array_staff_branch_123).') ';
$user_branch_permission_sql_a = ' and a.branch_id IN ('.implode(',', $array_staff_branch_123).') ';
$user_branch_permission_sql_b = ' and b.branch_id IN ('.implode(',', $array_staff_branch_123).') ';
// $staff_list = [] ;
// $mysqli_staff = $mysqli->query( "SELECT staff_id, staff_name, staff_idno FROM staff
// WHERE deleted_at IS NULL ".$user_branch_permission_sql_123) ;
// if ( $mysqli_staff->num_rows > 0 ){
// while ( $row_staff = $mysqli_staff->fetch_assoc() ){
// $staff_list[] = $row_staff['staff_id'];
// }
// }
// $user_branch_permission_sql_task = ' and a.created_by IN ('.implode(", ",$staff_list).') ';
if(empty($_SESSION['url_get_branch_admin'])){
if (strpos($url_branch_ori, '&') == true || strpos($url_branch_ori, '?') == true || (strpos($url_branch_ori, '?') == true && strpos($url_branch_ori, '&') == true )) {
$echo_script_url = '
<script>
window.location.replace("'.$url_branch_ori.'&url_get_branch_admin_get='.$array_staff_branch_123[0].'");
</script>
';
}else{
$echo_script_url = '
<script>
window.location.replace("'.$url_branch_ori.'?url_get_branch_admin_get='.$array_staff_branch_123[0].'");
</script>
';
}
}
}
$url_get_branch_admin_get = $_GET['url_get_branch_admin_get'];
$Current_Url = sprintf(
'%s://%s/%s',
isset($_SERVER['HTTPS']) ? 'https' : 'http',
$_SERVER['HTTP_HOST'],
trim($_SERVER['REQUEST_URI'],'/\\')
);
$url_branch_ori = strip_param_from_url( $Current_Url, 'url_get_branch_admin_get' );
$mysqli_branch = $mysqli->query( "SELECT branch_id, branch_hq FROM branch
WHERE deleted_at IS NULL ORDER BY branch_id DESC") ;
if ( $mysqli_branch->num_rows > 0 ){
while ( $row_branch = $mysqli_branch->fetch_assoc() ){
if($row_branch['branch_hq'] >= 1 ){
$count_branch_selected++;
$HQ_branch = $row_branch['branch_id'];
}
if($count_branch_selected <= 0){
$HQ_branch = $row_branch['branch_id'];
}
}
}
if($row_user['user_permission'] == 'admin'){
if(empty($_SESSION['url_get_branch_admin'])){
if (strpos($url_branch_ori, '&') == true || strpos($url_branch_ori, '?') == true || (strpos($url_branch_ori, '?') == true && strpos($url_branch_ori, '&') == true )) {
$echo_script_url = '
<script>
window.location.replace("'.$url_branch_ori.'&url_get_branch_admin_get='.$HQ_branch.'");
</script>
';
}else{
$echo_script_url = '
<script>
window.location.replace("'.$url_branch_ori.'?url_get_branch_admin_get='.$HQ_branch.'");
</script>
';
}
}
}
if($url_get_branch_admin_get != ''){
$_SESSION['url_get_branch_admin'] = $url_get_branch_admin_get;
$echo_script_url = '
<script>
window.location.replace("'.$url_branch_ori.'");
</script>
';
}
function strip_param_from_url( $url, $param ) {
$base_url = strtok($url, '?'); // Get the base url
$parsed_url = parse_url($url); // Parse it
$query = $parsed_url['query']; // Get the query string
parse_str( $query, $parameters ); // Convert Parameters into array
unset( $parameters[$param] ); // Delete the one you want
$new_query = http_build_query($parameters); // Rebuilt query string
return $base_url.'?'.$new_query; // Finally url is ready
}
// if($row_user['user_permission'] == 'admin'){
$user_branch_permission_sql = ' and branch_id = "'.$_SESSION['url_get_branch_admin'].'" ';
$user_branch_permission_sql_a = ' and a.branch_id = "'.$_SESSION['url_get_branch_admin'].'" ';
$user_branch_permission_sql_b = ' and b.branch_id = "'.$_SESSION['url_get_branch_admin'].'" ';
$user_branch_permission_sql_d = ' and d.branch_id = "'.$_SESSION['url_get_branch_admin'].'" ';
$user_branch_permission_sql_symbol = ' and branch like "%/'.$_SESSION['url_get_branch_admin'].'/%" ';
if($_SESSION['url_get_branch_admin'] == 1){
$url_get_branch_admin_name = 'muar';
}elseif($_SESSION['url_get_branch_admin'] == 2){
$url_get_branch_admin_name = 'iskandar';
}elseif($_SESSION['url_get_branch_admin'] == 3){
$url_get_branch_admin_name = 'penan1';
}elseif($_SESSION['url_get_branch_admin'] == 4){
$url_get_branch_admin_name = 'asa';
}
$user_branch_permission_sql_branch_name = ' and branch = "'.$url_get_branch_admin_name.'" ';
$staff_list = [] ;
$mysqli_staff = $mysqli->query( "SELECT staff_id, staff_name, staff_idno FROM staff
WHERE deleted_at IS NULL ".$user_branch_permission_sql) ;
if ( $mysqli_staff->num_rows > 0 ){
while ( $row_staff = $mysqli_staff->fetch_assoc() ){
$staff_list[] = $row_staff['staff_id'];
}
}
$user_branch_permission_sql_task = ' and a.created_by IN ('.implode(", ",$staff_list).') ';
// }
// print_r($_SESSION['url_get_branch_admin']);exit();
?>
+133
View File
@@ -0,0 +1,133 @@
<?php
$life_time = 70000 ;
// server should keep session data for AT LEAST 1 hour
ini_set('session.gc_maxlifetime', $life_time) ;
// each client should remember their session id for EXACTLY 1 hour
session_set_cookie_params($life_time) ;
session_start() ;
// request database
$databaseName = 'localhost' ; // Server
$userName = 'worknovaco_system' ; // Username
$password = '6Vt%U3&gXfFn' ; // Password
$database = 'worknovaco_system' ; // Database name
$prefix = 'system_' ; // Table prefix name
$mysqli = new mysqli($databaseName, $userName, $password, $database) ; // Connect to database
$mysqli->set_charset("utf8") ;
date_default_timezone_set('Asia/Singapore') ;
// Check connection //
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error()) ;
exit ;
}
// default variable
if ( !isset($_SERVER['HTTPS']) && !$boolean_ssl_lock ) {
header('Location: https://' . $_SERVER["SERVER_NAME"] . '/' . $current_page) ;
exit ;
}
$prefix_url = 'https://' ;
define('PATH', $prefix_url.$_SERVER['SERVER_NAME'].'/') ;
define('COMPANY', 'IPS Software Sdn. Bhd.') ;
define('COMPANYSHORT', 'IPS') ;
define('ADDRESS', '') ;
define('COMPANYLOCATION', '{"lat":"2.058902","lon":"102.560469"}') ;
define('COUNTRY', 'Malaysia') ;
define('WEBSITE', 'https://ips.com.my') ;
define('SYSTEM', 'System') ;
define('MAPKEY', '') ;
define('PUSHTOKEN', 'AAAAeH4NE-M:APA91bF3mRs11LWVgUgZeOHW2PVArCLrGzXkyC2UZajIs9mdZQK0khPVw59rsCAxZ47o2za3l5pFa3NLE3-yBEu2VlKz7hWjvGreeurudhY64FsqYZF4oUW-wVxJcDvjwU5UDW4Swmnq') ;
define('SECRETKEY', 'A91bLWVZaj0khPVwFa3N') ;
define('APIKEY', '1egZU2jm#ya+E9E3K&DbivDh') ;
define('IMAGELOCATION', 'ips') ;
define('CONTACTHR', '016 977 5111') ;
define('SUPPORTNAME', 'Mr. Jimmy') ;
define('SUPPORTMOBILE', '+60 16-977 7280') ;
// setdefault setting
define('ALLOWSIGN', '0') ;
define('LIMIT', '20') ;
define('TODAYDAY', date('Y-m-d', time())) ;
define('TODAYDATE', date('Y-m-d H:i:s', time())) ;
// set config
define('DEFAULTPUNCH', 'NO') ;
define('ATTENDANCEFORMULA', '2') ;
define('LIMITDIGITNO', '4') ;
define('ATTENDANCEABSENT', 'yes') ; // yes or no
// set module config
define('MENUMARKETING', 'no') ;
define('MENUJOB', 'no') ;
define('MENUACCOUNT', 'no') ;
define('MENUCUSTOMER', 'no') ;
define('MENUPRODUCT', 'no') ;
define('MENUPRODUCTIONS', 'no') ;
define('MENUHR', 'yes') ;
// 1 = table view only, 2 = qrcode only, 3 = table and qrcode only
define('QRCODEVIEW', '2') ;
// to punch card system
define('PUNCHURL', 'http://machine.ips.com.my') ;
define('PUNCHCOMPANYID', '2') ;
define('PUNCHSHOWBRANCHID', 'no') ;
// mail setting
$EMAILCC = [ 'info@ips.com.my' ] ;
$EMAILCRON = [ 'info@ips.com.my' ] ;
define('EMAIL', 'info@ips.com.my') ;
define('EMAILSYSTEM', 'info@ips.com.my') ;
define('EMAILNOREPLY', 'noreply@ips.com.my') ;
DEFINE('MAILSMTP', 'yes') ;
DEFINE('MAILHOST', 'mail.ips.com.my') ;
DEFINE('MAILUSERNAME', 'noreply@ips.com.my') ;
DEFINE('MAILPASSWORD', '0a=RoEvz6G#c') ;
DEFINE('MAILPORT', '587') ;
// sms
define('SMSENDPOINT', 'https://sms.ips.com.my/api/sms.php') ;
define('SMSID', '1') ;
define('SMSTOKEN', 'e282bc52197813943c744e61eb6b65c6') ;
define('SMSSECRET', '2316efc8559cec0a7c7b5f43b913feeb') ;
define('SMSCOMPANY', 'IPS') ;
// rms pay
define('RMSLOCATION', 'IPS') ;
define('RMSAPIURL', 'https://api.molreloads.com/terminal/v1/') ;
define('RMSAPITERMINAL', 'IPSSOF0001') ;
define('RMSAPIKEY', '8668989810297014') ;
// point for nomination
define('NOMINATIONPOINT', 60) ;
$LANGS = [ 'en' => 'EN', 'my' => 'MY', 'cn' => 'CN' ] ;
$STAFFDETAILS = 'show' ;
$CRONJOBS = [
'generate_attendance' => 'yes',
'push_notification' => 'yes',
'rms_pay_bill' => 'yes',
'rms_prepaid_check_status' => 'yes',
'punchs/user' => 'yes',
'generate_leave_day' => 'yes',
'push_task_notification' => 'yes',
'push_holiday' => 'yes',
'push_passport_permit_leave_advance' => 'yes',
'push_application_form_reminder' => 'yes',
'push_staff_resignation' => 'yes',
'generate_payment_slip' => 'yes',
'generate_attendance_to_text' => 'no',
'generate_staff_achievement' => 'yes',
'generate_monthly_attendance_point' => 'yes',
'generate_monthly_performance_point' => 'yes',
'generate_seasonly_improvement_point' => 'yes',
'generate_seasonly_summary_point' => 'yes'
] ;
// set array binding config
$CHECKLEAVEPOSITION = [ '2' ] ;
define('LEAVESETTING', 'month') ;
?>
+193
View File
@@ -0,0 +1,193 @@
<?php
$message = [
'rms-01' => 'Pending',
'rms-02' => 'Failed',
'rms-03' => 'Authorization Code Not Found or Expired',
'rms-04' => 'Out of Stock',
'rms-05' => 'Transaction Not Found',
'rms-06' => 'Invalid Product',
'rms-07' => 'Invalid Biller',
'rms-08' => 'Invalid Business Date / Invalid Transaction Date Time',
'rms-10' => 'Conflict',
'rms-11' => 'Invalid Dealer',
'rms-12' => 'Invalid Package',
'rms-13' => 'Invalid Status',
'rms-14' => 'Insufficient Wallet Balance',
'rms-15' => 'Invalid Amount',
'rms-16' => 'Invalid Parameter (TNG)',
'rms-17' => 'Unmatched Cryptogram (TNG)',
'rms-18' => 'Blacklist Due To CBL (TNG)',
'rms-19' => 'Blacklist Due To SBLK (TNG)',
'rms-20' => 'Insufficient Fund (TNG)',
'rms-21' => 'Exceeded Threshold (TNG)',
'rms-22' => 'Exceeded Max Quantity Per Transaction (Top up PIN only)',
'rms-23' => 'No Supplier Product Assign',
'rms-24' => 'BillPaymentConflictWithinPeriod',
'rms-31' => 'Invalid Terminal',
'rms-32' => 'Invalid Reference No',
'rms-33' => 'Service Type Not Support',
'rms-34' => 'No Wallet Assign',
'rms-35' => 'Wallet Account Inactive',
'rms-36' => 'Mobile Apps not support',
'rms-37' => 'Invalid AppCode / Invalid SecureCode',
'rms-38' => 'Exceeded Max Transaction Per Account Allowed',
'rms-39' => 'Not Within Min Max Amount',
'rms-40' => 'Invalid Account No',
'rms-41' => 'Invalid Parameter',
'rms-42' => 'Invalid API Version',
'rms-43' => 'Invalid Merchant Account',
'rms-44' => 'Unauthorized Server IP Address',
'rms-45' => 'Invalid Signature',
'rms-46' => 'Invalid Validated Token or Expired',
'rms-47' => 'Invalid Mobile Number',
'rms-48' => 'Parking - Invalid Street',
'rms-49' => 'Parking - Payment not required. Free Parking Off period',
'rms-50' => 'Parking - Invalid Start End Time',
'rms-51' => 'Parking - Invalid Coupon Types',
'rms-52' => 'Currency Not Match',
'rms-53' => 'Possible Fraud - Blocked',
'rms-54' => 'Invalid Store',
'rms-55' => 'Invalid Service',
'rms-56' => 'Invalid Transaction Type (TNG)',
'rms-57' => 'Invalid Fund Request (TNG)',
'rms-58' => 'Invalid TNG Account(TNG)',
'rms-59' => 'Invalid Message Code (TNG)',
'rms-60' => 'Invalid Random (TNG)',
'rms-61' => 'Invalid Account (TNG)',
'rms-62' => 'Invalid SpId (TNG)',
'rms-63' => 'Duplicate Transaction No (TNG)',
'rms-64' => 'Invalid Secret Key (TNG)',
'rms-65' => 'Invalid Transaction Date (TNG)',
'rms-66' => 'Invalid Card Manufactured No (TNG)',
'rms-67' => 'Invalid Card Transaction No (TNG)',
'rms-68' => 'Invalid Response Code (TNG)',
'rms-69' => 'Invalid Card No (TNG)',
'rms-70' => 'Unauthorized (TNG)',
'rms-71' => 'Invalid Card (TNG)',
'rms-72' => 'Invalid Card Issuer SPID (TNG)',
'rms-73' => 'Invalid Card Issuer Machine Code (TNG)',
'rms-74' => 'Invalid Last Refill Machine No (TNG)',
'rms-75' => 'Invalid Machine No (TNG)',
'rms-76' => 'Invalid Blacklist Code (TNG)',
'rms-99' => 'Others',
'rms-211' => 'Pending Authorize (OfflinePayment)',
'rms-212' => 'Reversed / Refunded (Note: Reversed is only for OfflinePayment)',
'rms-213' => 'Request Inquiry (OfflinePayment)',
'rms-214' => 'Request Reversal (OfflinePayment)',
'rms-215' => 'Request Retry Refund (OfflinePayment)',
'rms-999' => 'Payment Failed (OfflinePayment)',
'rms-1000' => 'Client version not matched',
'rms-1001' => 'Invalid authorization code',
'rms-1002' => 'Insufficient balance',
'rms-1003' => 'Exceed transaction limit',
'rms-1004' => 'Forbidden word',
'rms-1005' => 'Payer account not exists',
'rms-1006' => 'Forbidden payer account',
'rms-1007' => 'Payer disabled payment option',
'rms-1008' => 'Refund amount exceeded',
'rms-1009' => 'Unable to reverse or refund',
'rms-1010' => 'Trade closed',
'rms-9999' => 'Other error',
'rms-40000' => 'Bad Request / Duplicate Reference Id',
'rms-40001' => 'Invalid Authorization Code / Missing parameters',
'rms-40002' => 'Invalid API version',
'rms-40003' => 'Invalid Currency Code',
'rms-40005' => 'Invalid ChannelId',
'rms-40007' => 'Invalid Authorization Code Type',
'rms-40008' => 'Exceed authorized amount',
'rms-40101' => 'Invalid Application Code',
'rms-40103' => 'Invalid Signature',
'rms-40400' => 'Payment Not Found',
'rms-40431' => 'Transaction date more than 90 days',
'rms-50031' => 'Refund record not saved',
'rms-50032' => 'Refund record update failed',
'rms-50033' => 'Transaction update failed',
'rms-50034' => 'Payback record not saved',
'rms-50200' => 'Bad Gateway',
'500' => 'Failed to connect',
'401' => 'Under development',
'400' => 'Invalid login token or token expired',
'399' => 'Custom message',
'314' => 'Kinldy answer all question',
'313' => 'User account not found',
'312' => 'Please read & understood & agree the policy',
'311' => 'User account has been blocked',
'310' => 'User account not active yet',
'309' => 'Token failed to insert',
'308' => 'Invalid status',
'307' => 'Invalid qrcode',
'306' => 'Failed to upload',
'305' => 'Setting not found',
'304' => 'Something error, please try again later',
'303' => 'Permission not allow',
'302' => 'Error more than 3 times, the verification code was invalid',
'301' => 'Otp code not allow to send within 1 minute',
'300' => 'Invalid parameter',
'299' => 'Invalid status',
'298' => 'Invalid wallet movement',
'297' => 'Invalid point movement',
'296' => 'Invalid file',
'295' => 'Invalid date',
'294' => 'Sorry, testkit result only can submit on visiting date',
'293' => 'Visitor has been visited before',
'292' => 'Otp code was expired',
'291' => 'Otp code not found',
'290' => 'Account not found',
'289' => 'Username / Mobile / email already exists',
'288' => 'Mobile already exists',
'287' => 'Email already exists',
'286' => 'Password not match',
'285' => 'Password must be 6 digit and above',
'284' => 'Incorrect password',
'283' => 'Incorrect otp code',
'282' => 'Mobile same as previous',
'281' => 'Email same as previous',
'280' => 'Invalid mobile format',
'279' => 'Invalid email format',
'278' => 'Invalid rating',
'277' => 'Code expired',
'276' => 'Code used',
'275' => 'Accept rescan only after 15 minutes',
'274' => 'Sorry, you cannot apply different year of leave',
'273' => 'No enough leave to apply',
'272' => 'Invalid code',
'271' => 'Some of the staff doesn\'t meet the scenario',
'270' => 'Out of area',
'269' => 'Category not found',
'268' => 'Category can only redeem by batch',
'260' => 'User not found',
'259' => 'Selected date has been reserved',
'258' => 'Cannot cancel for the selected reservation',
'257' => 'The visitation qrcode was expired',
'254' => 'Sorry, cannot apply again',
'253' => 'Amount must have value',
'252' => 'Please complete your profile',
'251' => 'Invalid minimum amount',
'250' => 'E-wallet balance is insufficient',
'249' => 'Points balance is insufficient',
'248' => 'Item not allow to redeem',
'247' => 'Data failed to rejected',
'246' => 'Out of stock',
'245' => 'Please upload your profile',
'244' => 'Account exists',
'243' => 'Invalid point',
'211' => 'Movement failed to update',
'210' => 'Notification failed to send',
'209' => 'Sms failed to send',
'208' => 'Email failed to send',
'207' => 'Data failed to cancel',
'206' => 'Data failed to delete',
'205' => 'Data failed to save',
'204' => 'Data failed to reset',
'203' => 'Data failed to insert',
'202' => 'Data failed to update',
'201' => 'No data found',
'200' => 'Success',
'199' => 'Sms sent',
'198' => 'Email sent',
'99' => 'Not eligible for nomination',
'98' => 'Not eligible for nomination'
] ;
?>