49 lines
1.9 KiB
PHP
49 lines
1.9 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Cartables\RoadPatrol;
|
|
|
|
use App\Facades\DataTable\DataTableFacade;
|
|
use App\Models\RoadPatrol;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class SupervisiorService
|
|
{
|
|
public function supervisorCartableReport(Request $request, $loadRelations = false)
|
|
{
|
|
$allowedFilters = ['*'];
|
|
$allowedSortings = ['*'];
|
|
|
|
$user = auth()->user();
|
|
$query = null;
|
|
|
|
if ($user->hasPermissionTo('show-road-patrol-supervise-cartable')) {
|
|
$query = RoadPatrol::query()
|
|
->select([
|
|
'province_fa', 'province_id', 'id', 'edare_id', 'edare_name', 'start_time', 'end_time', 'created_at', 'description',
|
|
'distance', 'vehicle_runtime', 'fuel_consumption', 'stop_points'
|
|
])
|
|
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
|
}
|
|
elseif ($user->hasPermissionTo('show-road-patrol-supervise-cartable-province')) {
|
|
if (is_null($user->province_id)) {
|
|
return $this->errorResponse('استانی برای شما در سامانه ثبت نشده است!');
|
|
}
|
|
$query = RoadPatrol::query()
|
|
->select([
|
|
'province_fa', 'province_id', 'id', 'edare_id', 'edare_name', 'start_time', 'end_time', 'created_at', 'description',
|
|
'distance', 'vehicle_runtime', 'fuel_consumption', 'stop_points'
|
|
])
|
|
->where('province_id', '=', $user->province_id)
|
|
->when($loadRelations, fn ($query) => $query->with(['rahdaran:id,name,code', 'cmmsMachines:id,machine_code,car_name,plak_number']));
|
|
}
|
|
|
|
$data = DataTableFacade::run(
|
|
$query,
|
|
$request,
|
|
allowedFilters: $allowedFilters,
|
|
allowedSortings: $allowedSortings);
|
|
|
|
return $data;
|
|
}
|
|
} |