Merge pull request 'Update check working' (#108) from that-fe into master

Reviewed-on: #108
This commit is contained in:
joseph 2025-02-17 13:28:07 +11:00
commit 5cfd78d2c0
1 changed files with 14 additions and 7 deletions

View File

@ -263,8 +263,7 @@ class TrackingController extends Controller
$startDate = $request->input('fromDate'); $startDate = $request->input('fromDate');
$endDate = $request->input('toDate'); $endDate = $request->input('toDate');
$trackingData = Tracking::where('user_id', $userID) $trackingData = Tracking::where('user_id', $userID);
->where('status', 'check in');
if ($startDate && $endDate) { if ($startDate && $endDate) {
$trackingData->whereBetween( $trackingData->whereBetween(
@ -290,11 +289,11 @@ class TrackingController extends Controller
$lateMorning = 0; $lateMorning = 0;
$onTimeAfternoon = 0; $onTimeAfternoon = 0;
$lateAfternoon = 0; $lateAfternoon = 0;
$datesChecked = []; $valueTracking = $trackingData->get();
$trackingData->get()->groupBy(function ($record) { $trackingData->get()->groupBy(function ($record) {
return Carbon::parse($record->time_string)->toDateString(); return Carbon::parse($record->time_string)->toDateString();
})->each(function ($records, $date) use (&$onTimeMorning, &$lateMorning, &$onTimeAfternoon, &$lateAfternoon, &$datesChecked) { })->each(function ($records, $date) use ($trackingData, &$onTimeMorning, &$lateMorning, &$onTimeAfternoon, &$lateAfternoon, &$datesChecked) {
$morningCheck = $records->filter(function ($record) { $morningCheck = $records->filter(function ($record) {
return Carbon::parse($record->time_string)->hour < 12; return Carbon::parse($record->time_string)->hour < 12;
})->sortBy('time_string')->first(); })->sortBy('time_string')->first();
@ -305,6 +304,12 @@ class TrackingController extends Controller
$morningTime = Carbon::parse($date)->setTime(7, 40, 0); $morningTime = Carbon::parse($date)->setTime(7, 40, 0);
$afternoonTime = Carbon::parse($date)->setTime(13, 10, 0); $afternoonTime = Carbon::parse($date)->setTime(13, 10, 0);
$checkOutAfternoonTime = Carbon::parse($date)->setTime(15, 00, 0);
$checkOutAfternoon = $trackingData->where(
DB::raw("STR_TO_DATE(time_string, '%Y-%m-%d %H:%i:%s')"),
'<=',
$date . ' 23:59:59'
)->where("status", "check out")->first();
if ($morningCheck) { if ($morningCheck) {
$checkInTime = Carbon::parse($morningCheck->time_string); $checkInTime = Carbon::parse($morningCheck->time_string);
@ -323,8 +328,10 @@ class TrackingController extends Controller
$lateAfternoon++; $lateAfternoon++;
} }
} else { } else {
// Default to on time if no afternoon check-in // check if not check-in afternoon but has check out
$onTimeAfternoon++; if ($checkOutAfternoon && $checkOutAfternoonTime->lessThanOrEqualTo(Carbon::parse($checkOutAfternoon->time_string))) {
$onTimeAfternoon++;
}
} }
}); });
@ -333,7 +340,7 @@ class TrackingController extends Controller
'late_morning' => $lateMorning, 'late_morning' => $lateMorning,
'on_time_afternoon' => $onTimeAfternoon, 'on_time_afternoon' => $onTimeAfternoon,
'late_afternoon' => $lateAfternoon, 'late_afternoon' => $lateAfternoon,
'value' => $trackingData->get() 'value' => $valueTracking
]); ]);
} }
} }