Teren-app/app/Http/Controllers/ClientController.php
Simon Pocrnjič 90a5858320 first commit
2024-10-28 21:08:16 +01:00

70 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\Person\Person;
use Auth;
use Illuminate\Http\Request;
use Inertia\Inertia;
class ClientController extends Controller
{
public function index(Person $person){
return Inertia::render('Client/Index',[
'persons' => $person::with(['group','type'])
->selectRaw('person.*,(select count(id) from contracts where client_id=person.id) as contracts')
->whereHas('group', fn($que) => $que->where('deleted','=',0))
->whereHas('type', fn($que) => $que->where('deleted','=',0))
->where([
['person.active','=',1],
['person.group_id','=',1]
])->get(),
'create_url' => route('client.store'),
'person_types' => \App\Models\Person\PersonType::all(['id','name','description'])
->where('deleted','=',0)
]);
}
public function show($uuid) {
return Inertia::render('Client/Show', [
'client' => Person::with(['group','type','addresses','contracts'])->where('uuid', $uuid)->firstOrFail()
]);
}
public function store(Request $request)
{
$reqAddress = $request->input('address');
$userId = Auth::user()->id;
$address = [
'address' => $reqAddress['address'],
'country' => $reqAddress['country'],
'type_id' => $reqAddress['type_id'],
'person_id' => 0,
'user_id' => $userId
];
$pid = Person::create([
'nu' => rand(100000,200000),
'first_name' => $request->input('first_name'),
'last_name' => $request->input('last_name'),
'full_name' => $request->input('full_name'),
'gender' => null,
'birthday' => null,
'tax_number' => null,
'social_security_number' => null,
'description' => 'sdwwf',
'group_id' => 1,
'type_id' => 2,
'user_id' => $userId
])->id;
$address['person_id'] = $pid;
\App\Models\Person\PersonAddress::create($address);
return to_route('client');
}
}