117 lines
5.0 KiB
PHP
117 lines
5.0 KiB
PHP
<?php
|
|
|
|
use App\Charts\ExampleChart;
|
|
use App\Http\Controllers\ClientCaseContoller;
|
|
use App\Http\Controllers\ClientController;
|
|
use App\Http\Controllers\ContractController;
|
|
use App\Http\Controllers\SettingController;
|
|
use App\Models\Person\Person;
|
|
use Illuminate\Http\Request;
|
|
use ArielMejiaDev\LarapexCharts\LarapexChart;
|
|
use Illuminate\Support\Facades\Route;
|
|
use Inertia\Inertia;
|
|
use \Illuminate\Database\Eloquent\Builder;
|
|
|
|
Route::redirect('/', 'login');
|
|
|
|
Route::middleware([
|
|
'auth:sanctum',
|
|
config('jetstream.auth_session'),
|
|
'verified',
|
|
])->group(function () {
|
|
Route::get('/dashboard', function () {
|
|
$chart = new ExampleChart(new LarapexChart());
|
|
$people = Person::with(['group','type', 'client', 'clientCase'])
|
|
->where([
|
|
['active','=',1],
|
|
])
|
|
->limit(10)
|
|
->orderByDesc('created_at')
|
|
->get();
|
|
|
|
return Inertia::render(
|
|
'Dashboard',
|
|
[
|
|
'chart' => $chart->build(),
|
|
'people' => $people
|
|
]
|
|
);
|
|
})->name('dashboard');
|
|
|
|
Route::get('testing', function() {
|
|
return Inertia::render('Testing', []);
|
|
});
|
|
|
|
Route::get('search', function(Request $request) {
|
|
|
|
if( !empty($request->input('query')) ) {
|
|
|
|
/*$clients = App\Models\Client::search($request->input('query'))
|
|
->query( function($builder) use($request){
|
|
$builder->leftJoin('person', 'clients.person_id', '=', 'person.id')
|
|
->leftJoin('person_addresses', 'person_addresses.person_id', '=', 'person.id')
|
|
->select('clients.*', 'person.full_name as person_fullname')
|
|
->limit($request->input('limit'));
|
|
})
|
|
->get();
|
|
|
|
$clientCases = App\Models\ClientCase::search($request->input('query'))
|
|
->query(function($builder) use($request){
|
|
$builder->join('person', 'client_cases.person_id', '=', 'person.id')
|
|
->select('client_cases.*', 'person.full_name as person_fullname')
|
|
->limit($request->input('limit'));
|
|
})
|
|
->get();*/
|
|
|
|
|
|
$clients = App\Models\Person\Person::search($request->input('query'))
|
|
->query(function($builder) use($request): void {
|
|
$builder->join('clients', 'person.id', '=', 'clients.person_id')
|
|
->leftJoin('person_addresses', 'person.id', '=', 'person_addresses.person_id')
|
|
->leftJoin('person_phones', 'person.id', '=', 'person_phones.person_id')
|
|
->select('person.*', 'clients.uuid as client_uuid')
|
|
->limit($request->input('limit'));
|
|
})
|
|
->get();
|
|
|
|
$clientCases = App\Models\Person\Person::search($request->input('query'))
|
|
->query(function($builder) use($request): void {
|
|
$builder->join('client_cases', 'person.id', '=', 'client_cases.person_id')
|
|
->leftJoin('person_addresses', 'person.id', '=', 'person_addresses.person_id')
|
|
->leftJoin('person_phones', 'person.id', '=', 'person_phones.person_id')
|
|
->select('person.*', 'client_cases.uuid as case_uuid')
|
|
->limit($request->input('limit'));
|
|
})
|
|
->get();
|
|
|
|
return [
|
|
'clients' => $clients,
|
|
'client_cases' => $clientCases,
|
|
'query' => $request->input('query')
|
|
];
|
|
|
|
}
|
|
|
|
return [];
|
|
})->name('search');
|
|
|
|
//client
|
|
Route::get('clients', [ClientController::class, 'index'])->name('client');
|
|
Route::get('clients/{client:uuid}', [ClientController::class, 'show'])->name('client.show');
|
|
Route::post('clients', [ClientController::class, 'store'])->name('client.store');
|
|
|
|
//client-case
|
|
Route::get('client-cases', [ClientCaseContoller::class, 'index'])->name('clientCase');
|
|
Route::get('client-cases/{client_case:uuid}', [ClientCaseContoller::class, 'show'])->name('clientCase.show');
|
|
Route::post('client-cases', [ClientCaseContoller::class, 'store'])->name('clientCase.store');
|
|
//client-case / contract
|
|
Route::post('client-cases/{client_case:uuid}/contract', [ClientCaseContoller::class, 'storeContract'])->name('clientCase.contract.store');
|
|
Route::put('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'updateContract'])->name('clientCase.contract.update');
|
|
Route::delete('client-cases/{client_case:uuid}/contract/{uuid}', [ClientCaseContoller::class, 'deleteContract'])->name('clientCase.contract.delete');
|
|
//client-case / activity
|
|
Route::post('client-cases/{client_case:uuid}/activity', [ClientCaseContoller::class, 'storeActivity'])->name('clientCase.activity.store');
|
|
|
|
Route::get('settings', [SettingController::class, 'index'])->name('settings');
|
|
|
|
});
|