load('person:id,name_or_company,surname', 'ioType:id,factor', 'actuals:id,person_target_id,account_type_id,amount', 'actuals.accountType:id,account_class_id', 'actuals.accountType.accountClass:id,io_type_id', 'actuals.accountType.accountClass.ioType:id,factor'); } return view('personTargets.index', compact('personTargets')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $personTarget = new PersonTarget(); $formArrays = PersonTargetsController::loadFormArrays(); return view('personTargets.create', array_merge(compact('personTarget'), $formArrays)); } /** * Store a newly created resource in storage. * * @param \App\Http\Requests\PersonTargetCreateOrUpdate $request * @return \Illuminate\Http\Response */ public function store(PersonTargetCreateOrUpdate $request) { $personTarget = new PersonTarget(); $personTarget->reference = request('reference'); $personTarget->amount = request('amount'); $personTarget->date = request('date'); $personTarget->io_type_id = request('io_type_id'); $personTarget->person_id = request('person_id'); $personTarget->save(); return redirect('/targets'); } /** * Display the specified resource. * * @param \App\PersonTarget $personTarget * @return \Illuminate\Http\Response */ public function show(PersonTarget $personTarget) { // } /** * Show the form for editing the specified resource. * * @param \App\PersonTarget $personTarget * @return \Illuminate\Http\Response */ public function edit(PersonTarget $personTarget) { $formArrays = PersonTargetsController::loadFormArrays(); return view('personTargets.edit', array_merge(compact('personTarget'), $formArrays)); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\PersonTarget $personTarget * @return \Illuminate\Http\Response */ public function update(PersonTargetCreateOrUpdate $request, PersonTarget $personTarget) { $personTarget->reference = request('reference'); $personTarget->amount = request('amount'); $personTarget->date = request('date'); $personTarget->io_type_id = request('io_type_id'); $personTarget->person_id = request('person_id'); $personTarget->save(); return redirect('/targets'); } /** * Show the dialog for deleting the specified resource. * * @param \App\PersonTarget $personTarget * @return \Illuminate\Http\Response */ public function delete(PersonTarget $personTarget) { return view('personTargets.delete', compact('personTarget')); } /** * Remove the specified resource from storage. * * @param \App\PersonTarget $personTarget * @return \Illuminate\Http\Response */ public function destroy(PersonTarget $personTarget) { $personTarget->delete(); return redirect('/targets'); } /** * Load the data about people and IO types and return them as an array, such * that the data can be used as input for a form dropdowndown field. * * @return array */ private function loadFormArrays() { $ioTypes = IOType::all(); $ioTypesArray = []; foreach ($ioTypes as $ioType) { $ioTypesArray[$ioType->id] = $ioType->name; } $people = Person::all('id', 'name_or_company', 'surname')->sortBy('name_or_company'); $peopleArray = []; foreach ($people as $person) { $peopleArray[$person->id] = $person->fullName(true); } return compact('ioTypesArray', 'peopleArray'); } }