public function index() { /** @var Collection $lines */ $lines = Line::where('visible', true)->orderBy('list_order', 'asc')->get(); $lineIds = array_map(function ($line) { return $line['id']; }, $lines->all()); $dateStart = new \DateTime('-4 day'); $dateEnd = new \DateTime('+4 day'); $tasks = Task::whereIn('line_id', $lineIds)->whereBetween('date', [$dateStart->format('Y-m-d'), $dateEnd->format('Y-m-d')])->get(); return view('nichirei.index', ['lines' => $lines, 'tasks' => $tasks, 'dateStart' => $dateStart, 'dateEnd' => $dateEnd]); }
public static function userTasks() { $ids = static::current()->pluck('user_id')->unique(); $container = collect(); foreach ($ids as $id) { $subContainer = collect(); $user = User::find($id); $subContainer->tasks = Task::whereIn('id', $user->currentTasks())->pluck('slug'); $subContainer->name = $user->name; $container->push($subContainer); } return $container; }
/** * Retrieves information for volunteer's activity of the day that is in progress. * * @param \Illuminate\Http\Request $request * @return JSON array of status of activity with activity */ public function todayActivityInProgress(Request $request) { if ($request->get('token') != null) { // Get Authenticated User $authenticatedUser = JWTAuth::setToken($request->get('token'))->authenticate(); $id = $authenticatedUser->volunteer_id; // Retrieve Activties within today $todayactivities = Activity::whereBetween('datetime_start', [Carbon::now()->startOfDay(), Carbon::now()->endOfDay()])->lists('activity_id'); //echo count($todayactivities); // Retrieve Related Activties within today related to volunteer $groupStatus = collect(['pick-up', 'at check-up', 'check-up completed']); $relatedActivty = Task::whereIn('activity_id', $todayactivities)->where('volunteer_id', $id)->whereIn('status', $groupStatus)->lists('activity_id'); $taskStatus = Task::whereIn('activity_id', $todayactivities)->whereIn('status', $groupStatus)->where('volunteer_id', $id)->value('status'); // Retrieve Activity details $activityToReturn = Activity::with('departureCentre', 'arrivalCentre')->whereIn('activity_id', $relatedActivty)->first(); return response()->json(compact('activityToReturn', 'taskStatus')); } else { $status = ["Missing parameter"]; return response()->json(compact('status')); } }