| Server IP : 13.126.101.145 / Your IP : 216.73.217.50 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/operators/ |
Upload File : |
<?php
// Ensure the file is not accessed directly
if (!defined('ABSPATH')) {
exit;
}
// Add admin menu
// add_action('admin_menu', 'inspection_admin_menu');
// function inspection_admin_menu() {
// add_submenu_page(
// 'operator-dashboard',
// 'Initial Inspection', // Page title
// 'Initial Inspection', // Menu title
// 'manage_options', // Capability
// 'initial-inspection', // Menu slug
// 'initial_inspection',// Callback function
// 'dashicons-media-interactive', // Icon URL
// 6 // Position
// );
// add_submenu_page(null, //parent slug
// 'Edit Initial Inspection', //page title
// 'Edit', //menu title
// 'manage_options', //capability
// 'edit-initial-inspection', //menu slug
// 'edit_initial_inspection'); //function
// }
function check_out_inspection_enqueue_custom_styles_and_scripts() {
// Check if we're on the specific page using the page parameter
if (isset($_GET['page']) && $_GET['page'] === 'check-out-inspection') {
// Enqueue Bootstrap CSS
wp_enqueue_style('bootstrap-css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css');
// Enqueue DataTables CSS
wp_enqueue_style('datatables-css', 'https://cdn.datatables.net/1.10.24/css/jquery.dataTables.min.css');
// Enqueue Font Awesome CSS
wp_enqueue_style('fontawesome-css', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css');
// Enqueue your custom CSS
wp_enqueue_style('rfq-custom-styles', plugin_dir_url(__FILE__) . 'css/custom-style.css');
// Enqueue jQuery and DataTables JS
wp_enqueue_script('jquery');
wp_enqueue_script('datatables-js', 'https://cdn.datatables.net/1.10.24/js/jquery.dataTables.min.js', array('jquery'), '1.10.24', true);
// Enqueue Bootstrap JS and your custom JS
wp_enqueue_script('bootstrap-js', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js', array('jquery'), '4.5.2', true);
wp_enqueue_script('rfq-custom-scripts', plugin_dir_url(__FILE__) . 'js/custom-script.js', array('jquery'), '1.0', true);
}
}
add_action('admin_enqueue_scripts', 'check_out_inspection_enqueue_custom_styles_and_scripts');
// Display the data
function check_out_inspection() {
global $wpdb;
$user = wp_get_current_user();
if ( in_array( 'operator', (array) $user->roles ) ) {
$table_name = $wpdb->prefix . 'service_request';
$user_id = $user->ID;
$results = $wpdb->get_results("SELECT * FROM $table_name where operator_id=$user_id and stype=2 order by id desc");
} else if(in_array( 'administrator', (array) $user->roles ) || in_array( 'central_administrator', (array) $user->roles )){
$table_name = $wpdb->prefix . 'service_request';
$results = $wpdb->get_results("SELECT * FROM $table_name where stype=2 order by id desc");
}
?>
<div class="wrap rfq-wrap">
<h1 class="wp-heading-inline mb-2 font-weight-bold">Check-Out Inspection</h1>
<div class="table-responsive">
<table id="servicereq-table" class="table mb-4 display pb-30 dataTable table-data">
<thead style="background-color:#FFBD2B;">
<tr>
<th scope="row" class="manage-column">Sr. No</th>
<th scope="col" class="manage-column">RMS Contract ID</th>
<th scope="col" class="manage-column">Operator Name</th>
<th scope="col" class="manage-column">Equipment Name</th>
<th scope="col" class="manage-column" style="max-width:250px;" >Operator Remarks</th>
<th scope="col" class="manage-column">Status</th>
<th scope="col" class="manage-column">Created On</th>
<th scope="col" class="manage-column">Image</th>
<th scope="col" class="manage-column">Actions</th>
</tr>
</thead>
<tbody>
<?php
$i = 1;
foreach($results as $result){
$user_info = get_userdata($result->operator_id);
$user_name = $user_info->first_name;
?>
<tr>
<td><?php echo $i;?></td>
<td><?php echo $result->order_id;?></td>
<td><?php echo $user_name;?></td>
<td>
<?php
$product = wc_get_product( $result->equipment_id );
echo $product->get_title();
?>
</td>
<td style="max-width:250px; word-wrap:break-word; overflow:hidden; text-overflow:ellipsis; white-space:normal;">
<?php echo $result->ins_remarks;?>
</td>
<td><?php echo $result->status;?></td>
<td><?php
$uk_time = strtotime($result->created_on);
$ist_time = $uk_time + (5 * 3600) + (30 * 60); // Add 5 hours and 30 minutes (in seconds)
echo date('d-m-Y H:i:s', $ist_time);
?></td>
<td>
<?php
$attachment_table = $wpdb->prefix . 'service_attachment_docs';
$attachments = $wpdb->get_results($wpdb->prepare("SELECT * FROM $attachment_table WHERE log_id = %d", $result->id));
if (!empty($attachments)) {
$first_image = $attachments[0]->attachment;
echo "<img src='../wp-content/uploads/operator-service-request-attachments/{$first_image}' width='50' height='50' class='service-image' data-toggle='modal' data-target='#imageModal{$result->id}' style='cursor: pointer;'>";
}
?>
</td>
<td>
<!-- <a href="<?php echo admin_url('admin.php?page=edit-check-out-inspection&id=' . $result->id); ?>"><i class="fas fa-edit" ></i></a> -->
<?php if ($result->status === 'Completed'): ?>
<i class="fas fa-edit" style="color: #ccc; cursor: not-allowed;"></i>
<?php else: ?>
<a href="<?php echo admin_url('admin.php?page=edit-check-out-inspection&id=' . $result->id); ?>"><i class="fas fa-edit"></i></a>
<?php endif; ?> | <a href="javascript:void(0);" data-toggle="modal" data-target="#insModal<?php echo $result->id;?>"><i class="fas fa-eye"></i></a></td>
</tr>
<!-- Service Request Modal -->
<div class="modal fade" id="insModal<?php echo $result->id;?>" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="exampleModalLabel">
Check-Out Inspection Details
</h5>
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">
×
</span>
</button>
</div>
<div class="modal-body">
<!-- Data passed is displayed
in this part of the
modal body -->
<h6 id="modal_body">Inspection Information</h6>
<div class="row">
<div class="col-md-6">
<div class="col-md-6">
<label>Request Raised Name</label>
</div>
<div class="col-md-6">
<p><?php echo $user_name;?></p>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6">
<label>Equipment Name</label>
</div>
<div class="col-md-6">
<p><?php echo $product->get_title();?></p>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6">
<label>RMS Contract ID</label>
</div>
<div class="col-md-6">
<p><?php echo $result->order_id;?></p>
</div>
<div class="col-md-6">
<label>SAP Contract ID</label>
</div>
<div class="col-md-6">
<p><?php echo get_post_meta($result->order_id, 'contract_id', true);?></p>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6">
<label>Status</label>
</div>
<div class="col-md-6">
<p><?php echo $result->status;?></p>
</div>
</div>
<?php
if($result->attachment !=''){
?>
<div class="col-md-6">
<div class="col-md-6">
<label>Attachment</label>
</div>
<div class="col-md-6">
<p><a href="<?php echo $result->attachment;?>" download>Download Attachment</a></p>
</div>
</div>
<?php
}
?>
<div class="col-md-6">
<div class="col-md-6">
<label>Request Raised On</label>
</div>
<div class="col-md-6">
<p><?php echo $result->created_on;?></p>
</div>
</div>
<div class="col-md-6">
<div class="col-md-6">
<label>Remarks</label>
</div>
<div class="col-md-6">
<p><?php echo $result->remarks;?></p>
</div>
</div>
</div>
</div>
</div>
</div></div>
<!-- Image Gallery Modal -->
<div class="modal fade" id="imageModal<?php echo $result->id;?>" tabindex="-1" role="dialog" aria-labelledby="imageModalLabel<?php echo $result->id;?>" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="imageModalLabel<?php echo $result->id;?>">Inspection Images</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<?php
foreach ($attachments as $attachment) {
echo "<div class='col-md-4 mb-3'>";
echo "<img src='../wp-content/uploads/operator-service-request-attachments/{$attachment->attachment}' class='img-fluid' alt='Inspection Images'>";
echo "</div>";
}
?>
</div>
</div>
</div>
</div>
</div>
<?php
$i++;
}
?>
</tbody>
</table>
</div>
</div>
<script>
// Initialize DataTable
jQuery(document).ready(function($) {
$('#servicereq-table').DataTable();
});
</script>
<?php
}
function edit_check_out_inspection(){
global $wpdb;
$id = $_REQUEST['id'];
$table_name = $wpdb->prefix . 'service_request';
// Fetch all data from the wp_request_quote table
$results = $wpdb->get_row("SELECT * FROM $table_name where id=$id");
$operator_id = $results->operator_id;
$order_id = get_user_meta($operator_id, 'contract_id', true);
if(isset($_POST['update_inspection']) && $_POST['update_inspection'] != ''){
$id = $_REQUEST['servicereq_id'];
$status = $_POST['status'];
$remarks = $_POST['remarks'];
$updated_on = date('Y-m-d H:i:s');
$wpdb->update($table_name, [
"status" => $status,
"remarks" => $remarks,
"updated_on" => $updated_on,
], ['id' => $id]);
// Check if the status is "Completed" and update the WooCommerce order
if ($status === 'Completed') {
if ($order_id) {
try {
$order = wc_get_order($order_id);
if ($order) {
// Add debugging log
error_log("Attempting to update order #$order_id status to wc-work_location");
$order->update_status('wc-received', 'Status changed to Equipment Received');
// Additional verification log
error_log("Order #$order_id status updated successfully");
} else {
error_log("Order not found for order ID: $order_id");
}
} catch (Exception $e) {
error_log("Error updating order status: " . $e->getMessage());
}
} else {
error_log("No order ID found for equipment ID: $operator_id");
}
}
// Success message and redirect
echo '<p style="color:#008000">Data Updated Successfully</p>';
echo '<script>window.location.href = "'.admin_url('admin.php?page=check-out-inspection').'"</script>';
}
// Render the form
?>
<div class="wrap">
<h2>Edit Inspection Status</h2>
<form method="post" action="" id="inspection-form">
<input type="hidden" name="edit_id" value="<?php echo esc_attr($_REQUEST['id']); ?>">
<table class="form-table">
<!-- <tr>
<th><label for="status">Inspection Status</label></th>
<td>
<select name="status" id="status" class="regular-text" required>
<option value="">Select Status</option>
<option value="In Progress" <?php echo ($results->status == 'In Progress') ? 'selected' : ''; ?>>In Progress</option>
<option value="Completed" <?php echo ($results->status == 'Completed') ? 'selected' : ''; ?>>Completed</option>
</select>
</td>
</tr> -->
<tr>
<th><label for="status">Inspection Status</label></th>
<td>
<select name="status" id="status" class="regular-text" required <?php echo ($results->status == 'Completed') ? 'disabled' : ''; ?>>
<option value="">Select Status</option>
<option value="In Progress" <?php echo ($results->status == 'In Progress') ? 'selected' : ''; ?>>In Progress</option>
<option value="Completed" <?php echo ($results->status == 'Completed') ? 'selected' : ''; ?>>Completed</option>
</select>
<?php if ($results->status == 'Completed'): ?>
<input type="hidden" name="status" value="Completed">
<?php endif; ?>
</td>
</tr>
<tr>
<th><label for="remarks">Remarks</label></th>
<td>
<input type="text" name="remarks" id="remarks" value="<?php echo esc_attr($results->remarks); ?>" class="regular-text"
<?php echo ($results->status == 'Completed') ? 'readonly' : ''; ?> required>
</td>
</tr>
</table>
<input type="hidden" name="servicereq_id" id="servicereq_id" value="<?php echo esc_attr($id); ?>">
<p class="submit">
<input type="submit" name="update_inspection" id="update_inspection" class="button-primary" value="Update" <?php echo ($results->status == 'Completed') ? 'disabled' : ''; ?>>
<a href="<?php echo admin_url('admin.php?page=check-out-inspection'); ?>" class="button-primary">Cancel</a>
</p>
</form>
</div>
<script>
// Add confirmation alert for "Completed" status
document.getElementById('inspection-form').addEventListener('submit', function(e) {
const status = document.getElementById('status').value;
if (status === 'Completed') {
const confirmUpdate = confirm('Are you sure to update status? This will change contract status as Equipment Received.');
if (!confirmUpdate) {
e.preventDefault();
}
}
});
</script>
<?php
}
?>