/** * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function stats() { $user = \Auth::id(); $now = new Carbon(); $currentFirstDay = clone $now; $currentFirstDay = $currentFirstDay->firstOfMonth(); $currentLastDay = clone $now; $currentLastDay = $currentLastDay->lastOfMonth(); $thisMonth = Checkin::where('user_id', $user)->whereBetween('checkin', [$currentFirstDay, $currentLastDay])->whereBetween('checkout', [$currentFirstDay, $currentLastDay])->orderBy('checkout')->get(); $stats['current']['total'] = $thisMonth->sum('burned'); $stats['current']['min'] = $thisMonth->min('burned'); $stats['current']['max'] = $thisMonth->max('burned'); $previousLastDay = clone $currentFirstDay; $previousLastDay = $previousLastDay->modify('-1 day'); $previousFirstDay = clone $previousLastDay; $previousFirstDay = $previousFirstDay->firstOfMonth(); $previousMonth = Checkin::where('user_id', $user)->whereBetween('checkin', [$previousFirstDay, $previousLastDay])->whereBetween('checkout', [$previousFirstDay, $previousLastDay])->orderBy('checkout')->get(); $stats['previous']['total'] = $previousMonth->sum('burned'); $stats['previous']['min'] = $previousMonth->min('burned'); $stats['previous']['max'] = $previousMonth->max('burned'); if ($stats['current']['total'] < $stats['previous']['total']) { $stats['difference'] = $stats['previous']['total'] - $stats['current']['total']; $stats['suggestion'] = Equipment::orderBy('calories_pm', 'desc')->first(); } return view('equipment.progress', $stats); }