| Server IP : 13.126.101.145 / Your IP : 216.73.217.47 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-11-115-0-196 6.8.0-1039-aws #41~22.04.1-Ubuntu SMP Thu Sep 11 10:54:48 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.3.17 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/rentals_updated/wp-content/plugins/api-phone/ |
Upload File : |
<?php
/**
* Plugin Name: API For Smart-Phones.
* Description: Custom API for Smart Phones.
* Version: 1.2.5
* Author: Itrosys
*
*/
// ini_set('log_error','On');
// ini_set('display_errors', 'On');
// Operator application APIs
add_action("rest_api_init", "api_smart_phone");
$key2 = "NQPwRJMe0ogMWL8e2cl7pgElt8vaAWf=";
$iv = substr($key2, 0, 16);
// $host = "http://192.168.11.133/gmmco4";
// $host = "https://gmmco.devitrosys.com";
$host = "https://uatcatrentals.gmmco.in";
function api_smart_phone()
{
$p_commonPath = "api/user";
$p_user = "user";
$p_product = "product";
$p_api = "api";
/**Operator base */
$p_commonPathOperator = "api/operator";
$p_apiuser = "api/user";
$p_apiproduct = "$p_api/$p_product";
/** Get OTP API */
register_rest_route($p_commonPath, "getotp", array(
'methods' => 'POST',
'callback' => 'getotpf',
'permission_callback' => function () {
return true;
}
));
/** OTP verification API */
register_rest_route(
$p_commonPath,
"verifyotp",
array(
'methods' => 'POST',
'callback' => 'verifyotpf',
'permission_callback' => function () {
return true;
}
)
);
/**
* List all Equipments
*/
register_rest_route($p_apiproduct, 'getequipmentslist', array('methods' => 'GET', 'callback' => 'getequipmentslist'));
/**Login API */
register_rest_route($p_commonPath, "login", array('methods' => "POST", "callback" => "wc_userlogin"));
/**New password create API */
register_rest_route($p_commonPath, "updatePassword", array('methods' => 'POST', 'callback' => 'updatePasswordf'));
/**Registration API */
register_rest_route($p_commonPath, "register", array('methods' => 'POST', 'callback' => "wc_adduser"));
/**get user details API */
register_rest_route($p_commonPath, "userDetailsById", array('methods' => 'POST', 'callback' => "userDetailsByIdf"));
/**get user details update API */
register_rest_route($p_commonPath, "updateProfile", array('methods' => 'POST', 'callback' => "updateProfilef"));
register_rest_route($p_commonPath, "v2/updateProfile", array('methods' => 'POST', 'callback' => "updateProfileV2"));
/**get user details API */
register_rest_route($p_commonPath, "getStatesWithCode", array('methods' => 'POST', 'callback' => "getStatesWithCodef"));
/**Notification token update API */
register_rest_route($p_commonPath, "notificationToken", array('methods' => 'PUT', 'callback' => 'updateNotificationToken'));
/**Product dropdown API */
register_rest_route($p_apiproduct, "productsDropdown", array('methods' => 'POST', 'callback' => 'getproductsDropdown'));
/**Product get filter API */
register_rest_route($p_apiproduct, "getFilters", array('methods' => 'GET', 'callback' => 'getFiltersf'));
/** Enquiry form to set lead */
register_rest_route($p_apiproduct, "Enquiry", array('methods' => 'POST', 'callback' => 'enquiryFunction'));
/** Enquiry form to get lead */
register_rest_route($p_apiproduct, "getMyEqnuries", array('methods' => 'POST', 'callback' => 'getMyEqnuriesf'));
/** Enquiry get buy enquiry products */
register_rest_route($p_apiproduct, "getMyBuyEqnuries", array('methods' => 'POST', 'callback' => 'getMyBuyEqnuriesf'));
/**Customer application */
/**Operator login */
register_rest_route($p_commonPathOperator, "login", array('methods' => "POST", "callback" => "wc_userloginOperator"));
/**New password create API */
register_rest_route($p_commonPathOperator, "updatePassword", array('methods' => 'POST', 'callback' => 'updatePasswordfOperator'));
/**Get Logsheet of operator */
register_rest_route($p_commonPathOperator, "getLogsheet", array('methods' => 'POST', 'callback' => 'getlogsheetf'));
/**Get Logsheet of operator to approve by customer */
register_rest_route($p_commonPathOperator, "getLogsheetByOrder", array('methods' => 'POST', 'callback' => 'getLogsheetByOrderf'));
/**Get Logsheet for approval */
register_rest_route($p_commonPath, "getLogsheetForApproval", array('methods' => 'POST', 'callback' => 'getLogsheetForApprovalf'));
register_rest_route($p_commonPathOperator, 'getOperatorMachineAndInspection', array(
'methods' => 'POST',
'callback' => 'getOperatorMachineAndInspectionf',
'permission_callback' => function() { return true; },
));
/**Get Logsheet for approval */
register_rest_route($p_commonPath, "approvelogbulk", array('methods' => 'POST', 'callback' => 'approvelogbulkf'));
/** approve logs by customer */
register_rest_route($p_commonPath, "approvelog", array('methods' => 'POST', 'callback' => 'saveLogsApprovef'));
/**save logs */
register_rest_route($p_commonPathOperator, "saveLogs", array('methods' => 'POST', 'callback' => 'saveLogsf'));
/**Get Logsheet of operator */
register_rest_route($p_commonPathOperator, "getServiceRequest", array('methods' => 'POST', 'callback' => 'getServiceRequestf'));
/**save service request */
register_rest_route($p_commonPathOperator, "saveServiceRequest", array('methods' => 'POST', 'callback' => 'saveServiceRequestf'));
/**get Assigned data */
register_rest_route($p_commonPathOperator, "getAssignedData", array('methods' => 'POST', 'callback' => 'getAssignedDataf'));
/**check application updates */
register_rest_route($p_api . "/" . $p_user, "checkAppUpdate", array("methods" => "POST", "callback" => "checkAppUpdatef"));
/**update new update apk */
register_rest_route($p_api . "/" . $p_user, "checkAppUpdateup", array("methods" => "POST", "callback" => "checkAppUpdateupf"));
/**sos request api */
register_rest_route($p_commonPathOperator, "sos", array('methods' => 'POST', 'callback' => 'sosf'));
// {base_url}/wp-json/api/product/addToCart
/** Add to Cart */
register_rest_route($p_apiproduct, "addToCart", array('methods' => "POST", "callback" => "addToCartf"));
/**user request for quote */
register_rest_route($p_apiproduct, "rfq", array('methods' => 'POST', 'callback' => 'rfqf'));
/**user download statndard quote in RFQ */
register_rest_route($p_apiproduct, "rfq_downloadQuote", array('methods' => 'POST', 'callback' => 'rfq_downloadQuotef'));
/**user download statndard quote in RFQ */
register_rest_route($p_apiproduct, "quote_downloadQuote", array('methods' => 'POST', 'callback' => 'quote_downloadQuotef'));
/**show request quotes */
register_rest_route($p_apiproduct, "showRFQ", array('methods' => 'POST', 'callback' => 'showRfqf'));
/**show quotes List*/
register_rest_route($p_apiproduct, "showMyQuotesList", array('methods' => 'POST', 'callback' => 'showMyQuotesListf'));
/** add request for revision */
register_rest_route($p_apiproduct, "requestForRevision", array('methods' => 'POST', 'callback' => 'requestForRevisionf'));
/**show my agreements List*/
register_rest_route($p_apiproduct, "showMyAgreements", array('methods' => 'POST', 'callback' => 'showMyAgreementsf'));
/**show my agreements List*/
register_rest_route($p_apiproduct, "uploadMySignedPdf", array('methods' => 'POST', 'callback' => 'uploadMySignedPdff'));
/**show my orders List*/
register_rest_route($p_apiproduct, "showOrdersList", array('methods' => 'POST', 'callback' => 'showOrdersListf'));
/**get products by categoryId*/
register_rest_route($p_apiproduct, "getcategories", array('methods' => 'POST', 'callback' => 'getCategories'));
/**get products by categoryId*/
register_rest_route($p_apiproduct, "getProducts", array('methods' => 'POST', 'callback' => 'getProductsf'));
/** get products grid for main page */
register_rest_route($p_apiproduct, "mainPageProductsGrid", array('methods' => 'POST', 'callback' => 'mainPageProductGrid', 'permission_callback' => function () {
return true;
}),);
/**Get product By Id */
register_rest_route($p_apiproduct, "getProductById", array('methods' => 'POST', 'callback' => 'getProductByIdf'));
/**Get product by multiple ids */
register_rest_route($p_apiproduct, "getProductsByIds", array('methods' => 'POST', 'callback' => 'getProductsByIdsf'));
/**update quotation - accept the quote */
register_rest_route($p_apiproduct, "acceptMyQuote", array('methods' => 'POST', 'callback' => 'acceptMyQuotef'));
/**update quotation - accept the quote */
register_rest_route($p_apiproduct, "addWishlist", array('methods' => 'POST', 'callback' => 'addWishlistf'));
/**update quotation - accept the quote */
register_rest_route($p_apiproduct, "addCartlist", array('methods' => 'POST', 'callback' => 'addCartlistf'));
/**get dashboard tiles count api */
register_rest_route($p_commonPath, "getDashCount", array('methods' => 'POST', 'callback' => 'getDashCountf'));
/**get dashboard tiles count api */
register_rest_route($p_commonPath, "delMyAcc", array('methods' => 'POST', 'callback' => 'delMyAccf'));
/**get Notifications */
register_rest_route($p_commonPath, "getNotification", array('methods' => 'POST', 'callback' => 'getNotificationf'));
/** make notification read */
register_rest_route($p_commonPath, "updateNotificationStatus", array('methods' => 'POST', 'callback' => 'updateNotificationStatus'));
/**get Invoices */
register_rest_route($p_commonPath, "getInvoices", array('methods' => 'POST', 'callback' => 'getInvoicesf'));
/**get getCartProducts */
register_rest_route($p_commonPath, "getCartProducts", array('methods' => 'POST', 'callback' => 'getCartProductsf'));
/**saveExpenseRequest */
register_rest_route($p_commonPathOperator, "saveExpenseRequest", array('methods' => 'POST', 'callback' => 'saveExpenseRequestf'));
/**getExpension */
register_rest_route($p_commonPathOperator, "getExpension", array('methods' => 'POST', 'callback' => 'getExpensionf'));
/**Testing api */
register_rest_route($p_apiproduct, "test", array('methods' => 'POST', 'callback' => 'testf', 'permission_callback' => '__return_true',));
/**Testing api */
register_rest_route($p_apiproduct, "createOrder", array('methods' => 'POST', 'callback' => 'createOrderf', 'permission_callback' => '__return_true',));
/**Testing api */
register_rest_route($p_apiproduct, "createOrderAfterPayment", array('methods' => 'POST', 'callback' => 'createOrderAfterPayment'));
}
// $filename = '/Applications/XAMPP/xamppfiles/htdocs/gmmco/wp-content/plugins/api-phone/log.txt';
function decryptFile($key, $iv, $s)
{
$encrypter = 'aes-256-cbc';
$st = openssl_decrypt($s, $encrypter, $key, 0, $iv);
return $st;
}
function encryptFile($key, $iv, $s)
{
$encrypter = 'aes-256-cbc';
$st = openssl_encrypt($s, $encrypter, $key, 0, $iv);
return $st;
}
/**
* Get OTP
*
* WP_REST_Request $name Send mobile number.
* return array $args.
*/
function getotpf($request)
{
// return "test resutl slfjds lds fsf";
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params() ?? array();
// $parametres = decryptdaata($parametresen['params']);
global $wpdb;
$mobileNumber = $parametres['mobileNumber'];
$type = $parametres['type'] ?? '';
$role = $parametres['role'];
$otp = rand(1111, 9999);
// return new WP_REST_Response("test resulty slfj lsfldlf jd $mobileNumber , $otp", 200);
// exit(0);
$table_name = 'wp_otp_verification';
$date = date('Y-m-d H:i:s');
if (!preg_match('/^[6789]\d{9}$/', $mobileNumber, $output_array)) {
return new WP_Error(400, 'Please enter valid mobile number');
}
$data = array(
'mobile_number' => $mobileNumber,
'otp' => $otp,
'otp_createdon' => $date,
'otp_status' => 0
);
$resp = array();
if ($type == 'forgotpassword' || $type == "mobilelogin") {
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_id = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $mobileNumber));
if ($user_id) {
$resp['user_id'] = $user_id;
} else {
return new WP_REST_Response(array('message' => "Mobile number not registered."), 400);
}
} else if ($type == "register") {
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_id = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $mobileNumber));
if ($user_id) {
return new WP_REST_Response(array('message' => "Mobile number already registered. Please login. "), 400);
}
} else if ($type == "resendOtp") {
} else {
return new WP_REST_Response(array('message' => 'Request type is required.', 'reason' => $wpdb->last_error), 409);
}
$first_name = get_user_meta($user_id, 'first_name', true);
$sql = "SELECT mobile_number,otp FROM " . $table_name . " WHERE mobile_number='$mobileNumber'";
$countPhone = $wpdb->get_results($sql, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to preceed check otp. Please try later.', 'reason' => $wpdb->last_error), 409);
}
if (count($countPhone) > 0) {
if ($type == "resendOtp") {
$otp = $countPhone[0]["otp"];
}
// return new WP_REST_Response(array("message"=> "$otp"),400);
$data_update = array('otp' => $otp, 'otp_createdon' => $date, 'otp_status' => 0);
$data_where = array('mobile_number' => $mobileNumber);
$res = $wpdb->update($table_name, $data_update, $data_where);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later.', 'reason' => $wpdb->last_error), 409);
}
} else {
$res = $wpdb->insert($table_name, $data);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to save and proceed OTP. Please try later.', 'reason' => $wpdb->last_error), 409);
}
}
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://boancomm.net/boansms/boansmsinterface.aspx',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'mobileno=' . $mobileNumber . '&smsmsg=Dear%20Customer%20' . $otp . '%20is%20Gmmco%20Ltd%20OTP%20to%20verify%20your%20mobile%20number%20for%20Website%20related%20services%20to%20reach%20you&uname=gmmco&pwd=gmmco11&pid=1194',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded'
),
));
$response = curl_exec($curl);
if (curl_errno($curl)) {
$err = curl_error($curl);
}
curl_close($curl);
if ($response) {
$resp1 = $resp + array('message' => "Hi " . $first_name . ' Your OTP sent to your mobile number.', 'success' => 1, 'otp' => $otp);
$encrypted = encryptdaata($resp1);
return new WP_REST_Response($encrypted, 200);
} else {
return new WP_REST_Response(array('message' => 'Error Occurs!!!', 'reason' => $err), 400);
}
}
function verifyotpf($request)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params() ?? array();
// $parametres = decryptdaata($parametresen['params']);
global $wpdb;
$mobileNumber = $parametres['mobileNumber'];
$otp = $parametres['otp'];
$tablename = 'wp_otp_verification';
if (!preg_match('/^[6789]\d{9}$/', $mobileNumber, $output_array)) {
return new WP_Error(400, 'Please enter valid mobile number');
}
// if (strlen($mobileNumber) != 10) {
// return new WP_REST_Response(array('message' => 'Please enter valid mobile number',), 400);
// }
if (strlen($otp) != 4) {
return new WP_REST_Response(array('message' => 'OTP required',), 400);
}
$sql = "SELECT mobile_number FROM $tablename WHERE mobile_number = '" . $mobileNumber . "' and otp ='" . $otp . "' and otp_status = 0";
$result = $wpdb->get_results($sql);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Error in getting data from db', 'reason' => $wpdb->last_error), 400);
}
if (count($result) == 1) {
// $table_name = 'wp_otp_verification';
$data_update = array('otp_status' => 2);
$data_where = array('mobile_number' => $mobileNumber);
$res = $wpdb->update($tablename, $data_update, $data_where);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Error in getting data from db', 'reason' => $wpdb->last_error), 400);
}
// $wpdb->close();
if ($res) {
$resp = array();
$resp['message'] = 'OTP Verified successfully.';
$resp['success'] = 1;
$encrypted = encryptdaata($resp);
return new WP_REST_Response($encrypted, 200);
} else {
return new WP_REST_Response(array('message' => 'Error Occurs!!!'), 400);
}
} else if (count($result) == 0) {
$res = $wpdb->get_results("SELECT mobile_number FROM $tablename WHERE mobile_number = '" . $mobileNumber . "' and otp ='" . $otp . "' and otp_status = 1");
if (count($res) == 1) {
return new WP_REST_Response(array('message' => 'Otp Expired. Try again'), 400);
} else {
return new WP_REST_Response(array('message' => 'Invalid OTP'), 400);
}
}
}
function wc_userlogin($request)
{
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $response = array();
// $parametresen = $request->get_body_params() ?? array();
// $parametres = decryptdaata($parametresen['params']);
// return $parametres;
$username = sanitize_user(trim($parametres['username']));
$password = sanitize_user(trim($parametres['password']));
$login_type = sanitize_user(trim($parametres['login_type']));
$userid = sanitize_user(trim($parametres['user_id']));
$appId = sanitize_user(trim($parametres['appId']));
$device_id = sanitize_user(trim($parametres['device_id']));
if (empty($login_type) || empty($login_type)) {
return new WP_REST_Response(array('message' => 'Login type required'), 400);
}
global $wpdb;
$table_invalidlogin = $wpdb->prefix . "invalidlogin";
$loginSql = "SELECT * from $table_invalidlogin where device_id='$device_id' and appid='$appId' and count>3 and date_time>NOW() - INTERVAL 10 MINUTE order by id desc limit 1 ";
$invlidresult = $wpdb->get_results($loginSql);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'something went wrong, try later.'), 400);
}
if ($invlidresult) {
if (filter_var($username, FILTER_VALIDATE_EMAIL)) {
$isuser = get_user_by('email', $username);
$user_email = $username;
$subject = 'Security Alert: Multiple Failed Login Attempts';
$message = "Hello, <br><br> We've detected <strong>3 failed login attempts</strong> on your account from this device.<br>
If this wasn't you, we recommend resetting your password immediately.<br><br>
<a href='" . wp_lostpassword_url() . "'>Reset Password</a><br><br>
Regards, <br>GMMCO Security Team";
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail($user_email, $subject, $message, $headers);
return new WP_REST_Response(array('message' => 'You have tried login more than 3 times with invalid credentials. Please try after 10 minutes!!!.'), 400);
} else {
return new WP_REST_Response(array('message' => 'You have tried login more than 3 times with invalid credentials. Please try after 10 minutes!!!.'), 400);
}
}
$loginsqlinsert = "INSERT INTO wp_invalidlogin (device_id, username, appid,count) SELECT * FROM (SELECT '$device_id', '$username', $appId,0) AS tmp WHERE NOT EXISTS ( SELECT device_id FROM wp_invalidlogin WHERE device_id = '$device_id' ) LIMIT 1";
$wpdb->query($loginsqlinsert);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Something went wrong, try later....'), 400);
}
if ($login_type == "username") {
if (empty($username) || empty($password)) {
return new WP_REST_Response(array('message' => 'Username and password required'), 400);
}
$logindata = array('user_login' => $username, 'user_password' => $password, 'remember' => true);
$user = wp_signon($logindata, false);
if (is_wp_error($user)) {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => 'Invalid credentials. Try again with valid login credentials.'), 400);
} else {
$user_id = $user->ID;
$user_meta = get_user_by('ID', $user_id);
// $userdata = ["user_name" => $user_meta->first_name, 'last_name' => $user_meta->last_name, 'email' => $user->user_email, 'user_phone' => $user_meta->user_phone, 'nToken' => $user_meta->nToken, 'location' => $user_meta->location];
$userdata = [
"first_name" => $user_meta->first_name,
'last_name' => $user_meta->last_name,
'display_name' => $user_meta->display_name,
'email' => property_exists($user_meta, 'user_email') ? $user_meta->user_email : '',
'user_phone' => get_user_meta($user_id, 'user_phone', true),
'nToken' => get_user_meta($user_id, 'nToken', true),
'location' => get_user_meta($user_id, 'location', true),
"id" => $user_id
];
$response['userDetails'] = $userdata;
$response['message'] = "User $username login successfully";
$encrypted = encryptdaata($response);
return new WP_REST_Response($response);
}
} else if ($login_type == "email") {
// die(json_encode($parametres));
if (empty($username) || empty($password)) {
return new WP_REST_Response(array('message' => 'Username and password required'), 400);
}
// return new WP_REST_Response(array('message' => 'a sdf dsf Username and password required'), 400);
// try {
$logindata = array('user_login' => $username, 'user_password' => $password, 'remember' => false);
$user = wp_signon($logindata, false);
// } catch (Exception $ex) {
// die(json_encode($ex));
// }
// die(json_encode($parametres));
if (is_wp_error($user)) {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => 'Invalid credentials. Try again with valid login credentials.'), 400);
} else {
// die(json_encode($parametres));
if ($user) {
$user_id = $user->ID;
$user_meta = (object)get_userdata($user->ID);
// $user_metaa = get_user_meta($user->ID); 9480492128
// die("emailllll ".$user->user_email);
// if($user_meta->email == null){
// return new WP_REST_Response(array('message' => 'Unable to login. Mail Id not exists in user detailas.'), 400);
// }
$userdata = [
"first_name" => $user_meta->first_name,
'last_name' => $user_meta->last_name,
'email' => $user_meta->user_email,
'display_name' => $user_meta->display_name,
'user_phone' => get_user_meta($user_id, 'user_phone', true),
'nToken' => get_user_meta($user_id, 'nToken', true),
'location' => get_user_meta($user_id, 'location', true),
"id" => $user_id
];
$response['userDetails'] = $userdata;
// $response['usermeta'] = $user_meta;
$response['message'] = "User $username login successful";
$encrypted = encryptdaata($response);
return new WP_REST_Response($response);
} else {
return new WP_REST_Response(array('message' => 'Unable to login now.' . $user->get_error_message()), 400);
}
}
} else if ($login_type == "emailmob") {
// global $wpdb;
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_id = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $username));
if ($user_id == null) {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => 'Not a valid login credential. Please enter valid mobile number and password', 'reason' => $wpdb->last_error), 400);
}
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch user details.', 'reason' => $wpdb->last_error), 409);
}
$user_meta = (object) get_userdata($user_id);
if ($user_meta) {
$user_meta = $user_meta->data;
// die(json_encode($user_meta));
// $user_emial = property_exists($user_meta, 'user_email') ? 'sujaykniranjan@gmail.com' : '';
$user_emial = property_exists($user_meta, 'user_email') ? $user_meta->user_email : '';
// die("userphonne $user_emial");
$logindata = array('user_login' => $user_emial, 'user_password' => $password, 'remember' => false);
// die(json_encode($logindata));
$user = wp_signon($logindata, false);
if (is_wp_error($user)) {
// $wpdb->close();
return new WP_REST_Response(array('message' => 'Invalid credentials.'), 400);
} else {
// $wpdb->close();
if ($user) {
if ($user_id != $user->ID) {
return new WP_REST_Response(array('message' => 'Unable to login with mobile please try with email and password'), 400);
}
// $user_meta = get_user_by('ID', $user->ID);
// $user_meta = get_user_meta($user->ID);
// die("emailllll ".$user->user_email);
// if($user_meta->email == null){
// return new WP_REST_Response(array('message' => 'Unable to login. Mail Id not exists in user detailas.'), 400);
// }
$userdata = [
"first_name" => get_user_meta($user_id, 'first_name', true),
'last_name' => get_user_meta($user_id, 'last_name', true),
'email' => $user_emial,
'user_phone' => get_user_meta($user_id, 'user_phone', true),
'nToken' => get_user_meta($user_id, 'nToken', true),
'location' => get_user_meta($user_id, 'location', true),
"id" => $user_id
];
$response['userDetails'] = $userdata;
$response['message'] = "User $username login successfully";
$encrypted = encryptdaata($response);
return new WP_REST_Response($response);
} else {
return new WP_REST_Response(array('message' => 'Unable to login now.'), 400);
}
}
} else {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => 'You are not an user please try with valid login credential.'), 400);
}
} else if ($login_type == "mobile") {
if (empty($username) || empty($password)) {
return new WP_REST_Response(array("message" => "Username and OTP required."), 400);
}
global $wpdb;
$tablename = 'wp_otp_verification';
// $sql = "sljfldsfkldsjflksd lfds jklfjds";
$sql = "SELECT mobile_number FROM $tablename WHERE mobile_number = '" . $username . "' and otp ='" . $password . "' and otp_status = 0"; //
// return new WP_REST_Response($sql,200);
$result = $wpdb->get_results($sql);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Error in getting data from db', 'reason' => $wpdb->last_error), 400);
}
if (count($result) == 1) {
// $table_name = 'wp_otp_verification';
$data_update = array('otp_status' => 2);
$data_where = array('mobile_number' => $username);
$res = $wpdb->update($tablename, $data_update, $data_where);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Error in getting data from db', 'reason' => $wpdb->last_error), 400);
}
if ($res) {
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_id = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $username));
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch user details.', 'reason' => $wpdb->last_error), 409);
}
if ($userid != $user_id) {
return new WP_REST_Response(array('message' => 'Invalid request method. Try later.', 'reason' => "user id not exists"), 400);
}
$user = get_user_by('ID', $user_id);
// $wpdb->close();
if ($user) {
// $user_meta = get_user_meta($user->ID);
// $userdata = ["user_name" => $user_meta->first_name, 'last_name' => $user_meta->last_name, 'email' => $user_meta->email, 'user_phone' => $user_meta->user_phone, 'nToken' => $user_meta->nToken, 'location' => $user_meta->location];
$userdata = [
"first_name" => $user->first_name,
'last_name' => $user->last_name,
'email' => $user->user_email,
'user_phone' => get_user_meta($user_id, 'user_phone', true),
'nToken' => get_user_meta($user_id, 'nToken', true),
'location' => get_user_meta($user_id, 'location', true),
"id" => $user_id
];
$response['userDetails'] = $userdata;
$response['message'] = "User $username login successful";
$encrypted = encryptdaata(array('message' => 'Login successful', 'userDetails' => $userdata));
return new WP_REST_Response($encrypted, 200);
} else {
}
} else {
return new WP_REST_Response(array('message' => 'Verified OTP. Please try to login again'), 400);
}
} else {
return new WP_REST_Response(array('message' => 'Invalid OTP. Please try again.'), 400);
}
// return new WP_REST_Response(array('message' => 'wait'), 400);
} else {
return new WP_REST_Response(array('message' => 'Login type not matched'), 400);
}
}
/**update new password function updatePassword */
function updatePasswordf(WP_REST_Request $request)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$otp = $parametres['otp'];
$mobileNumber = $parametres['mobileNumber'];
$upwd = $parametres['newpwd'];
global $wpdb;
$tablename = 'wp_otp_verification';
$sql = "SELECT mobile_number FROM $tablename WHERE mobile_number = '" . $mobileNumber . "' and otp ='" . $otp . "' and otp_status = 0";
// die($sql);
$result = $wpdb->get_results($sql);
// die(json_encode($result));
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Error in getting data from db', 'reason' => $wpdb->last_error), 400);
}
if (count($result) == 1) {
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_id = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $mobileNumber));
if( !$user_id ){
return new WP_REST_Response(array('message' => 'User not found!!!'), 409);
}
$user = get_user_by('ID', $user_id);
if ($user) {
wp_set_password($upwd, $user_id);
$encrypted = encryptdaata(array('message' => 'Password updated. Please login again using new password.', 'success' => 1, 'user_id' => $user->ID));
return new WP_REST_Response($encrypted, 200);
} else {
return new WP_REST_Response(array('message' => 'User not found!!!'), 409);
}
} else if (count($result) == 0) {
$res = $wpdb->get_results("SELECT mobile_number,otp FROM $tablename WHERE mobile_number = '" . $mobileNumber . "' and otp ='" . $otp . "' and otp_status <> 2");
if (count($res) == 1) {
$dbotp = $res[0]['otp'];
// if($dbotp != $otp){
// return new WP_REST_Response(array('message' => 'Otp Expired. Try again'), 400);
// }
return new WP_REST_Response(array('message' => 'Otp not verified. Verify first then update password.'), 400);
} else {
return new WP_REST_Response(array('message' => 'Invalid OTP'), 400);
}
}
}
/** User register function. addUser */
function wc_adduser($request = null)
{
$response = array();
//print_r($request);
$parametresen = $request->get_body_params();
$parameters = decryptdaata($parametresen['params']);
// print_r( $parameters );
$first_name = sanitize_user($parameters['first_name']);
$last_name = sanitize_user($parameters['last_name']);
$email = sanitize_email($parameters['email']);
$password = sanitize_text_field($parameters['password']);
$user_phone = wc_sanitize_phone_number($parameters['mobileNumber']);
$location = sanitize_user($parameters['location']);
$place = sanitize_user($parameters['place']);
$district = sanitize_user($parameters['district']);
// $product_name = sanitize_user($parameters['product_name']);
// $remarks = sanitize_user($parameters['remarks']);
$nToken = sanitize_user($parameters['nToken']);
if (empty($first_name)) {
return new WP_Error(400, 'First Name is required');
}
if (empty($last_name)) {
return new WP_Error(400, 'Last Name is required');
}
if (empty($email)) {
return new WP_Error(400, 'Email is required');
}
if (strlen($password) < 8) {
return new WP_Error(400, 'Password minimum 8 characters required.' . $password);
}
if (empty($user_phone)) {
return new WP_Error(400, 'Mobile number is required');
}
if (empty($location)) {
return new WP_Error(400, 'Location is required');
}
if (wp_verify_nonce($parameters['nonce'], 'woocommerce-register')) {
return new WP_Error(409, 'Invalid Data');
}
global $wpdb;
$table_namemeta = $wpdb->prefix . "usermeta";
$sql = "SELECT user_id from $table_namemeta where meta_key=%s and meta_value=%s";
$user_idmob = $wpdb->get_var($wpdb->prepare($sql, 'user_phone', $user_phone));
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to check user details.', 'reason' => $wpdb->last_error), 409);
}
$username = strtolower($first_name);
$user_id = username_exists($username);
if ($user_id) {
$i = 0;
do {
$username .= rand(10, 99);
$user_id = username_exists($username);
$i++;
} while ($user_id && $i < 2);
}
if (!$user_id && email_exists($email) == false) {
// echo "$username , $password, $email";
$user_id = wp_create_user($username, $password, $email);
$displyname = strtoupper("$first_name $last_name");
wp_update_user(array('ID' => $user_id, 'display_name' => $displyname));
if (!is_wp_error($user_id)) {
$user = get_user_by('id', $user_id);
$user->set_role('customer');
$user->display_name = $first_name . " " . $last_name;
update_user_meta($user_id, 'first_name', $first_name);
update_user_meta($user_id, 'last_name', $last_name);
update_user_meta($user_id, 'email', $email);
update_user_meta($user_id, 'location', $location);
update_user_meta($user_id, 'user_place', $place);
update_user_meta($user_id, 'user_district', $district);
// update_user_meta($user_id, 'product_name', $product_name);
// update_user_meta($user_id, 'remark', $remarks);
update_user_meta($user_id, 'user_phone', $user_phone);
update_user_meta($user_id, 'user_otp', '');
update_user_meta($user_id, 'nToken', $nToken);
update_user_meta($user_id, 'user_otp_verified', 0);
wp_new_user_notification($user_id, '', 'yes');
$user_info = get_userdata($user_id);
if ($user_info) {
$response = array();
$response['message'] = sprintf(__("User '%s' registration is successful", 'wp-rest-user'), $user_info->user_login);
$response['id'] = $user_info->ID;
$response['success'] = 1;
}
} else {
return new WP_Error(409, "Email already exists, please try login1");
}
// $encrypted = encryptdaata($response);
return new WP_REST_Response($response, 200);
} else {
return new WP_REST_Response(array("message" => "Email already exists, please try login2"), 409);
}
}
function updateNotificationToken($request)
{
$parametresen = $request->get_body_params();
$parameters = decryptdaata($parametresen['params']);
$user_id = $parameters["user_id"];
$token = $parameters["token"];
if (empty($user_id) || empty($token)) {
return new WP_Error(400, "User Id and token are required.");
}
global $wpdb;
$table_name = 'wp_usermeta';
$result = $wpdb->get_results("SELECT * from $table_name where meta_key='nToken' and user_id='$user_id'", ARRAY_A);
if (count($result) == 1) {
$up_data = array('meta_value' => $token);
$up_where = array('user_id' => $user_id, 'meta_key' => 'nToken');
$result = $wpdb->update($table_name, $up_data, $up_where);
} else if (count($result) == 0) {
$result = update_user_meta($user_id, 'nToken', $token);
} else {
return new WP_REST_Response(array('message' => 'Duplicate account found'), 409);
}
if ($result) {
$response = array('message' => 'Notification updated.', 'success' => 1);
// $encrypted = encryptdaata($response);
return new WP_REST_Response($response, 200);
} else {
$response = array('message' => 'Error occured.', 'success' => 0);
// $encrypted = encryptdaata($response);
return new WP_REST_Response($response, 123);
}
}
function getproductsDropdown($request)
{
// $encdata = "raju-av-raju";
// $st = encryptdaata($encdata);
// $decodedd = decryptdaata($st);
// echo "\n-- decrypt---";
// return $decodedd;
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$searchName = $parametres['searchName'] ?? '';
$termtype = $parametres['type'] ?? 'rent';
$args = array(
'limit' => -1,
'orderby' => 'name',
'order' => 'DESC',
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'name',
'terms' => $termtype,
// 'field' => 'id',
// 'terms' => 100,
),
),
'meta_query' => array(
array(
'key' => 'purpose_of_listing',
'value' => 'Display',
'compare' => '='
)
)
);
// echo "\n" . json_encode($args) . "\n";
$query = new WC_Product_Query($args);
$products = $query->get_products();
$thisProducts = [];
foreach ($products as $product) {
// $result1["rentprice"] = $product->get_price_suffix() . "" . $product->get_price();
// $result1["rentpricePerPeriod"] = "(8 Hours/day)";
$thisProducts[] = [
'id' => $product->id,
"rentpricePerPeriod" => "(8 Hours/day)",
'slug' => $product->slug,
"rentprice" => $product->get_price_suffix() . "" . $product->get_price(),
'name' => $product->name,
'image' => wp_get_attachment_thumb_url($product->get_image_id())
];
}
$encryped = encryptdaata(["data" => $thisProducts]);
return new WP_REST_Response($encryped, 123);
/**
* not using bellow code
*/
$tablename = "wp_posts";
global $wpdb;
$sql = "SELECT ID,post_title FROM $tablename WHERE post_type='product' and post_title like '%$searchName%' group by post_title ";
// die($sql);
$result = $wpdb->get_results($sql, ARRAY_A);
if ($wpdb->last_error) {
$resulte = array('message' => 'Unable to get products list');
return new WP_REST_Response($resulte, 400);
}
try {
foreach ($result as $key => $value) {
$product = wc_get_product($value["ID"]);
$result[$key]["id"] = (int) $value['ID'];
// $image = $product->get_image();
// $image->wc_get_attachment_image_attributes( attr )
$imagepath = wp_get_attachment_image_url($product->get_image_id());
if ($imagepath) {
$result[$key]["image"] = $imagepath;
}
$result[$key]['name'] = $product->get_name();
$result[$key]["rentprice"] = $product->get_price_suffix() . "" . $product->get_price();
$result[$key]["rentpricePerPeriod"] = "(8 Hours/day)";
$result[$key]["slug"] = $product->get_slug();
$result[$key]["stockStatus"] = $product->get_stock_status();
$result[$key]["stockCount"] = $product->get_stock_quantity();
}
} catch (Exception $e) {
$resulte = array("message" => $e->getMessage(), "code" => $e->getCode());
return new WP_REST_Response($resulte, 400);
}
$encryped = encryptdaata(["data" => $result]);
return new WP_REST_Response($encryped, 123);
}
function encryptdaata($s)
{
// global $key2;
// global $iv;
// $je = json_encode($s);
// $decodedd = encryptFile($key2, $iv, $je);
// return $decodedd;
return $s;
}
function decryptdaata($s)
{
// global $key2;
// global $iv;
// // $je = json_encode($s);
// // $st = encryptFile( $key2,$iv,$je);
// $decodedd = decryptFile($key2, $iv, $s);
// return json_decode($decodedd, true);
return $s;
}
function getFiltersf($request)
{
$parametresen = $request->get_body_params();
$parameters = decryptdaata($parametresen['params']);
global $wpdb;
$table_name = 'wp_postmeta';
$result = $wpdb->get_results("SELECT meta_value as yard_location, count(*) as qty FROM $table_name WHERE meta_key='yard_location' and post_id in(SELECT ID from wp_posts WHERE post_type='product') GROUP by meta_value ", ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(["message" => "Unable to fetch Yard/location"], 400);
}
$encrypted = encryptdaata(["yards" => $result, 'message' => '']);
return new WP_REST_Response($encrypted, 200);
}
function getMyEqnuriesf($request): WP_REST_Response
{
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
// print(json_encode($parametres));
$date1 = $parametres['start_date'];
$date2 = $parametres['end_date'];
$user_id = $parametres['user_id'] ?? '';
$lead_phone = $parametres['lead_phone'] ?? '';
$page = $parametres['page'] ?? 1;
$perpage = $parametres['perpage'] ?? 10;
$limit = " limit $perpage";
$daterange = "";
if ($page > 1) {
$perpage1 = $page * $perpage;
$perpage1 = ($perpage1 - $perpage);
$limit = " limit $perpage1,$perpage";
}
$datesBetween = "";
if (empty($user_id) && empty($lead_phone)) {
$resultdata = array("message" => "Please login or need lead phone numer to show your enquiries.");
return new WP_REST_Response($resultdata, 400);
}
if (!empty($date1) && !empty($date2)) {
$limit = "";
$datesBetween = " date(lead_created_on) between '$date1' and '$date2' ";
}
if ($lead_phone != "") {
$whereuserid = " lead_phone='$lead_phone' ";
}
if (!empty($user_id)) {
if (!empty($lead_phone)) {
$whereuserid = " user_id='$user_id' or (lead_phone='$lead_phone' and IFNULL(user_id,0)=0) ";
// $whereuserid = " user_id='$user_id' ";
} else {
$whereuserid = " user_id='$user_id' ";
}
}
global $wpdb;
$table_name = "wp_leads";
// $user_phone = get_user_meta($user_id,'user_phone',true);
$whereQuery = $datesBetween . (!empty($datesBetween) && !empty($user_id)) ? " and $datesBetween " : $whereuserid;
$whereQuery = !empty(trim($whereQuery)) ? " where $whereQuery " : "";
// $rfqquery = "select * from $table_name where $whereQuery order by id desc $limit";
// $rfqquery = "SELECT * from $table_name $whereQuery order by id desc $limit";
$rfqquery = "SELECT `id`,`user_id`,`lead_id`,`lead_number`,`full_name`,`lead_email`,`lead_phone`,`rental_startdate`,`rental_enddate`,product_name,subsidary_products,`location`,`region`,ba_remarks,remarks,en_status,lead_created_on,last_updated_on FROM $table_name $whereQuery ORDER BY id DESC $limit";
// die($rfqquery);
$results = $wpdb->get_results($rfqquery, ARRAY_A);
if ($wpdb->last_error) {
$resultdata = array("message" => "something went wrong.");
return new WP_REST_Response($resultdata, 400);
}
if (count($results ?? []) > 0) {
$results = $results ?? [];
// for($i = 0; $i < count($results); $i++){
// $res = (object) $results[$i];
// $image = wp_get_attachment_image_src(get_post_thumbnail_id($res->product_id), 'thumbnail'); //'single-post-thumbnail');
// $results[$i]['image'] = $image;
// }
$resulta = array("data" => $results ?? [], 'success' => 1);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($resulta, 200);
} else {
if ($page > 1) {
$resulta = array("data" => [], 'success' => 1);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
$resultdata = array("message" => "No Enquiry requested yet. Raise a request for Enquiry.", 'success' => 0);
return new WP_REST_Response($resultdata, 400);
}
}
function getMyBuyEqnuriesf($request)
{
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$date1 = $parametres['start_date'];
$date2 = $parametres['end_date'];
$user_id = $parametres['user_id'] ?? '';
$lead_phone = $parametres['lead_phone'] ?? '';
$page = $parametres['page'] ?? 1;
$perpage = $parametres['perpage'] ?? 10;
$limit = " limit $perpage";
$daterange = "";
if ($page > 1) {
$perpage1 = $page * $perpage;
$perpage1 = ($perpage1 - $perpage);
$limit = " limit $perpage1,$perpage";
}
$datesBetween = "";
if (empty($user_id)) {
$resultdata = array("message" => "Please login to show your buy enquiries.");
return new WP_REST_Response($resultdata, 400);
}
$whereuserid = " user_id='$user_id' ";
global $wpdb;
$table_name = "wp_used_product_enquiry";
$rfqquery = "SELECT * from $table_name WHERE $whereuserid order by id desc $limit";
$results = $wpdb->get_results($rfqquery, ARRAY_A);
if ($wpdb->last_error) {
$resultdata = array("message" => "something went wrong.");
return new WP_REST_Response($resultdata, 400);
}
if (count($results ?? []) > 0) {
$results = $results ?? [];
// for($i = 0; $i < count($results); $i++){
// $res = (object) $results[$i];
// $image = wp_get_attachment_image_src(get_post_thumbnail_id($res->product_id), 'thumbnail'); //'single-post-thumbnail');
// $results[$i]['image'] = $image;
// }
$resulta = array("data" => $results ?? [], 'success' => 1);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
} else {
if ($page > 1) {
$resulta = array("data" => [], 'success' => 1);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
$resultdata = array("message" => "No Enquiry requested yet. Raise a request for Enquiry.", 'success' => 0);
return new WP_REST_Response($resultdata, 400);
}
}
function enquiryFunction($request)
{
$parametresen = $request->get_body_params();
$parameters = decryptdaata($parametresen['params']);
// die(json_encode($parameters));
$full_name = $parameters['full_name'];
$lead_email = $parameters['lead_email'];
$lead_phone = $parameters['lead_phone'];
$location = $parameters['location'];
$region = _getRegionLeads(strtolower($location));
$product_name = $parameters['product_name'];
$product_id = $parameters['product_id'];
$subsidary_products = $parameters['subsidary_products'];
$remarks = $parameters['remarks'];
$menutype = $parameters['menutype'];
if (empty($full_name)) {
return new WP_Error(400, 'Full Name is required');
}
if (empty($lead_email)) {
return new WP_Error(400, 'Lead Email is required');
}
if (empty($lead_phone)) {
return new WP_Error(400, 'Lead Phone is required');
}
if (!preg_match('/^[6789]\d{9}$/', $lead_phone, $output_array)) {
return new WP_Error(400, 'Please enter valid mobile number');
}
if (empty($location)) {
return new WP_Error(400, 'Location is required');
}
if (empty($product_name)) {
return new WP_Error(400, 'Product Name is required');
}
// return new WP_Error(400, 'testing stop...');
global $wpdb;
$date = date('Y-m-d H:i:s');
$userId = 0;
$user = get_user_by('email', $lead_email);
if ($user) {
$userId = $user->ID;
}
if ($menutype == 'rent') {
$stdate = $parameters['start_date'];
$enddate = $parameters['end_date'];
$start_date = date("Y-m-d", strtotime($stdate));
$end_date = date("Y-m-d", strtotime($enddate));
$tablename = 'wp_leads';
// to store data in leads table
$result = $wpdb->insert($tablename, array(
'full_name' => $full_name,
'user_id' => $userId,
'lead_email' => $lead_email,
'lead_phone' => $lead_phone,
'rental_startdate' => $start_date,
'rental_enddate' => $end_date,
'location' => $location,
'region' => $region,
'product_name' => $product_name,
'subsidary_products' => $subsidary_products,
'remarks' => $remarks,
'lead_created_on' => $date
));
$lastid = $wpdb->insert_id;
// $lastid = $wpdb->insert_id;
if ($wpdb->last_error) {
return new WP_REST_Response(['message' => 'Something went wrong!. Please try later.' . $wpdb->last_error], 400);
}
if ($userId > 0) {
create_notification(
'User Raised An Enquiry',
'User "' . $user->user_login . '" has raised an Enquiry in RMS Portal.',
array(
'meta_input' => array(
'user_id' => $userId,
'action' => 'create_enquiry',
)
)
);
} else {
create_notification(
'Visitor Raised An Enquiry',
'Visitor "' . $full_name . '" has raised an Enquiry in RMS Portal.',
array(
'meta_input' => array(
'user_id' => $full_name,
'action' => 'create_enquiry',
)
)
);
}
// send data to oracle crm api and get lead id
if ($lastid > 0) {
$curl = curl_init();
$postData = array();
$postData['Name'] = $full_name;
$postData['Stage_c'] = "Lead";
$postData['PrimaryContactPartyName'] = $full_name;
$postData['PrimaryContactEmailAddress'] = $lead_email;
$postData['PrimaryPhoneNumber'] = $lead_phone;
$postData['ProductGroupName'] = $product_name;
$postData['LeadType_c'] = "Ebiz";
$postData['LeadSource_c'] = "RMS";
$postData['EquipmentType_c'] = "Rental";
$postData['Location_c'] = $location;
$postData['Remarks_c'] = $remarks;
$encodeJson = json_encode($postData);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://eiik-test.fa.em2.oraclecloud.com/crmRestApi/resources/11.13.18.05/leads',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $encodeJson,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Basic ' . base64_encode("GMMRMS01:Gmm#rms01")
),
));
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
// file_put_contents($filename, date('y-m-d H:i:s') . " params " . json_encode($parameters) . "\n", FILE_APPEND);
if (curl_errno($curl)) {
$error_msg = curl_error($curl);
// file_put_contents($filename, date('y-m-d H:i:s') . " error: " . json_encode($error_msg) . "\n", FILE_APPEND);
}
curl_close($curl);
$decode = json_decode($response, true);
if ($httpcode == '201') {
// oracle crm api response gets success update oracle crm lead id to rms leads table
$update = $wpdb->update('wp_leads', array(
'lead_id' => $decode['LeadId'],
'lead_number' => $decode['LeadNumber'],
'lead_source' => "RMS",
'lead_type' => "Ebiz",
'equipment_type' => "Rental",
'crm_response' => $response,
'lead_created_on' => $date
), array('id' => $lastid));
if ($update) {
/*
* Initialize phpmailer class*/
// global $phpmailer;
// $phpmailer->isSMTP();
// $phpmailer->Host = 'smtp.gmail.com';
// $phpmailer->SMTPAuth = true;
// $phpmailer->Port = 587;
// $phpmailer->Username = 'saravana.kumar@itrosys.com';
// $phpmailer->Password = 'qrqq mphx huer sngj';
// $phpmailer->SMTPSecure = 'TLS';
// $phpmailer->From = 'saravana.kumar@itrosys.com';
// // $phpmailer->From = 'raju.avs@itrosys.com';
// $phpmailer->FromName = 'Itrosys';
// // Add a recipient
// $phpmailer->addAddress($lead_email);
// $phpmailer->isHTML(true);
// // Email subject
// $phpmailer->Subject = 'Thank You for Your Request';
// $name = ucwords($full_name);
// // Email body content
// $mailContent = "<h1>Dear $name</h1>
// <p>Thanks for Visiting us, Your enquary is important for us, we have received your enquary which is being sent to concern person and he will be responding you very soon.</p>
// <p>Product Name: $product_name</p>
// <p>Thanks</p>
// <p>Team GRS</p>
// ";
// $phpmailer->Body = $mailContent;
// if (!$phpmailer->send()) {
// // echo 'Message could not be sent.';
// // echo 'Mailer Error: ' . $phpmailer->ErrorInfo;
$res = "Product enquiry updated and sent to Gmmco, Gmmco team will contact you.";
$encypted = encryptdaata(['message' => $res, 'success' => 1]);
return new WP_REST_Response($encypted, 200);
// } else {
// $res = "Product enquiry updated to server and sent an email to your mail id and Gmmco team will contact you";
// $encypted = encryptdaata(['message' => $res, 'success' => 1]);
// return new WP_REST_Response($encypted, 200);
// // exit;
// }
} else {
// echo "Unable to update your enquiry"; // lead details update error
$res = "Product enquiry sent, Gmmco team will contact you.";
$encypted = encryptdaata(['message' => $res, 'success' => 1]);
return new WP_REST_Response($encypted, 200);
// return new WP_REST_Response(['message' => "Request sent to CRM. Unable to update enquiry."], 200);
// exit;
}
} else if ($httpcode == '400') {
// echo $response; // oracle api errror
$update = $wpdb->update('wp_leads', array(
'lead_id' => $decode['LeadId'] ?? '',
'lead_number' => $decode['LeadNumber'] ?? '',
'lead_source' => "RMS",
'lead_type' => "Ebiz",
'equipment_type' => "Rental",
'crm_response' => $response ?? '',
'lead_created_on' => $date ?? ''
), array('id' => $lastid));
return new WP_REST_Response(['message' => $response], 400);
}
} else {
return new WP_REST_Response(['message' => 'Something went wrong!. Please try later.'], 400);
}
} else if ($menutype == 'buy') {
$offerprice = $parameters['offerprice'];
$actualprice = $parameters['actualprice'];
// Save to database
$ardata = array(
'first_name' => $full_name,
'last_name' => '',
'email' => $lead_email,
'product_id' => intval($product_id),
'user_id' => intval($userId),
'product_name' => $product_name,
'actual_price' => $actualprice,
'offered_price' => $offerprice,
'remarks' => $remarks,
'status' => 'Request Received'
);
$insertRes = $wpdb->insert(
$wpdb->prefix . 'used_product_enquiry',
$ardata,
array('%s', '%s', '%s', '%d', '%d', '%s', '%f', '%f', '%s', '%s')
);
$lastid = $wpdb->insert_id;
if (is_wp_error($insertRes)) {
return new WP_REST_Response(['message' => 'Something went wrong!. Please try later.'], 400);
}
// In App Notification
create_notification(
'User make offer',
'User "' . $full_name . '" make offer for "' . $product_name . '" ',
array(
'meta_input' => array(
'user_id' => $userId,
'action' => 'User submited offer',
)
)
);
// $email_instance = new WC_Custom_Email_Used_Enquiry();
// $email_instance->trigger($lastid, $ardata);
$ajax_url = admin_url("admin-ajax.php");
$nonce = wp_create_nonce("send_used_enquiry_email_nonce");
$reqdata = [
'action' => 'send_used_enquiry_email',
'used_enquiry_id' => $lastid,
'nonce' => $nonce
];
$response = wp_remote_post($ajax_url, [
'method' => 'POST',
'body' => $reqdata
]);
$encypted = encryptdaata(['message' => 'Your buy enquiry sent to Gmmco team.', 'success' => 1]);
return new WP_REST_Response($encypted, 200);
}
}
function getequipmentslist($request)
{
global $wpdb;
$res = $wpdb->get_results("SELECT * FROM wp_equipments");
if ($res) {
$response['code'] = 200;
$response['message'] = 'Equipment Listed Successfully';
$response['data'] = $res;
} else {
$response['code'] = 400;
$response['message'] = 'Data Not Found';
}
$encypted = encryptdaata($response);
return new WP_REST_Response($encypted, 123);
}
function _getRegionLeads($location)
{
$south = ['Karnataka', 'Kerala'];
$north = ['Madhya Pradesh', 'Chhattisgarh'];
$east = ['Andhra Pradesh', 'Tamil Nadu', 'Telangana'];
$west = ['Maharashtra', 'Goa'];
$south = array_map('strtolower', $south);
$north = array_map('strtolower', $north);
$east = array_map('strtolower', $east);
$west = array_map('strtolower', $west);
if (in_array($location, $south)) {
return 'South';
} elseif (in_array($location, $north)) {
return 'North';
} elseif (in_array($location, $east)) {
return 'East';
} elseif (in_array($location, $west)) {
return 'West';
} else {
return 'Other';
}
}
/**Operator login */
function wc_userloginOperator($request = null)
{
$parametresen = $request->get_body_params() ?? array();
$parametres = decryptdaata($parametresen['params']);
$username = sanitize_user(trim($parametres['username']));
$password = sanitize_user(trim($parametres['password']));
$login_type = sanitize_user(trim($parametres['login_type']));
$appId = sanitize_user(trim($parametres['appId']));
$device_id = sanitize_user(trim($parametres['device_id']));
if ($login_type != "mobile") {
return new WP_REST_Response(array('message' => 'Invalid login type' . $login_type), 400);
}
if (empty($appId) || empty($device_id)) {
return new WP_REST_Response(array('message' => 'Invalid request!!!.'), 400);
}
// $table_name = 'wp_otp_verification';
global $wpdb;
$table_namemeta = $wpdb->prefix . "usermeta";
$table_invalidlogin = $wpdb->prefix . "invalidlogin";
$table_user = 'wp_users';
$loginSql = "SELECT * from $table_invalidlogin where device_id='$device_id' and count>5 and date_time>NOW() - INTERVAL 10 MINUTE order by id desc limit 1 ";
$invlidresult = $wpdb->get_results($loginSql);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'something went wrong, try later.'), 400);
}
if ($invlidresult) {
return new WP_REST_Response(array('message' => 'You have tried login more than 5 times with invalid credentials. Please try after 10 minutes!!!.'), 400);
}
$loginsqlinsert = "INSERT INTO wp_invalidlogin (device_id, username, appid,count) SELECT * FROM (SELECT '$device_id', '$username', $appId,0) AS tmp WHERE NOT EXISTS ( SELECT device_id FROM wp_invalidlogin WHERE device_id = '$device_id' ) LIMIT 1";
$wpdb->query($loginsqlinsert);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Something went wrong, try later....'), 400);
}
$sql = "SELECT a.* from $table_user a left join $table_namemeta b on a.ID=b.user_id where b.meta_key='user_phone' and b.meta_value='$username' ";
// die( $sql );
// echo json_encode($sql);
$result_d = new stdClass();
$result1 = $wpdb->get_results($sql);
foreach ($result1 as $userr) {
$userdata = get_userdata($userr->ID);
$roles = $userdata->roles;
if (in_array('operator', $roles)) {
$result_d = (object)$userr;
}
}
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch user details.', 'reason' => $wpdb->last_error), 409);
}
// return new WP_REST_Response(array('message' => json_encode($result_d)), 400);
if (count((array)$result_d) > 0) {
// $result_d = $result[0];
// echo "result_d:" . json_encode($result_d);
$id = (int) $result_d->ID;
$user = get_user_by('ID', $id);
$isPass = wp_check_password($password, $user->user_pass, $id);
// $isPass = wp_authenticate_email_password($user, $user->user_email, $password);
if ($user && $isPass) {
$user_metadata = (object) get_user_meta($user->ID);
$customerdata = [];
$machineassoc = $user_metadata->machine_associated; //['machine_associated'][0];
$product = get_post($machineassoc);
$producttitle = $product->post_title;
$user_data1 = get_userdata($id);
$equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
$equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
/** order data */
$contractId = get_user_meta((int)$id, 'contract_id', true);
if (strlen(trim($contractId)) > 0) {
$order = wc_get_order($contractId);
if ($order) {
$stdt = $order->get_meta('start_date', true);
$enddt = $order->get_meta('end_date', true);
$isdateList = explode("-", $stdt);
if (is_array($isdateList)) {
if (strlen($isdateList[0]) == 2) {
$stdt = implode('-', array_reverse(explode('-', $stdt)));
$enddt = implode('-', array_reverse(explode('-', $enddt)));
}
}
$customerdata['start_date'] = $stdt; // wc_get_order_item_meta($contractId, 'start_date',true);
$customerdata['end_date'] = $enddt; //wc_get_order_item_meta($contractId, 'end_date',true);
$customerdata['order_status'] = $order->get_status();
$customerdata['order_id'] = $contractId;
$oitems = $order->get_items(); // woocommerce_get_product_from_item();
foreach ($oitems as $key => $oitem) {
$orderItemData = $order->get_item($key);
if ($orderItemData) {
$machineassoc = $orderItemData['product_id'];
$producttitle = $orderItemData['name'];
$equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
$equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
}
}
}
}
/** end order data
*/
$wpdb->query("UPDATE $table_invalidlogin SET count=0,appId=$appId where device_id='$device_id'");
if ($wpdb->last_error) {
die(json_encode("error: " . $wpdb->last_error));
}
$roless = $user_data1->roles;
if (count($roless) > 0) {
// print_r($user_metadata);
if (in_array('operator', $roless)) {
$userdata = array(
"id" => $id,
"first_name" => $user_metadata->first_name[0], //['first_name'][0],
'last_name' => $user_metadata->last_name[0], //['last_name'][0],
'email' => property_exists($user_metadata, 'email') ? $user_metadata->email[0] : '', //['email'][0],
'user_phone' => property_exists($user_metadata, 'user_phone') ? $user_metadata->user_phone[0] : '', //['user_phone'][0],
'nToken' => property_exists($user_metadata, 'nToken') ? $user_metadata->nToken[0] : '', //['nToken'][0],
'location' => property_exists($user_metadata, 'location') ? $user_metadata->location[0] : '', //['location'][0],
'profile_image' => $user_metadata->profile_image[0], //['profile_image'][0],
'machine' => [
'title' => $producttitle,
'id' => $machineassoc,
'equipment_number' => $equipment_number,
'equipment_serial_number' => $equipment_serial_number
],
'order' => $customerdata
);
if (isset($customerdata['order_id'])) {
$table_names = 'wp_service_request';
global $wpdb;
$order_id = $customerdata['order_id'];
$queryInInsp = "SELECT `id`,`status`,`order_id` FROM $table_names where operator_id='$id' and stype=1 and order_id='$order_id' ORDER BY created_on desc LIMIT 1";
$resultInInsp = $wpdb->get_results($queryInInsp, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
}
// $getInspectionAdded = $result;
if ($resultInInsp) {
if (count($resultInInsp) > 0) {
$customerdata['initInspect'] = $resultInInsp[0];
$userdata['order'] = $customerdata;
}
}
}
$encrypted = encryptdaata(array('message' => 'Operator Login successful ', 'userDetails' => $userdata));
return new WP_REST_Response($encrypted, 200);
}
}
$data_update = array('appId' => $appId, 'count' => 'count+1', 'username' => $username);
$data_where = array('device_id' => $device_id);
$wpdb->update($table_invalidlogin, $data_update, $data_where);
return new WP_REST_Response(array('message' => 'You are not an operator of Gmmco', 'reason' => $wpdb->last_error), 400);
} else {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => 'Invalid login credentials.'), 400);
}
} else {
$wpdb->query("UPDATE $table_invalidlogin SET appId=$appId, username='$username', count=count+1 WHERE device_id='$device_id'");
return new WP_REST_Response(array('message' => "Invalid login credentials.." . $wpdb->last_error), 400);
}
}
// function getAssignedDataf($request)
// {
// $parametresen = $request->get_body_params();
// $parameters = decryptdaata($parametresen['params']);
// $id = $parameters['id'];
// $customerdata = [];
// $customerid = 0;
// $machineassoc = get_user_meta((int)$id, 'machine_associated', true);
// $user = get_user_by('ID', $id); // get_user_meta((int)$id, 'email', true);
// $email = $user->user_email;
// $phone = get_user_meta((int)$id, 'user_phone', true);
// $profileimage = get_user_meta((int)$id, 'profile_image', true);
// $location = get_user_meta((int)$id, 'work_location', true);
// $contractId = get_user_meta((int)$id, 'contract_id', true);
// $product = get_post($machineassoc);
// $producttitle = $product->post_title;
// $equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
// $equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
// $imagepath = get_the_post_thumbnail_url($product->ID);
// if (strlen(trim($contractId)) > 0) {
// global $woocommerce;
// $order = wc_get_order($contractId);
// if ($order) {
// $stdt = $order->get_meta('start_date', true);
// $enddt = $order->get_meta('end_date', true);
// $isdateList = explode("-", $stdt);
// if (is_array($isdateList)) {
// if (strlen($isdateList[0]) == 2) {
// $stdt = implode('-', array_reverse(explode('-', $stdt)));
// $enddt = implode('-', array_reverse(explode('-', $enddt)));
// }
// }
// $customerdata['start_date'] = $stdt; // wc_get_order_item_meta($contractId, 'start_date',true);
// $customerdata['end_date'] = $enddt; //wc_get_order_item_meta($contractId, 'end_date',true);
// $customerdata['order_status'] = $order->get_status();
// $customerdata['order_id'] = $contractId;
// $oitems = $order->get_items(); // woocommerce_get_product_from_item();
// foreach ($oitems as $key => $oitem) {
// $orderItemData = $order->get_item($key);
// // die(json_encode($orderItemData));
// if ($orderItemData) {
// $machineassoc = $orderItemData['product_id'];
// // $equipment_number = $orderItemData['equipment_number'];
// $equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
// $equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
// $producttitle = $orderItemData['name'];
// $imagepath = get_the_post_thumbnail_url($machineassoc);
// // $orderItemData
// }
// }
// $customerdata['machine_data'] = $order->get_item;
// $customerid = $order->get_customer_id();
// $customerdata['company'] = get_user_meta($customerid, 'billing_company', true);
// $customerdata['first_name'] = $order->get_billing_first_name(); // get_user_meta((int)$customerid, 'first_name', true);
// $customerdata['last_name'] = $order->get_billing_last_name(); // get_user_meta((int)$customerid, 'last_name', true);
// // $customerdata['company'] = $order->get_billing_company(); //
// $customerdata['billing_address_1'] = $order->get_billing_address_1();
// $customerdata['billing_address_2'] = $order->get_billing_address_2(); // get_user_meta((int)$customerid, 'billing_address_2', true);
// $customerdata['billing_city'] = $order->get_billing_city(); // get_user_meta((int)$customerid, 'billing_city', true);
// $customerdata['billing_email'] = $order->get_billing_email(); //get_user_meta((int)$customerid, 'billing_email', true);
// $customerdata['phone'] = $order->get_billing_phone(); // get_user_meta((int)$customerid, 'billing_phone', true);
// $customerdata['postcode'] = $order->get_billing_postcode(); // get_user_meta((int)$customerid, 'billing_address_1', true);
// $customerdata['state'] = $order->get_billing_state();
// }
// if (isset($customerdata['order_id'])) {
// $table_names = 'wp_service_request';
// global $wpdb;
// $order_id = $customerdata['order_id'];
// $queryInInsp = "SELECT `id`,`status`,`order_id` FROM $table_names where operator_id='$id' and stype=1 and order_id='$order_id' ORDER BY created_on desc LIMIT 1";
// $resultInInsp = $wpdb->get_results($queryInInsp, ARRAY_A);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
// }
// // $getInspectionAdded = $result;
// if ($resultInInsp) {
// if (count($resultInInsp) > 0) {
// $customerdata['initInspect'] = $resultInInsp[0];
// }
// }
// }
// }
// // echo $product->post_title;
// $arrayd = array(
// 'data' => ['phone' => $phone, 'email' => $email, 'address' => '', 'image' => $profileimage, 'customer_id' => $customerid, 'work_location' => $location],
// 'product' => ['id' => $machineassoc, 'title' => $producttitle, 'image' => $imagepath, 'equipment_number' => $equipment_number, 'equipment_serial_number' => $equipment_serial_number],
// );
// if (count($customerdata) > 0) {
// $arrayd['customer'] = $customerdata;
// }
// $encrypted = encryptdaata($arrayd);
// return new WP_REST_Response($encrypted, 200);
// }
function getAssignedDataf($request)
{
global $wpdb, $woocommerce;
$parameters = $request->get_json_params()['params'] ?? [];
$id = isset($parameters['id']) ? intval($parameters['id']) : 0;
if (!$id) {
return new WP_REST_Response(['error' => 'Missing or invalid ID'], 400);
}
$user = get_user_by('ID', $id);
if (!$user) {
return new WP_REST_Response(['error' => 'User not found', 'id_received' => $id], 404);
}
// Get assignment row ID
$assign_table = 'wp_assign_operators_contracts';
$query = "SELECT id FROM $assign_table WHERE operator_id = %d ORDER BY created_on DESC LIMIT 1";
$assigned = $wpdb->get_row($wpdb->prepare($query, $id), ARRAY_A);
$assigned_row_id = $assigned['id'] ?? null;
// User meta
$email = $user->user_email ?? null;
$phone = get_user_meta($id, 'user_phone', true);
$profileimage = get_user_meta($id, 'profile_image', true);
$location = get_user_meta($id, 'work_location', true);
$contractId = get_user_meta($id, 'contract_id', true);
$machineassoc = get_user_meta($id, 'machine_associated', true);
// Product info
$product = get_post($machineassoc);
$producttitle = $product ? $product->post_title : null;
$equipment_number = $product ? get_post_meta($machineassoc, 'equipment_number', true) : null;
$equipment_serial_number = $product ? get_post_meta($machineassoc, 'equipment_serial_number', true) : null;
$imagepath = $product ? get_the_post_thumbnail_url($product->ID) : null;
$productData = [];
$customerdata = [];
$customerid = 0;
if (!empty($machineassoc)) {
if (!empty($machineassoc)) $productData['id'] = $machineassoc;
if (!empty($producttitle)) $productData['title'] = $producttitle;
if (!empty($imagepath)) $productData['image'] = $imagepath;
if (!empty($equipment_number)) $productData['equipment_number'] = $equipment_number;
if (!empty($equipment_serial_number)) $productData['equipment_serial_number'] = $equipment_serial_number;
if (!empty($assigned_row_id)) $productData['assigned_id'] = $assigned_row_id;
if (!empty($contractId)) {
$order = wc_get_order($contractId);
if ($order) {
$stdt = $order->get_meta('start_date', true);
$enddt = $order->get_meta('end_date', true);
$isdateList = explode("-", $stdt);
if (is_array($isdateList) && strlen($isdateList[0]) == 2) {
$stdt = implode('-', array_reverse($isdateList));
$enddt = implode('-', array_reverse(explode("-", $enddt)));
}
if (!empty($stdt)) $customerdata['start_date'] = $stdt;
if (!empty($enddt)) $customerdata['end_date'] = $enddt;
if (!empty($order->get_status())) $customerdata['order_status'] = $order->get_status();
$customerdata['order_id'] = $contractId;
foreach ($order->get_items() as $key => $oitem) {
$orderItemData = $order->get_item($key);
if ($orderItemData) {
$machineassoc = $orderItemData['product_id'];
$equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
$equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
$producttitle = $orderItemData['name'];
$imagepath = get_the_post_thumbnail_url($machineassoc);
}
}
$customerid = $order->get_customer_id();
$orderMetaMap = [
'company' => get_user_meta($customerid, 'billing_company', true),
'first_name' => $order->get_billing_first_name(),
'last_name' => $order->get_billing_last_name(),
'billing_address_1' => $order->get_billing_address_1(),
'billing_address_2' => $order->get_billing_address_2(),
'billing_city' => $order->get_billing_city(),
'billing_email' => $order->get_billing_email(),
'phone' => $order->get_billing_phone(),
'postcode' => $order->get_billing_postcode(),
'state' => $order->get_billing_state()
];
foreach ($orderMetaMap as $key => $value) {
if (!empty($value)) {
$customerdata[$key] = $value;
}
}
// Inspection status
$table_name = 'wp_service_request';
$queryInInsp = "SELECT id, status, order_id
FROM $table_name
WHERE operator_id='$id' AND stype=1 AND order_id='$contractId'
ORDER BY created_on DESC LIMIT 1";
$resultInInsp = $wpdb->get_results($queryInInsp, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(['message' => 'Unable to fetch inspection data', 'reason' => $wpdb->last_error], 500);
}
if (!empty($resultInInsp)) {
$customerdata['initInspect'] = $resultInInsp[0];
}
}
}
}
// Build data section
$userData = [];
if (!empty($phone)) $userData['phone'] = $phone;
if (!empty($email)) $userData['email'] = $email;
$userData['address'] = ''; // always static
if (!empty($profileimage)) $userData['image'] = $profileimage;
if (!empty($customerid)) $userData['customer_id'] = $customerid;
if (!empty($location)) $userData['work_location'] = $location;
// Final response
$arrayd = ['data' => $userData];
// Only include product and customer if product ID is present and not 0
if (!empty($productData['id'])) {
$arrayd['product'] = $productData;
if (!empty($customerdata)) {
$arrayd['customer'] = $customerdata;
}
}
return new WP_REST_Response($arrayd, 200);
}
/**Get log sheet of operator */
// function getlogsheetf($request = null)
// {
// $parametresen = json_decode($request->get_body(), true); // <-- safest way
// $paramData = $parametresen['params'] ?? [];
// if (is_array($paramData)) {
// $parametres = $paramData;
// } else {
// $parametres = decryptdaata($paramData); // if you're using encryption
// }
// // $parametresen = $request->get_body_params();
// // $parametres = decryptdaata($parametresen['params']);
// // print_r($parametres);
// $user_id = $parametres['user_id'];
// $order_id = $parametres['order_id'];
// $dates = json_decode(($parametres['dates']));
// // die(($dates));
// // print_r($dates);
// $limits = "LIMIT 10";
// $daterange = "";
// if (count($dates) > 0) {
// $fromDate = $dates[0];
// $endDate = $dates[1];
// if (empty($fromDate) || empty($endDate)) {
// $limits = "LIMIT 10";
// } else {
// $limits = "";
// $daterange = " AND a.log_date between '$fromDate' and '$endDate' ";
// }
// }
// global $wpdb;
// $table_name = "wp_logsheet";
// $table_nameb = "wp_logs_attachment_docs";
// $query = "SELECT a.*,concat('[ ',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id WHERE a.operator_Id='$user_id' $daterange GROUP BY a.id ORDER BY a.log_date DESC $limits ";
// // die($query);
// $result = $wpdb->get_results($query, ARRAY_A);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
// }
// $customerdata = [];
// // if (isset($customerdata['order_id'])) {
// $table_names = 'wp_service_request';
// // global $wpdb;
// $queryInInsp = "SELECT `id`,`status`,`order_id` FROM $table_names where operator_id='$user_id' and stype='1' and order_id='$order_id' ORDER BY created_on desc LIMIT 1";
// $resultInInsp = $wpdb->get_results($queryInInsp, ARRAY_A);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
// }
// // $getInspectionAdded = $result;
// if ($resultInInsp) {
// if (count($resultInInsp) > 0) {
// $customerdata['initInspect'] = $resultInInsp[0];
// }
// }
// // }
// $rows = [];
// if ($result) {
// global $host;
// for ($i = 0; $i < count($result); $i++) {
// $resultd = (object)$result[$i];
// $orderid = $resultd->order_id;
// try {
// // $result[$i]['COMPANY']="company selecrewd";
// if ($orderid > 0) {
// $order = wc_get_order($orderid);
// $companyName = $order->get_billing_company();
// if ($companyName == '') {
// $companyName = $order->get_billing_first_name();
// }
// $result[$i]['company'] = $companyName;
// }
// } catch (\Throwable $th) {
// // $result[$i]['company']=$th->getMessage();
// }
// }
// $imgUrlfolder = "$host/wp-content/uploads/operator-logs-attachments/";
// $encrypted = encryptdaata(array('message' => '', 'logs' => $result, 'imgUrlfolder' => $imgUrlfolder) + $customerdata);
// return new WP_REST_Response($encrypted, 200);
// } else {
// if ($daterange != "") {
// $encrypted = encryptdaata(array('message' => 'No Logs available between these dates' . implode(", ", $dates), 'logs' => $rows) + $customerdata);
// } else {
// $encrypted = encryptdaata(array('message' => 'No logs are available yet. Please click the add button below to create your log sheet.', 'logs' => $rows) + $customerdata);
// }
// return new WP_REST_Response($encrypted, 200);
// }
// }
function getlogsheetf($request = null)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$user_id = $parametres['user_id'] ?? '';
$order_id = $parametres['order_id'] ?? '';
$limits = "LIMIT 10";
$daterange = "";
// ✅ Safe handling of 'dates' whether it's JSON string or array
$dates = $parametres['dates'] ?? [];
if (is_string($dates)) {
$dates = json_decode($dates, true);
}
if (is_array($dates) && count($dates) === 2) {
$fromDate = $dates[0];
$endDate = $dates[1];
if (!empty($fromDate) && !empty($endDate)) {
$limits = "";
$daterange = " AND a.log_date BETWEEN '$fromDate' AND '$endDate' ";
}
}
global $wpdb;
$table_name = "wp_logsheet";
$table_nameb = "wp_logs_attachment_docs";
$query = "
SELECT
a.*,
CONCAT('[', GROUP_CONCAT('{\"', b.id, '\":\"', b.attachment, '\"}'), ']') AS docs
FROM $table_name a
LEFT JOIN $table_nameb b ON a.id = b.log_id
WHERE a.operator_Id = '$user_id'
$daterange
GROUP BY a.id
ORDER BY a.log_date DESC
$limits
";
$result = $wpdb->get_results($query, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response([
'message' => 'Unable to fetch logs. Please try later',
'reason' => $wpdb->last_error
], 400);
}
$customerdata = [];
$table_names = 'wp_service_request';
$queryInInsp = "
SELECT id, status, order_id
FROM $table_names
WHERE operator_id = '$user_id'
AND stype = '1'
AND order_id = '$order_id'
ORDER BY created_on DESC
LIMIT 1
";
$resultInInsp = $wpdb->get_results($queryInInsp, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response([
'message' => 'Unable to fetch inspection info',
'reason' => $wpdb->last_error
], 400);
}
if (!empty($resultInInsp)) {
$customerdata['initInspect'] = $resultInInsp[0];
}
$rows = [];
if (!empty($result)) {
global $host;
foreach ($result as $i => $row) {
try {
$orderid = $row['order_id'];
if ($orderid > 0) {
$order = wc_get_order($orderid);
$companyName = $order->get_billing_company();
if (empty($companyName)) {
$companyName = $order->get_billing_first_name();
}
$result[$i]['company'] = $companyName;
}
} catch (\Throwable $th) {
// Handle WC order errors silently
$result[$i]['company'] = '';
}
}
$imgUrlfolder = "$host/wp-content/uploads/operator-logs-attachments/";
$encrypted = encryptdaata(array_merge([
'message' => '',
'logs' => $result,
'imgUrlfolder' => $imgUrlfolder
], $customerdata));
return new WP_REST_Response($encrypted, 200);
} else {
$message = $daterange !== ""
? 'No Logs available between these dates: ' . implode(", ", $dates)
: 'No logs are available yet. Please click the add button below to create your log sheet.';
$encrypted = encryptdaata(array_merge([
'message' => $message,
'logs' => $rows
], $customerdata));
return new WP_REST_Response($encrypted, 200);
}
}
/**Operator add logs */
// function saveLogsf($request)
// {
// $parametresen = json_decode($request->get_body(), true); // <-- safest way
// $paramData = $parametresen['params'] ?? [];
// if (is_array($paramData)) {
// $parametres = $paramData;
// } else {
// $parametres = decryptdaata($paramData); // if you're using encryption
// }
// // $parametresen = $request->get_body_params();
// // $parameters = decryptdaata($parametresen['params']);
// $paramdata = $parametres; //['data'];
// global $wpdb;
// $inRow = '';
// $id = '0';
// $imagesl = [];
// $upload_dir = wp_upload_dir();
// $upload_path = $upload_dir['basedir'] . "/operator-logs-attachments/";
// // Ensure the uploads directory exists
// if (!is_dir($upload_path)) {
// wp_mkdir_p($upload_path);
// }
// $attachmenntTable = "wp_logs_attachment_docs";
// $imagenotsaved = [];
// $resp = '';
// // foreach ($paramdata as $key => $value) {
// $id = $paramdata['id'];
// $equipmentid = $paramdata['equipmentId'] ?? 0;
// $attend = $paramdata['attend'];
// $date = $paramdata['date'];
// $shift = $paramdata['shift'];
// $startTime = $paramdata['startTime'];
// $endTime = $paramdata['endTime'];
// $startSMU = $paramdata['startSMU'];
// $endSMU = $paramdata['endSMU'];
// $fuel = $paramdata['fuel'];
// $workingHour = $paramdata['workingHour'] ?? 0;
// $downHour = $paramdata['downHour'] ?? 0;
// $orderId = $paramdata['order_id'] ?? 0;
// $logsheetTable = 'wp_logsheet';
// // die("customer Id $logsheetTable");
// $order = wc_get_order($orderId);
// $customerId = $order->get_customer_id();
// // die("customer Id $customerId");
// // $customerId = $order->;
// $numShifts = wc_get_order_item_meta($orderId, 'number_shifts_required', true);
// $contractId = get_user_meta((int)$id, 'contract_id', true);
// if ($attend == 0) {
// $workingHour = 0;
// $downHour = 0;
// $fuel = 0;
// $startTime = '';
// $endTime = '';
// }
// if ($contractId != $orderId) {
// return new WP_REST_Response(array('message' => 'Contract details mismatched. Please go to the MyAccount page to verify contract/customer details and then try again.', 'success' => 0), 400);
// }
// $today = date('Y-m-d');
// if ($date > $today) {
// return new WP_REST_Response(array('message' => "Can't save future logs.", 'success' => 0), 400);
// }
// $getPreviousQuery = "SELECT end_smu FROM $logsheetTable where equipment_id=$equipmentid AND log_date>'now() - INTERVAL 3 MONTH' AND log_date <= '$today' and attend=1 ORDER BY log_date DESC limit 1";
// $getPreviousresult = $wpdb->get_results($getPreviousQuery);
// if ($getPreviousresult) {
// $smuendval = $getPreviousresult->end_smu;
// // if ($attend == 1) {
// if ($startSMU < $smuendval) {
// return new WP_REST_Response(array('message' => "Invalid SMU value. It should be grater than previous end SMU value(Previous SMU value is $smuendval)", 'success' => 0), 400);
// }
// // }
// }
// $getPreviousQuery1 = "SELECT * FROM $logsheetTable where equipment_id=$equipmentid AND shif='$shift' AND log_date = '$date' ";
// $getPreviousresult1 = $wpdb->get_results($getPreviousQuery1);
// if ($getPreviousresult1) {
// return new WP_REST_Response(array('message' => "Unable to save this log. A log already exists for this date and shift.", 'success' => 0), 400);
// }
// // if($date < $getPreviousresult->log_date && $numShifts == 1){
// // return new WP_REST_Response(array('message' => "You can add logs. that already logs are saved previous days", 'success' => 0), 400);
// // }
// $datenow = date('Y-m-d H:i:s');
// $inRow = "( '$equipmentid', '$id', '$date', '$startTime', '$endTime', '$shift','$workingHour',0, round(TIME_TO_SEC('$downHour')/60, 0), '$fuel', '0', '', '$customerId','$startSMU','$endSMU','$attend', '$datenow','$orderId')";
// $query = "INSERT INTO $logsheetTable (`equipment_id`, `operator_id`, `log_date`, `start_time`, `end_time`, `shift`, `working_hour`, `down_hour`,`breakdown` , `fuel`, `log_status`, `log_remarks`, `remarks_by`,`start_smu`,`end_smu`,`attend`,`log_created_on`,`order_id`) VALUES $inRow ;";
// $sql = $wpdb->query($query);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to save data', 'reason' => "Error in insert data: $wpdb->last_error ", 'date' => $date, 'success' => 0), 400);
// }
// $sqlid = $wpdb->insert_id;
// $attachmenntTable = "wp_logs_attachment_docs";
// $imagenotsaved = [];
// // $paramdata['images']
// if (key_exists('images', $_FILES)) {
// $total = count($_FILES['images']['name']);
// for ($i = 0; $i < $total; $i++) {
// $file_name = $_FILES['images']['name'][$i];
// $file_tmp_name = $_FILES['images']['tmp_name'][$i];
// $file_path = $upload_path . basename($file_name);
// if (move_uploaded_file($file_tmp_name, $file_path)) {
// $wpdb->insert($attachmenntTable, [
// "log_id" => $sqlid,
// "attachment" => $file_name,
// "created_on" => date('Y-m-d H:i:s'),
// ]);
// } else {
// $imagenotsaved[] = ['id' => $sqlid, 'date' => $date];
// }
// }
// }
// $newtimestamp = strtotime("$datenow - 1 minute");
// $timeinteralval = date('Y-m-d H:i:s', $newtimestamp);
// $dupQuery = "SELECT * from $logsheetTable where log_date='$date' and start_time='$startTime' and operator_id='$id' and order_id='$orderId' and log_created_on>'$timeinteralval'";
// $resultdup = $wpdb->get_results($dupQuery, ARRAY_A);
// if ($resultdup) {
// if (is_array($resultdup)) {
// if (count($resultdup) > 1) {
// // $wpdb->delete( $logsheetTable, array( 'id' => $sqlid) );
// // global $filename;
// // file_put_contents($filename, date('y-m-d H:i:s') . " logfordel : $logsheetTable where id=$sqlid \n", FILE_APPEND);
// }
// }
// }
// $encrypted = encryptdaata(array('message' => 'Data saved.', 'imagenotsaved' => $imagenotsaved, 'success' => 1, 'id' => $sqlid));
// return new WP_REST_Response($encrypted);
// }
// -------------------------------------------------------------------------------------- START TP EDIT
function saveLogsf($request){
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parameters = decryptdaata($parametresen['params']);
$paramdata = $parametres; //['data'];
global $wpdb;
$inRow = '';
$id = '0';
$imagesl = [];
$upload_dir = wp_upload_dir();
$upload_path = $upload_dir['basedir'] . "/operator-logs-attachments/";
// Ensure the uploads directory exists
if (!is_dir($upload_path)) {
wp_mkdir_p($upload_path);
}
$attachmenntTable = "wp_logs_attachment_docs";
$imagenotsaved = [];
$resp = '';
// foreach ($paramdata as $key => $value) {
$id = $paramdata['id'];
$equipmentid = $paramdata['equipmentId'] ?? 0;
$attend = $paramdata['attend'];
$date = $paramdata['date'];
$shift = $paramdata['shift'];
$startTime = $paramdata['startTime'];
$endTime = $paramdata['endTime'];
$startSMU = $paramdata['startSMU'];
$endSMU = $paramdata['endSMU'];
$fuel = $paramdata['fuel'];
$workingHour = $paramdata['workingHour'] ?? 0;
$downHour = $paramdata['downHour'] ?? 0;
$orderId = $paramdata['order_id'] ?? 0;
$logsheetTable = 'wp_logsheet';
// die("customer Id $logsheetTable");
$order = wc_get_order($orderId);
$customerId = $order->get_customer_id();
$image_ids = $paramdata['image_ids'] ?? '';
// die("customer Id $customerId");
// $customerId = $order->;
$numShifts = wc_get_order_item_meta($orderId, 'number_shifts_required', true);
$contractId = get_user_meta((int)$id, 'contract_id', true);
if ($attend == 0) {
$workingHour = 0;
$downHour = 0;
$fuel = 0;
// $startTime = '';
// $endTime = '';
}
if ($contractId != $orderId) {
return new WP_REST_Response(array('message' => 'Contract details mismatched. Please go to the MyAccount page to verify contract/customer details and then try again.', 'success' => 0), 400);
}
$today = date('Y-m-d');
if ($date > $today) {
return new WP_REST_Response(array('message' => "Can't save future logs.", 'success' => 0), 400);
}
$getPreviousQuery = "SELECT end_smu FROM $logsheetTable where equipment_id=$equipmentid AND log_date>'now() - INTERVAL 3 MONTH' AND log_date <= '$today' and attend=1 ORDER BY log_date DESC limit 1";
$getPreviousresult = $wpdb->get_results($getPreviousQuery);
if ($getPreviousresult) {
$smuendval = $getPreviousresult->end_smu;
// if ($attend == 1) {
if ($startSMU < $smuendval) {
return new WP_REST_Response(array('message' => "Invalid SMU value. It should be grater than previous end SMU value(Previous SMU value is $smuendval)", 'success' => 0), 400);
}
// }
}
$getPreviousQuery1 = "SELECT * FROM $logsheetTable where equipment_id=$equipmentid AND shif='$shift' AND log_date = '$date' ";
$getPreviousresult1 = $wpdb->get_results($getPreviousQuery1);
if ($getPreviousresult1) {
return new WP_REST_Response(array('message' => "Unable to save this log. A log already exists for this date and shift.", 'success' => 0), 400);
}
// if($date < $getPreviousresult->log_date && $numShifts == 1){
// return new WP_REST_Response(array('message' => "You can add logs. that already logs are saved previous days", 'success' => 0), 400);
// }
$datenow = date('Y-m-d H:i:s');
$inRow = "( '$equipmentid', '$id', '$date', '$startTime', '$endTime', '$shift','$workingHour',0, round(TIME_TO_SEC('$downHour')/60, 0), '$fuel', '0', '', '$customerId','$startSMU','$endSMU','$attend', '$datenow','$orderId', '$image_ids')";
$query = "INSERT INTO $logsheetTable (`equipment_id`, `operator_id`, `log_date`, `start_time`, `end_time`, `shift`, `working_hour`, `down_hour`,`breakdown` , `fuel`, `log_status`, `log_remarks`, `remarks_by`,`start_smu`,`end_smu`,`attend`,`log_created_on`,`order_id`, `images`) VALUES $inRow ;";
$sql = $wpdb->query($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to save data', 'reason' => "Error in insert data: $wpdb->last_error ", 'date' => $date, 'success' => 0), 400);
}
$sqlid = $wpdb->insert_id;
$attachmenntTable = "wp_logs_attachment_docs";
$imagenotsaved = [];
// $paramdata['images']
if (key_exists('images', $_FILES)) {
$total = count($_FILES['images']['name']);
for ($i = 0; $i < $total; $i++) {
$file_name = $_FILES['images']['name'][$i];
$file_tmp_name = $_FILES['images']['tmp_name'][$i];
$file_path = $upload_path . basename($file_name);
if (move_uploaded_file($file_tmp_name, $file_path)) {
$wpdb->insert($attachmenntTable, [
"log_id" => $sqlid,
"attachment" => $file_name,
"created_on" => date('Y-m-d H:i:s'),
]);
} else {
$imagenotsaved[] = ['id' => $sqlid, 'date' => $date];
}
}
}
$newtimestamp = strtotime("$datenow - 1 minute");
$timeinteralval = date('Y-m-d H:i:s', $newtimestamp);
$dupQuery = "SELECT * from $logsheetTable where log_date='$date' and start_time='$startTime' and operator_id='$id' and order_id='$orderId' and log_created_on>'$timeinteralval'";
$resultdup = $wpdb->get_results($dupQuery, ARRAY_A);
if ($resultdup) {
if (is_array($resultdup)) {
if (count($resultdup) > 1) {
// $wpdb->delete( $logsheetTable, array( 'id' => $sqlid) );
// global $filename;
// file_put_contents($filename, date('y-m-d H:i:s') . " logfordel : $logsheetTable where id=$sqlid \n", FILE_APPEND);
}
}
}
$encrypted = encryptdaata(array('message' => 'Data saved.', 'imagenotsaved' => $imagenotsaved, 'success' => 1, 'id' => $sqlid));
return new WP_REST_Response($encrypted);
}
// curl --location 'https://gmmco-rms.teampumpkin.in/wp-json/api/operator/saveLogs' \
// --header 'Content-Type: application/json' \
// --data '{
// "params": {
// "id": "1352",
// "equipmentId": "10363",
// "attend": 1,
// "date": "2025-06-25",
// "shift": "1",
// "startTime": "09:00",
// "endTime": "17:00",
// "startSMU": 110,
// "endSMU": 118,
// "fuel": 10,
// "workingHour": "8",
// "downHour": "0:00",
// "order_id": "10534",
// "image_ids": "101, 102, 103"
// }
// }'
// ALTER TABLE wp_logsheet ADD COLUMN images TEXT;
/**Get Service request */
function getServiceRequestf($request = null)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
$sqlParams = [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$user_id = $parametres['user_id'];
// $dates = json_decode($parametres['dates']);
$dates = $parametres['dates'];
$stype = $parametres['stype'];
$orderid = $parametres['order_id'] ?? '';
$limits = "LIMIT 10";
$daterange = "";
if (count($dates) == 2) {
$fromDate = $dates[0];
$endDate = $dates[1];
if (empty($fromDate) || empty($endDate)) {
$limits = "LIMIT 10";
} else {
$limits = "";
$daterange = " AND date(a.created_on) between '$fromDate' and '$endDate' ";
}
}
$whereOrderId = '';
if (!empty($orderid)) {
$whereOrderId = " AND order_id=$orderid ";
}
$whereEquipmentId = '';
if( isset($parametres['equipment_id'])){
$whereEquipmentId = ' AND equipment_id = %d ';
$sqlParams[] = $parametres['equipment_id'];
}
global $wpdb;
$table_name = $wpdb->prefix . 'service_request';
$table_nameb = $wpdb->prefix . 'service_attachment_docs';
$querysrerv = "SELECT a.*,concat('[',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id WHERE a.stype IN ($stype) AND a.operator_Id='$user_id' $whereOrderId $whereEquipmentId $daterange GROUP BY a.id ORDER BY a.created_on DESC $limits ";
// die($querysrerv);
// $query = "SELECT * FROM $table_name where operator_Id='$user_id' ORDER BY created_on DESC LIMIT 10 ";
// $result1 = $wpdb->get_results("SELECT * FROM $table_name WHERE stype=1 and ");
$result = $wpdb->get_results( $wpdb->prepare($querysrerv, $sqlParams ), ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
}
if ($result) {
for ($i = 0; $i < count($result); $i++) {
// foreach ($result as $key => $value) {
$value = (object)$result[$i];
$productid = (int) $value->equipment_id;
$product = get_post($productid);
$producttitle = $product->post_title;
if ($stype == 1) {
$oprId = intval($value->operator_id);
$oprNamef = get_user_meta($oprId, 'first_name', true);
$oprNamel = get_user_meta($oprId, 'last_name', true);
$result[$i]['oprName'] = $oprNamef . " " . $oprNamel;
$result[$i]['problem_description'] = $value->ins_remarks;
}
$result[$i]['product'] = $producttitle;
$orderid = $value->order_id;
try {
// $result[$i]['COMPANY']="company selecrewd";
if ($orderid > 0) {
$order = wc_get_order($orderid);
$compName = $order->get_billing_company();
if (empty(trim($compName))) {
$compName = $order->get_billing_first_name() . " " . $order->get_billing_last_name();
}
$result[$i]['company'] = $compName;
}
} catch (\Throwable $th) {
// $result[$i]['company']=$th->getMessage();
}
}
global $host;
$imgUrlfolder = "$host/wp-content/uploads/operator-service-request-attachments/";
$encrypeddata = encryptdaata(array('message' => '', 'serviceRequests' => $result, "imgUrlfolder" => $imgUrlfolder));
return new WP_REST_Response($encrypeddata, 200);
} else {
if ($daterange != "") {
$message = "";
if ($stype == 0) {
$message = 'No service requests between these days' . implode(", ", $dates);
} else if ($stype == 1) {
$message = 'No inspection data between these days' . implode(", ", $dates);
}
$encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
} else {
$message = "";
if ($stype == 0) {
$message = 'You have not made any service requests yet. If you would like to add a service request, please click the add button below.';
} else if ($stype == 1) {
$message = 'No inspection data uploaded yet. If you would like to upload inspection images, please click the add button below.';
}
$encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
}
return new WP_REST_Response($encrypeddata, 200);
}
}
// function getServiceRequestf($request = null)
// {
// $parametresen = json_decode($request->get_body(), true); // <-- safest way
// $paramData = $parametresen['params'] ?? [];
// $sqlParams = [];
// if (is_array($paramData)) {
// $parametres = $paramData;
// } else {
// $parametres = decryptdaata($paramData); // if you're using encryption
// }
// // $parametresen = $request->get_body_params();
// // $parametres = decryptdaata($parametresen['params']);
// $user_id = $parametres['user_id'];
// // $dates = json_decode($parametres['dates']);
// $dates = $parametres['dates'];
// $stype = $parametres['stype'];
// $orderid = $parametres['order_id'] ?? '';
// $limits = "LIMIT 10";
// $daterange = "";
// if (count($dates) == 2) {
// $fromDate = $dates[0];
// $endDate = $dates[1];
// if (empty($fromDate) || empty($endDate)) {
// $limits = "LIMIT 10";
// } else {
// $limits = "";
// $daterange = " AND date(a.created_on) between '$fromDate' and '$endDate' ";
// }
// }
// $whereOrderId = '';
// if (!empty($orderid)) {
// $whereOrderId = " AND order_id=$orderid ";
// }
// $whereEquipmentId = '';
// if( isset($parametres['equipment_id'])){
// $whereEquipmentId = ' AND equipment_id = %d ';
// $sqlParams[] = $parametres['equipment_id'];
// }
// global $wpdb;
// $table_name = $wpdb->prefix . 'service_request';
// $table_nameb = $wpdb->prefix . 'service_attachment_docs';
// $querysrerv = "SELECT a.*,concat('[',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id WHERE a.stype IN ($stype) AND a.operator_Id='$user_id' $whereOrderId $whereEquipmentId $daterange GROUP BY a.id ORDER BY a.created_on DESC $limits ";
// // die($querysrerv);
// // $query = "SELECT * FROM $table_name where operator_Id='$user_id' ORDER BY created_on DESC LIMIT 10 ";
// // $result1 = $wpdb->get_results("SELECT * FROM $table_name WHERE stype=1 and ");
// $result = $wpdb->get_results( $wpdb->prepare($querysrerv, $sqlParams ), ARRAY_A);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
// }
// if ($result) {
// for ($i = 0; $i < count($result); $i++) {
// // foreach ($result as $key => $value) {
// $value = (object)$result[$i];
// $productid = (int) $value->equipment_id;
// $product = get_post($productid);
// $producttitle = $product->post_title;
// if ($stype == 1) {
// $oprId = intval($value->operator_id);
// $oprNamef = get_user_meta($oprId, 'first_name', true);
// $oprNamel = get_user_meta($oprId, 'last_name', true);
// $result[$i]['oprName'] = $oprNamef . " " . $oprNamel;
// $result[$i]['problem_description'] = $value->ins_remarks;
// }
// $result[$i]['product'] = $producttitle;
// $orderid = $value->order_id;
// try {
// // $result[$i]['COMPANY']="company selecrewd";
// if ($orderid > 0) {
// $order = wc_get_order($orderid);
// $compName = $order->get_billing_company();
// if (empty(trim($compName))) {
// $compName = $order->get_billing_first_name() . " " . $order->get_billing_last_name();
// }
// $result[$i]['company'] = $compName;
// }
// } catch (\Throwable $th) {
// // $result[$i]['company']=$th->getMessage();
// }
// }
// global $host;
// $imgUrlfolder = "$host/wp-content/uploads/operator-service-request-attachments/";
// $encrypeddata = encryptdaata(array('message' => '', 'serviceRequests' => $result, "imgUrlfolder" => $imgUrlfolder));
// return new WP_REST_Response($encrypeddata, 200);
// } else {
// if ($daterange != "") {
// $message = "";
// if ($stype == 0) {
// $message = 'No service requests between these days' . implode(", ", $dates);
// } else if ($stype == 1) {
// $message = 'No inspection data between these days' . implode(", ", $dates);
// }
// $encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
// } else {
// $message = "";
// if ($stype == 0) {
// $message = 'You have not made any service requests yet. If you would like to add a service request, please click the add button below.';
// } else if ($stype == 1) {
// $message = 'No inspection data uploaded yet. If you would like to upload inspection images, please click the add button below.';
// }
// $encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
// }
// return new WP_REST_Response($encrypeddata, 200);
// }
// }
function saveServiceRequestf($request)
{
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parameters = $paramData;
} else {
$parameters = decryptdaata($paramData);
}
$id = $parameters['id'];
$equipmentid = $parameters['equipmentId'] ?? 0;
$priority = $parameters['priority'];
$date = $parameters['date']; // submitted date
$issuedesc = addslashes($parameters['issuedesc']);
$images = addslashes($parameters['images'] ?? '');
$orderId = $parameters['order_id'] ?? 0;
$stype = $parameters['stype'];
// New field
$assignedId = $parameters['assigned_id'] ?? 0;
$reportedDate = addslashes($date); // reused as reported_date in DB
if (!isset($parameters['stype'])) {
return new WP_REST_Response(['message' => 'Invalid request, try with updated application.', 'success' => 0], 400);
}
global $wpdb;
$tablename = $wpdb->prefix . 'service_request';
// Status and description logic
$st = 'Raised';
$issuedesc1 = '';
if ($stype == 1 || $stype == 2) {
$st = 'Image uploaded';
$issuedesc1 = $issuedesc;
$issuedesc = '';
}
// Insert query
$query = $wpdb->prepare(
"INSERT INTO $tablename
(`equipment_id`, `operator_id`, `created_on`, `problem_description`, `ins_remarks`, `status`, `priority_level`, `order_id`, `stype`, `assigned_id`, `images`, `reported_date`)
VALUES (%d, %d, %s, %s, %s, %s, %s, %d, %d, %d, %s, %s)",
$equipmentid, $id, $date, $issuedesc, $issuedesc1, $st, $priority, $orderId, $stype,
$assignedId, $images, $reportedDate
);
$sql = $wpdb->query($query);
if ($wpdb->last_error) {
return new WP_REST_Response([
'message' => 'Unable to save data',
'reason' => "Error in insert data: $wpdb->last_error",
'date' => $date,
'success' => 0
]);
}
$sqlid = $wpdb->insert_id;
if ($sqlid == 0) {
return new WP_REST_Response(['message' => 'Unable to save. ID should be incremented.'], 400);
}
// File upload block (if used)
$imagenotsaved = [];
$uploadedfileslist = [];
if (key_exists('images', $_FILES)) {
$upload_dir = wp_upload_dir();
$upload_path = $upload_dir['basedir'] . "/operator-service-request-attachments/";
if (!is_dir($upload_path)) wp_mkdir_p($upload_path);
$total = count($_FILES['images']['name']);
$attachmenntTable = "wp_service_attachment_docs";
for ($i = 0; $i < $total; $i++) {
$datespre = date('ymdHis');
$file_name = $_FILES['images']['name'][$i];
$file_name = (strlen($file_name) > 80) ? substr($file_name, -70) : $file_name;
$file_name = $datespre . $file_name;
$file_tmp_name = $_FILES['images']['tmp_name'][$i];
$file_path = $upload_path . basename($file_name);
if (move_uploaded_file($file_tmp_name, $file_path)) {
$wpdb->insert($attachmenntTable, [
"log_id" => $sqlid,
"attachment" => $file_name,
"created_on" => date('Y-m-d H:i:s'),
]);
$uploadedfileslist[] = $file_name;
} else {
$imagenotsaved[] = ['id' => $sqlid, 'date' => $date];
}
}
}
$encrypted = encryptdaata([
'message' => 'Data saved.',
'imagenotsaved' => $imagenotsaved,
'uploadedfileslist' => $uploadedfileslist,
'success' => 1,
'id' => $sqlid,
'st' => $st
]);
return new WP_REST_Response($encrypted);
}
// function saveServiceRequestf($request)
// {
// // $parametresen = $request->get_body_params();
// // $parameters = decryptdaata($parametresen['params']);
// $parametresen = json_decode($request->get_body(), true); // <-- safest way
// $paramData = $parametresen['params'] ?? [];
// if (is_array($paramData)) {
// $parametres = $paramData;
// } else {
// $parametres = decryptdaata($paramData); // if you're using encryption
// }
// $id = $parameters['id'];
// $equipmentid = $parameters['equipmentId'] ?? 0;
// $priority = $parameters['priority'];
// $date = $parameters['date'];
// $issuedesc = addslashes($parameters['issuedesc']);
// $images = $parameters['images'];
// $orderId = $parameters['order_id'] ?? 0;
// $stype = $parameters['stype'];
// if (!isset($parameters['stype'])) {
// return new WP_REST_Response(array('message' => 'Invalid request, try with updatetd application.', 'success' => 0), 400);
// }
// global $wpdb;
// $upload_dir = wp_upload_dir();
// $upload_path = $upload_dir['basedir'] . "/operator-service-request-attachments/";
// // Ensure the uploads directory exists
// if (!is_dir($upload_path)) {
// wp_mkdir_p($upload_path);
// }
// $tablename = $wpdb->prefix . 'service_request';
// // $time = current_time('mysql', 1);
// // $inRow .= "('$id','$date','$shift','$startTime','$endTime','$startSMU','$endSMU','$fuel')";
// // $user = get_user_by('ID', $id);
// // $email = $user->user_email;
// $contractId = get_user_meta($id, 'contract_id', true);
// if ($contractId != $orderId) {
// return new WP_REST_Response(array('message' => "Contract details mismatched. Please go to the MyAccount page to verify contract/customer details and then try again. " . $contractId . " or" . $orderId . " id: $id", 'success' => 0), 400);
// }
// $st = 'Raised'; //'AtWorkLocation';//
// $issuedesc1 = '';
// if ($stype == 1 || $stype == 2) {
// $st = 'Image uploaded';
// $issuedesc1 = $issuedesc;
// $issuedesc = '';
// }
// $inRow = "( '$equipmentid', '$id', now(), '$issuedesc','$issuedesc1','$st','$priority','$contractId','$stype')";
// // die($inRow);
// $query = "INSERT INTO $tablename (`equipment_id`, `operator_id`, `created_on`, `problem_description`,`ins_remarks`,`status`,`priority_level`,`order_id`,`stype`) VALUES $inRow ;";
// // die($query);
// $sql = $wpdb->query($query);
// if ($wpdb->last_error) {
// return new WP_REST_Response(array('message' => 'Unable to save data', 'reason' => "Error in insert data: $wpdb->last_error ", 'date' => $date, 'success' => 0));
// }
// $sqlid = $wpdb->insert_id;
// if ($sqlid == 0) {
// return new WP_REST_Response(array('message' => 'Unable to save. ID should be incremented.'), 400);
// }
// $attachmenntTable = "wp_service_attachment_docs";
// $imagenotsaved = [];
// $uploadedfileslist = [];
// if (key_exists('images', $_FILES)) {
// $total = count($_FILES['images']['name']);
// for ($i = 0; $i < $total; $i++) {
// $datespre = date('ymdHis');
// $file_name = $_FILES['images']['name'][$i];
// $file_name = (strlen($file_name) > 80) ? substr($file_name, -70) : $file_name;
// $file_name = $datespre . $file_name;
// $file_tmp_name = $_FILES['images']['tmp_name'][$i];
// $file_path = $upload_path . basename($file_name);
// if (move_uploaded_file($file_tmp_name, $file_path)) {
// $wpdb->insert($attachmenntTable, [
// "log_id" => $sqlid,
// "attachment" => $file_name,
// "created_on" => date('Y-m-d H:i:s'),
// ]);
// $uploadedfileslist[] = $file_name;
// } else {
// $imagenotsaved[] = ['id' => $sqlid, 'date' => $date];
// }
// }
// }
// $encrypted = encryptdaata(array('message' => 'Data saved.', 'imagenotsaved' => $imagenotsaved, ' uploadedfileslist' => $uploadedfileslist, 'success' => 1, 'id' => $sqlid, 'st' => $st));
// return new WP_REST_Response($encrypted);
// }
// -------------------------------------------------------------------------------------- END TP EDIT
function checkAppUpdatef($request)
{
$parametresen = $request->get_body_params();
$parameters = decryptdaata($parametresen['params']);
$id = $parameters['id'];
$appId = $parameters['appId'];
$appver = $parameters['appVer'];
$deviceId = $parameters['deviceId'];
if (empty($appId) || empty($appver) || empty($id) || empty($deviceId)) {
return new WP_REST_Response(array('message' => 'Invalid request'), 400);
}
global $wpdb;
$table_name = $wpdb->prefix . 'mobapps';
/**
* for customer app appid = 1,
* for operator app appid = 2,
* for admin app appid = 3,
*/
$query = "SELECT * FROM $table_name where appId='$appId' ORDER BY updatetime DESC LIMIT 1 ";
$result = $wpdb->get_results($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch data. Please try later', 'reason' => $wpdb->last_error), 400);
}
$message = "Application not found";
$success = 0;
if ($result) {
$message = "";
$success = 1;
$result = $result[0];
}
$encrypeddata = encryptdaata(array('message' => $message, 'appdata' => $result, 'success' => $success));
return new WP_REST_Response($encrypeddata, 200);
}
function checkAppUpdateupf($request)
{
$parameters = $request->get_body_params();
// $parameters = $parametresen['params'];
$id = $parameters['id'];
$appId = $parameters['appId'];
$appver = $parameters['appVer'];
$verName = $parameters['verName'];
$app = $parameters['app'];
if (empty($appId) || empty($appver) || empty($id)) {
return new WP_REST_Response(array('message' => 'Invalid request'), 400);
}
global $wpdb;
$table_name = $wpdb->prefix . 'mobapps';
/**
* for customer app appid = 1,
* for operator app appid = 2,
* for admin app appid = 3,
*/
$query = "SELECT * FROM $table_name where appId='$appId' ORDER BY updatetime DESC LIMIT 1 ";
$result = $wpdb->get_results($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch data. Please try later', 'reason' => $wpdb->last_error), 400);
}
$wpdb->delete($table_name, array("appid" => $appId));
$wpdb->insert($table_name, array("app" => $app, "ver_no" => $appver, "ver_name" => $verName, "appid" => $appId));
$message = "Application not found";
$success = 0;
if ($result) {
$message = "";
$success = 1;
$result = $result[0];
}
$encrypeddata = array('message' => $message, 'appdata' => $result, 'success' => $success);
return new WP_REST_Response(json_encode($encrypeddata), 200);
}
function sosf($request)
{
// $parametresen = $request->get_body_params();
// $parameters = decryptdaata($parametresen['params']);
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parameters = $paramData;
} else {
$parameters = decryptdaata($paramData); // if you're using encryption
}
$id = $parameters['id'];
$comments = $parameters['comments'];
// $machine = json_decode($parameters['machine'], true);
$machine = $parameters['machine'];
// die(json_encode($machine));
global $wpdb;
$table_name = $wpdb->prefix . 'sos';
$created_on = date('Y-m-d H:i:s');
$user_meta = get_userdata($id);
$contractId = get_user_meta((int)$id, 'contract_id', true);
$location = get_user_meta((int)$id, 'billing_city', true);
$oprname = $user_meta->user_firstname . " " . $user_meta->user_lastname;
$machinetitle = $machine['title'];
$machineid = $machine['id'];
$roles = $user_meta->roles;
if (!in_array('operator', $roles)) {
return new WP_REST_Response(array('message' => 'You are not ', 'reason' => "Error in insert data: $wpdb->last_error "), 400);
}
$inRow = "('$id','Emergency alert message from $oprname($id) Machine $machinetitle($machineid), located in $location', '$comments', '$created_on','$contractId')";
$query = "INSERT INTO $table_name ( `operator_id`, `sos_messag`, `comments`, `created_on`,`order_id`) VALUES $inRow ;";
// die($query);
$sql = $wpdb->query($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to save data', 'reason' => "Error in insert data: $wpdb->last_error "), 400);
}
if ($sql) {
$encrypeddata = encryptdaata(array('message' => 'Emergency alert message sent. Team will contact you soon.',));
return new WP_REST_Response($encrypeddata, 200);
}
}
/** get logsheet by order */
function getLogsheetByOrderf($request) {
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$user_id = $parametres['user_id'];
$order_id = $parametres['order_id'];
$dates = json_decode(($parametres['dates'] ?? '[]'));
$page = $parametres['page'] ?? 1;
$perpage = $parametres['perpage'] ?? 10;
$limit = " limit $perpage";
$daterange = "";
if ($page > 1) {
$perpage1 = $page * $perpage;
$perpage1 = ($perpage1 - $perpage);
$limit = " limit $perpage1,$perpage";
}
$daterange = "";
if (count($dates) > 0) {
$fromDate = $dates[0];
$endDate = $dates[1];
if (empty($fromDate) || empty($endDate)) {
$limits = "LIMIT 10";
} else {
$limit = "";
$daterange = " AND a.log_date between '$fromDate' and '$endDate' ";
}
}
$whereOrderid = "";
if ($order_id != '') {
$whereOrderid = " AND order_id='$order_id'";
}
global $wpdb;
$table_name = "wp_logsheet";
$tableNameOrders = $wpdb->prefix . "wc_orders";
// $query = "SELECT a.*,concat('[ ',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id where a.order_id='$order_id' $daterange GROUP BY a.id ORDER BY a.log_date DESC $limits ";
$query = "SELECT a.* FROM $table_name a where order_id in(SELECT id from $tableNameOrders WHERE customer_id=$user_id) $whereOrderid ORDER BY a.log_date DESC $limit ";
$result = $wpdb->get_results($query, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
}
$rows = [];
if ($result) {
global $host;
for ($i = 0; $i < count($result); $i++) {
$resultd = (object)$result[$i];
$orderid = $resultd->order_id;
$resultd->equipment_id;
try {
// $result[$i]['COMPANY']="company selecrewd";
if ($orderid > 0) {
$order = wc_get_order($orderid);
$customerId = $order->get_customer_id();
// $order = wc_get_order($orderid);
// $companyName = $order->get_billing_company();
// if ($companyName == '') {
// $companyName = $order->get_billing_first_name();
// }
// $result[$i]['company'] = $companyName;
// $result[$i]['log_status'] = intval($resultd->log_status);
$first_name = get_user_meta($resultd->operator_id, 'first_name', true);
$last_name = get_user_meta($resultd->operator_id, 'last_name', true);
$productTitle = get_the_title($resultd->equipment_id);
$result[$i]['operatorName'] = "$first_name $last_name";
$result[$i]['productName'] = $productTitle;
$result[$i]['customerid'] = $customerId;
}
} catch (\Throwable $th) {
// $result[$i]['company']=$th->getMessage();
}
}
$imgUrlfolder = "$host/wp-content/uploads/operator-logs-attachments/";
$encrypted = encryptdaata(array('message' => '', 'logs' => $result, 'imgUrlfolder' => $imgUrlfolder));
return new WP_REST_Response($encrypted, 200);
} else {
if ($page > 1) {
$resulta = array('message' => '', 'logs' => $result, 'imgUrlfolder' => '');
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
if ($daterange != "") {
$encrypted = array('message' => 'No Logs available between these dates' . implode(", ", $dates), 'logs' => $rows);
} else {
$encrypted = array('message' => 'No logs are available yet. Please check with operator.', 'logs' => $rows);
}
return new WP_REST_Response($encrypted, 400);
}
}
/** Approve logs by customer */
function saveLogsApprovef($request)
{
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$user_id = intval($parametres['user_id']);
$order_id = intval($parametres['order_id']);
$id = intval($parametres['id']);
$reason = $parametres['reason'];
$status = intval($parametres['status']);
global $wpdb;
$data_update = array('log_status' => $status, 'log_remarks' => $reason, 'remarks_by' => $user_id);
$data_where = array('id' => $id, 'order_id' => $order_id);
$res = $wpdb->update('wp_logsheet', $data_update, $data_where, array('%d', '%s', '%d', array('%d', '%d')));
if (is_wp_error($res)) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later131.', 'reason' => $wpdb->last_error), 409);
}
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later.', 'reason' => $wpdb->last_error), 409);
}
if ($res) {
$encrypted = encryptdaata(array('message' => 'Log status saved successfully.', 'success' => 1));
return new WP_REST_Response($encrypted, 200);
} else {
$encrypted = array('message' => 'Unable to save your status. Please try later!.', 'success' => 0);
return new WP_REST_Response($encrypted, 400);
}
}
/** get bulk logsheet for approval */
function getLogsheetForApprovalf($request): WP_REST_Response
{
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$user_id = $parametres['user_id'];
$order_id = $parametres['order_id'];
$dates = json_decode(($parametres['dates'] ?? '[]'));
$page = $parametres['page'] ?? 1;
$perpage = $parametres['perpage'] ?? 10;
$limit = " limit $perpage";
$daterange = "";
if ($page > 1) {
$perpage1 = $page * $perpage;
$perpage1 = ($perpage1 - $perpage);
$limit = " limit $perpage1,$perpage";
}
if (count($dates) > 0) {
$fromDate = $dates[0];
$endDate = $dates[1];
if (empty($fromDate) || empty($endDate)) {
$limits = "LIMIT 10";
} else {
$limit = "";
$daterange = " AND a.log_date between '$fromDate' and '$endDate' ";
}
}
$whereOrderid = "";
if ($order_id != '') {
$whereOrderid = " AND order_id='$order_id'";
}
global $wpdb;
$table_name = "wp_log_files_data ";
// $query = "SELECT a.*,concat('[ ',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id where a.order_id='$order_id' $daterange GROUP BY a.id ORDER BY a.log_date DESC $limits ";
$query = "SELECT * FROM $table_name where custtomer_id='$user_id' $whereOrderid $daterange order by id desc $limit"; // a where customer_id=$user_id $whereOrderid $limits";
$result = $wpdb->get_results($query, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch logs. Please try later', 'reason' => $wpdb->last_error), 400);
}
$rows = [];
if ($result) {
for ($i = 0; $i < count($result); $i++) {
$resultd = (object)$result[$i];
$orderid = $resultd->contract_id;
try {
// $result[$i]['COMPANY']="company selecrewd";
if ($orderid > 0) {
$order = wc_get_order($orderid);
// $customerId = $order->get_customer_id();
// $order = wc_get_order($orderid);
// $companyName = $order->get_billing_company();
// if ($companyName == '') {
// $companyName = $order->get_billing_first_name();
// }
// $result[$i]['company'] = $companyName;
// $result[$i]['log_status'] = intval($resultd->log_status);
$first_name = get_user_meta($resultd->user_id, 'first_name', true);
$last_name = get_user_meta($resultd->user_id, 'last_name', true);
$result[$i]['operatorName'] = "$first_name $last_name";
$oitems = $order->get_items();
foreach ($oitems as $key => $oitem) {
$orderItemData = $order->get_item($key);
if ($orderItemData) {
$machineassoc = $orderItemData['product_id'];
$producttitle = $orderItemData['name'];
// $equipment_number = get_post_meta($machineassoc, 'equipment_number', true);
$equipment_serial_number = get_post_meta($machineassoc, 'equipment_serial_number', true);
$result[$i]['productName'] = $producttitle;
$result[$i]['equipment_serial_number'] = $equipment_serial_number;
}
}
}
} catch (\Throwable $th) {
// $result[$i]['company']=$th->getMessage();
}
}
$encrypted = encryptdaata(array('message' => '', 'logs' => $result));
return new WP_REST_Response($encrypted, 200);
} else {
if ($page > 1) {
$resulta = array('message' => '', 'logs' => []);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
if ($daterange != "") {
$encrypted = array('message' => 'No Logs available between these dates' . implode(", ", $dates), 'logs' => $rows);
} else {
$encrypted = array('message' => 'No logs are available yet. Please contact Gmmco team.', 'logs' => $rows);
}
return new WP_REST_Response($encrypted, 400);
}
}
// function getOperatorMachineAndInspectionf($request) {
// $parametresen = json_decode($request->get_body(), true);
// $paramData = $parametresen['params'] ?? [];
// if (is_array($paramData)) {
// $parameters = $paramData;
// } else {
// $parameters = decryptdaata($paramData); // if you're using encryption
// }
// $operator_id = intval($parameters['operator_id'] ?? 0);
// if (!$operator_id) {
// return new WP_REST_Response(array('message' => 'Operator ID is required.'), 400);
// }
// global $wpdb;
// // Get assigned machine and order info for this operator
// $assign_table = $wpdb->prefix . 'assign_operators_contracts';
// $assignment = $wpdb->get_row(
// $wpdb->prepare(
// "SELECT * FROM $assign_table WHERE operator_id = %d ORDER BY created_on DESC LIMIT 1",
// $operator_id
// ),
// ARRAY_A
// );
// if (!$assignment) {
// return new WP_REST_Response(array('message' => 'No machine assigned to the operator.'), 404);
// }
// $machine_id = (int)($assignment['meachine_id'] ?? 0); // assuming column is machine_id (note typo in original)
// $contract_id = (int)($assignment['contract_id'] ?? 0);
// if (!$machine_id) {
// return new WP_REST_Response(array('message' => 'Assigned machine not found.'), 404);
// }
// // Get machine (product) details
// $machine_post = get_post($machine_id);
// if (!$machine_post) {
// return new WP_REST_Response(array('message' => 'Machine details not found.'), 404);
// }
// // Prepare machine details
// $machine_details = array(
// 'id' => $machine_post->ID,
// 'title' => $machine_post->post_title,
// 'equipment_name' => $machine_post->post_title,
// 'equipment_serial_number' => get_post_meta($machine_id, 'equipment_serial_number', true),
// 'image' => get_the_post_thumbnail_url($machine_id),
// );
// // Get contract start and end dates from wp_contracts table
// $contracts_table = $wpdb->prefix . 'contracts';
// $contract = $wpdb->get_row(
// $wpdb->prepare(
// "SELECT contract_start_date, contract_end_date FROM $contracts_table WHERE contract_id = %d LIMIT 1",
// $contract_id
// ),
// ARRAY_A
// );
// $start_date = $contract['contract_start_date'] ?? null;
// $end_date = $contract['contract_end_date'] ?? null;
// // Get current datetime (WordPress server time)
// $now = current_time('Y-m-d H:i:s');
// // Determine user_athority based on contract dates and inspection
// $user_athority = false;
// if ($start_date && $end_date) {
// $now_ts = strtotime($now);
// $start_ts = strtotime($start_date);
// $end_ts = strtotime($end_date);
// if ($now_ts >= $start_ts && $now_ts <= $end_ts) {
// // If current time is within contract period and inspection exists
// $inspection_check = false;
// $table_name = $wpdb->prefix . 'service_request';
// $inspection = $wpdb->get_row(
// $wpdb->prepare(
// "SELECT * FROM $table_name WHERE operator_id = %d AND equipment_id = %d AND order_id = %d AND stype = 1 ORDER BY created_on DESC LIMIT 1",
// $operator_id,
// $machine_id,
// $contract_id
// ),
// ARRAY_A
// );
// if ($inspection) {
// $inspection_check = true;
// }
// if ($inspection_check && $machine_details != null) {
// $user_athority = true;
// }
// }
// }
// // Prepare and return response
// $response = array(
// 'machine' => $machine_details,
// 'initial_inspection' => $inspection ?? null,
// 'contract_start_date' => $start_date,
// 'contract_end_date' => $end_date,
// 'user_athority' => $user_athority,
// );
// $encrypted = encryptdaata($response);
// return new WP_REST_Response($encrypted, 200);
// }
function getOperatorMachineAndInspectionf($request) {
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parameters = $paramData;
} else {
$parameters = decryptdaata($paramData); // if you're using encryption
}
$operator_id = intval($parameters['operator_id'] ?? 0);
if (!$operator_id) {
return new WP_REST_Response(array('message' => 'Operator ID is required.'), 400);
}
global $wpdb;
// Get assigned machine and order info for this operator
$assign_table = $wpdb->prefix . 'assign_operators_contracts';
$assignment = $wpdb->get_row(
$wpdb->prepare(
"SELECT * FROM $assign_table WHERE operator_id = %d ORDER BY created_on DESC LIMIT 1",
$operator_id
),
ARRAY_A
);
if (!$assignment) {
return new WP_REST_Response(array('message' => 'No machine assigned to the operator.'), 404);
}
$machine_id = (int)($assignment['meachine_id'] ?? 0); // assuming column is machine_id (note typo in original)
$contract_id = (int)($assignment['contract_id'] ?? 0);
if (!empty($contractId)) {
return new WP_REST_Response(array('message' => 'Contract Not found.'), 404);
}
if (!$machine_id) {
return new WP_REST_Response(array('message' => 'Assigned machine not found.'), 404);
}
// Get machine (product) details
$machine_post = get_post($machine_id);
if (!$machine_post) {
return new WP_REST_Response(array('message' => 'Machine details not found.'), 404);
}
// Prepare machine details
$machine_details = array(
'id' => $machine_post->ID,
'title' => $machine_post->post_title,
'equipment_name' => $machine_post->post_title,
'equipment_serial_number' => get_post_meta($machine_id, 'equipment_serial_number', true),
'image' => get_the_post_thumbnail_url($machine_id),
);
// Get contract start and end dates from wp_contracts table
/* $contracts_table = $wpdb->prefix . 'contracts';
$contract = $wpdb->get_row(
$wpdb->prepare(
"SELECT contract_start_date, contract_end_date FROM $contracts_table WHERE contract_id = %d LIMIT 1",
$contract_id
),
ARRAY_A
);
$start_date = $contract['contract_start_date'] ?? null;
$end_date = $contract['contract_end_date'] ?? null; */
$order = wc_get_order($contract_id);
$start_date = $order->get_meta('start_date', true);
$end_date = $order->get_meta('end_date', true);
// Get current datetime (WordPress server time)
$now = current_time('Y-m-d H:i:s');
// Determine user_athority based on contract dates and inspection
$user_athority = false;
if ($start_date && $end_date) {
$now_ts = strtotime($now);
$start_ts = strtotime($start_date);
$end_ts = strtotime($end_date);
if ($now_ts <= $start_ts && $now_ts <= $end_ts) {
// If current time is within contract period and inspection exists
$inspection_check = false;
$table_name = $wpdb->prefix . 'service_request';
$inspection = $wpdb->get_row(
$wpdb->prepare(
"SELECT * FROM $table_name WHERE operator_id = %d AND equipment_id = %d AND order_id = %d AND stype = 1 ORDER BY created_on DESC LIMIT 1",
$operator_id,
$machine_id,
$contract_id
),
ARRAY_A
);
if ($inspection) {
$inspection_check = true;
}
if ($inspection_check && $machine_details != null) {
$user_athority = true;
}
}else{
return new WP_REST_Response(array('message' => 'Contract Expired'), 404);
}
}
// Prepare and return response
$response = array(
'machine' => $machine_details,
'initial_inspection' => $inspection ?? null,
'contract_start_date' => $start_date,
'contract_end_date' => $end_date,
'user_athority' => $user_athority,
);
$encrypted = encryptdaata($response);
return new WP_REST_Response($encrypted, 200);
}
/** Approve bulk logs by customer */
function approvelogbulkf($request): WP_REST_Response
{
$parametresen = $request->get_body_params();
$parametres = decryptdaata($parametresen['params']);
$customer_id = intval($parametres['myid']);
$order_id = intval($parametres['order_id']);
$id = intval($parametres['id']);
$reason = $parametres['reason'];
$status = intval($parametres['status']);
$logStatus = "Pending";
if ($status == 1) {
$logStatus = "Accepted";
} else if ($status == 2) {
$logStatus = "Modify";
}
global $wpdb;
$data_update = array('log_approve_status' => $logStatus, 'log_user_remarks' => $reason, 'updated_at' => date('Y-m-d H:i:s'));
$data_where = array('id' => $id, 'customer_id' => $customer_id);
$res = $wpdb->update('wp_log_files_data', $data_update, $data_where, array('%s', '%s', '%s', array('%d', '%d')));
if (is_wp_error($res)) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later.', 'reason' => $wpdb->last_error), 409);
}
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later.', 'reason' => $wpdb->last_error), 409);
}
if ($res) {
$encrypted = encryptdaata(array('message' => 'Log status saved successfully.', 'remark' => $reason, 'status' => $logStatus, 'success' => 1));
return new WP_REST_Response($encrypted, 200);
} else {
$encrypted = array('message' => 'Unable to save your status. Please try later!.', 'success' => 0);
return new WP_REST_Response($encrypted, 400);
}
}
/** show all user admin */
function showUsersf($request)
{
$args1 = array(
'role' => 'customer', //subscriber',
'orderby' => 'ID',
'order' => 'ASC'
);
$resulta = get_users($args1);
$resultdata = [];
if (count($resulta) > 0) {
for ($i = 0; $i < count($resulta); $i++) {
$user = (array)$resulta[$i];
$resultd = $user['data'];
unset($resultd->user_login);
unset($resultd->user_pass);
$user_meta['user_phone'] = get_user_meta($resultd->ID, 'user_phone', true);
$user_meta['first_name'] = get_user_meta($resultd->ID, 'first_name', true);
$user_meta['last_name'] = get_user_meta($resultd->ID, 'last_name', true);
$user_meta['display_name'] = $resultd->display_name;
$user_meta['ID'] = $resultd->ID;
$user_meta['display_name'] = $resultd->display_name;
$user_meta['user_email'] = $resultd->user_email;
$user_meta['user_registered'] = $resultd->user_registered;
$resultdata[] = $user_meta;
}
}
return new WP_REST_Response($resultdata, 200);
}
function getMachineAssociated( $user_id ){
global $wpdb;
$post_id = get_user_meta($user_id, 'machine_associated', true);
$sql = "SELECT `ID`, `post_title` FROM `wp_posts` WHERE `post_type` = 'product' AND `ID` = %d";
$row = $wpdb->get_row( $wpdb->prepare($sql, $post_id) );
if ($row) {
return $row;
}
}
function getCustomerAssociated( $user_id ){
global $wpdb;
$cust_id = get_user_meta($user_id, 'customer_associated', true);
$sql = "SELECT `ID`, `user_nicename`, `display_name`, `user_url` FROM `wp_users` WHERE `ID` = %d";
$row = $wpdb->get_row( $wpdb->prepare($sql, $cust_id) );
if ($row) {
return $row;
}
}
function userDetailsByIdf($request)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$user_id = intval($parametres['user_id']);
// $resulta = get_users($args1);
// $resulta = get_user_by('ID',$user_id);
$resultd = (object)get_userdata($user_id);
$resultdata = [];
if ($resultd) {
// $user = (array)$resulta;
// $resultd = $user['data'];
unset($resultd->user_login);
unset($resultd->user_pass);
$user_meta['user_phone'] = get_user_meta($resultd->ID, 'user_phone', true);
$user_meta['first_name'] = get_user_meta($resultd->ID, 'first_name', true);
$user_meta['last_name'] = get_user_meta($resultd->ID, 'last_name', true);
$user_meta['location'] = get_user_meta($resultd->ID, 'location', true);
$user_meta['profile_image'] = get_user_meta($resultd->ID, 'profile_image', true);
$user_meta['age'] = get_user_meta($resultd->ID, 'age', true);
$user_meta['gender'] = get_user_meta($resultd->ID, 'gender', true);
$user_meta['machine_associated'] = getMachineAssociated($resultd->ID);
$user_meta['customer_associated'] = getCustomerAssociated($resultd->ID);
$user_meta['gender'] = get_user_meta($resultd->ID, 'gender', true);
$user_meta['display_name'] = $resultd->display_name;
$user_meta['ID'] = $resultd->ID;
$user_meta['display_name'] = $resultd->display_name;
$user_meta['user_email'] = $resultd->user_email;
$user_meta['user_registered'] = $resultd->user_registered;
$statecode = get_user_meta($user_id, 'billing_state', true);
$countrycode = get_user_meta($user_id, 'billing_country', true);
$contries = new WC_Countries();
$states = $contries->get_states($countrycode);
$state = $states[$statecode];
$user_meta['billing_address'] = [
// $address = [
'billing_first_name' => get_user_meta($user_id, 'billing_first_name', true),
'billing_last_name' => get_user_meta($user_id, 'billing_last_name', true),
'billing_email' => get_user_meta($user_id, 'billing_email', true),
'billing_address_1' => get_user_meta($user_id, 'billing_address_1', true),
'billing_address_2' => get_user_meta($user_id, 'billing_address_2', true),
'billing_city' => get_user_meta($user_id, 'billing_city', true),
'billing_postcode' => get_user_meta($user_id, 'billing_postcode', true),
'billing_phone' => get_user_meta($user_id, 'billing_phone', true),
'billing_state' => strtoupper($state), // $state,// get_user_meta($user_id, 'billing_state',true),
'billing_state_code' => $statecode,
'billing_country' => get_user_meta($user_id, 'billing_country', true),
];
// $user_meta['address'] = WC()->countries->get_formatted_address( apply_filters( 'woocommerce_my_account_my_address_formatted_address', $address, $user_id, 'billing' ) );
$statecode = get_user_meta($user_id, 'shipping_state', true);
$countrycode = get_user_meta($user_id, 'billing_country', true);
$states = $contries->get_states($countrycode);
$state = $states[$statecode];
$user_meta['shipping_address'] = [
'shipping_first_name' => get_user_meta($user_id, 'shipping_first_name', true),
'shipping_last_name' => get_user_meta($user_id, 'shipping_last_name', true),
'shipping_email' => get_user_meta($user_id, 'shipping_email', true),
'shipping_address_1' => get_user_meta($user_id, 'shipping_address_1', true),
'shipping_address_2' => get_user_meta($user_id, 'shipping_address_2', true),
'shipping_city' => get_user_meta($user_id, 'shipping_city', true),
'shipping_postcode' => get_user_meta($user_id, 'shipping_postcode', true),
'shipping_phone' => get_user_meta($user_id, 'shipping_phone', true),
'shipping_state' => strtoupper($state), // get_user_meta($user_id, 'shipping_state',true),
'shipping_state_code' => $statecode,
'shipping_country' => get_user_meta($user_id, 'shipping_country', true),
];
$resulta = array("data" => $user_meta, 'success' => 1);
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
} else {
$resulta = array("message" => "Unable to get user details", 'success' => 0);
return new WP_REST_Response($resulta, 400);
}
}
function updateProfileV2($request)
{
// $user_id = apply_filters( 'determine_current_user', false );
// wp_set_current_user( $user_id );
// if (isset($_FILES['profile_image']) && $_FILES['profile_image']['size'] > 0) {
// $upload = wp_handle_upload($_FILES['profile_image'], array('test_form' => false));
// if (isset($upload['url']) && !isset($upload['error'])) {
// update_user_meta($user_id, 'profile_image', $upload['url']);
// }
// }
$params = $request->get_params();
$user_id = isset($params['user_id']) ? intval($params['user_id']) : 0;
if (!$user_id) {
return new WP_REST_Response(['message' => 'User ID missing.'], 400);
}
if (isset($_FILES['profile_image']) && $_FILES['profile_image']['size'] > 0) {
$upload = wp_handle_upload($_FILES['profile_image'], array('test_form' => false));
if (isset($upload['url']) && !isset($upload['error'])) {
update_user_meta($user_id, 'profile_image', $upload['url']);
}
}
$user_meta = [];
$user_meta['id'] = $user_id;
$user_meta['profile_image'] = get_user_meta($user_id, 'profile_image', true);
$resultdata = [
'success' => true,
'message' => 'Profile data updated successfully',
'user' => $user_meta
];
return new WP_REST_Response($resultdata, 200);
}
function updateProfilef($request)
{
$parametresen = json_decode($request->get_body(), true); // <-- safest way
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$user_id = intval($parametres['user_id']);
$first_name = $parametres['first_name'];
$last_name = $parametres['last_name'];
$display_name = $parametres['display_name'];
$user_email = $parametres['email'];
$user_phone = $parametres['phone'];
$address_1 = $parametres['address_1'];
$address_2 = $parametres['address_2'];
$city = $parametres['city'];
$state = $parametres['state'];
$postcode = $parametres['postcode'];
$type = $parametres['type'];
global $wpdb;
$tablename = $wpdb->prefix . "usermeta";
if ($type == 'profile') {
$sqlquery = "update `wp_users` set display_name='$display_name', user_email='$user_email' where ID=$user_id";
$wpdb->query($sqlquery);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to update. Please try later.' . $wpdb->last_error, 'reason' => $wpdb->last_error), 409);
}
update_user_meta($user_id, 'first_name', $first_name);
update_user_meta($user_id, 'last_name', $last_name);
update_user_meta($user_id, 'user_phone', $user_phone);
update_user_meta($user_id, 'email', $user_email);
update_user_meta($user_id, 'location', $state);
$resulta = array("message" => 'profile updated.', 'success' => 1);
// die(json_encode($resulta));
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
} else if ($type == 'billing_address') {
// $data_update = array('billing_first_name' => $first_name, 'billing_last_name' => $last_name, 'billing_email' => $user_email,'billing_address_1'=>$address_1,'billing_address_2'=>$address_2,
// 'billing_city'=>$city,'billing_state'=>$state, 'billing_postcode'=>$postcode,'billing_phone'=>$user_phone);
// $data_where = array('user_id' => $user_id);
$res = update_user_meta($user_id, 'billing_first_name', $first_name);
$res = update_user_meta($user_id, 'billing_last_name', $last_name);
update_user_meta($user_id, 'billing_email', $user_email);
update_user_meta($user_id, 'billing_address_1', $address_1);
update_user_meta($user_id, 'billing_address_2', $address_2);
update_user_meta($user_id, 'billing_city', $city);
update_user_meta($user_id, 'billing_state', $state);
update_user_meta($user_id, 'billing_postcode', $postcode);
update_user_meta($user_id, 'billing_phone', $user_phone);
// $res = $wpdb->update($tablename, $data_update, $data_where, array('%s', '%s', '%s','%s', '%s', '%s','%s', '%s', '%s'), array('%d'));
// if (is_wp_error($res)) {
// return new WP_REST_Response(array('message' => 'Unable to update. Please try later.', 'reason' => $wpdb->last_error), 409);
// }
$resulta = array("message" => 'Billing address updated.', 'success' => 1);
// die(json_encode($resulta));
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
} else if ($type == 'shipping_address') {
update_user_meta($user_id, 'shipping_first_name', $first_name);
update_user_meta($user_id, 'shipping_last_name', $last_name);
update_user_meta($user_id, 'shipping_email', $user_email);
update_user_meta($user_id, 'shipping_address_1', $address_1);
update_user_meta($user_id, 'shipping_address_2', $address_2);
update_user_meta($user_id, 'shipping_city', $city);
update_user_meta($user_id, 'shipping_state', $state);
update_user_meta($user_id, 'shipping_postcode', $postcode);
update_user_meta($user_id, 'shipping_phone', $user_phone);
$resulta = array("message" => 'Shipping address updated.', 'success' => 1);
// die(json_encode($resulta));
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
}
function getStatesWithCodef($request)
{
$parametresen = $request->get_body_params();
$contries = new WC_Countries();
$states = $contries->get_states("IN");
$resulta = array("data" => $states, 'success' => 1);
// die(json_encode($resulta));
$encrypted = encryptdaata($resulta);
return new WP_REST_Response($encrypted, 200);
}
function delMyAccf($request)
{
$parametresen = $request->get_body_params();
global $wpdb;
$table_name = "wp_del_request";
$name = $parametresen['fullname'];
$email = $parametresen['emailid'];
$mob = $parametresen['mobileno'];
$reason = $parametresen['reason'];
$inRow = "('$name','$email','$mob','$reason',now())";
$query = "INSERT INTO $table_name (full_name,email,mobileno,reson,created_on) VALUES $inRow ;";
// die($query);
$sql = $wpdb->query($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to save data'), 400);
}
if ($sql) {
return new WP_REST_Response(array('message' => 'Request sent successfully.'),);
}
}
function saveExpenseRequestf($request)
{
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parameters = $paramData;
} else {
$parameters = decryptdaata($paramData); // if you're using encryption
}
// $parametresen = $request->get_body_params();
// $parameters = decryptdaata($parametresen['params']);
$id = $parameters['id'];
$expensefor = $parameters['expensefor'] ?? 0;
$priority = $parameters['priority'];
$date = $parameters['date'];
$issuedesc = addslashes($parameters['issuedesc']);
$images = $parameters['images'];
$orderId = $parameters['order_id'] ?? 0;
$amount = $parameters['amount'];
$machineId = $parameters['machineId']??0;
global $wpdb;
$upload_dir = wp_upload_dir();
$upload_path = $upload_dir['basedir'] . "/operator-expenses-request-attachments/";
// Ensure the uploads directory exists
if (!is_dir($upload_path)) {
wp_mkdir_p($upload_path);
}
$tablename = $wpdb->prefix . 'expenses_request';
// $time = current_time('mysql', 1);
// $inRow .= "('$id','$date','$shift','$startTime','$endTime','$startSMU','$endSMU','$fuel')";
// $user = get_user_by('ID', $id);
// $email = $user->user_email;
$contractId = get_user_meta($id, 'contract_id', true);
// echo $contractId;
if ($contractId != $orderId) {
return new WP_REST_Response(array('message' => "Contract details mismatched. Please go to the MyAccount page to verify contract/customer details and then try again. " . $contractId . " or" . $orderId . " id: $id", 'success' => 0), 400);
}
$st = 'Request Sent'; //'AtWorkLocation';//
$issuedesc1 = '';
$imageString = '';
if (is_array($images)) {
// Escape each filename to avoid SQL injection or syntax issues
$escapedImages = array_map(function($img) use ($wpdb) {
return esc_sql($img); // or $wpdb->escape() depending on WP version
}, $images);
$imageString = implode(',', $escapedImages);
} else {
// If $images is not an array, treat as empty or cast to string
$imageString = '';
}
// Quote the string for SQL:
$imageStringQuoted = "'" . $imageString . "'";
$now = date('Y-m-d H:i:s');
$inRow = "('$machineId', '$id', '$now', '$issuedesc', '$st', '$expensefor', '$contractId', '$amount', $imageStringQuoted)";
$query = "INSERT INTO $tablename
(`equipment_id`, `operator_id`, `created_on`, `problem_description`, `status`, `exp_reason`, `order_id`, `exp_amount`, `attachment`)
VALUES $inRow ;";
// die($query);
$sql = $wpdb->query($query);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to save data', 'reason' => "Error in insert data: $wpdb->last_error ", 'date' => $date, 'success' => 0));
}
$sqlid = $wpdb->insert_id;
if ($sqlid == 0) {
return new WP_REST_Response(array('message' => 'Unable to save. ID should be incremented.'), 400);
}
$attachmenntTable = "wp_expenses_attachment_docs";
$imagenotsaved = [];
$uploadedfileslist = [];
if (key_exists('images', $_FILES)) {
$total = count($_FILES['images']['name']);
for ($i = 0; $i < $total; $i++) {
$datespre = date('ymdHis');
$file_name = $_FILES['images']['name'][$i];
$file_name = (strlen($file_name) > 80) ? substr($file_name, -70) : $file_name;
$file_name = $datespre . $file_name;
$file_tmp_name = $_FILES['images']['tmp_name'][$i];
$file_path = $upload_path . basename($file_name);
if (move_uploaded_file($file_tmp_name, $file_path)) {
$wpdb->insert($attachmenntTable, [
"log_id" => $sqlid,
"attachment" => $file_name,
"created_on" => date('Y-m-d H:i:s'),
]);
$uploadedfileslist[] = $file_name;
} else {
$imagenotsaved[] = ['id' => $sqlid, 'date' => $date];
}
}
}
// $encrypted = encryptdaata(array('message' => 'Data saved.', 'imagenotsaved' => $imagenotsaved, ' uploadedfileslist' => $uploadedfileslist, 'success' => 1, 'id' => $sqlid, 'st' => $st));
$encrypted = encryptdaata(array('message' => 'Data saved.', 'success' => 1, 'id' => $sqlid, 'st' => $st));
return new WP_REST_Response($encrypted);
}
function getExpensionf($request){
// $parametresen = $request->get_body_params();
// $parametres = decryptdaata($parametresen['params']);
$parametresen = json_decode($request->get_body(), true);
$paramData = $parametresen['params'] ?? [];
if (is_array($paramData)) {
$parametres = $paramData;
} else {
$parametres = decryptdaata($paramData); // if you're using encryption
}
$user_id = $parametres['user_id'];
// $dates = json_decode($parametres['dates']);
$dates = $parametres['dates'];
$orderid = $parametres['order_id'] ?? '';
$limits = "LIMIT 10";
$daterange = "";
if (count($dates) == 2) {
$fromDate = $dates[0];
$endDate = $dates[1];
if (empty($fromDate) || empty($endDate)) {
$limits = "LIMIT 10";
} else {
$limits = "";
$daterange = " AND date(created_on) between '$fromDate' and '$endDate' ";
}
}
$whereOrderId = '';
if (!empty($orderid)) {
$whereOrderId = " AND order_id=$orderid ";
}
global $wpdb;
$table_name = $wpdb->prefix . 'expenses_request';
$table_nameb = $wpdb->prefix . 'expenses_attachment_docs';
// $querysrerv = "SELECT a.*,concat('[',GROUP_CONCAT('{\"',b.id,'\":\"',b.attachment,'\"}'),']') docs FROM $table_name a left join $table_nameb b on a.id=b.log_id WHERE a.operator_Id='$user_id' $whereOrderId $daterange GROUP BY a.id ORDER BY a.created_on DESC $limits ";
$querysrerv = "SELECT * FROM $table_name WHERE operator_id = '$user_id' $whereOrderId $daterange ORDER BY created_on DESC $limits";
// die($querysrerv);
// $query = "SELECT * FROM $table_name where operator_Id='$user_id' ORDER BY created_on DESC LIMIT 10 ";
// $result1 = $wpdb->get_results("SELECT * FROM $table_name WHERE stype=1 and ");
$result = $wpdb->get_results($querysrerv, ARRAY_A);
if ($wpdb->last_error) {
return new WP_REST_Response(array('message' => 'Unable to fetch expenses data. Please try later', 'reason' => $wpdb->last_error), 400);
}
if ($result) {
for ($i = 0; $i < count($result); $i++) {
// foreach ($result as $key => $value) {
$value = (object)$result[$i];
$orderid = $value->order_id;
$order_id = $result[$i]['order_id'];
if ($order_id) {
// Query to get the equipment name from your items table
$itemTable = 'wp_woocommerce_order_items'; // adjust table name
$equipment_name = $wpdb->get_var(
$wpdb->prepare("SELECT order_item_name FROM $itemTable WHERE order_id = %d", $order_id)
);
$result[$i]['equipment_name'] = $equipment_name;
} else {
$result[$i]['equipment_name'] = null;
}
// try {
// // $result[$i]['COMPANY']="company selecrewd";
// if ($orderid > 0) {
// $order = wc_get_order($orderid);
// $compName = $order->get_billing_company();
// if (empty(trim($compName))) {
// $compName = $order->get_billing_first_name() . " " . $order->get_billing_last_name();
// }
// $result[$i]['company'] = $compName;
// }
// } catch (\Throwable $th) {
// // $result[$i]['company']=$th->getMessage();
// }
}
global $host;
$imgUrlfolder = "$host/wp-content/uploads/operator-expenses-request-attachments/";
$encrypeddata = encryptdaata(array('message' => '', 'serviceRequests' => $result, "imgUrlfolder" => $imgUrlfolder));
return new WP_REST_Response($encrypeddata, 200);
} else {
if ($daterange != "") {
$message = "";
$message = 'No expense data between these days' . implode(", ", $dates);
$encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
} else {
$message = "";
$message = 'You have not made any expense requests yet. If you would like to add a expense , please click the add button below.';
$encrypeddata = encryptdaata(array('message' => $message, 'serviceRequests' => $result));
}
return new WP_REST_Response($encrypeddata, 200);
}
}
include 'apiphone2.php';
include 'api_phone_3.php';
include 'mob_billdesk.php';
/**
* @all please do not change this operator credentials: OperatorId 822, mobilenumber: 9844227191, password 123456789 If credential changed google play store app will be rejected.
*/