with([ "departments" => Department::all(), ]); } public function create() { return view("dashboard.departments.create"); } public function store(NewDepartmentRequest $request) { $department = new Department(); $department->name = $request->name; $department->code = $request->code; $location = 'Departments' . DIRECTORY_SEPARATOR . $request->code; if(!Storage::disk('local')->has($location)){ Storage::disk('local')->makeDirectory($location); } $department->location = Storage::disk('local')->path('') . $location; $department->user_id = auth()->id(); $department->save(); Alert::flash("New Department added successfully"); return redirect()->route("dashboard.departments.index"); } public function editShow($id) { return view("dashboard.departments.edit")->with([ "department" => Department::findOrFail($id) ]); } public function edit(UpdateDepartmentRequest $request, $id) { $department = Department::findOrFail($id); $documents = $department->document; $oldLocation = DIRECTORY_SEPARATOR . 'Departments' . DIRECTORY_SEPARATOR . $department->code; $department->name = $request->name; $department->code = $request->code; if($department->isDirty('code')) { $location = 'Departments' . DIRECTORY_SEPARATOR . $request->code; if(!Storage::disk('local')->has($location)){ Storage::disk('local')->move($oldLocation, $location); $department->location = Storage::disk('local')->path('') . $location; } foreach ($documents as $document) { foreach($document->files as $file) { $file->location = $location . DIRECTORY_SEPARATOR . $document->name . DIRECTORY_SEPARATOR . $file->name; $file->save(); } } } $department->save(); Alert::flash("Department edited successfully"); return redirect()->route("dashboard.departments.index"); } public function destroy($id) { $department = Department::find($id); //$department->delete(); $documents = $department->document()->count(); if($documents > 0){ Alert::flash($department->name . " has " . $documents . " document/s associated", "error"); } else { $department->delete(); Alert::flash($department->name . " deleted successfully"); } return redirect()->route("dashboard.departments.index"); } }