Update check working #108
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -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,8 +328,10 @@ class TrackingController extends Controller
 | 
			
		|||
                    $lateAfternoon++;
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                // Default to on time if no afternoon check-in
 | 
			
		||||
                $onTimeAfternoon++;
 | 
			
		||||
                // check if not check-in afternoon but has check out
 | 
			
		||||
                if ($checkOutAfternoon && $checkOutAfternoonTime->lessThanOrEqualTo(Carbon::parse($checkOutAfternoon->time_string))) {
 | 
			
		||||
                    $onTimeAfternoon++;
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -333,7 +340,7 @@ class TrackingController extends Controller
 | 
			
		|||
            'late_morning' => $lateMorning,
 | 
			
		||||
            'on_time_afternoon' => $onTimeAfternoon,
 | 
			
		||||
            'late_afternoon' => $lateAfternoon,
 | 
			
		||||
            'value' => $trackingData->get()
 | 
			
		||||
            'value' => $valueTracking
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue