public function storeGoat(Request $request, $parent_id) { $goat = new Goat(); $goat->parent_id = $parent_id; $goat->type = $goat->parent->type == 'G' ? 'O' : ($goat->parent->type == 'O' ? 'A' : 'T'); $goat->goal_type = $goat->parent->goal_type; $goat->bid = $goat->parent->bid; $goat->department_id = Auth::user()->leadOf()->first()->id; $goat->budget = null; $goat->description = $request->description; $goat->due_date = $request->due_date; $goat->priority = $request->priority; $goat->save(); $userCollabs = array(); $deptCollabs = array(); if ($request->collabs) { foreach ($request->collabs as $col) { if (strpos($col, 'user') !== false) { array_push($userCollabs, substr($col, 5)); } else { array_push($deptCollabs, substr($col, 5)); } } } $leads = array_fill_keys($request->leads ? $request->leads : array(), ['user_role' => 'L']); $collabs = array_fill_keys($userCollabs, ['user_role' => 'C']); $goat->userLeads()->sync($leads + $collabs); $goat->departmentCollaborators()->sync($deptCollabs); $this->createNewGoatChange($goat); return redirect('/view'); }
public function create(Request $request) { $newBusinessPlan = new BusinessPlan(); $newBusinessPlan->start = date($request['sYear'] . '-01-01 00:00:00'); $newBusinessPlan->end = date($request['eYear'] . '-12-31 00:00:00'); $newBusinessPlan->save(); foreach (array_keys($request['data']) as $idx) { $key = array_keys($request['data'][$idx])[0]; $newGoal = new Goat(); $newGoal->type = 'G'; $newGoal->parent_id = null; $newGoal->description = $key; $newGoal->priority = 0; $newGoal->complete = false; $newGoal->goal_type = 'B'; $newGoal->due_date = null; $newGoal->budget = 0; $newGoal->bid = $newBusinessPlan->id; $newGoal->save(); foreach ($request['data'][$idx][$key] as $obj) { $newObj = new Goat(); $newObj->type = 'O'; $newObj->parent_id = $newGoal->id; $newObj->description = $obj; $newObj->priority = 0; $newObj->complete = false; $newObj->goal_type = 'B'; $newObj->due_date = null; $newObj->budget = 0; $newObj->bid = $newBusinessPlan->id; $newObj->save(); } } foreach (Department::lists('name') as $dept_name) { $newGoal = new Goat(); $newGoal->type = 'G'; $newGoal->parent_id = null; $newGoal->description = $dept_name . " Goals"; $newGoal->priority = 0; $newGoal->complete = false; $newGoal->goal_type = 'D'; $newGoal->due_date = null; $newGoal->budget = 0; $newGoal->bid = $newBusinessPlan->id; $newGoal->save(); } return response()->json([], 200); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { Department::create($request->input()); foreach (BusinessPlan::lists('id') as $bid) { $newGoal = new Goat(); $newGoal->type = 'G'; $newGoal->parent_id = null; $newGoal->description = $request['name'] . " Goals"; $newGoal->priority = 0; $newGoal->complete = false; $newGoal->goal_type = 'D'; $newGoal->due_date = null; $newGoal->budget = 0; $newGoal->bid = $bid; $newGoal->save(); } return redirect('admin/depts'); }
public function store(Request $request) { $elem = new Goat(); $type = $request->type; $elem->bid = $request->businessId; if ($type == 'G') { $this->validate($request, ['businessId' => 'required', 'goalDescription' => 'required|min:10|max:300']); $elem->goal_type = 'B'; $elem->type = $type; $elem->description = $request->goalDescription; $elem->priority = null; $elem->due_date = null; $elem->budget = null; $elem->parent_id = null; $elem->complete = null; $elem->department_id = null; $elem->save(); } elseif ($type == 'O') { $this->validate($request, ['businessId' => 'required', 'goalId' => 'required', 'objectiveDescription' => 'required|min:10|max:300']); $elem->type = $type; $elem->goal_type = 'B'; $elem->description = $request->objectiveDescription; $elem->priority = null; $elem->due_date = null; $elem->budget = null; $elem->parent_id = $request->goalId; $elem->complete = null; $elem->department_id = null; $elem->save(); } elseif ($type == 'A') { $this->validate($request, ['businessId' => 'required', 'goalId' => 'required', 'objId' => 'required', 'actionDescription' => 'required|min:10|max:300', 'endDate' => 'required|date', 'leadName' => 'required']); $elem->type = $type; $elem->goal_type = 'B'; $elem->description = $request->actionDescription; $elem->priority = $request->priority; $elem->due_date = $request->endDate; $elem->budget = null; $elem->parent_id = $request->objId; $elem->complete = null; $elem->department_id = Auth::user()->leadOf()->first()->id; $elem->save(); if ($request->leadName === null && $request->collaboratorName === null) { } elseif ($request->leadName === null) { $collabs = array_fill_keys($request->collaboratorName, ['user_role' => 'C']); $elem->userLeads()->sync($collabs); } elseif ($request->collaboratorName === null) { $leads = array_fill_keys($request->leadName, ['user_role' => 'L']); $elem->userLeads()->sync($leads); } else { $leads = array_fill_keys($request->leadName, ['user_role' => 'L']); $collabs = array_fill_keys($request->collaboratorName, ['user_role' => 'C']); $elem->userLeads()->sync($leads + $collabs); } } else { $this->validate($request, ['businessId' => 'required', 'goalId' => 'required', 'objId' => 'required', 'actionId' => 'required', 'taskDescription' => 'required|min:10|max:300', 'endDate' => 'required|date', 'leadName' => 'required']); $elem->type = $type; $elem->goal_type = 'B'; $elem->description = $request->taskDescription; $elem->priority = $request->priority; $elem->due_date = $request->endDate; $elem->budget = null; $elem->parent_id = $request->actionId; $elem->complete = null; $elem->department_id = Auth::user()->leadOf()->first()->id; $elem->save(); if ($request->leadName === null && $request->collaboratorName === null) { return back(); } elseif ($request->leadName === null) { $collabs = array_fill_keys($request->collaboratorName, ['user_role' => 'C']); $elem->userLeads()->sync($collabs); } elseif ($request->collaboratorName === null) { $leads = array_fill_keys($request->leadName, ['user_role' => 'L']); $elem->userLeads()->sync($leads); } else { $leads = array_fill_keys($request->leadName, ['user_role' => 'L']); $collabs = array_fill_keys($request->collaboratorName, ['user_role' => 'C']); $elem->userLeads()->sync($leads + $collabs); } } return back(); }