Advertisement
Guest User

Untitled

a guest
Nov 16th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.02 KB | None | 0 0
  1.  
  2.         $datePeriodString = $request->get('date', '11/01/2018'. ' - ' . '11/31/2018');
  3.         $datePeriod = explode('-', $datePeriodString);
  4.         $startDate = Carbon::parse($datePeriod[0])->toDateString();
  5.         $endDate = Carbon::parse($datePeriod[1])->toDateString();
  6.         $room = $request->get('mm_room_id');
  7.  
  8.         $visitAccuracy = \App\Attendance::disableCache()
  9.         ->select(['*', \DB::raw('GROUP_CONCAT(attendance.id) AS id_group')])
  10.         ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
  11.         // ->join('mm_dokter','attendance.mm_doctor_id','=','mm_dokter.id_dokter')
  12.         // ->join('mm_kamar','attendance.mm_room_id','=','mm_kamar.id_kamar')
  13.         ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
  14.         ->groupBy('attendance.mm_doctor_id')
  15.         ->get();
  16.        
  17.         $visitCategory1 = \App\Attendance::disableCache()->select([
  18.             \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
  19.         ])
  20.         ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
  21.         ->whereRaw('attendance.visit_category = 1')
  22.         ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
  23.         ->where('attendance.mm_room_id', $room)
  24.         ->groupBy(\DB::raw('attendance.mm_doctor_id'))
  25.         ->count('attendance.id');
  26.        
  27.         $visitCategory2 = \App\Attendance::disableCache()->select([
  28.             \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
  29.         ])
  30.         ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
  31.         ->whereRaw('attendance.visit_category = 2')
  32.         ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
  33.         ->where('attendance.mm_room_id', $room)
  34.         ->groupBy(\DB::raw('attendance.mm_doctor_id'))
  35.         ->count('attendance.id');
  36.  
  37.         $visitCategory3 = \App\Attendance::disableCache()->select([
  38.             \DB::raw('COUNT(attendance.id) as count'), \DB::raw('attendance.visit_category as date')
  39.         ])
  40.         ->join('attendance_detail','attendance.id','=','attendance_detail.attendance_id')
  41.         ->whereRaw('attendance.visit_category = 3')
  42.         ->whereBetween('attendance.attendance_at', [$startDate . ' 00:00:00', $endDate . ' 23:59:59'])
  43.         ->where('attendance.mm_room_id', $room)
  44.         ->groupBy(\DB::raw('attendance.mm_doctor_id'))
  45.         ->count('attendance.id');
  46.        
  47.         $countVisit = $visitCategory1 + $visitCategory2 + $visitCategory3 ;
  48.         $countAccuracy = ($visitCategory1 + (0.5 * $visitCategory2) + (0.25 * $visitCategory3) / is_int($countVisit) ) * 100;
  49.        
  50.  
  51.         return response()->json([
  52.             'status' => 1,
  53.             'data' => [
  54.                 'visitAccuracy' => $visitAccuracy->toArray(),
  55.                 'countAccuracy' => $countAccuracy,
  56.             ]
  57.         ]);
  58.  
  59.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement