163 lines
4.6 KiB
PHP
163 lines
4.6 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\PersonTarget;
|
|
use App\IOType;
|
|
use App\Person;
|
|
use App\Http\Requests\PersonTargetCreateOrUpdate;
|
|
|
|
class PersonTargetsController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
public function index()
|
|
{
|
|
$personTargets['receivables'] = PersonTarget::receivable();
|
|
$personTargets['debts'] = PersonTarget::debt();
|
|
|
|
foreach ($personTargets as $personTargetsList) {
|
|
$personTargetsList->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');
|
|
}
|
|
}
|