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');
$endDate = $request->input('toDate');
$trackingData = Tracking::where('user_id', $userID)
->where('status', 'check in');
$trackingData = Tracking::where('user_id', $userID);
if ($startDate && $endDate) {
$trackingData->whereBetween(
@ -290,11 +289,11 @@ class TrackingController extends Controller
$lateMorning = 0;
$onTimeAfternoon = 0;
$lateAfternoon = 0;
$datesChecked = [];
$valueTracking = $trackingData->get();
$trackingData->get()->groupBy(function ($record) {
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) {
return Carbon::parse($record->time_string)->hour < 12;
})->sortBy('time_string')->first();
@ -305,6 +304,12 @@ class TrackingController extends Controller
$morningTime = Carbon::parse($date)->setTime(7, 40, 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) {
$checkInTime = Carbon::parse($morningCheck->time_string);
@ -323,9 +328,11 @@ class TrackingController extends Controller
$lateAfternoon++;
}
} else {
// Default to on time if no afternoon check-in
// check if not check-in afternoon but has check out
if ($checkOutAfternoon && $checkOutAfternoonTime->lessThanOrEqualTo(Carbon::parse($checkOutAfternoon->time_string))) {
$onTimeAfternoon++;
}
}
});
return AbstractController::ResultSuccess([
@ -333,7 +340,7 @@ class TrackingController extends Controller
'late_morning' => $lateMorning,
'on_time_afternoon' => $onTimeAfternoon,
'late_afternoon' => $lateAfternoon,
'value' => $trackingData->get()
'value' => $valueTracking
]);
}
}