70 lines
2.2 KiB
PHP
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');
|
|
|
|
}
|
|
}
|