From 5fbe15819ef1ebbb201d1ea98769073ac6feb133 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 14 Oct 2026 10:27:38 +0530 Subject: [PATCH] Changed logic in laser idle hour report --- .../Commands/SendLaserIdleHourReport.php | 165 ++++++++---------- 1 file changed, 77 insertions(+), 88 deletions(-) diff --git a/app/Console/Commands/SendLaserIdleHourReport.php b/app/Console/Commands/SendLaserIdleHourReport.php index 4d4041ba..3c8b4207 100644 --- a/app/Console/Commands/SendLaserIdleHourReport.php +++ b/app/Console/Commands/SendLaserIdleHourReport.php @@ -98,19 +98,13 @@ class SendLaserIdleHourReport extends Command // return (float) ($record->motor_marked_physical_count ?? 0); // }); - $pumpRecords = $machineRecords - ->where('pump_machine_name', $machineName); - $pumpCount = $pumpRecords - // ->where('pump_machine_name', $machineName) - // ->where('pump_marked_status', 'Marked') - ->sum(fn ($record) => (float) ($record->pump_marked_physical_count ?? 0)); - // ->filter(function ($record) { - // return (float) ($record->pump_marked_physical_count ?? 0) > 0; - // }) - // ->count(); - // ->sum(function ($record) { - // return (float) ($record->pump_marked_physical_count ?? 0); - // }); + $pumpCount = $machineRecords + ->where('pump_machine_name', $machineName) + ->where('pump_marked_status', 'Marked') + ->filter(function ($record) { + return (float) ($record->pump_marked_physical_count ?? 0) > 0; + }) + ->count(); $namePlateCount = $machineRecords ->where('name_plate_machine_name', $machineName) @@ -128,104 +122,101 @@ class SendLaserIdleHourReport extends Command }); $totalExpectedMilliseconds = - $machineRecords - ->where('motor_machine_name', $machineName) - ->sum(function ($record) { + $machineRecords + ->where('motor_machine_name', $machineName) + ->sum(function ($record) { - $value = (string) ($record->motor_expected_time ?? '0'); + $value = (string) ($record->motor_expected_time ?? '0'); - [$seconds, $milliseconds] = array_pad( - explode('.', $value, 2), - 2, - '0' - ); + [$seconds, $milliseconds] = array_pad( + explode('.', $value, 2), + 2, + '0' + ); - // Keep exactly 3 digits for milliseconds - $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); + // Keep exactly 3 digits for milliseconds + $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); - return ((int) $seconds * 1000) + (int) $milliseconds; - }) + return ((int) $seconds * 1000) + (int) $milliseconds; + }) - + $machineRecords - ->where('pump_machine_name', $machineName) - ->sum(function ($record) { + + $machineRecords + ->where('pump_machine_name', $machineName) + ->sum(function ($record) { - $value = (string) ($record->pump_expected_time ?? '0'); + $value = (string) ($record->pump_expected_time ?? '0'); - [$seconds, $milliseconds] = array_pad( - explode('.', $value, 2), - 2, - '0' - ); + [$seconds, $milliseconds] = array_pad( + explode('.', $value, 2), + 2, + '0' + ); - $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); + $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); - return ((int) $seconds * 1000) + (int) $milliseconds; - }) + return ((int) $seconds * 1000) + (int) $milliseconds; + }) - + $machineRecords - ->where('name_plate_machine_name', $machineName) - ->sum(function ($record) { + + $machineRecords + ->where('name_plate_machine_name', $machineName) + ->sum(function ($record) { - $value = (string) ($record->name_plate_expected_time ?? '0'); + $value = (string) ($record->name_plate_expected_time ?? '0'); - [$seconds, $milliseconds] = array_pad( - explode('.', $value, 2), - 2, - '0' - ); + [$seconds, $milliseconds] = array_pad( + explode('.', $value, 2), + 2, + '0' + ); - $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); + $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); - return ((int) $seconds * 1000) + (int) $milliseconds; - }) + return ((int) $seconds * 1000) + (int) $milliseconds; + }) - + $machineRecords - ->where('motor_machine_name', $machineName) - ->sum(function ($record) { + + $machineRecords + ->where('motor_machine_name', $machineName) + ->sum(function ($record) { - $value = (string) ($record->man_mark_expected_time ?? '0'); + $value = (string) ($record->man_mark_expected_time ?? '0'); - [$seconds, $milliseconds] = array_pad( - explode('.', $value, 2), - 2, - '0' - ); + [$seconds, $milliseconds] = array_pad( + explode('.', $value, 2), + 2, + '0' + ); - $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); + $milliseconds = substr(str_pad($milliseconds, 3, '0'), 0, 3); - return ((int) $seconds * 1000) + (int) $milliseconds; - }); + return ((int) $seconds * 1000) + (int) $milliseconds; + }); + + // Convert total milliseconds to total seconds + $totalExpectedSeconds = $totalExpectedMilliseconds / 1000; + + // Convert seconds to minutes + $totalExpectedMinutes = $totalExpectedSeconds / 60; + + // Convert minutes to hours + minutes + $totalHours = floor($totalExpectedMinutes / 60); + + $totalMinutes = floor($totalExpectedMinutes % 60); + + $totalLaserOnHours = "{$totalHours} hr {$totalMinutes} min"; -// Convert total milliseconds to total seconds -$totalExpectedSeconds = $totalExpectedMilliseconds / 1000; + // Laser OFF + $totalLaserOnHoursValue = $totalExpectedMinutes / 60; + $totalLaserOffHoursValue = max(0, 22.5 - $totalLaserOnHoursValue); -// Convert seconds to minutes -$totalExpectedMinutes = $totalExpectedSeconds / 60; + $offHours = floor($totalLaserOffHoursValue); + $offMinutes = floor( + ($totalLaserOffHoursValue - $offHours) * 60 + ); -// Convert minutes to hours + minutes -$totalHours = floor($totalExpectedMinutes / 60); - -$totalMinutes = floor($totalExpectedMinutes % 60); - -$totalLaserOnHours = "{$totalHours} hr {$totalMinutes} min"; - - -// Laser OFF -$totalLaserOnHoursValue = $totalExpectedMinutes / 60; - -$totalLaserOffHoursValue = max(0, 22.5 - $totalLaserOnHoursValue); - -$offHours = floor($totalLaserOffHoursValue); - -$offMinutes = floor( - ($totalLaserOffHoursValue - $offHours) * 60 -); - -$totalLaserOffHours = "{$offHours} hr {$offMinutes} min"; + $totalLaserOffHours = "{$offHours} hr {$offMinutes} min"; $tableData[] = [ 'no' => $no++, @@ -249,8 +240,6 @@ $totalLaserOffHours = "{$offHours} hr {$offMinutes} min"; $mail = new LaserIdleMail($scheduleType, $tableData); - // $contentVars = $mail->content()->with; - foreach ($mailRules as $rule) { $toEmails = collect(explode(',', $rule->email))