Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $datePeriodString = $request->get('date', '11/01/2018'. ' - ' . '11/31/2018');
- $datePeriod = explode('-', $datePeriodString);
- $startDate = Carbon::parse($datePeriod[0])->toDateString();
- $endDate = Carbon::parse($datePeriod[1])->toDateString();
- $room = $request->get('mm_room_id');
- $visitAccuracy = \App\Attendance::disableCache()
- ->select(['*', \DB::raw('GROUP_CONCAT(attendance.id) AS id_group')])
- ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
- // ->join('mm_dokter','attendance.mm_doctor_id','=','mm_dokter.id_dokter')
- // ->join('mm_kamar','attendance.mm_room_id','=','mm_kamar.id_kamar')
- ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
- ->groupBy('attendance.mm_doctor_id')
- ->get();
- $visitCategory1 = \App\Attendance::disableCache()->select([
- \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
- ])
- ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
- ->whereRaw('attendance.visit_category = 1')
- ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
- ->where('attendance.mm_room_id', $room)
- ->groupBy(\DB::raw('attendance.mm_doctor_id'))
- ->count('attendance.id');
- $visitCategory2 = \App\Attendance::disableCache()->select([
- \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
- ])
- ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
- ->whereRaw('attendance.visit_category = 2')
- ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
- ->where('attendance.mm_room_id', $room)
- ->groupBy(\DB::raw('attendance.mm_doctor_id'))
- ->count('attendance.id');
- $visitCategory3 = \App\Attendance::disableCache()->select([
- \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
- ])
- ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
- ->whereRaw('attendance.visit_category = 3')
- ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
- ->where('attendance.mm_room_id', $room)
- ->groupBy(\DB::raw('attendance.mm_doctor_id'))
- ->count('attendance.id');
- $countVisit = $visitCategory1 + $visitCategory2 + $visitCategory3 ;
- $countAccuracy = ($visitCategory1 + (0.5 * $visitCategory2) + (0.25 * $visitCategory3) / is_int($countVisit) ) * 100;
- return response()->json([
- 'status' => 1,
- 'data' => [
- 'visitAccuracy' => $visitAccuracy->toArray(),
- 'countAccuracy' => $countAccuracy,
- ]
- ]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement