Uname: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

403WebShell
403Webshell
Server IP : 13.126.101.145  /  Your IP : 216.73.217.33
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/rentals_updated/wp-content/plugins/operators/logsheet.php
<?php
/*
include('../../../wp-config.php');
global $wpdb;
$user_id = $_REQUEST['user_id'];
$user_info = get_userdata($user_id);
$user_name = $user_info->first_name;
$contractID = get_user_meta($user_id, 'contract_id', true);


//$getCustomerData = $wpdb->get_row($wpdb->prepare("SELECT customer_id FROM wp_wc_orders WHERE id = %d AND status = 'wc-opassigned'", $contractID));
$order = wc_get_order($contractID);
$customerId = $order->get_user_id();
$sapcontract = get_post_meta($contractID, 'contract_id', true);
$customerDetails = get_userdata($customerId);
$customer_name = get_usermeta($customerId, 'first_name', true);
$work_location = $order ? $order->get_shipping_city() : '';
if ($order) {
foreach ($order->get_items() as $item_id => $item) {
    $product_id = $item->get_product_id(); // Get the product ID
    $machine_serialno = get_post_meta($product_id, 'machine_serialno', true); // Get the custom field
    $model_number = get_post_meta($product_id, 'model_number', true);
    $equipment_number = get_post_meta($product_id, 'equipment_number', true);
    $registration_number = get_post_meta($product_id, 'registration_number', true);
}
}
//$equipment_number = get_post_meta($contractID, 'equipment_number', true);
//$equipment_serial_number = get_post_meta($contractID, 'equipment_serial_number', true);
//$registration_number = get_post_meta($contractID, 'registration_number', true);
//$model_no = get_post_meta($contractID, 'model_no', true);
$start_date = $_REQUEST['start_date'];
$end_date = $_REQUEST['end_date'];

$getLogsheetData = $wpdb->get_results($wpdb->prepare(
    "SELECT `id`, `equipment_id`, `equipment_no`, `model_no`, `machine_serial_no`, `registration_no`, `operator_id`, `log_date`, `start_time`, `end_time`, `shift`, `working_hour`, `down_hour`, `breakdown`, `fuel`, `log_status`, `log_remarks`, `remarks_by`, `log_created_on` 
    FROM wp_logsheet 
    WHERE operator_id = %d 
    AND log_date BETWEEN %s AND %s",
    $user_id,
    $start_date,
    $end_date
));

$table_name = $wpdb->prefix . 'logsheet'; // Replace with your actual table name
$query = $wpdb->prepare("
    SELECT start_smu 
    FROM $table_name 
    WHERE log_date = %s
", $start_date);

// Execute the query
$start_smu = $wpdb->get_var($query);

$query = $wpdb->prepare("
    SELECT end_smu 
    FROM $table_name 
    WHERE log_date = %s
", $end_date);

// Execute the query
$end_smu = $wpdb->get_var($query);


    
    $log_status = $wpdb->query($wpdb->prepare(
        "UPDATE $table_name 
        SET log_status = '1' 
        WHERE operator_id = %d 
        AND log_date BETWEEN %s AND %s",
        $user_id,
        $start_date,
        $end_date
    ));

*/

include('../../../wp-config.php');
global $wpdb;

// Get request parameters
$start_date = $_REQUEST['start_date'];
$end_date = $_REQUEST['end_date'];
$type = isset($_REQUEST['type']) ? $_REQUEST['type'] : 'operator'; // Default to operator type if not specified

if ($type === 'order') { 
    $order_id = $_REQUEST['order_id'];
    $order = wc_get_order($order_id);
    $customerId = $order->get_user_id();
    $sapcontract = get_post_meta($order_id, 'contract_id', true);
    $contractID = $order_id;

    // Fetch operator IDs based on order_id and date range
    $operators = $wpdb->get_col($wpdb->prepare(
        "SELECT DISTINCT operator_id 
         FROM {$wpdb->prefix}logsheet 
         WHERE order_id = %d 
         AND log_date BETWEEN %s AND %s",
        $order_id,
        $start_date,
        $end_date
    ));

    // Convert operator IDs into a comma-separated list for $user_id
    $user_id = implode(",", $operators);

    // Fetch user names corresponding to each operator ID
    $user_names = [];
    foreach ($operators as $operator_id) {
        $user_info = get_userdata($operator_id);
        if ($user_info) {
            $user_names[] = $user_info->first_name;
        }
    }
    // Join the user names with commas for $user_name
    $user_name = implode(", ", $user_names); 

    $operator_names = [];
foreach ($operators as $operator_id) {
    $user_info = get_userdata($operator_id);
    if ($user_info) {
        $operator_names[$operator_id] = $user_info->first_name;
    }
}

} else {
    $user_id = $_REQUEST['user_id'];
    $user_info = get_userdata($user_id);
    $user_name = $user_info->first_name;
    $contractID = get_user_meta($user_id, 'contract_id', true);
    $order = wc_get_order($contractID);
    $customerId = $order->get_user_id();
    $sapcontract = get_post_meta($contractID, 'contract_id', true);
}


// Common order data retrieval
$customerDetails = get_userdata($customerId);
$customer_name = get_usermeta($customerId, 'first_name', true);
$work_location = $order ? $order->get_shipping_city() : '';

// Get product details
if ($order) {
    foreach ($order->get_items() as $item_id => $item) {
        $product_id = $item->get_product_id();
        $machine_serialno = get_post_meta($product_id, 'equipment_serial_number', true);
        $model_number = get_post_meta($product_id, 'model_number', true);
        $equipment_number = get_post_meta($product_id, 'equipment_number', true);
        $registration_number = get_post_meta($product_id, 'registration_number', true);
    }
}

// Modify the query based on type
if ($type === 'order') {
    $getLogsheetData = $wpdb->get_results($wpdb->prepare(
        "SELECT `id`, `equipment_id`, `equipment_no`, `model_no`, `machine_serial_no`, 
                `registration_no`, `operator_id`, `log_date`, `start_time`, `end_time`, 
                `shift`, `working_hour`, `down_hour`, `breakdown`, `fuel`, `log_status`, 
                `log_remarks`, `remarks_by`, `log_created_on`, `order_id`
        FROM wp_logsheet         
        WHERE order_id = %d        
        AND log_date BETWEEN %s AND %s",
        $order_id,
        $start_date,
        $end_date
    ));
  
} else {
    $getLogsheetData = $wpdb->get_results($wpdb->prepare(
        "SELECT `id`, `equipment_id`, `equipment_no`, `model_no`, `machine_serial_no`, 
                `registration_no`, `operator_id`, `log_date`, `start_time`, `end_time`, 
                `shift`, `working_hour`, `down_hour`, `breakdown`, `fuel`, `log_status`, 
                `log_remarks`, `remarks_by`, `log_created_on`, `order_id`
        FROM wp_logsheet 
        WHERE operator_id = %d 
        AND log_date BETWEEN %s AND %s",
        $user_id,
        $start_date,
        $end_date
    ));
}

// Get SMU readings
$table_name = $wpdb->prefix . 'logsheet';

// Get start SMU
$start_smu_query = $wpdb->prepare("
    SELECT start_smu 
    FROM $table_name 
    WHERE log_date = %s
    " . ($type === 'order' ? "AND equipment_id IN (
        SELECT product_id 
        FROM {$wpdb->prefix}wc_order_product_lookup 
        WHERE order_id = %d
    )" : "AND operator_id = %d"),
    $start_date,
    $type === 'order' ? $order_id : $user_id
);
$start_smu = $wpdb->get_var($start_smu_query);

// Get end SMU
$end_smu_query = $wpdb->prepare("
    SELECT end_smu 
    FROM $table_name 
    WHERE log_date = %s
    " . ($type === 'order' ? "AND equipment_id IN (
        SELECT product_id 
        FROM {$wpdb->prefix}wc_order_product_lookup 
        WHERE order_id = %d
    )" : "AND operator_id = %d"),
    $end_date,
    $type === 'order' ? $order_id : $user_id
);
$end_smu = $wpdb->get_var($end_smu_query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Equipment Rental Log Sheet</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 10px;
            font-size: 10px; 
        }
        .header {
            text-align: center;
            font-weight: bold;
            margin-bottom: 10px;
        }
        .header img {
            vertical-align: middle;          
           
        }
        .fields {
            display: flex;
            justify-content: space-between;
            margin-bottom: 10px;
        }
        .right-column {
            text-align: left;
            padding-right: 10px;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            padding : 5px;
        }
        table, th, td {
            border: 1px solid black;
        }
        th, td {
            padding: 2px 4px;
            text-align: left;
        }
        .signature {
            margin-top: 10px;
        }
    </style>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/html2pdf.js/0.10.1/html2pdf.bundle.min.js" integrity="sha512-GsLlZN/3F2ErC5ifS5QtgpiJtWd43JWSuIgh7mbzZ8zBps+dvLusV+eNQATqgA/HdeKFVgA5v3S/cIrLF7QnIg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
</head>
<body>
	<div id="logsheet-container">
    <div class="header">
        <img src="https://gmmco.devitrosys.com/wp-content/uploads/2024/06/gmmco_logo_right-removebg-preview.png" alt="GMMCO Logo" height="40"><br>
        GMMCO LTD.<br>
        NO. 6, GST ROAD, ST. THOMAS MOUNT, CHENNAI - 600 016. TAMIL NADU <br>
        Tel.: (044) 2267 6000, (044) 2267 6499, email- marketing@gmmcoindia.com
        
    </div>

    <div class="fields">
        <div class="left-column">
            <div>Log Generated on: <?php echo date('d/m/Y'); ?></div>
            <div><strong>Log Period: <?php echo date("d/m/Y", strtotime($start_date)); ?> - <?php echo date("d/m/Y", strtotime($end_date)); ?></strong></div>
            <div>Operatot ID: <?php echo esc_html($user_id); ?></div>
            <div>Contract ID: <?php echo esc_html($sapcontract); ?></div>
            <div>Model: <?php echo esc_html($model_number); ?></div>
            <div>Customer Name: <?php echo esc_html($customer_name); ?></div>
        </div>
        <div class="right-column">
            <div>Project Location: <?php echo esc_html($work_location) ?? 'Chennai'; ?></div>
            <div>Equipment ID No.: <?php echo esc_html($equipment_number); ?></div>
            <div>Machine Serial No.: <?php echo esc_html($machine_serialno); ?></div>
			<div>Registration Number(If any.): <?php echo esc_html($registration_number); ?></div>
        </div>
    </div>

    <table>
        <thead>
            <tr>
                <th>Date</th>
                <th>Start Time (A)</th>
                <th>End Time (B)</th>
                <th>Working Hours <br>X=(B-A)</th>
                <th colspan="2">Down Time on Account of (Hours)</th>
                <th>Total Down Time<br> Y=C+D (Hours)</th>
                <th>Machine Operated by</th>
                <th>Signature of Customer's <br>Work Site Representative</th>
<!--                 <th>Fuel</th> -->
<!--                 <th></th> -->
            </tr>
            <tr>
                <th> (DD/MM/YY)</th>
                <th>(HH:MM)</th>
                <th>(HH:MM)</th>
                <th>(HH:MM)</th>
                <th>C(EQ Breakdown)</th>
                <th>D(OP Absence)</th>
                <th></th>
                <th></th>
                <th></th>
<!--                 <th></th> -->
<!--                 <th></th> -->
            </tr>
        </thead>
        <tbody>
			<?php
			$totworking = 0;
			$totdown = 0;
			foreach($getLogsheetData as $data){
                $operator_name = isset($operator_names[$data->operator_id]) ? $operator_names[$data->operator_id] : $user_name;

			?>
            <tr>
                <td><?php echo $data->log_date;?></td>
                <td><?php echo $data->start_time;?></td>
                <td><?php echo $data->end_time;?></td>
                <td><?php echo number_format ($data->working_hour/60, 3);?></td>
                <td><?php echo ($data->breakdown)/60;?></td><td><?php echo ($data->down_hour)/60;?></td>
                <td><?php 
                //echo number_format((($data->working_hour) - ($data->down_hour))/60, 3);
                echo number_format((($data->down_hour) + ($data->breakdown))/60, 3);
                ?></td>
                <td><?php echo $operator_name;?></td>
                <td></td>
<!--                 <td><?php echo $data->fuel;?></td> -->
<!--                 <td></td> -->
            </tr>
			<?php
				$totworking+= $data->working_hour - $data->down_hour;
				$totdown+= $data->down_hour + $data->breakdown;
			}
			?>
            <tr>
                <td colspan="3"><strong>Total Working Hours for the Period:</strong></td>
                <td><strong><?php echo number_format($totworking / 60, 3); ?></strong></td>
                <td colspan="2">Total Down Time for Period</td>
                <td><strong><?php echo number_format($totdown / 60, 3);?></strong></td>
                <td></td>
                <td></td>
<!--                 <td></td> -->
            </tr>
            <tr>
                <td colspan="3"><strong>Minimum Chargeable Hours for the Period if actual usage by Customer is less than Minimum Chargeable Hours:</strong></td>
                <td></td>
                <td colspan="4">Actual Chargeable Hours based on Minimum Chargeable Hours for the Period, Less Downtime:</td>
                <td></td>
<!--                 <td></td> -->
            </tr>
            <tr>
                <td colspan="3">
                    <strong>Opening SMU as on  <?php echo date("d/m/Y", strtotime($start_date)). ' :  ' .esc_html($start_smu);?></strong><br>
                    
                </td>
                <td></td>
                <td colspan="4"><strong>Ending SMU as on <?php echo date("d/m/Y", strtotime($end_date)). ' :  ' .esc_html($end_smu);?> </strong>
                </td>
                <td></td>
<!--                 <td></td> -->
            </tr>
        </tbody>
    </table>

    <div class="signature">
        

        <div style="margin-top: 20px;">
            <p>Signature of Customer's Representative: _____________________ Date: _____________________</p>
            <p>Name of Customer's Representative: _____________________ Designation: _____________________</p>
        </div>
    </div>
	</div>
	<script>
      function exportHTMLtoPDF() {
         let htmlElement = document.getElementById('logsheet-container');
         var fileName = '<?php echo  $sapcontract. "_" . $user_id . "_logsheet.pdf"; ?>';
         console.log("Generated file name: " + fileName);
            var opt = {
            margin:       [0.2, 0.2, 0.2, 0.2], // Reduced margins [top, left, bottom, right] in inches
            filename:     fileName,
            image:        { type: 'jpeg', quality: 0.98 },
            html2canvas:  { scale: 2, letterRendering: true },
            jsPDF:        { unit: 'in', format: 'a4', orientation: 'landscape' }
         };
         
         html2pdf().set(opt).from(htmlElement).save().then(() => {
            setTimeout(() => {
                window.open('', '_self').close();
            }, 1000);
         }).catch((error) => {
            console.error('PDF generation error: ', error);
         });    
      }
      exportHTMLtoPDF();
    </script>
</body>
</html>


Youez - 2016 - github.com/yon3zu
LinuXploit