create new category for Road patrole service
This commit is contained in:
@@ -8,9 +8,8 @@ use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\Province;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Models\RoadPatrol;
|
||||
use App\Services\Cartables\RoadPatrolTableService;
|
||||
use App\Services\Cartables\RoadPatrol\ReportService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
@@ -19,7 +18,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
class RoadPatrolReportController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
public function countryPatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function countryPatrolActivity(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->countryActivity($request);
|
||||
|
||||
@@ -31,7 +30,7 @@ class RoadPatrolReportController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function provincePatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function provincePatrolActivity(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$request->validate(["province_id" => "required",]);
|
||||
|
||||
@@ -45,7 +44,7 @@ class RoadPatrolReportController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function countryActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function countryActivityExcel(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->countryActivity($request);
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
@@ -58,7 +57,7 @@ class RoadPatrolReportController extends Controller
|
||||
]), $name);
|
||||
}
|
||||
|
||||
public function provinceActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function provinceActivityExcel(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->provinceActivity($request);
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
|
||||
|
||||
@@ -16,8 +16,8 @@ use App\Models\Mission;
|
||||
use App\Models\RoadItemsProject;
|
||||
use App\Models\RoadObserved;
|
||||
use App\Models\RoadPatrol;
|
||||
use App\Services\Cartables\RoadPatrol\ReportService;
|
||||
use App\Services\NominatimService;
|
||||
use App\Services\Cartables\RoadPatrolTableService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -32,7 +32,7 @@ class RoadPatrolProjectController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
|
||||
public function supervisorIndex(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function supervisorIndex(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$data = $roadPatrolTableService->supervisorCartableReport($request);
|
||||
|
||||
@@ -82,14 +82,14 @@ class RoadPatrolProjectController extends Controller
|
||||
return $this->successResponse();
|
||||
}
|
||||
|
||||
public function supervisorCartableReport(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function supervisorCartableReport(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از کارتابل ارزیابی گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolTableService->supervisorCartableReport($request, true);
|
||||
return Excel::download(new SupervisorCartableReport($data['data']), $name);
|
||||
}
|
||||
|
||||
public function operatorIndex(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function operatorIndex(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$data = $roadPatrolTableService->operatorCartableReport($request);
|
||||
return response()->json($data);
|
||||
@@ -331,7 +331,7 @@ class RoadPatrolProjectController extends Controller
|
||||
return $this->successResponse($roadPatrol);
|
||||
}
|
||||
|
||||
public function operatorCartableReport(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function operatorCartableReport(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از کارتابل عملیات گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolTableService->operatorCartableReport($request, true);
|
||||
|
||||
@@ -5,7 +5,6 @@ namespace App\Http\Controllers\V3\RoadPatrole;
|
||||
|
||||
use App\Enums\MissionStates;
|
||||
use App\Exports\V3\RoadPatrols\OperatorCartableReport;
|
||||
use App\Exports\V3\RoadPatrols\ProvinceActivity;
|
||||
use App\Facades\Sms\Sms;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\V3\RoadPatrol\DeleteRequest;
|
||||
@@ -16,7 +15,7 @@ use App\Models\InfoItem;
|
||||
use App\Models\Mission;
|
||||
use App\Models\RoadItemsProject;
|
||||
use App\Models\RoadPatrol;
|
||||
use App\Services\Cartables\RoadPatrolTableService;
|
||||
use App\Services\Cartables\RoadPatrol\OperatorService;
|
||||
use App\Services\NominatimService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
@@ -31,12 +30,12 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
class OperatorController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
public function index(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function index(Request $request, OperatorService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$data = $roadPatrolTableService->operatorCartableReport($request);
|
||||
return response()->json($data);
|
||||
}
|
||||
public function operatorCartableReport(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function operatorCartableReport(Request $request, OperatorService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از کارتابل عملیات گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolTableService->operatorCartableReport($request, true);
|
||||
|
||||
@@ -9,7 +9,7 @@ use App\Http\Traits\ApiResponse;
|
||||
use App\Models\EdarateShahri;
|
||||
use App\Models\Province;
|
||||
use App\Models\RoadPatrol;
|
||||
use App\Services\Cartables\RoadPatrolTableService;
|
||||
use App\Services\Cartables\RoadPatrol\ReportService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Maatwebsite\Excel\Facades\Excel;
|
||||
@@ -70,7 +70,7 @@ class ReportController extends Controller
|
||||
$data['observed_items'] = $observed_items;
|
||||
return $this->successResponse($data);
|
||||
}
|
||||
public function countryPatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function countryPatrolActivity(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->countryActivity($request);
|
||||
|
||||
@@ -82,7 +82,7 @@ class ReportController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function provincePatrolActivity(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function provincePatrolActivity(Request $request, ReportService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$request->validate(["province_id" => "required",]);
|
||||
|
||||
@@ -96,7 +96,7 @@ class ReportController extends Controller
|
||||
]);
|
||||
}
|
||||
|
||||
public function countryActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function countryActivityExcel(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->countryActivity($request);
|
||||
$provinces = Province::all(['id', 'name_fa']);
|
||||
@@ -109,7 +109,7 @@ class ReportController extends Controller
|
||||
]), $name);
|
||||
}
|
||||
|
||||
public function provinceActivityExcel(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function provinceActivityExcel(Request $request, ReportService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$activities = $roadPatrolTableService->provinceActivity($request);
|
||||
$edarateShahri = EdarateShahri::query()->where('province_id', '=', $request->province_id)->get(['id', 'name_fa']);
|
||||
|
||||
@@ -2,12 +2,10 @@
|
||||
|
||||
namespace App\Http\Controllers\V3\RoadPatrole;
|
||||
|
||||
use App\Exports\V3\RoadPatrols\CountryActivity;
|
||||
use App\Exports\V3\RoadPatrols\SupervisorCartableReport;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Traits\ApiResponse;
|
||||
use App\Models\Province;
|
||||
use App\Services\Cartables\RoadPatrolTableService;
|
||||
use App\Services\Cartables\RoadPatrol\SupervisiorService;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
@@ -17,7 +15,7 @@ use Symfony\Component\HttpFoundation\BinaryFileResponse;
|
||||
class SupervisorController extends Controller
|
||||
{
|
||||
use ApiResponse;
|
||||
public function index(Request $request, RoadPatrolTableService $roadPatrolTableService): JsonResponse
|
||||
public function index(Request $request, SupervisiorService $roadPatrolTableService): JsonResponse
|
||||
{
|
||||
$data = $roadPatrolTableService->supervisorCartableReport($request);
|
||||
|
||||
@@ -31,7 +29,7 @@ class SupervisorController extends Controller
|
||||
|
||||
return response()->json($data);
|
||||
}
|
||||
public function supervisorCartableReport(Request $request, RoadPatrolTableService $roadPatrolTableService): BinaryFileResponse
|
||||
public function supervisorCartableReport(Request $request, SupervisiorService $roadPatrolTableService): BinaryFileResponse
|
||||
{
|
||||
$name = 'گزارش از کارتابل ارزیابی گشت راهداری ' . verta()->now()->format('Y-m-d H:i') . '.xlsx';
|
||||
$data = $roadPatrolTableService->supervisorCartableReport($request, true);
|
||||
|
||||
35
app/Services/Cartables/RoadPatrol/OperatorService.php
Normal file
35
app/Services/Cartables/RoadPatrol/OperatorService.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?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 OperatorService
|
||||
{
|
||||
|
||||
|
||||
public function operatorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$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('operator_id', '=', auth()->user()->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;
|
||||
}
|
||||
}
|
||||
@@ -1,74 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Cartables;
|
||||
namespace App\Services\Cartables\RoadPatrol;
|
||||
|
||||
use App\Facades\DataTable\DataTableFacade;
|
||||
use App\Models\RoadPatrol;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class RoadPatrolTableService
|
||||
class ReportService
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
public function operatorCartableReport(Request $request, $loadRelations = false)
|
||||
{
|
||||
$allowedFilters = ['*'];
|
||||
$allowedSortings = ['*'];
|
||||
|
||||
$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('operator_id', '=', auth()->user()->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;
|
||||
}
|
||||
|
||||
public function countryActivity(Request $request): array
|
||||
{
|
||||
$fromDate = $request->from_date ? $request->from_date . ' 00:00:00' : now()->startOfDay()->toDateTimeString();
|
||||
49
app/Services/Cartables/RoadPatrol/SupervisiorService.php
Normal file
49
app/Services/Cartables/RoadPatrol/SupervisiorService.php
Normal file
@@ -0,0 +1,49 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user