public function dashboard() { $user = Auth::user(); $recent = Change::where('user_id', $user->id)->get(); $tasks = $user->goats()->orderBy('due_date')->get(); $dept = $user->departments()->get(); $recentEmpty = true; $tasksEmpty = true; foreach ($tasks as $task) { if (!$task->complete) { $tasksEmpty = false; } // if (Carbon\Carbon::parse($task->due_date)->diff(Carbon\Carbon::now())){ // $task->soon = 'red'; // } // else{ // $task->soon = ''; // } } //redo controller $inProgress = $user->goats()->where('complete', '0')->count(); $complete = $user->goats()->where('complete', '1')->count(); $overdue = 0; foreach ($tasks as $task) { if (Carbon\Carbon::parse($task->due_date)->lt(Carbon\Carbon::now())) { $overdue++; } } $inProgress -= $overdue; foreach ($recent as $task) { $recentEmpty = false; $task->task = Goat::where('id', $task->goat_id)->value('description'); } return view('dashboard', compact('user', 'tasks', 'dept', 'recent', 'recentEmpty', 'tasksEmpty', 'complete', 'inProgress', 'overdue')); }
public function index(Request $request) { if ($request->bp) { $currentBp = BusinessPlan::find($request->bp); } else { $currentBp = BusinessPlan::where('start', '<=', Carbon::now())->where('end', '>=', Carbon::now())->first(); if (!$currentBp) { $currentBp = BusinessPlan::all()->last(); } } $sorted = Goat::where('bid', $currentBp->id)->where('type', 'G')->orderBy('goal_type')->orderBy('description')->get(); $bp = Goat::where('bid', $currentBp->id)->where('type', '<>', 'G')->orderByRaw("FIELD(type, 'O', 'A', 'T')")->orderBy('description', 'desc')->get(); foreach ($bp as $goat) { if ($goat->type === 'G') { $sorted->push($goat); continue; } for ($i = 0, $len = $sorted->count(); $i < $len; $i++) { if ($sorted[$i]->id == $goat->parent_id) { // Hacky fix since when you splice $goat into $sorted, // it converts the $goat into an array instead of // keeping it as a Model object... $sorted->splice($i + 1, 0, "temp"); $sorted->put($i + 1, $goat); break; } } } $leadOf = array(); if (Auth::user()) { foreach (Auth::user()->leadOf as $dept) { array_push($leadOf, $dept->id); } } $collaboratorGoals = array(); foreach ($leadOf as $dept_id) { foreach (Department::find($dept_id)->collaboratorOn as $goat) { array_push($collaboratorGoals, $goat->id); } } return view('view_plan')->with(['bp' => $sorted, 'users' => User::orderBy('first_name')->get(), 'depts' => Department::orderBy('name')->get(), 'leadOf' => $leadOf, 'plans' => BusinessPlan::orderBy('id', 'desc')->get(), 'query' => $request, 'bp_id' => $currentBp->id, 'is_bplead' => Auth::user() && Auth::user()->is_bplead, 'collaboratorGoals' => $collaboratorGoals]); }
public function create(Request $req) { $user = Auth::user(); $change = new Change(); if ($req->option === 'Status') { $changeType = 'S'; } else { $changeType = 'N'; } if ($req->complete) { Goat::where('id', $req->id)->update(['complete' => '1']); } else { Goat::where('id', $req->id)->update(['complete' => false]); } if ($req->statusUpdate === '' && $req->complete) { $req->statusUpdate = 'Complete'; } $change = Change::create(['change_type' => $changeType, 'description' => $req->statusUpdate, 'goat_id' => $req->id, 'user_id' => $user->id]); return back(); }
Route::patch('/manage', 'ManagePlanController@update'); Route::delete('/manage', 'ManagePlanController@destroy'); Route::get('ajax-action', function () { $obj_Id = Input::get('obj_Id'); $user = Auth::user(); if ($user->is_bplead) { $actions = Goat::where('parent_id', '=', $obj_Id)->where('type', '=', 'A')->get(); return Response::json($actions); } else { $actions = $user->leadOn()->where('parent_id', '=', $obj_Id)->where('type', '=', 'A')->get(); $action = $actions->map(function ($elem) { return $elem; }); return Response::json($action); } }); Route::get('ajax-task', function () { $action_Id = Input::get('action_Id'); $user = Auth::user(); if ($user->is_bplead) { $tasks = Goat::where('parent_id', '=', $action_Id)->where('type', '=', 'T')->get(); return Response::json($tasks); } else { $tasks = $user->leadOf()->first()->leadOn()->where('parent_id', '=', $action_Id)->where('type', '=', 'T')->get(); $task = $tasks->map(function ($elem) { return $elem; }); return Response::json($task); } }); });